pos*_*res 6 python classification machine-learning nearest-neighbor scikit-learn
我想用scikit-learn模块实现一个KNeighborsClassifier(http://scikit-learn.org/dev/modules/generated/sklearn.neighbors.KNeighborsClassifier.html)
我从我的图像中检索坚固性,伸长率和Humoments功能.我如何准备这些数据进行培训和验证?我必须为从我的图像中检索到的每个对象创建一个包含3个特征[Hm,e,s]的列表(从1个图像中有更多对象)?
我读了这个例子(http://scikit-learn.org/dev/modules/generated/sklearn.neighbors.KNeighborsClassifier.html):
X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y)
print(neigh.predict([[1.1]]))
print(neigh.predict_proba([[0.9]]))
Run Code Online (Sandbox Code Playgroud)
X和y是2个特征?
samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
from sklearn.neighbors import NearestNeighbors
neigh = NearestNeighbors(n_neighbors=1)
neigh.fit(samples)
print(neigh.kneighbors([1., 1., 1.]))
Run Code Online (Sandbox Code Playgroud)
为什么在第一个例子中使用X和y并现在采样?
gre*_*ess 13
1d数据分类器.X 表示特征向量.
[0] is the feature vector of the first data example
[1] is the feature vector of the second data example
....
[[0],[1],[2],[3]] is a list of all data examples,
each example has only 1 feature.
Run Code Online (Sandbox Code Playgroud)
y 代表标签.
下图显示了这个想法:

print(neigh.predict([[1.1]]))
这要求分类器预测标签x=1.1.
print(neigh.predict_proba([[0.9]]))
Run Code Online (Sandbox Code Playgroud)
这要求分类器为每个标签提供成员概率估计.
由于两个灰色节点都靠近绿色,因此下面的输出是有意义的.
[0] # green label
[[ 0.66666667 0.33333333]] # green label has greater probability
Run Code Online (Sandbox Code Playgroud)
scikit-learn:在下面的示例中,我们从表示数据集的数组构造一个NeighborsClassifier类,并询问谁是[1,1,1]的最近点
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]] >>> from sklearn.neighbors import NearestNeighbors >>> neigh = NearestNeighbors(n_neighbors=1) >>> neigh.fit(samples) NearestNeighbors(algorithm='auto', leaf_size=30, ...) >>> print(neigh.kneighbors([1., 1., 1.])) (array([[ 0.5]]), array([[2]]...))
这里没有目标值,因为这只是一个NearestNeighbors类,它不是分类器,因此不需要标签.
由于您需要分类器,因此您应该KNeighborsClassifier使用KNN方法.您可能想要构建您的特征向量X和标签y,如下所示:
X = [ [h1, e1, s1],
[h2, e2, s2],
...
]
y = [label1, label2, ..., ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13481 次 |
| 最近记录: |