英文官方教程链接如下:
这一部分内容很多,不过为了保持和官网的一致性,我还是按照官网的顺序来。我觉得官网的层次划分还是十分好的,多我来说很有帮助,希望能和大家一起学习。
Supervised learning: predicting an output variable from high-dimensional observations部分
数据集,完全可以按照我的 section1 博客来看就好。
监督学习,官网给出的解释是这样的,它在于学习可观测数据和外部变量之间的关联,对外部变量进行预测。外部变量通常叫做“对象”或“标签”。(我不知道这样解释对不对,不过我一直都是这样理解的。)。scikit-learn里面所有的监督评估器都是使用 fit 函数和 predict 函数搭配的。
官方给出的有关分类和回归的定义:分类,在一组有限的标签中对观察结果进行分类;回归,目标是预测一个连续的对象变量。(我觉得大家还是看英文解释比较好,这样理解得更清楚,别人翻译的总是不太能很好地传达原来的意味。)
k-Nearest neighbors classifier
这里只是简单的描述,后面会有更深入的讲解,希望我可以跟大家一起坚持到最后。
import random
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
iris_x,iris_y = datasets.load_iris(return_X_y=True)
#如果return_X_y=True,那么返回(data,target)
#这里data对应150个实例的属性,target对应150个实例的类别,长度都是150
x_list = [i for i in range(len(iris_x))]
#创建150个实例的位置索引列表
shuffle_number1 = random.sample(x_list,len(iris_x)-10)
#随机抽取位置索引,以列表的形式返回,这里抽取140=150-10个
shuffle_number2 = random.sample(x_list,10)
iris_x_train = iris_x[shuffle_number1]
#取出对应索引的元素
iris_y_train = iris_y[shuffle_number1]
iris_x_test = iris_x[shuffle_number2]
iris_y_test = iris_y[shuffle_number2]
knn = KNeighborsClassifier()
#将分类器实例化,其实就是python类的实例化
fit = knn.fit(iris_x_train,iris_y_train)
#拟合
predict = knn.predict(iris_x_test)
预测
print(predict==iris_y_test)
#[ True True True True True True True True True True]
事实证明这样随机抽取的分类效果要比官网上的依次抽取效果好。