首页 > 科技 > 机器学习分类模型评估

机器学习分类模型评估

机器学习对分类、回归、聚类等问题的评估方式都不相同。本文将介绍机器学习分类模型评估。

准确率

一般最常见使用的是准确率,即预测结果正确的百分比,如200样本预测,100预测准确,即准确率百分之50。

def naviebayes():    """    朴素贝叶斯进行文本分类    :return:None    """    news = fetch_20newsgroups(subset='all')    x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)    tf = TfidfVectorizer()    x_train = tf.fit_transform(x_train)    x_test = tf.transform(x_test)    mlt = MultinomialNB(alpha=1.0)    mlt.fit(x_train, y_train)    y_predic = mlt.predict(x_test)    print("预测的文章类别为:", y_predic)    print("准确率为:", mlt.score(x_test, y_test))

运行结果

精确率和召回率

混淆矩阵

在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多分类)

混淆矩阵示意图

如一百个样本中猫20只,狗80只。预测的结果为猫10只(但是预测中的结果有一只是狗),狗90只(但是预测中的结果有一只是猫)则上图如下表格


示例说明



精确率

预测结果为正例样本中真实为正例的比例(查得准)


精确率示意图


召回率

真实为正例的样本中预测结果为正例的比例(查的全,对正样本的区分能力)


召回率示意图

召回率是在生产中常用的指标。


F1-score

其他分类标准,F1-score,反映了模型的稳健型


F1-score公式

综合反馈该模型的稳定性


API

sklearn.metrics.classification_report(y_true, y_pred, target_names=None)y_true:真实目标值y_pred:估计器预测目标值target_names:目标类别名称return:每个类别精确率与召回率

实例

def naviebayes():    """    朴素贝叶斯进行文本分类    :return:None    """    news = fetch_20newsgroups(subset='all')    x_train, x_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.25)    tf = TfidfVectorizer()    x_train = tf.fit_transform(x_train)    x_test = tf.transform(x_test)    mlt = MultinomialNB(alpha=1.0)    mlt.fit(x_train, y_train)    y_predic = mlt.predict(x_test)    print("预测的文章类别为:", y_predic)    print("每个类别的精确和召回率:\n", classification_report(y_test, y_predic, target_names=news.target_names))

运行结果

后续会持续更新由浅入深机器学习的技术文章,有兴趣的朋友可看我之前的文章,关注我随时了解人工智能


本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/265440.html