监督学习和kNN分类初学者教程


监督学习和kNN分类初学者教程文章插图
在这篇文章中 , 我将向你介绍一种称为监督学习的机器学习方法 。 我将向你展示如何使用Scikit-learn构建kNN分类器模型 。
这将是一个实践演练 , 我们将能够在实践知识的同时学习 。 作为我们的分类器模型 , 我们将使用k-NN算法模型 , 这将在引言部分进行更多介绍 。 作为编程语言 , 我们将使用Python 。
阅读本教程后 , 你将更好地了解深度学习和监督学习模型的工作原理 。
目录

  • 监督学习
  • 了解数据
  • kNN分类器模型
  • 过拟合与欠拟合
  • 结论
监督学习深度学习是一门科学 , 它使计算机能够在没有明确编程的情况下从数据中得出结论 。 比如学会预测电子邮件是否是垃圾邮件 。 另一个很好的例子是通过观察花的图片将它们分为不同的类别 。
监督学习和kNN分类初学者教程文章插图
在监督学习中 , 数据分为两部分:特征和目标变量 。 任务是通过观察特征变量来预测目标变量 。 监督学习可用于两种不同的模型:分类和回归
当目标变量是分类数据集时 , 可以使用分类模型 。
当目标变量是连续值时 , 使用回归模型 。
库在这一步中 , 我们将安装本教程所需的库 。 正如引言中提到深度学习lib库的主要知识库 。 除此之外 , 我们将安装两个简单的库 , 它们是NumPy和Matplotlib 。 使用PIP(python包管理器)可以很容易地安装库 。
安装库进入终端窗口 , 开始安装过程:
pip install scikit-learn现在让我们安装其他两个库:
pip install numpy matplotlib导入库很完美!现在让我们将它们导入到我们的程序中 , 以便使用它们 。 我将在本教程中使用Jupyter Notebook 。 因此 , 我创建了一个新的Notebook并导入了以下库模块 。
from sklearn import datasets from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt import numpy as np了解数据在本练习中 , 我们将使用数字数据 。 它也被称为MNIST 。 这是一个著名的数据开始建立一个监督学习模型 。 这个数据的好处是我们不必下载任何东西;它是随我们先前安装的sklearn模块一起提供的 。 下面是如何加载数据集:
digits = datasets.load_digits()现在 , 让我们试着对运行几行的数据集有一些了解 。
print(digits.keys)
监督学习和kNN分类初学者教程文章插图
Bunch是一个提供属性样式访问的Python字典 。 Bunch就像字典 。
print(digits.DESCR)
监督学习和kNN分类初学者教程文章插图
plt.imshow(digits.images[1010], cmap=plt.cm.gray_r, interpolation='nearest') plt.show()
监督学习和kNN分类初学者教程文章插图
K近邻分类器在库步骤中 , 我们已经在库步骤中导入了k-NN分类器模块 。 所以 , 我们要做的就是在我们的数据集中使用它 。 这一步是在项目中使用sklearn模块的一个很好的练习 。 因为我们正在进行监督学习 , 所以数据集必须被标记 。 这意味着在训练数据时 , 我们也传递结果 。
k-最近邻算法(k-NN)是一种用于分类和回归的非参数方法 。 在这两种情况下 , 输入由特征空间中k个最近的训练样本组成 。 输出取决于k-NN是用于分类还是回归 。 ”
特征和目标变量我们从sklearn数据集导入的数字数据有两个属性 , 即data和target 。 我们首先将这些部分分配给我们的新变量 。 我们把特征(数据)称为X和标签(目标)称为y:
X = digits.data y = digits.target拆分数据接下来 , 我们将使用train_test_split方法来分割数据部分 。 与其对整个数据进行训练 , 不如将其拆分为训练和测试数据 , 以审查模型的准确性 。 这将在下一步更有意义 , 我们将看到如何使用一些方法改进预测 。
#test size 是指将数据集中作为测试数据的比率 , 其余将是训练数据X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state=42, stratify=y)定义分类器knn = KNeighborsClassifier(n_neighbors = 7)拟合模型knn.fit(X_train, y_train)准确度得分print(knn.score(X_test, y_test))
监督学习和kNN分类初学者教程文章插图