python3.6 sklearn(1)

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_validation1.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%正确预测。


你可能感兴趣的:(python3.6 sklearn(1))