执行“distances, indices = model.kneighbors(query)”提示NotFittedError: This NearestNeighbors instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.
时间: 2024-04-09 21:29:10 浏览: 10
这个错误提示说明你在调用`model.kneighbors(query)`之前需要先调用`model.fit(X)`来拟合模型,其中`X`是你的样本数据。
请确保在执行`model.kneighbors(query)`之前添加以下代码行:
```python
# 拟合模型
model.fit(X)
```
这将确保模型被正确地拟合,并且可以使用`kneighbors`方法来找到最近邻。请记得将`X`替换为你的样本数据。
修改后的代码如下:
```python
import pandas as pd
from sklearn.neighbors import NearestNeighbors
# 读取样本数据
df_samples = pd.read_excel('样本数据.xlsx')
# 提取维度数据
X = df_samples.iloc[:, 1:].values
# 创建最近邻模型
model = NearestNeighbors(n_neighbors=5) # 可根据需要调整n_neighbors参数
# 拟合模型
model.fit(X)
# 读取待查询数据
df_query = pd.read_excel('待查询数据.xlsx')
# 提取待查询数据的维度
query = df_query.iloc[:, 1:].values
# 查找最近邻
distances, indices = model.kneighbors(query)
# 构建相似数据的DataFrame
similar_data = pd.DataFrame(df_samples.iloc[indices[0]])
# 将相似数据保存到新的Excel文件
similar_data.to_excel('相似数据.xlsx', index=False)
```
请注意,确保在使用`model.kneighbors(query)`之前调用了`model.fit(X)`。这样就能正确地拟合模型并找到最近邻了。