k-NN 算法可以说是最简单的机器学习算法。构建模型只需要保存训练数据集即可。想要
对新数据点做出预测,算法会在训练数据集中找到最近的数据点,也就是它的“最近邻”。
K近邻分类
分类forge数据集
from sklearn.model_selection import train_test_split
import mglearn
from sklearn.neighbors import KNeighborsClassifier
# 生成forge样本的特征X和目标y
X, y = mglearn.datasets.make_forge()
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
'''
scikit-learn 中的 train_test_split 函数可以打乱数据集并进行拆分。
这个函数将 75% 的行数据及对应标签作为训练集,
剩下 25% 的数据及其标签作为测试集。
训练集与测试集的分配比例可以是随意的,
但使用 25% 的数据作为测试集是很好的经验法则。
'''
# 计算最近3个点中最多出现的分类作为预测标签
clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X_train, y_train)
#为了评估模型的泛化能力好坏,我们可以对测试数据和测试标签调用 score 方法:
print("Test set accuracy: {:.2f}".format(clf.score(X_test,