Python Scikit-learn

*一组简单有效的工具集

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

*依赖Python的NumPy,SciPy和matplotlib库

*开源 可复用

Python机器学习入门(1)之导学+无监督学习 随笔 第1张

sklearn库的安装

DOS窗口中输入

pip install **

NumPy(开源科学计算库),SciPy(集成多种数学算法和函数模块)和matplotlib(提供大量绘图工具)库基础上开发的,因此需要先装这些依赖库

安装顺序

Python机器学习入门(1)之导学+无监督学习 随笔 第2张

 

SKlearn库中的标准数据集及基本功能

Python机器学习入门(1)之导学+无监督学习 随笔 第3张

 

波士顿房价数据集

Python机器学习入门(1)之导学+无监督学习 随笔 第4张

Python机器学习入门(1)之导学+无监督学习 随笔 第5张

 

使用sklearn.datasets.load_boston即可加载相关数据集

return_X_y:表示是否返回target(即价格),默认为False,只返回data(即属性)。

Python机器学习入门(1)之导学+无监督学习 随笔 第6张

 

鸢尾花数据集

Python机器学习入门(1)之导学+无监督学习 随笔 第7张

使用sklearn.datasets.load_iris即可加载相关数据集

参数:return_X_y:若为True,则以(data,target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括data和target)

 

手写数字数据集

Python机器学习入门(1)之导学+无监督学习 随笔 第8张

Python机器学习入门(1)之导学+无监督学习 随笔 第9张

 

使用sklearn.datasets.load_digits即可加载相关数据集

return_X_y:若为True,则以(data,target)的形式返回数据;默认为False,表示以字典形式返回数据全部信息包括(data和target)

n_calss:表示返回数据的类别数,如:n_class=5,则返回0到4的样本数据

Python机器学习入门(1)之导学+无监督学习 随笔 第10张

 

sklearn库的基本功能

sklearn库共分为六大部分,分别用于完成

分类任务

Python机器学习入门(1)之导学+无监督学习 随笔 第11张

回归任务

Python机器学习入门(1)之导学+无监督学习 随笔 第12张

 

聚类任务

Python机器学习入门(1)之导学+无监督学习 随笔 第13张

 

降维任务

Python机器学习入门(1)之导学+无监督学习 随笔 第14张

 模型选择

数据预处理

 

 无监督学习:

目标:利用无标签的数据学习数据的分布或数据与数据间的关系被称作无监督学习

*有监督学习和无监督学习的最大区别在于数据是否有标签

无监督学习最常用的场景是 聚类 和 降维

 

聚类:

根据数据的“相似性”将数据分为多类的过程。

Python机器学习入门(1)之导学+无监督学习 随笔 第15张

评估不同样本之间的“相似性”,通常使用的方法就是计算两个样本之间的“距离”。使用不同的

方法计算样本间的距离会关系到聚类结果的好坏。

 

欧氏距离:

欧氏距离是最常用的一种距离度量方法,源于欧式空间中两点的距离。

Python机器学习入门(1)之导学+无监督学习 随笔 第16张

Python机器学习入门(1)之导学+无监督学习 随笔 第17张

 

曼哈顿距离:

曼哈顿距离也称作“城市街区距离”,类似于在城市之中驾车行驶,从一个十字路口到

另一个十字路口的距离。

 Python机器学习入门(1)之导学+无监督学习 随笔 第18张

Python机器学习入门(1)之导学+无监督学习 随笔 第19张

 

马氏距离:

马氏距离表示数据的协方差距离,是一种尺度无关的度量方式。也就是说马氏距离会

先将样本点的各个属性标准化,在计算样本间的距离。

Python机器学习入门(1)之导学+无监督学习 随笔 第20张

Python机器学习入门(1)之导学+无监督学习 随笔 第21张

 

夹角余弦:

余弦相似度用向量空间中的两个向量夹角的余弦值作为衡量两个样本差异的大小。

余弦值越接近1,说明两个向量夹角也接近0度,表明两个向量越相似。

Python机器学习入门(1)之导学+无监督学习 随笔 第22张

Python机器学习入门(1)之导学+无监督学习 随笔 第23张

 

Python机器学习入门(1)之导学+无监督学习 随笔 第24张

以同样的数据集应用于不同的算法,可能会得到不同的结果,算法所耗费的时间也不尽相同,

这是由算法的特性决定的。

 

Python机器学习入门(1)之导学+无监督学习 随笔 第25张

调用sklearn库的标准函数对不同数据集执行的聚类结果。

 

sklearn.cluster

sklearn.cluster模块提供的各聚类算法函数可以使用不同的数据形式作为输入:

>标准数据输入格式:[样本个数,特征个数]定义的矩阵形式。

>相似性矩阵输入形式:即由[样本数目]定义的矩阵形式,矩阵中每一个元素为

两个样本的相似度,如果DBSCAN,AffinityPropagation(近邻传播算法)接受

这种输入。如果以余弦相似度为例,则对角线元素全为1.矩阵中每个元素的取值

范围为[0,1]。

Python机器学习入门(1)之导学+无监督学习 随笔 第26张

 

降维:

降维,就是在保持数据所具有的代表性特性或者分布的情况下,将高维数据转化为

低维数据的过程。

*数据可视化

*精简数据

Python机器学习入门(1)之导学+无监督学习 随笔 第27张

 

 聚类和分类都是无监督学习的典型任务,任务之间存在关联,比如某些高维数据

的分类可以通过降维处理更好的获得,学术界研究表明代表性的分类算法如k-means

与降维算法如NMF之间存在等价性。

 

*降维过程也可以被理解成为对数据集的组成成分进行分解(decomposition)的过程,

因此sklearn为降维模块命名为decomposition,在对降维算法调用需要使用sklearn.decomposition模块

 

Python机器学习入门(1)之导学+无监督学习 随笔 第28张

 

 

K-means方法及应用

k-means算法以k为参数,把n个对象分成k个簇,使簇内具有较高的相似度,而簇间的相似度较低。

*随机选择k个点作为初始的聚类中心。

*对于剩下的点,根据其与聚类中心的距离,将其归入最近的簇。

 *对每个簇,计算所有点的均值作为新的聚类中心。

重复2、3 知道聚类中心不再发生改变。

Python机器学习入门(1)之导学+无监督学习 随笔 第29张

 

Python机器学习入门(1)之导学+无监督学习 随笔 第30张

实验目的:

通过聚类,了解1999年各个省份的消费水平在国内的情况

技术路线:sklearn.cluster.Kmeans

Python机器学习入门(1)之导学+无监督学习 随笔 第31张

实现过程:

*使用算法:K-means聚类算法

*实现过程:

1.建立工程,导入sklearn相关包

 

 

 

 

 

 

 

 

 未完待续... ...

 

 

 

 

 

本文为博主学习笔记,转载需注明来源;

学习视频所属:中国大学MOOC 北京理工大学 嵩天 礼欣老师https://www.icourse163.org/course/BIT-1001873001

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄