用neigh.fit()拟合数据后,我想访问这些数据点,我该怎么做?
>>> samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
>>> samplesy = [80, 60, 40]
>>> from sklearn import neighbors
>>> neigh = neighbors.KNeighborsRegressor(n_neighbors=1)
>>> neigh.fit(samples, samplesy)
>>> print(neigh.kneighbors([1., 1., 1.]))
(array([[ 0.5]]), array([[2]]))
因此我从中了解到最接近的数据点是'samples [2]'。 但是,如果我不再访问变量'samples',是否有办法访问'neigh'中的数据点?也许像'neigh [2]'之类的东西?因为数据点必须保存在'neigh'模型的某个地方吗?
我想访问5个最近邻居的数据点,并计算这些数据点的集群中心。然后我想计算这个集群中心到新数据点的距离,以了解这个新数据点与原始数据的距离。
答案 0 :(得分:2)
用于拟合模型的数据存储在neigh._fit_X
:
>>> neigh._fit_X
array([[ 0. , 0. , 0. ],
[ 0. , 0.5, 0. ],
[ 1. , 1. , 0.5]])
但是:变量名的前导下划线应该是一个信号,告诉你这应该是某种私有属性。您不应期望此数据以任何特定方式运行,甚至存在于库的未来版本中。使用它需要您自担风险。
更好的方法可能就是自己跟踪输入数据。