以实际应用的项目作为案例,实践性强,注重提升读者的动手操作能力,适合作为高等院校本科生、研究生机器学习、数据分析、数据挖掘等课程的实验教材
《Python机器学习实战案例》基于 Python语言,实现了10个典 型的实战案例,其内容涵盖了机器学习的基础算法,主要包括统计学习基础、分类、贝叶斯网络、文本分析、 图像处理等机器学习理论。
第3章图书类目自动标引系统
21世纪以来,随着信息资源量的不断增长,世界各地的图书馆普遍使用大量数字资源进行数字化建设,如何对数字资源进行加工整理成为数字化图书馆建设的重要方向之一。为了使数字资源像纸质文献一样能够被快速根据类别进行检索,数字资源也需要进行标引。
无论是纸质资源还是数字资源,其分类都不是与生俱来的,图书文献的标引人员需要经过培训,即使是经验丰富的图书标引人员也要根据纸质资源或数字资源的主要内容,参照《中图分类法》的分类规则进行分类标引。目前数字资源在图书馆馆藏资源中所占的比例已经越来越大,数字资源的标引工作也变得越来越重要,如何在数字资源种类和规模都在迅速增长的情况下仍然兼顾标引的质量和速度,是任何一个数字化图书馆都不可忽视的重要项目。
3.1业务背景分析
目前对于图书馆收录的数字资源,大部分图书馆仍然在采取人工分类的方式对数字资源进行标引,这种方法需要经验非常丰富的标引人员耗费大量时间才能完成。因此数字资源的自动标引方法不仅可以节省人力和财力,而且还能够大大提高数字资源标引的速度,缩短资源上架周期,被读者更好地利用,有利于知识的传播。而目前图书馆所能够使用的数字资源自动标引系统均较为陈旧,其算法依赖词表和知识库的构建,且并未使用近年来机器学习和自然语言处理领域的最新成果。这些系统的标引准确率低下,且对于部分数字资源需要人工参与进行协助分类或者检验,并不能从真正意义上解放人力资源,达不到自动标引的要求。而近年来快速发展的基于机器学习和自然语言处理的算法,并没有在数字资源标引系统上有效应用。
3.2数据提取
这里将使用某市图书馆提供的F经济大类馆藏数字资源作为语料素材。数字资源的文献标题、期刊或会议名称、作者、单位、时间、文献摘要和作者给出的关键词组成了全部数字资源的索引数据库部分,而数字资源的全文则以二进制大文件的形式单独进行存储。
由于多数字段空值比例较高,从中选择部分字段作为机器标引的输入特征,经过筛选,选择标题、出版社、关键词、摘要作为后续分类标引的依据,如图3.1所示。
图3.1待标引文献数据示例
图书馆提供的初始数据库文件为Access数据库,文件类型为mdb,一共有74万的样本数量。首先安装Access数据驱动以及pyobdc工具包,连接Access数据库并将数据导出为csv文件。 在Windows系统上运行以下代码。
import pyodbc
print([x for x in pyodbc.drivers() if x.startswith('Microsoft Access Driver')])
如果看到一个空列表,那么正在运行64位Python,并且需要安装64位版本的ACE驱动程序。如果只看到['Microsoft Access Driver (*.mdb)']并且需要使用.accdb文件,那么需要安装32位版本的ACE驱动程序。
数据提取部分的代码见extract.py,其中没有抽取原本数据库中全部的字段,只使用了对于分类最重要的几个字段,即正文地址、target 、title 、abstract、keyword。
import pyodbc
import csv
path = 'D:\\PycharmProjects\\data\\'
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accd b)};DBQ=' + path + 'F大类08到18年数据.mdb')
crsr = cnxn.cursor()
for table_info in crsr.tables(tableType='TABLE'):
print(table_info.table_name)
rows = crsr.execute("SELECT Fulltext_store_path, attribute_string_14, attribute_string_1, a ttribute_string_13, attribute_text_1 FROM F数据")
csv_writer = csv.writer(open('F08_18.csv', 'w', newline='', encoding='utf8'))
for row in rows:
list = []
for item in row:
if item != None:
list.append(item)
else:
list.append('')
csv_writer.writerow(list)
其中,首先读取所有表的名称,然后再执行SQL游标查询(crsr.execute),逐行读取并将其写到文本文件中(csv.writer)。
如果是苹果操作系统,需要通过Homebrew安装unixodbc,安装方法为brew install unixodbc,然后安装mdbtools(brew install mdbtools),使用命令“mdbexport F大类08到18年数据.mdb 'F0818数据'>output_file.csv”即可导出为csv格式。
目录
第1章集装箱危险品瞒报预测
1.1业务背景分析
1.2数据提取
1.3数据预处理
1.3.1数据集成
1.3.2数据清洗
1.3.3数据变换
1.3.4数据离散化
1.3.5特征重要性筛选
1.3.6数据平衡
1.4危险品瞒报预测建模
1.5模型评估
第2章保险产品推荐
2.1业务背景分析
2.2数据探索
2.3数据预处理
2.4分类模型构建
2.5平衡数据集
2.6算法调参
2.7模型比较
第3章图书类目自动标引系统
3.1业务背景分析
3.2数据提取
3.3数据预处理
3.4基于贝叶斯分类的文献标引
3.4.1增量训练
3.4.2特征降维与消歧
3.4.3权重调节
3.5性能评估与结论
3.6基于BERT算法的文献标引
3.6.1数据预处理
3.6.2构建训练集
3.6.3模型实现
第4章基于分类算法的学习失败预警
4.1业务背景分析
4.2学习失败风险预测流程
4.3数据收集
4.4数据预处理
4.4.1数据探查及特征选择
4.4.2数据集划分及不平衡样本处理
4.4.3样本生成及标准化处理
4.5随机森林算法
4.5.1网格搜索及模型训练
4.5.2结果分析与可视化
4.5.3特征重要性分析
4.5.4与其他算法比较
第5章自然语言处理技术实例
5.1业务背景分析
5.2分析框架
5.3数据收集
5.4建立模型
5.4.1文本分词
5.4.2主题词提取
5.4.3情感分析
5.4.4语义角色标记
5.4.5语言模型
5.4.6词向量模型Word2vec
第6章基于标签的信息推荐系统
6.1业务背景分析
6.2数据预处理
6.2.1现有系统现状
6.2.2数据预处理
6.3内容分析
6.4基于协同过滤推荐
6.4.1用户偏好矩阵构建
6.4.2用户相似度度量
6.5基于用户兴趣推荐
6.6“冷启动”问题与混合策略
6.6.1冷启动问题分析
6.6.2混合策略
第7章快销行业客户行为分析与流失预警
7.1业务背景分析
7.2数据预处理
7.2.1数据整理
7.2.2数据统计与探查
7.3用户行为分析
7.3.1用户流失风险评估
7.3.2流失风险预警模型集成
第8章基于深度学习的图片识别系统
8.1业务背景分析
8.2图片识别技术方案
8.3图片预处理——表格旋转
8.4图片预处理——表格提取
8.5基于PaddlePaddle框架的文本识别
8.5.1环境安装
8.5.2模型设计
8.5.3模型训练
8.5.4模型使用
8.6基于密集卷积网络的文本识别模型
8.6.1训练数据生成
8.6.2DenseNet模型训练
8.6.3文本识别模型调用
第9章超分辨率图像重建
9.1数据探索
9.2数据预处理
9.2.1图像尺寸调整
9.2.2载入数据
9.2.3图像预处理
9.2.4持久化测试数据
9.3模型设计
9.3.1残差块
9.3.2上采样 PixelShuffler
9.3.3生成器
9.3.4判别器
9.3.5损失函数与优化器定义
9.3.6训练过程
9.4实验评估
第10章人类活动识别
10.1业务背景分析
10.2数据探索
10.3数据预处理
10.4模型构建
10.5模型评估
附录机器学习复习题
参考文献
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录