Sklearn:如何在分类训练数据时获得均方误差

时间:2018-02-02 08:09:12

标签: python pandas scikit-learn sklearn-pandas

我正试图在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中为我提供一个关于我的模型/我的模型在训练数据上错误分类的错误指标吗?我问这个是因为我知道我的数据不能完全线性分离(这意味着分类器会对某些项进行错误分类),而且我想知道获取错误指标的最佳方法。任何帮助将不胜感激!

1 个答案:

答案 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