一、目的和要求

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库的作用和使用方法

作用:使用统一的界面实现一系列机器学习,预处理,交叉验证和可视化算法。

使用方法:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类

机器学习实验——分类学习算法相关推荐

  1. Dataset:数据集集合(综合性)——机器学习、深度学习算法中常用数据集大集合(建议收藏,持续更新)

    Dataset:数据集集合(综合性)--机器学习.深度学习算法中常用数据集大集合(建议收藏,持续更新) 目录 常规数据集 各大方向分类数据集汇总 具体数据集分类 相关文章 DL:关于深度学习常用数据集 ...

  2. Python大数据综合应用 :零基础入门机器学习、深度学习算法原理与案例

    机器学习.深度学习算法原理与案例实现暨Python大数据综合应用高级研修班 一.课程简介 课程强调动手操作:内容以代码落地为主,以理论讲解为根,以公式推导为辅.共4天8节,讲解机器学习和深度学习的模型 ...

  3. 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍

    [导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...

  4. ML/DL:关于机器学习、深度学习算法模型的选择

    ML/DL:关于机器学习.深度学习算法模型的选择 目录 算法思路 算法思路 更新--

  5. 机器学习之生成学习算法

    本讲内容 1. Generative learning algorithms(生成学习算法) 2. GDA(高斯判别分析) 3. Naive Bayes(朴素贝叶斯) 4. Laplace Smoot ...

  6. 【机器学习】强化学习算法的优化

    系列文章目录 第十八章 Python 机器学习入门之强化学习 目录 系列文章目录 前言 一.神经网络框架的改进 二. 算法改进:ε-贪婪策略 前言 我们通过之前的学习知道了所谓的强化学习,关键就是学习 ...

  7. 机器学习6-多分类学习器拆分策略

    ​ 文章目录 1.一对一(One vs. One,简称OvO) 2.一对其余(One vs. Rest,简称OVR) 3.多对多(Many vs. Many,简称MvM) 参考文章: 多分类问题学习器 ...

  8. 机器学习--多分类学习

    多分类学习 基本思想 "拆解法",即:将多分类任务拆分为多个二分类任务. 先对任务进行拆分,然后为拆分出的每个二分类任务训练一个分类器:在测试时,对这些分类器的结果进行集成以获得最 ...

  9. 机器学习六—深度学习算法之人工神经网络(ANN)

    人工神经网络(ANN) 一.什么是人工神经网络 二.人工神经网络的运行原理 三.神经网络训练过程 四.神经网络 MLPClassifier 参数用法 五.人工神经网络算法实现 1.首先简单使用skle ...

最新文章

  1. 《STL源码剖析》--知识点
  2. Robust PCA 学习笔记
  3. js 定时器的用法和清除
  4. java 大数的学习
  5. (转)Mat, vectorpoint2f,Iplimage等等常见类型转换
  6. import引入json文件_关于TypeScript中import JSON的正确姿势详解
  7. 云原生视频时代已开启,华为云准备好了
  8. php vue联动查询,使用vue.js实现联动效果的示例代码
  9. 系统没有远程桌面,如何安装远程桌面
  10. 填问卷,得《2015中国呼叫中心知识库现状与问题报告》
  11. Shell编程之通配符和用户自定义变量
  12. 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
  13. C#几种截取字符串的方法(split 、Substring、Replace、remove)
  14. A cycle was detected in the build path of project 'core'. The cycle consists of projects {core, sms}
  15. IDempiere介绍
  16. Chrome DevTools 通过 cdp 调节 CPU Throttling
  17. 样本不平衡的常用处理方法
  18. 单选按钮、复选框、下拉框的回显
  19. 双网卡同时上内外网的方法
  20. SAP 从零起步之 1.1 创建公司代码

热门文章

  1. 保险巨头安盛将推出代币众筹保险服务
  2. 华为信息与网络技术学院2016-2017大学生ICT技能大赛圆满闭幕
  3. linux云服务器,内存占用率很高解决方法
  4. python时间序列峰值检测_Python中的峰值检测算法
  5. JAVA设计模式-06-建造者模式
  6. 计算机假期计划内容,2019寒假计划,超详细学习计划表
  7. 根据出生日期判断星座
  8. 如何学photoshop
  9. 怎么把PPT转成EXE格式,详细步骤
  10. 【项目实战】IPC摄像头在线状态ping检测与告警邮件发送项目总结