分类模型的常用评价指标

基本指标:误差率

指标解释:错分类样本占总样本的比例

基本指标:准确率

指标解释:正确分类样本占总样本的比例
指标解读:准确率越接近1,模型越准确

混淆矩阵

真实情况 预测:正例 预测:反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

衍生指标:查准率(precision)

指标解释:所有真正例占所有预测为正的样本的比例
指标举例:在商品推荐的过程中,我们会关心所有推荐给用户的商品(预测为正)中有多少是客户真正喜欢的(真正例)

衍生指标:查全率(recall)

指标解释:所有真正例占所有真实为正的样本的比例
指标举例:在银行用户风险识别中,我们会关心,所有有风险的用户,有多少能被我们的模型识别出来

其他指标:ROC曲线与AUC值

ROC曲线:以真正例比率为纵轴、假正例率为横轴,采用不同的截断点,来绘制ROC曲线
AUC值:ROC曲线与坐标轴构成的图形面积
指标解读:AUC指标越接近1,则代表模型准确率越高;AUC值等于0.5,代表模型准确率与随机猜测准确率一致;AUC值小于0.5时,模型效果不如随机猜测

使用sklearn查看回归模型的各项指标

用到的房价预测的数据集:https://download.csdn.net/download/d1240673769/20910882

# 使用sklearn查看回归模型的各项指标
import pandas as pd
import matplotlib.pyplot as plt# 样例数据读取
df = pd.read_excel('realestate_sample_preprocessed.xlsx')# 根据共线性矩阵,保留与房价相关性最高的日间人口,将夜间人口和20-39岁夜间人口进行比例处理
def age_percent(row):if row['nightpop'] == 0:return 0else:return row['night20-39']/row['nightpop']df['per_a20_39'] = df.apply(age_percent,axis=1)
df = df.drop(columns=['nightpop','night20-39'])# 制作标签变量
price_median = df['average_price'].median()
print(price_median)
df['is_high'] = df['average_price'].map(lambda x: True if x>= price_median else False)
print(df['is_high'].value_counts())# 数据集基本情况查看
print(df.shape)
print(df.dtypes)
print(df.isnull().sum())

划分数据集

# 划分数据集
x = df[['complete_year','area', 'daypop', 'sub_kde','bus_kde', 'kind_kde','per_a20_39']]
y = df['is_high']
print(x.shape)
print(y.shape)

建立分类模型

# 建立分类模型
# 使用pipeline整合数据处理、特征筛选与模型
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import KFold
from sklearn.preprocessing import StandardScaler, PowerTransformer
from sklearn.preprocessing import PolynomialFeatures
from sklearn.pipeline import Pipeline# 构建模型工作流
pipe_clf = Pipeline([('sc',StandardScaler()),('power_trans',PowerTransformer()),('polynom_trans',PolynomialFeatures(degree=3)),('lgostic_clf', LogisticRegression(penalty='l1', fit_intercept=True, solver='liblinear'))])
print(pipe_clf)

查看模型表现

# 查看模型表现
import warnings
from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score
warnings.filterwarnings('ignore')
pipe_clf.fit(x,y)
y_predict = pipe_clf.predict(x)print(f'accuracy score is: {accuracy_score(y,y_predict)}')
print(f'precision score is: {precision_score(y,y_predict)}')
print(f'recall score is: {recall_score(y,y_predict)}')
print(f'auc: {roc_auc_score(y,y_predict)}')

模型评价 - 分类模型的常用评价指标相关推荐

  1. 如何评价分类模型性能?(足球荔枝)

    [1]评价分类模型,我们一般从两个点出发 1.通过指标来评估该模型是否适合对预测对象? 评价指标主要有:1)Precision:2)Recall:3)F-score;4)Accuracy;5)ROC; ...

  2. python决策评价模型_Python 构建并评价分类模型_Python Classify - 树懒学堂

    构建并评价分类模型 分类是指构造一个分类模型,输入样本的特征值,输出对应的类别,将每个样本映射到预先定义好的类别.分类模型建立在已有类标记的数据集上,属于有监督学习.在实际应用场景中,分类算法被用于行 ...

  3. R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray、F1、偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机)

    R语言构建随机森林模型randomForest分类模型并评估模型在测试集和训练集上的效果(accuray.F1.偏差Deviance):随机森林在Bagging算法的基础上加入了列采样(分枝特征随机) ...

  4. R语言使用caret包的train函数构建xgboost模型(基于linear算法)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建xgboost模型(基于linear算法)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tun ...

  5. R语言使用caret包的train函数构建xgboost模型(基于gbtree算法)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建xgboost模型(基于gbtree算法)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tun ...

  6. R语言使用caret包的train函数构建多项式核SVM模型(多项式核函数)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建多项式核SVM模型(多项式核函数)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tuneGri ...

  7. R语言使用caret包的train函数构建xgboost模型(基于dart算法)模型构建分类模型、trainControl函数设置交叉验证参数、自定义调优评估指标

    R语言使用caret包的train函数构建xgboost模型(基于dart算法)模型构建分类模型.trainControl函数设置交叉验证参数.自定义调优评估指标.tuneLength参数和tuneG ...

  8. 模型评价 - 回归模型的常用评价指标

    回归模型的常用评价指标 样本误差:衡量模型在一个样本上的预测准确性 样本误差 = 样本预测值 - 样本实际值 最常用的评价指标:均误差方(MSE) 指标解释:所有样本的样本误差的平方的均值 指标解读: ...

  9. 机器学习---回归模型和分类模型的评价指标体系

    回归模型评价体系 SSE(误差平方和): R-square(决定系数) Adjusted R-square: 分类模型评价体系 一 ROC曲线和AUC值 二 KS曲线 三 GINI系数 四 Lift ...

最新文章

  1. 浏览器内核Trident/Gecko/WebKit/Presto
  2. 在Silverlight中绘制贝塞尔曲线
  3. 这位中国小伙 6个月用比特币攒了125个亿 !
  4. c# 连接mysql数据库_C#连接Mysql数据库
  5. android 判断手机为小米
  6. Django ORM 知识点总结
  7. Redis(六):Set集合数据类型详解
  8. UIWindow创建局部弹框
  9. NSMapTable、NSHashTable与NSPointerArray的封装
  10. Azure ARM (16) 基于角色的访问控制 (Role Based Access Control, RBAC) - 使用默认的Role
  11. Java后台直接生成二维码介绍
  12. Android(安卓)手机变砖复活的三种恢复方法
  13. 如何下载无水印的抖音视频?
  14. Unity笔记之切换鼠标图标样式、PSD格式文件导入Unity
  15. python 爬虫图片打不开_爬虫下载图片打不开是什么原因,最新简易爬虫教程
  16. 月薪过万必会的:双亲委托模型
  17. Using the Scheduler Application - JDE Scheduler Job 原理
  18. 请求https接口时报错:Caused by SSLError(SSLError(1, u‘[SSL: CERTIFICATE_VERIFY_FAILED] certificat,安装certifi
  19. 反向题在测试问卷信效度_如何确认问卷(考卷)的信度与效度?
  20. 按键手机Java游戏回顾,绿豆蛙勇闯冒险岛java 老式按键手机青蛙闯关游戏

热门文章

  1. 如何限流,具体实现有哪些?
  2. js实现简单点名册.
  3. jsp的内置对象有哪些,四大作用域有哪些??
  4. 我在北大青鸟的工作经历
  5. 什么是熵(entropy)?
  6. 单片机百科知识点---杂七杂八系列
  7. 【易语言界面开发系列教程之(EX_UI使用系列教程 ——1-8节)】
  8. C语言编程单片机相关资料,单片机的C语言编程资料.ppt
  9. 好用的音视频剪辑软件综述
  10. jQuery判断是否为数字