机器学习实验——分类学习算法
一、目的和要求
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库的作用和使用方法
作用:使用统一的界面实现一系列机器学习,预处理,交叉验证和可视化算法。
使用方法:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类
机器学习实验——分类学习算法相关推荐
- Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)
Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...
- Python大数据综合应用 :零基础入门机器学习、深度学习算法原理与案例
机器学习.深度学习算法原理与案例实现暨Python大数据综合应用高级研修班 一.课程简介 课程强调动手操作:内容以代码落地为主,以理论讲解为根,以公式推导为辅.共4天8节,讲解机器学习和深度学习的模型 ...
- 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍
[导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...
- ML/DL:关于机器学习、深度学习算法模型的选择
ML/DL:关于机器学习.深度学习算法模型的选择 目录 算法思路 算法思路 更新--
- 机器学习之生成学习算法
本讲内容 1. Generative learning algorithms(生成学习算法) 2. GDA(高斯判别分析) 3. Naive Bayes(朴素贝叶斯) 4. Laplace Smoot ...
- 【机器学习】强化学习算法的优化
系列文章目录 第十八章 Python 机器学习入门之强化学习 目录 系列文章目录 前言 一.神经网络框架的改进 二. 算法改进:ε-贪婪策略 前言 我们通过之前的学习知道了所谓的强化学习,关键就是学习 ...
- 机器学习6-多分类学习器拆分策略
文章目录 1.一对一(One vs. One,简称OvO) 2.一对其余(One vs. Rest,简称OVR) 3.多对多(Many vs. Many,简称MvM) 参考文章: 多分类问题学习器 ...
- 机器学习--多分类学习
多分类学习 基本思想 "拆解法",即:将多分类任务拆分为多个二分类任务. 先对任务进行拆分,然后为拆分出的每个二分类任务训练一个分类器:在测试时,对这些分类器的结果进行集成以获得最 ...
- 机器学习六—深度学习算法之人工神经网络(ANN)
人工神经网络(ANN) 一.什么是人工神经网络 二.人工神经网络的运行原理 三.神经网络训练过程 四.神经网络 MLPClassifier 参数用法 五.人工神经网络算法实现 1.首先简单使用skle ...
最新文章
- 《STL源码剖析》--知识点
- Robust PCA 学习笔记
- js 定时器的用法和清除
- java 大数的学习
- (转)Mat, vectorpoint2f,Iplimage等等常见类型转换
- import引入json文件_关于TypeScript中import JSON的正确姿势详解
- 云原生视频时代已开启,华为云准备好了
- php vue联动查询,使用vue.js实现联动效果的示例代码
- 系统没有远程桌面,如何安装远程桌面
- 填问卷,得《2015中国呼叫中心知识库现状与问题报告》
- Shell编程之通配符和用户自定义变量
- 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
- C#几种截取字符串的方法(split 、Substring、Replace、remove)
- A cycle was detected in the build path of project 'core'. The cycle consists of projects {core, sms}
- IDempiere介绍
- Chrome DevTools 通过 cdp 调节 CPU Throttling
- 样本不平衡的常用处理方法
- 单选按钮、复选框、下拉框的回显
- 双网卡同时上内外网的方法
- SAP 从零起步之 1.1 创建公司代码