【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/#
安装顺序如下:
- Numpy库
- Scipy库
- matplotlib库
- 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库中的标准数据集
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