问题
使用 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]]))
因此,从中我了解到最接近的数据点是"样本[2]"。但是,在我不再有权访问变量"samples"的情况下,有没有办法访问"neigh"中的数据点?也许像"嘶嘶声[2]"之类的东西?因为数据点必须保存在"嘶嘶"模型中的某个地方,对吗?
为什么
我想访问 5 个最近邻数据点并计算这些数据点的聚类中心。然后,我想计算此聚类中心到新数据点的距离,以了解此新数据点与原始数据的距离。
用于拟合模型的数据存储在neigh._fit_X
:
>>> neigh._fit_X
array([[ 0. , 0. , 0. ],
[ 0. , 0.5, 0. ],
[ 1. , 1. , 0.5]])
但是:变量名称的前导下划线应该向您发出信号,表明这应该在某种程度上是一个私有属性。您不应期望此数据以任何特定方式运行,甚至不应存在于库的未来版本中。使用它的风险由您自己承担。
更好的方法可能是自己跟踪输入数据。