KNN算法
来源:4-2 scikit-learn中的机器学习算法封装
慕移动3485595
2020-07-04
- assert 的功能是否等同于if, 区别是什么?
- assert 1 <=k <= X_train.shape[0],
assert X_train.shape[0] == y_train.shape[0],
assert X_train.shape[1] == x.shape[0]
这里为什么不是x.shape[1] ? 如果测试特征数量是否相同的话(即列是否相同)。 - KNN_classifier.fit(X_train, y_train) 的返回值,这里不是太明白。
KNeighborsClassifier(algorithm=‘auto’, leaf_size=30, metric=‘minkowski’,
metric_params=None, n_jobs=1, n_neighbors=6, p=2,
weights=‘uniform’)
这是啥意思?到底返回的是什么? 为什么不用重新定义一个变量进行存储?
4.kNN_classifier.predict(X_predict)
y_predict = kNN_classifier.predict(X_predict)
课程中只说对X_predict进行了predict,我想知道怎么predict的?过程是什么? predict后得到了array[1], 那么array[1]中的内容是什么?
写回答
1回答
-
liuyubobobo
2020-07-04
1
assert(x) 等同于: if(!x) 则程序直接中断。
试一试给 k 赋值为不再 1 <=k <= X_train.shape[0] 之间的值,运行层序,看看会发生什么?
2
knn 用最近的 k 个样本作为依据,所以 k 最大为 X_train.shape[0],及所有样本数。
3
fit 实际上是完成了一个内部计算,所以并不需要使用返回值。但是你写成 knn_clf = KNN_classifier.fit(X_train, y_train) 也是没问题的。因为 sklearn 内部实际也将自己返回去了。这样设计是为了方便管道的设计需要。现在还没有学习管道,不用管这一点。
4
怎么 predict 的就是 4-1 小节介绍的方式。具体的得到的就是预测的标签。把 predict 的结果打印出来看一看?
继续加油!:)
022020-07-04
相似问题