赞
踩
一、目的和要求
1、理解监督学习和分类学习的基本概念。
2、掌握分类学习五种算法的算法流程。
3、学会编写分类学习五种算法的Python编程方法。
4、会使用分类学习评价方法测评不同的算法性能
二、设备或环境
个人电脑、Anaconda2、Python2.7.10和网络
三、实验步骤
1、设计算法步骤和流程
2、根据算法编写Python程序
3、运行机器学习算法程序并调试
四、内容
(一):线性分类器----良/恶性乳腺癌肿瘤预测。
1、写出本例中所用数据的数据描述
每条样本有11列不同的数值:1列用于检索的id,9列与肿瘤相关的医学特征,以及一列表征肿瘤类型的数值。所有9列用于表示肿瘤医学特质的数值均被量化为1~10之间的数字,而肿瘤的类型也借由数字2和数字4分别指代良性和恶性。包括其中包含16个缺失值,用“?”标出。
- Sample code number 样本代码编号
- Clump Thickness 肿块厚度
- Uniformity of Cell Size 细胞大小的均匀性
- Uniformity of Cell Shape 细胞形状的均匀性
- Marginal Adhesion 边缘粘
- Single Epithelial Cell Size 单上皮细胞的大小
- Bare Nuclei 裸核
- Bland Chromatin 乏味染色体
- Normal Nucleoli 正常核
- Mitoses 有丝分裂
- class 类别 2为良性,4为恶性
2、运行Chapter_2.1.1.1 粘贴实验结果、并分别对每一个结果做出解释
683条数据 9个特征 1个id 1个分类结果
3、在代码中添加data.head(),粘贴结果,并解释代码含义
使用head()函数,查看前5行数据。
4、在代码中添加data[column_names[1:10]],粘贴结果,并解释代码含义
column_name(s) 表中所有列的名称,只看第2到10列,省略了对第一列ID的查看
5、 在代码中添加data.info(),粘贴结果,并解释代码含义
显示所有信息
6 、在代码中添加data1 = data[[ 'Clump Thickness', 'Uniformity of Cell Size', 'Class']],粘贴结果,解释代码含义,并添加相关语句显示data1的数据格式和统计特征。
使用data1.head(10)显示data1的数据格式
使用data1.info()显示data1的统计特征
输出data1的数据量和维度,仅显示Clump Thickness,Uniformity of Cell Size,Class的信息。
7 、解释train_test_split函数的作用和各参数含义
调用train_test_split将原始数据按比例分割为“测试集”和“训练集”
data:所要划分的样本
test_size:样本占比,如果是整数的话就是样本的数量,决定划分测试、训练集比例
random_state:是随机数的种子
8、数据预处理中涉及到的fit_transform()函数和transform()函数之间的区别是什么?
fit_transform()的作用就是先拟合数据,然后转化它将其转化为标准形式
tranform()的作用是通过找中心和缩放等实现标准化
9 、对比分析以下LogisticRegression分类器和SGDClassifier分类器的性能
SGDClassifier是一系列采用了梯度下降来求解参数的算法的集合,当数据集特别大的时候,使用SGDClassifier中的逻辑回归。
(二):支持向量机----手写体数字识别
1、写出本例中所用数据的数据描述
在https://archive.ics.uci.edu/ml/datasets.php下载数据说明
Optical Recognition of Handwritten Digits
https://archive.ics.uci.edu/ml/datasets/Optical+Recognition+of+Handwritten+Digits
该手写体数字的数码图像数据共1797条,每幅图是64的像素矩阵表示的
2、运行Chapter_2.1.1.2 粘贴实验结果、并分别对每一个结果做出解释
3 、简要说明如何使用召回率、准确率和f1指标对非二分类问题进行评价
准确率:正确分类的比率
=正确分类的总数/样本总数
=(TN+TP)/(TN+FN+FP+TP)
召回率:所有真实值为1的数据中,预测对了的个数
=TP/(TP+FN)
F1指标:精确值和召回率的调和均值
=2P*R/(P+R) (精准率P,召回率R)
4、在代码中添加print (digits.DESCR),粘贴结果,并解释代码含义
输出数据集的简介、作者以及参考资料
(三):K近邻分类----鸢尾花数据分类
1、写出本例中所用数据的数据描述
在https://archive.ics.uci.edu/ml/datasets.php下载数据说明
Iris
https://archive.ics.uci.edu/ml/datasets/Iris
Iris数据集共有150朵鸢尾数据样本,且均匀分布在3个不同的亚种;每个数据样本被4个不同的花瓣、花萼的形状特征所描述。
2、运行Chapter_2.1.1.4 粘贴实验结果、并分别对每一个结果做出解释
3 、说明Knc = KNeighborsClassifier(n_neighbors=(所谓的K个数), weights=’uniform’) 函数的作用和各参数的含义
作用:用于实现k近邻算法的分类器
n_neighbors:默认情况下kneighbors查询使用的邻居数。就是k的值,选取最近的k个点。
Weights:默认是uniform,参数可以是uniform、distance,也可以是用户自己定义的函数。uniform是均等的权重,就说所有的邻近点的权重都是相等的。distance是不均等的权重,距离近的点比距离远的点的影响大。用户自定义的函数,接收距离的数组,返回一组维数相同的权重。
4、在程序中修改KNeighborsClassifier函数的两个参数,观察和记录模型的准确率、精确率、召回率和f1指标的变化,找到最优的参数并记录。
原数据
更改n_neighbors
更改weights
最优参数
(四):决策树----泰坦尼克号乘客生还情况
1、写出本例中所用数据的数据描述
2、运行Chapter_2.1.1.5 粘贴实验结果、并分别对每一个结果做出解释
该数据共1313条乘客信息,并且有些特征数据是完整的,有些是缺失的;有些是数值型的,有些为字符串。
3 、在程序中添加代码,查看数据分割后训练集(X_train)和测试集(X_test)数据
(1)X_train
(2)X_test
4 、在程序中添加代码,查看特征转换后的训练集和测试集数据,并分析和转换前数据的不同
(1)X_train
(2)X_test
(五):集成模型----泰坦尼克号乘客生还情况
1、写出本例中所用数据的数据描述
2、运行Chapter_2.1.1.6 粘贴实验结果、并分别对每一个结果做出解释
3 、通过分析性能指标,说明随机森林分类器相对单一决策树的性能差异。
在相同的训练和测试数据条件下,仅仅使用模型的默认配置,梯度上升决策树具有最佳的预测性能,其次是随机森林分类器,最后是单一决策树。
(六):思考题----简述Scikit-learn库的作用和使用方法
作用:使用统一的界面实现一系列机器学习,预处理,交叉验证和可视化算法。
使用方法:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。