Scikit-Learn把所有的机器学习算法都整合在一起了,根据需要选取相应的学习算法.
Scikit-Learn通用的学习步骤:
1.数据
2.根据数据特点选取相对应的算法
3.建立模型
3.预测数据
scikit-learn 内置有一些小型标准数据集,不需要从某个外部网站下载任何文件。
1) boston 房价,
2) 糖尿病,
3) 数字
4) Iris 花
注意:这些数据集有助于快速说明在 scikit 中实现的各种算法的行为。然而,它们数据规模往往太小,无法代表真实世界的机器学习任务。
以Iris 花为例来学习下Scikit-Learn使用的一般步骤,这种花有四个属性,花瓣的长宽,茎的长宽,根据这些属性把花分为三类,我们要使用分类器把花分开.
利用KNN实现花分类步骤:
from sklearn import dataset
from sklearn.model_selection
import train_test_splitfrom sklearn.neighbors
import KNeighborsClassifier
iris = datasets.load_iris()iris_X = iris.datairis_y = iris.target
把数据集分为训练集和测试集,其中 test_size=0.2,即测试集占总数据的 20%:
X_train, X_test, y_train, y_test = train_test_split(
iris_X, iris_y, test_size=0.2)
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)print(knn.predict(X_test))print(y_test)
结果
预测值:[2 2 2 0 1 1 1 1 0 0 1 2 2 0 0 1 1 1 2 0 1 1 0 0 2 2 0 0 0 2]
真实值:[2 2 2 0 1 1 1 1 0 0 1 2 2 0 0 1 1 2 2 0 1 1 0 0 2 2 0 0 0 2]
对比用模型预测的值与真实的值,可以看到大概模拟出了数据,但是有误差,是不会完完全全预测正确的。
import numpy as npfrom sklearn
import datasetsfrom sklearn.cross_validation
import train_test_splitfrom sklearn.neighbors
import KNeighborsClassifier
iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target
# print(iris_X[:6, :])
# print(iris_y)
X_train, X_test, y_train, y_test = train_test_split(
iris_X, iris_y, test_size=0.2)
# print(y_train)
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print(knn.predict(X_test))
print(y_test)