我正试图在Python中第一次使用sklearn做一些分类问题,并且想知道仅仅根据训练数据计算分类器(如SVM)的错误的最佳方法是什么。 / p>
我的计算准确度和rmse的示例代码如下:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
我知道'sklearn.metrics import mean_squared_error'几乎可以让我获得MSE进行样本外比较。我可以在sklearn中为我提供一个关于我的模型/我的模型在训练数据上错误分类的错误指标吗?我问这个是因为我知道我的数据不能完全线性分离(这意味着分类器会对某些项进行错误分类),而且我想知道获取错误指标的最佳方法。任何帮助将不胜感激!
答案 0 :(得分:1)
要评估您的分类器,您可以使用以下指标:
from sklearn.metrics import confusion_matrix
from sklearn.metrics import classification_report
from sklearn.metrics import roc_curve
from sklearn.metrics import roc_auc_score
混淆矩阵将预测标签作为列标题,真正的标签是行标签。混淆矩阵的主对角线显示正确分配的标签的数量。任何非对角线元素都包含错误分配的标签数。从混淆矩阵中,您还可以计算准确度,精度和召回率。分类报告和混淆矩阵都很容易使用 - 您将测试和预测标签传递给函数:
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
[[1047 5]
[ 0 448]]
precision recall f1-score support
0.0 1.00 1.00 1.00 1052
1.0 0.99 1.00 0.99 448
avg / total 1.00 1.00 1.00 1500
其他度量函数计算并绘制ROC的接收器操作特性(ROC)和曲线下面积(AUC)。你可以在这里阅读有关ROC的信息:
http://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_curve.html
http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html