Machine learning 如果kNN没有训练阶段,我们将.fit()方法应用于Scikit中的kNN模型时会发生什么?
既然kNN在RAM级别处理训练和预测,并且不需要明确的训练过程,那么在拟合kNN模型时会发生什么?我认为这一步与培训模型有关。多谢各位 如果我跳过装配步骤,我将得到以下错误Machine learning 如果kNN没有训练阶段,我们将.fit()方法应用于Scikit中的kNN模型时会发生什么?,machine-learning,scikit-learn,knn,training-data,Machine Learning,Scikit Learn,Knn,Training Data,既然kNN在RAM级别处理训练和预测,并且不需要明确的训练过程,那么在拟合kNN模型时会发生什么?我认为这一步与培训模型有关。多谢各位 如果我跳过装配步骤,我将得到以下错误 NotFittedError: This KNeighborsClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator. 示例代码: from sklearn.neighb
NotFittedError: This KNeighborsClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.
示例代码:
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
import pandas as pd
f=r"aug_train.csv"
df=pd.read_csv(f)
X=df[:90000][["training_hours", "city_development_index"]].values
y=df[:90000]["target"].values
X_train, X_test, y_train, y_test=train_test_split(X,y)
knn=KNeighborsClassifier(n_neighbors=2)
knn.fit(X_train, y_train)
yhat=knn.predict(X_test)
print(yhat)
与其他机器学习算法不同,KNN不优化代价函数,而是记住训练数据。进行预测时,KNN将输入与其存储的训练数据进行比较。给出与查询输入具有最大相似性的数据点的类标签作为预测。因此,当我们拟合KNN模型时,它会学习数据集或将数据集存储在内存中。或者,在拟合时也会生成一些更有效的预测数据结构的方法(请参见参数
算法
)。@BenReiniger Yes从技术上讲,在数组上搜索可能需要O(n)到O(n^2)时间,以缩短KNN构建KD树的时间,该树将速度降低到O(nlogn)。@BenReiniger默认情况下,scikit学习使用球树(kdTree的一种修改)