【1】简介--2--sklearn简介

一、Python Scikit-learn

  • http://scikit-learn.org/stable/ • Machine Leaning in Python
  • 一组简单有效的工具集
  • 依赖Python的NumPy,SciPy和matplotlib库 • 开源、可复用

Scikit-learn 常用函数

内容 应用 (Applications) 算法 (Algorithm)
分类 (Classification) 异常检测,图像识别,等 KNN, SVM,etc.
聚类 (Clustering) 图像分割,群体划分,等 K-Means,谱聚类, etc.
回归 (Regression) 价格预测,趋势预测,等 线性回归,SVR,etc.
降维 (Dimension Reduction) 可视化 PCA,NMF,etc.

二、sklearn依赖的库

sklearn是scikit-learn的简称,是一个基于Python的第三方模块。 sklearn库集成了一些常用的机器学习方法,在进行机器学习任务时, 并不需要实现算法,只需要简单的调用sklearn库中提供的模块就能 完成大多数的机器学习任务。

sklearn库是在Numpy、Scipy和matplotlib的基础上开发而成的, 因此在介绍sklearn的安装前,需要先安装这些依赖库

Numpy(Numerical Python的缩写)是一个开源的Python科学计算库。在 Python中虽然提供了list容器和array模块,但这些结构并不适合于进行数值计算, 因此需要借助于Numpy库创建常用的数据结构(如:多维数组,矩阵等)以及进 行常用的科学计算(如:矩阵运算)。

Scipy库是sklearn库的基础,它是基于Numpy的一个集成了多种数学算法和函 数的Python模块。它的不同子模块有不同的应用,如:积分、插值、优化和信号 处理等。

matplotlib是基于Numpy的一套Python工具包,它提供了大量的数据绘图工 具,主要用于绘制一些统计图形,将大量的数据转换成更加容易被接受的图表。 (注意要先安装numpy再安装matplotlib库)

三、sklearn库的安装

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#

安装顺序如下:

  1. Numpy库
  2. Scipy库
  3. matplotlib库
  4. sklearn库

mac下:

方法一:(不建议)

pip install numpy
pip install Scipy
pip install matplotlib
pip install sklearn

方法二(conda,建议):

conda install scikit-learn

To upgrade scikit-learn:
conda update scikit-learn

To uninstall scikit-learn:
conda remove scikit-learn

启动

source /Users/tanqianshan/miniconda2/bin/activate /Users/tanqianshan/miniconda2/conda-meta

四、sklearn库中的标准数据集

skleaern_data

1.波士顿房价数据集

波士顿房价数据集包含506组数据,每条数据包含房屋以及房屋 周围的详细信息。其中包括城镇犯罪率、一氧化氮浓度、住宅平均房 间数、到中心区域的加权距离以及自住房平均房价等。因此,波士顿 房价数据集能够应用到回归问题上。

波士顿房价数据集-属性描述

CRIM:城镇人均犯罪率。
ZN:住宅用地超过 25000 sq.ft. 的比例。
INDUS:城镇非零售商用土地的比例。
CHAS:查理斯河空变量(如果边界是河流,则为1;否则为0)
NOX:一氧化氮浓度。
RM:住宅平均房间数。
AGE:1940 年之前建成的自用房屋比例。
DIS:到波士顿五个中心区域的加权距离。
RAD:辐射性公路的接近指数。
TAX:每 10000 美元的全值财产税率。
PTRATIO:城镇师生比例。
B:1000(Bk-0.63)^ 2,其中 Bk 指代城镇中黑人的比例。
LSTAT:人口中地位低下者的比例。
MEDV:自住房的平均房价,以千美元计。

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

其重要参数为:

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

示例2:

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

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

2.鸢尾花数据集

鸢尾花数据集采集的是鸢尾花的测量数据以及其所属的类别。 测量数据包括:萼片长度、萼片 宽度、花瓣长度、花瓣宽度。 类别共分为三类:Iris Setosa, Iris Versicolour,Iris Virginica。该 数据集可用于多分类问题。

使用sklearn.datasets. load_iris即可加载相关数据集 其参数有:

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

>>> from sklearn.datasets import load_iris >>> iris = load_iris()
 >>> print(iris.data.shape)
 (150, 4)
 >>> print(iris.target.shape)
 (150, )
 >>> list(iris.target_names) ['setosa', 'versicolor', 'virginica']

3.手写数字数据集

手写数字数据集包括1797个0-9的手写数字数据,每个数字由8*8 大小的矩阵构成,矩阵中值的范围是0-16,代表颜色的深度。 使用sklearn.datasets.load_digits即可加载相关数据集 其参数包括:

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

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

>>> from sklearn.datasets import load_digits >>> digits = load_digits()
 >>> print(digits.data.shape)
 (1797, 64)
 >>> print(digits.target.shape) (1797, )
 >>> print(digits.images.shape) (1797, 8, 8)
 >>> import matplotlib.pyplot as plt
 >>> plt.matshow(digits.images[0])
 >>> plt.show()

五、sklearn库的基本功能

sklearn库的共分为6大部分,分别用于完成分类任务、回归任务、 聚类任务、降维任务、模型选择以及数据的预处理。

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
BIRCHq cluster.Birch
谱聚类 cluster.SpectralClustering

4.降维任务

降维方法 加载模块
主成分分析 decomposition.PCA
截断SVD和LSA decomposition.TruncatedSVD
字典学习 decomposition.SparseCoder
因子分析 decomposition.FactorAnalysis
独立成分分析 decomposition.FastICA
非负矩阵分解 decomposition.NMF
LDA decomposition.LatentDirichletAllocation

参考资料:

北京理工大学 礼欣 www.python123.org

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn