python - knn.score的参数说明
问题描述
在下面的代码(最后一行)中,它使用了 X_test 和 y_test 根据文档:
返回给定测试数据和标签的平均准确度
问题是究竟计算了什么,因为X_test
有来自测试数据的数据并且y_test
有这些数据的标签。
检查预测标签与实际标签是有意义的。
你能告诉我第一个场景在最后一行是如何工作的吗?
X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'],
random_state=0)
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, y_train)
print("Test set score: {:.2f}".format(knn.score(X_test, y_test)))
解决方案
如果您检查文档:
Parameters:
X : array-like, shape = (n_samples, n_features)
Test samples.
y : array-like, shape = (n_samples) or (n_samples, n_outputs)
True labels for X.
sample_weight : array-like, shape = [n_samples], optional
Sample weights.
Returns:
score : float
Mean accuracy of self.predict(X) wrt. y.
后面会发生什么?它正在预测:knn.predict(X_test)
然后使用这些值来计算 和 之间的平均准确knn.predict(X_test)
度 y_test
。您应该使用sklearn.metrics.accuracy_score获得相同的输出:
from sklearn.metrics import accuracy_score
y_predict = knn.predict(X_test)
accuracy_score(y_test, y_predict)
推荐阅读
- javascript - 更改随机 div 的颜色
- android - 当应用程序具有 MediaBrowserService 时,Videoview 窃取媒体按钮事件
- asynchronous - Kotlin 延续没有恢复
- c++ - 模板类中的 C++20 类外定义
- python-3.x - 删除熊猫数据框中的列
- php - 如何指定 Symfony 应该与多个内核一起使用哪个路由文件
- linux - 由于缺少 libsapcrypto.so,Sybase 16 startserver 失败
- angular - 是否可以将 *ngIf 和 *ngFor 等结构指令添加到使用渲染器 2 添加到 DOM 的元素中?
- c# - VB 脚本到 C# - 提取 .arch 文件
- python - 根据需要的条件安排时间戳