scikit-learn 中的最近邻分类
Nearest Neighbors Classification in scitkit-learn
我正在尝试理解和使用 this code from the scikit learn site:
我已将 X 更改为
X = [[ 170, 70 ], [ 180, 80 ], [ 190, 90 ], [ 200, 100], [ 172, 80 ], [ 182, 72 ], [ 185, 95 ], [ 184, 74 ], [ 184, 80 ], [ 177, 67 ], [ 177, 77 ], [ 177, 87 ],
[ 190, 85 ], [ 190, 86 ], [ 190, 97 ], [ 190, 82 ], [ 190, 84 ], [ 195, 85 ], [ 185, 92 ], [ 185, 77 ], [ 183, 87 ], [ 183, 77 ], [ 183, 78 ], [ 182, 88 ],
[ 177, 78 ], [ 177, 82 ], [ 176, 70 ], [ 172, 65 ], [ 170, 62 ], [ 170, 68 ], [ 173, 65 ], [ 173, 64 ], [ 168, 71 ], [ 169, 62 ], [ 174, 80 ], [ 173, 65 ],
[ 180, 100], [ 180, 60 ], [ 170, 90 ], [ 170, 55 ], [ 180, 68 ], [ 175, 92 ], [ 168, 100], [ 177, 110], [ 180, 110], [ 186, 65 ], [ 186, 145], [ 190, 120],
[ 175, 55 ], [ 182, 65 ], [ 195, 70 ], [ 173, 90 ], [ 175, 50 ], [ 182, 130], [ 183, 65 ], [ 150, 82 ], [ 155, 80 ], [ 200, 70 ], [ 185, 110], [ 176, 100]]
这是作为训练数据集的身高和体重。
我也将 y 更改为
y = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
这是可以接受的-不可以接受的,我的两个类。
如何测试像 [140, 85] 这样的新案例,看看它是 1 还是 0?
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
示例中使用与训练数据相同的数据,它的计算基于训练数据集的最小值、最大值和步长,这令人困惑。请帮忙。
您链接的示例非常复杂,因为它还创建了您在网站上看到的情节。
没有情节就像打电话一样简单
result = clf.predict([140,85])
获取新样本 [140, 85] 的结果。
总而言之,您真正需要的是以下内容:
from sklearn import neighbors
# Define your X and y here
clf = neighbors.KNeighborsClassifier(5)
clf.fit(X, y)
result = clf.predict([140,85])
分类器的参数(在我的示例 5 中)描述了预测应考虑多少邻居。玩这个数字,直到你得到一个不错的结果。
我正在尝试理解和使用 this code from the scikit learn site:
我已将 X 更改为
X = [[ 170, 70 ], [ 180, 80 ], [ 190, 90 ], [ 200, 100], [ 172, 80 ], [ 182, 72 ], [ 185, 95 ], [ 184, 74 ], [ 184, 80 ], [ 177, 67 ], [ 177, 77 ], [ 177, 87 ],
[ 190, 85 ], [ 190, 86 ], [ 190, 97 ], [ 190, 82 ], [ 190, 84 ], [ 195, 85 ], [ 185, 92 ], [ 185, 77 ], [ 183, 87 ], [ 183, 77 ], [ 183, 78 ], [ 182, 88 ],
[ 177, 78 ], [ 177, 82 ], [ 176, 70 ], [ 172, 65 ], [ 170, 62 ], [ 170, 68 ], [ 173, 65 ], [ 173, 64 ], [ 168, 71 ], [ 169, 62 ], [ 174, 80 ], [ 173, 65 ],
[ 180, 100], [ 180, 60 ], [ 170, 90 ], [ 170, 55 ], [ 180, 68 ], [ 175, 92 ], [ 168, 100], [ 177, 110], [ 180, 110], [ 186, 65 ], [ 186, 145], [ 190, 120],
[ 175, 55 ], [ 182, 65 ], [ 195, 70 ], [ 173, 90 ], [ 175, 50 ], [ 182, 130], [ 183, 65 ], [ 150, 82 ], [ 155, 80 ], [ 200, 70 ], [ 185, 110], [ 176, 100]]
这是作为训练数据集的身高和体重。
我也将 y 更改为
y = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
这是可以接受的-不可以接受的,我的两个类。
如何测试像 [140, 85] 这样的新案例,看看它是 1 还是 0?
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
示例中使用与训练数据相同的数据,它的计算基于训练数据集的最小值、最大值和步长,这令人困惑。请帮忙。
您链接的示例非常复杂,因为它还创建了您在网站上看到的情节。
没有情节就像打电话一样简单
result = clf.predict([140,85])
获取新样本 [140, 85] 的结果。
总而言之,您真正需要的是以下内容:
from sklearn import neighbors
# Define your X and y here
clf = neighbors.KNeighborsClassifier(5)
clf.fit(X, y)
result = clf.predict([140,85])
分类器的参数(在我的示例 5 中)描述了预测应考虑多少邻居。玩这个数字,直到你得到一个不错的结果。