Python sklearn机器学习各种评价指标——Sklearn.metrics简介及应用示例

Python Sklearn.metrics 简介及应用示例

利用Python进行各种机器学习算法的实现时,经常会用到sklearn(scikit-learn)这个模块/库。

无论利用机器学习算法进行回归、分类或者聚类时,评价指标,即检验机器学习模型效果的定量指标,都是一个不可避免且十分重要的问题。因此,结合scikit-learn主页上的介绍,以及网上大神整理的一些资料,对常用的评价指标及其实现、应用进行简单介绍。

一、 scikit-learn安装

网上教程很多,此处不再赘述,具体可以参照:
https://www.cnblogs.com/zhangqunshi/p/6646987.html
此外,如果安装了Anoconda,可以直接从Anoconda Navigator——Environment里面搜索添加。
pip install -U scikit-learn

二、 scikit-learn.metrics导入与调用

有两种方式导入:

方式一:

from sklearn.metrics import 评价指标函数名称

例如:

from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score

调用方式为:直接使用函数名调用
计算均方误差mean squared error

mse = mean_squared_error(y_test, y_pre)

计算回归的决定系数R2

R2 = r2_score(y_test,y_pre)
方式二:

from sklearn import metrics

调用方式为:metrics.评价指标函数名称(parameter)

例如:
计算均方误差mean squared error

mse = metrics.mean_squared_error(y_test, y_pre)

计算回归的决定系数R2

R2 = metrics.r2_score(y_test,y_pre)
三、 scikit-learn.metrics里各种指标简介

简单介绍参见:
https://www.cnblogs.com/mdevelopment/p/9456486.html
详细介绍参见:
https://www.cnblogs.com/harvey888/p/6964741.html
官网介绍:
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics

转自第一个链接的内容,简单介绍内容如下:

回归指标

  1. explained_variance_score(y_true, y_pred, sample_weight=None, multioutput=‘uniform_average’):回归方差(反应自变量与因变量之间的相关程度)

  2. mean_absolute_error(y_true,y_pred,sample_weight=None,
    multioutput=‘uniform_average’):
    平均绝对误差

  3. mean_squared_error(y_true, y_pred, sample_weight=None, multioutput=‘uniform_average’):均方差

  4. median_absolute_error(y_true, y_pred) 中值绝对误差

  5. r2_score(y_true, y_pred,sample_weight=None,multioutput=‘uniform_average’) :R平方值

分类指标

  1. accuracy_score(y_true,y_pre) : 精度

  2. auc(x, y, reorder=False) : ROC曲线下的面积;较大的AUC代表了较好的performance。

  3. average_precision_score(y_true, y_score, average=‘macro’, sample_weight=None):根据预测得分计算平均精度(AP)

  4. brier_score_loss(y_true, y_prob, sample_weight=None, pos_label=None):The smaller the Brier score, the better.

  5. confusion_matrix(y_true, y_pred, labels=None, sample_weight=None):通过计算混淆矩阵来评估分类的准确性 返回混淆矩阵

  6. f1_score(y_true, y_pred, labels=None, pos_label=1, average=‘binary’, sample_weight=None): F1值
      F1 = 2 * (precision * recall) / (precision + recall) precision(查准率)=TP/(TP+FP) recall(查全率)=TP/(TP+FN)

  7. log_loss(y_true, y_pred, eps=1e-15, normalize=True, sample_weight=None, labels=None):对数损耗,又称逻辑损耗或交叉熵损耗

  8. precision_score(y_true, y_pred, labels=None, pos_label=1, average=‘binary’,) :查准率或者精度; precision(查准率)=TP/(TP+FP)

  9. recall_score(y_true, y_pred, labels=None, pos_label=1, average=‘binary’, sample_weight=None):查全率 ;recall(查全率)=TP/(TP+FN)

  10. roc_auc_score(y_true, y_score, average=‘macro’, sample_weight=None):计算ROC曲线下的面积就是AUC的值,the larger the better

  11. roc_curve(y_true, y_score, pos_label=None, sample_weight=None, drop_intermediate=True);计算ROC曲线的横纵坐标值,TPR,FPR
      TPR = TP/(TP+FN) = recall(真正例率,敏感度) FPR = FP/(FP+TN)(假正例率,1-特异性)

四、 一个应用实例

结合官网的案例,利用自己的数据,实现的一个应用实例:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import ensemble
from sklearn import  metrics

##############################################################################
# Load data
data = pd.read_csv('Data for train_0.003D.csv')
y = data.iloc[:,0]
X = data.iloc[:,1:]
offset = int(X.shape[0] * 0.9)
X_train, y_train = X[:offset], y[:offset]
X_test, y_test = X[offset:], y[offset:]

##############################################################################
# Fit regression model
params = {'n_estimators': 500, 'max_depth': 4, 'min_samples_split': 2,
          'learning_rate': 0.01, 'loss': 'ls'}
clf = ensemble.GradientBoostingRegressor(**params)

clf.fit(X_train, y_train)
y_pre = clf.predict(X_test)

# Calculate metrics
mse = metrics.mean_squared_error(y_test, y_pre)
print("MSE: %.4f" % mse)

mae = metrics.mean_absolute_error(y_test, y_pre)
print("MAE: %.4f" % mae)

R2 = metrics.r2_score(y_test,y_pre)
print("R2: %.4f" % R2)

##############################################################################
# Plot training deviance

# compute test set deviance
test_score = np.zeros((params['n_estimators'],), dtype=np.float64)

for i, y_pred in enumerate(clf.staged_predict(X_test)):
    test_score[i] = clf.loss_(y_test, y_pred)

plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.title('Deviance')
plt.plot(np.arange(params['n_estimators']) + 1, clf.train_score_, 'b-',
         label='Training Set Deviance')
plt.plot(np.arange(params['n_estimators']) + 1, test_score, 'r-',
         label='Test Set Deviance')
plt.legend(loc='upper right')
plt.xlabel('Boosting Iterations')
plt.ylabel('Deviance')

##############################################################################
# Plot feature importance
feature_importance = clf.feature_importances_
# make importances relative to max importance
feature_importance = 100.0 * (feature_importance / feature_importance.max())
sorted_idx = np.argsort(feature_importance)
pos = np.arange(sorted_idx.shape[0]) + .5
plt.subplot(1, 2, 2)
plt.barh(pos, feature_importance[sorted_idx], align='center')
plt.yticks(pos, X.columns[sorted_idx])

plt.xlabel('Relative Importance')
plt.title('Variable Importance')
plt.show()

最终的运行结果为:
在这里插入图片描述

  • 100
    点赞
  • 660
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: sklearn.metrics库是scikit-learn机器学习库的一部分,可以通过以下命令来安装: ``` pip install -U scikit-learn ``` 如果你已经安装了scikit-learn,可以使用以下命令来升级到最新版本: ``` pip install -U --upgrade scikit-learn ``` 安装完成后,你就可以在Python代码中使用sklearn.metrics库了。例如,可以使用以下代码导入库: ```python from sklearn.metrics import accuracy_score ``` ### 回答2: sklearn.metrics库是scikit-learn机器学习库中的一个模块,主要用于评估机器学习模型的性能和预测结果的质量。想要下载并使用sklearn.metrics库,可以按照以下步骤进行操作。 首先,需要确保已经安装了scikit-learn库。如果尚未安装,可以使用pip命令在终端或命令提示符中执行以下命令进行安装:pip install scikit-learn 安装完成后,在Python代码中引入sklearn.metrics库: ``` from sklearn import metrics ``` 通过以上引入语句,就可以使用sklearn.metrics库中的各种功能了。 sklearn.metrics库提供了许多用于评估模型性能的函数,包括计算准确率、精确率、召回率、F1值等指标。例如,可以使用metrics.accuracy_score函数计算预测准确率: ``` y_true = [0, 1, 2, 0, 1, 2] y_pred = [0, 2, 1, 0, 0, 1] accuracy = metrics.accuracy_score(y_true, y_pred) print("准确率:", accuracy) ``` 除了评估模型性能,sklearn.metrics库还提供了一些用于计算预测结果质量的函数,如混淆矩阵、分类报告、ROC曲线等。例如,可以使用metrics.confusion_matrix函数计算混淆矩阵: ``` y_true = [0, 1, 2, 0, 1, 2] y_pred = [0, 2, 1, 0, 0, 1] confusion_matrix = metrics.confusion_matrix(y_true, y_pred) print("混淆矩阵:", confusion_matrix) ``` 以上只是sklearn.metrics库的一些基本用法,该库还提供了许多其他有用的函数和工具,可根据具体需求进行进一步学习和使用。 ### 回答3: 使用Python机器学习库scikit-learn(sklearn)时,可以使用sklearn.metrics库来进行模型评估和性能度量。sklearn.metrics库提供了多种函数和指标,用于评估分类、回归、聚类和聚类分析模型的性能。 要下载sklearn.metrics库,首先需要安装scikit-learn库。可以使用pip命令来安装,如下所示: ``` pip install scikit-learn ``` 安装成功后,我们可以导入sklearn.metrics库,并使用其中的函数和指标来评估模型。 sklearn.metrics库包含了很多常用的模型评估和性能度量方法。例如,可以使用accuracy_score函数来计算分类模型的准确率,使用precision_score函数来计算分类模型的精确率,使用recall_score函数来计算分类模型的召回率。另外,还可以使用mean_squared_error函数来计算回归模型的均方误差,使用r2_score函数来计算回归模型的R平方值等等。 sklearn.metrics库的使用非常灵活,可以根据具体的需求选择合适的函数和指标进行评估。可以通过查阅官方文档或者参考在线教程来了解更多关于sklearn.metrics库的详细使用方法和示例。 总之,要使用sklearn.metrics库,首先需要安装scikit-learn库,然后导入sklearn.metrics库,并根据需要选择合适的函数和指标进行模型评估和性能度量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值