Python SciKit学习教程
Scikit学习
Scikit-learn是用于Python的机器学习库。
它具有多种回归,分类和聚类算法,包括SVM,梯度提升,k均值,随机森林和DBSCAN。
它旨在与Python Numpy和SciPy一起使用。
scikit-learn项目由David Cournapeau的scikits.learn作为Google的"代码之夏"项目(也称为GSoC)启动。
它的名称来自" Scikit",这是SciPy的单独第三方扩展。
Python Scikit学习
Scikit是用Python编写的(大部分),其一些核心算法是用Cython编写的,以实现更好的性能。
Scikit-learn用于构建模型,不建议将其用于读取,处理和汇总数据,因为有更好的框架可用于此目的。
它是开源的,并在BSD许可下发布。
安装Scikit Learn
Scikit假定您的设备上具有正在运行的Python 2.7或者更高版本的平台,并带有NumPY(1.8.2和更高版本)和SciPY(0.13.3和更高版本)软件包。
一旦安装了这些软件包,就可以继续安装。
对于pip安装,请在终端中运行以下命令:
pip install scikit-learn
如果您喜欢conda
,也可以使用conda进行软件包安装,请运行以下命令:
conda install scikit-learn
使用Scikit-Learn
安装完成后,可以通过将scikit-learn导入为以下代码,轻松地在python代码中使用它:
import sklearn
Scikit学习加载数据集
让我们从加载要播放的数据集开始。
让我们加载一个名为Iris的简单数据集。
它是花朵的数据集,包含有关花朵的不同测量值的150个观察值。
让我们看看如何使用scikit-learn加载数据集。
# Import scikit learn from sklearn import datasets # Load data iris= datasets.load_iris() # Print shape of data to confirm data is loaded print(iris.data.shape)
为了方便起见,我们正在打印数据的形状,如果需要,您也可以打印整个数据,运行代码将得到如下输出:
Scikit学习SVM –学习和预测
现在我们已经加载了数据,让我们尝试从中学习并预测新数据。
为此,我们必须创建一个估计器,然后调用其fit方法。
from sklearn import svm from sklearn import datasets # Load dataset iris = datasets.load_iris() clf = svm.LinearSVC() # learn from the data clf.fit(iris.data, iris.target) # predict for unseen data clf.predict([[ 5.0, 3.6, 1.3, 0.25]]) # Parameters of model can be changed by using the attributes ending with an underscore print(clf.coef_ )
这是运行此脚本时得到的结果:
Scikit学习线性回归
使用scikit-learn创建各种模型非常简单。
让我们从一个简单的回归示例开始。
#import the model from sklearn import linear_model reg = linear_model.LinearRegression() # use it to fit a data reg.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2]) # Let's look into the fitted data print(reg.coef_)
运行模型应返回可以在同一条线上绘制的点:
k最近邻居分类器
让我们尝试一个简单的分类算法。
该分类器使用基于球树的算法来表示训练示例。
from sklearn import datasets # Load dataset iris = datasets.load_iris() # Create and fit a nearest-neighbor classifier from sklearn import neighbors knn = neighbors.KNeighborsClassifier() knn.fit(iris.data, iris.target) # Predict and print the result result=knn.predict([[0.1, 0.2, 0.3, 0.4]]) print(result)
让我们运行分类器并检查结果,分类器应返回0。
让我们尝试以下示例:
K均值聚类
这是最简单的聚类算法。
该集合分为" k"个聚类,每个观察值都分配给一个聚类。
反复进行此操作,直到群集收敛为止。
我们将在以下程序中创建一个这样的集群模型:
from sklearn import cluster, datasets # load data iris = datasets.load_iris() # create clusters for k=3 k=3 k_means = cluster.KMeans(k) # fit data k_means.fit(iris.data) # print results print( k_means.labels_[::10]) print( iris.target[::10])
在运行该程序时,我们将在列表中看到单独的群集。