如果 kNN 没有训练阶段,当我们将 .fit() 方法应用于 Scikit-learn 中的 kNN 模型时会发生什么?
What happens when we apply .fit() method to a kNN model in Scikit-learn if kNN has no training phase?
由于 kNN 在 RAM 级别同时处理训练和预测,并且不需要明确的训练过程,那么在拟合 knn 模型时究竟会发生什么?我认为这一步与训练模型有关。谢谢。
这是如果我跳过拟合步骤会得到的错误。
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 会将输入与其存储的训练数据进行比较。与查询输入具有最大相似性的数据点的 class 标签作为预测给出。因此,当我们拟合 KNN 模型时,它会学习数据集或将其存储在内存中。
由于 kNN 在 RAM 级别同时处理训练和预测,并且不需要明确的训练过程,那么在拟合 knn 模型时究竟会发生什么?我认为这一步与训练模型有关。谢谢。
这是如果我跳过拟合步骤会得到的错误。
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 会将输入与其存储的训练数据进行比较。与查询输入具有最大相似性的数据点的 class 标签作为预测给出。因此,当我们拟合 KNN 模型时,它会学习数据集或将其存储在内存中。