python机器学习(1)python.sklearn库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xumeng7231488/article/details/78303736

1.安装numpy、scipy、matplotlib、sklearn库

安装方法:
(1).whl文件 下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs
(2)在下载路径下打开dos命令行依次执行
PS:35指python版本3.5、 amd64指64位处理器

pip install "numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl"
pip install scipy-0.19.0-cp35-cp35m-win_amd64.whl
pip install matplotlib-2.0.0-cp35-cp35m-win_amd64.whl
pip install scikit_learn-0.18.1-cp35-cp35m-win_amd64.whl

2.测试安装

import numpy
import scipy
import matplotlib
import sklearn

3.数据集

(1)小数据集
波士顿房价数据集 load_boston() 回归 506*13
鸢尾花数据集 load_iris() 分类 150*4
糖尿病数据集 load_diabetes() 回归 442*10
手写数字数据集 load_digits() 分类 5620*64
(2)大数据集
Olivetti 脸部图像数据集 fetch_olivetti_faces() 降维 400*64*64
新闻分类数据集 fetch_20newsgroups() 分类 -
带标签的人脸数据集 fetch_lfw_people() 分类;降维 -
路透社新闻语料数据集 fetch_rcv1() 分类 804414*47236

4.数据集处理

(1)加载数据集

>>> from sklearn.datasets import load_boston
>>> boston = load_boston()
>>> print(boston.data.shape)

其重要参数为:
• return_X_y:表示是否返回target(即价格),默认为False,
只返回data(即属性)

>>> from sklearn.datasets import load_boston
>>> data, target = load_boston(return_X_y=True)
>>>> print(data.shape)
(506, 13)
>>> print(target.shape)
(506)

5.主要任务

(1)分类任务
分类模型 加载模块
最近邻算法 neighbors.NearestNeighbors
支持向量机 svm.SVC
朴素贝叶斯 naive_bayes.GaussianNB
决策树 tree.DecisionTreeClassifier
集成方法 ensemble.BaggingClassifier
神经网络 neural_network.MLPClassifier
(2)回归任务
回归任务
回归模型 加载模块
岭回归 linear_model.Ridge
Lasso回归 linear_model.Lasso
弹性网络 linear_model.ElasticNet
最小角回归 linear_model.Lars
贝叶斯回归 linear_model.BayesianRidge
逻辑回归 linear_model.LogisticRegression
多项式回归 preprocessing. PolynomialFeatures
(3)聚类任务
聚类方法 加载模块
K-means cluster.KMeans
AP聚类 cluster.AffinityPropagation
均值漂移 cluster.MeanShift
层次聚类 cluster.AgglomerativeClustering
DBSCAN cluster.DBSCAN
BIRCH cluster.Birch
谱聚类 cluster.SpectralClustering

6.无监督学习

(1)定义
利用无标签的数据学习数据的分布或数据与数据之间的关系被称作无监
督学习。
• 有监督学习和无监督学习的最大区别在于数据是否有标签
• 无监督学习最常应用的场景是聚类(clustering)和降维(Dimension
Reduction)
(2)聚类
聚类(clustering),就是根据数据的“相似性”将数据分为多类的过程。
评估两个不同样本之间的“相似性” ,通常使用的方法就是计算两个样本之间的“距离”。使用不同的方法计算样本间的距离会关系到聚类
结果的好坏。

①欧氏距离:欧氏距离是最常用的一种距离度量方法,源于欧式空间中两点的距离。
②曼哈顿距离:曼哈顿距离也称作“城市街区距离”,类似于在城市之中驾车行驶,从一个十字路口到另外一个十字楼口的距离。
③马氏距离:马氏距离表示数据的协方差距离,是一种尺度无关的度量方式。也就是说马氏距离会先将样本点的各个属性标准化,再计算样本间的距离。
④夹角余弦:余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个样本差异的大小。余弦值越接近1,说明两个向量夹角越接近0度,表明两个向量越相似。

.

PS:Sklearn vs. 聚类
 scikit-learn库(以后简称sklearn库)提供的常用聚类算法函数包含在> sklearn.cluster这个模块中,如:K-Means,近邻传播算法,DBSCAN等。
> 以同样的数据集应用于不同的算法,可能会得到不同的结果,算法所耗费的时间也不尽相同,这是由算法的特性决定的。

.

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

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

相似性矩阵输入格式:即由[样本数目,样本数目]定义的矩阵形式,矩阵中> 的每一个元素为两个样本的相似度,如DBSCAN, AffinityPropagation(近邻传> 播算法)接受这种输入。如果以余弦相似度为例,则对角线元素全为1. 矩阵中每 个元素的取值范围为[0,1]。

.
(3)降维:
①定义
就是在保证数据所具有的代表性特性或者分布的情况下,将高维数据转化为低维数据的过程:
 数据的可视化
 精简数据
②分类

算法名称 参数 可扩展性 适用任务
PCA 所降维度及其他 超参 大规模数据
信号处理等 FastICA 所降维度及其他 超参 超大规模数据 图形图像特征提取 NMF 所降维度及其他 超参 大规模数据 图形图像特征提取
LDA 所降维度及其他 超参 大规模数据 文本数据,主题挖掘

(4)聚类与降维
聚类和降维都是无监督学习的典型任务,任务之间存在关联,比如某些
高维数据的聚类可以通过降维处理更好的获得,另外学界研究也表明代表性的聚类算法如k-means与降维算法如NMF之间存在等价性。

猜你喜欢

转载自blog.csdn.net/xumeng7231488/article/details/78303736