Python3.6 scikit-learn(1)
1. 机器学习方法的分类
- 监督学习
- 无监督学习
- 半监督学习
- 强化学习
- 遗传算法
2. scikit-learn
2.1 sklearn中的通用学习模式
sklearn 中有自带的数据库,可以通过导入模块的数据库来进行训练学习,导入方式如下:
import numpy as np
from sklearn import datasets
from sklearn.cross_validation import train_test_split
from sklearn.neighbors import KNeighborsClassifier #KNN
在以上导入的数据集以及方法中,sklearn.cross_validation
在1.9版本之后就被弃用了,1.9之后的版本中要用 sklearn.model_selection
来进行相关的操作,后面的东西都一样。
2.2 通过KNN算法实现分类
通过sklearn中自带的KNN学习算法,可以对datasets中的鸢尾花 (iris) 实现分类,具体的过程如下:
iris = datasets.load_iris() #导入iris数据集
iris_X = iris.data #iris的特征数据
iris_y = iris.target #iris的分类
#print (iris_X[:2,:])
#划分训练集与测试集,其中测试集占总数据的30%
X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size=0.3)
knn = KNeighborsClassifier() #导入KNN算法
knn.fit(X_train, y_train) #KNN对于X,y进行学习
print (knn.predict(X_test)) #模型在X测试集上的预测
print (y_test) #真实的情况
程序最后的输出结果如下:
knn.predict(X_test):
[1 0 2 0 2 1 1 2 1 2 2 2 2 0 1 2 1 0 2 1 0 2 2 2 1 0 1 2 2 0 2 2 1 1 0 0 1 1 0 0 1 0 2 1 1]
y_test:
[1 0 2 0 2 1 1 2 1 2 2 2 2 0 1 2 1 0 2 1 0 2 2 2 1 0 1 2 2 0 2 2 1 1 0 0 1 1 0 0 1 0 2 2 1]
通过对比上述结果可以看到,模型预测的情况与真实情况并不是完全的相同,这也是所有机器学习算法的特点,即不可能做到对于结果的100%正确预测。
网友评论