机器学习及其典型算法应用
k近邻分类:
k近邻路径图如下:
KNeighborsClassifer的使用分三步:
- 创建KNeighborsClassifer对象:
- 调用fit()函数:
- 调用predict()函数进行预测:
示例代码:代码(ch5_1_KNeighborsClassifer.py):
from sklearn.neighbors import KNeighborsClassifier
x = [[0], [1], [2], [3], [4], [5], [6], [7], [8]]
y = [0, 0, 0, 1, 1, 1, 2, 2, 2]
neigh = KNeighborsClassifier(n_neighbors = 3)
neigh.fit(x, y)
print(neigh.predict([[1.1]]))
print(neigh.predict([[1.6]]))
print(neigh.predict([[5.2]]))
print(neigh.predict([[5.8]]))
print(neigh.predict([[6.2]]))
运行结果:
[0]
[0]
[1]
[2]
[2]
题目
1、 使用scikit-learn中的KNeighborsClassifier函数对以下3组测试数据进行分类。说明如下:
(1) 根据身高、体重、鞋号来预测男女性别。
(2) 11组训练数据及标签如下所示。
(3) 3组测试数据如下所示。
2、 使用scikit-learn中的KNeighborsClassifier函数对平台提供的wine数据集进行分类。说明如下:
(3)3个分类结果,如下所示。
第一题代码:
from sklearn.neighbors import KNeighborsClassifier
x = [[181, 80, 44], [177, 70, 43], [160, 60, 38], [154, 54, 37],
[166, 65, 40], [190, 90, 47], [175, 64, 39], [177, 70, 40],
[159, 55, 37], [171, 75, 42], [181, 85, 44]]
y = ['男', '男', '女', '女', '男', '男',
'女', '女', '女', '男', '男']
neigh = KNeighborsClassifier(n_neighbors = 3)
neigh.fit(x, y)
print(neigh.predict([[178, 77, 44]]))
print(neigh.predict([[155, 60, 39]]))
print(neigh.predict([[178, 72, 44]]))
运行结果:
<