Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 如果kNN没有训练阶段,我们将.fit()方法应用于Scikit中的kNN模型时会发生什么?_Machine Learning_Scikit Learn_Knn_Training Data - Fatal编程技术网

Machine learning 如果kNN没有训练阶段,我们将.fit()方法应用于Scikit中的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

既然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将输入与其存储的训练数据进行比较。给出与查询输入具有最大相似性的数据点的类标签作为预测。因此,当我们拟合KNN模型时,它会学习数据集或将数据集存储在内存中。

或者,在拟合时也会生成一些更有效的预测数据结构的方法(请参见参数
算法
)。@BenReiniger Yes从技术上讲,在数组上搜索可能需要O(n)到O(n^2)时间,以缩短KNN构建KD树的时间,该树将速度降低到O(nlogn)。@BenReiniger默认情况下,scikit学习使用球树(kdTree的一种修改)