机器学习对分类、回归、聚类等问题的评估方式都不相同。本文将介绍机器学习分类模型评估。
准确率
一般最常见使用的是准确率,即预测结果正确的百分比,如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,反映了模型的稳健型
综合反馈该模型的稳定性
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