模型评价:回归模型的常用评价指标

1) 样本误差:衡量模型在一个样本上的预测准确性

样本误差 = 样本预测值 - 样本实际值

2) 最常用的评价指标:均误差方(MSE)

指标解释:所有样本的样本误差的平方的均值

指标解读:均误差方越接近0,模型越准确

3) 较为好解释的评价指标:平均绝对误差(MAE)

指标解释:所有样本的样本误差的绝对值的均值

指标解读:平均绝对误差的单位与因变量单位一致,越接近0,模型越准确

4)平均绝对误差的衍生指标:平均绝对比例误差(MAPE)

指标解释:所有样本的样本误差的绝对值占实际值的比值

指标解读:指标越接近与0,模型越准确

5)模型解释度:R squared R方 r2

指标解释:应变量的方差能被自变量解释的程度

指标解读:指标越接近1,则代表自变量对于应变量的解释度越高

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

1) 加载数据

import pandas as pd

import matplotlib.pyplot as plt

import os

os.chdir(r'C:\Users\86177\Desktop')

# 样例数据读取

df = pd.read_excel('realestate_sample_preprocessed.xlsx')

# 根据共线性矩阵,保留与房价相关性最高的日间人口,将夜间人口和20-39岁夜间人口进行比例处理

def age_percent(row):

if row['nightpop'] == 0:

return 0

else:

return row['night20-39']/row['nightpop']

df['per_a20_39'] = df.apply(age_percent,axis=1)

df = df.drop(columns=['nightpop','night20-39'])

# 数据集基本情况查看

print(df.shape)

print(df.dtypes)

print(df.isnull().sum())

–> 输出的结果为:(这里直接加载数据并对共线性数据进行处理)

(898, 9)

id int64

complete_year int64

average_price float64

area float64

daypop float64

sub_kde float64

bus_kde float64

kind_kde float64

per_a20_39 float64

dtype: object

id 0

complete_year 0

average_price 0

area 0

daypop 0

sub_kde 0

bus_kde 0

kind_kde 0

per_a20_39 0

dtype: int64

2) 划分数据集

x = df[['complete_year','area', 'daypop', 'sub_kde',

'bus_kde', 'kind_kde','per_a20_39']]

y = df['average_price']

print(x.shape)

print(y.shape)

–> 输出的结果为:(创建模型前需要将数据集划分好,查看数据维度)

(898, 7)

(898,)

3) 建立回归模型

之前提到的Pipeline模型工作流就可以直接使用了,将要执行的工作流程全部封装在Pipeline中,具体的有:

数据标准化

StandardScaler()

数据纠偏

PowerTransformer()

变量拓展

PolynomialFeatures(degree=3)

,样本值为1000,特征有7个,这里选择

degree=3

线性回归中选择了

lasso

回归,里面的

LassoCV(alphas=(list(np.arange(8, 10) * 10)

,可以实现自动训练出最优的

alpha

值带入模型中

import numpy as np

from sklearn.linear_model import LinearRegression, LassoCV

from sklearn.model_selection import KFold

from sklearn.preprocessing import StandardScaler, PowerTransformer

from sklearn.preprocessing import PolynomialFeatures

from sklearn.pipeline import Pipeline

# 构建模型工作流

pipe_lm = Pipeline([

('sc',StandardScaler()),

('power_trans',PowerTransformer()),

('polynom_trans',PolynomialFeatures(degree=3)),

('lasso_regr', LassoCV(alphas=(

list(np.arange(8, 10) * 10)

),

cv=KFold(n_splits=3, shuffle=True),

n_jobs=-1))

])

print(pipe_lm)

–> 输出的结果为:

Pipeline(memory=None,

steps=[('sc',

StandardScaler(copy=True, with_mean=True, with_std=True)),

('power_trans',

PowerTransformer(copy=True, method='yeo-johnson',

standardize=True)),

('polynom_trans',

PolynomialFeatures(degree=3, include_bias=True,

interaction_only=False, order='C')),

('lasso_regr',

LassoCV(alphas=[80, 90], copy_X=True,

cv=KFold(n_splits=3, random_state=None, shuffle=True),

eps=0.001, fit_intercept=True, max_iter=1000,

n_alphas=100, n_jobs=-1, normalize=False,

positive=False, precompute='auto', random_state=None,

selection='cyclic', tol=0.0001, verbose=False))],

verbose=False)

4) 查看模型表现

import warnings

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score

warnings.filterwarnings('ignore')

pipe_lm.fit(x,y)

y_predict = pipe_lm.predict(x)

print(f'mean squared error is: {mean_squared_error(y,y_predict)}')

print(f'mean absolute error is: {mean_absolute_error(y,y_predict)}')

print(f'R Squared is: {r2_score(y,y_predict)}')

# 计算MAPE

check = df[['average_price']]

check['y_predict'] = pipe_lm.predict(x)

check['abs_err'] = abs(check['y_predict']-check['average_price'] )

check['ape'] = check['abs_err']/check['average_price']

ape = check['ape'].mean()

print(f'mean absolute percent error is: {ape}')

–> 输出的结果为:(MAPE需要手动单独计算,没有模块可以使用)

mean squared error is: 27731808.3971612

mean absolute error is: 3764.8763555076

R Squared is: 0.671538868244777

mean absolute percent error is: 0.16143438261828635

最后可以看一下

check

数据

average_pricey_predictabs_errape

033464.00040132.9811806668.9811800.199288

138766.00034522.8543224243.1456780.109455

233852.00032718.5080301133.4919700.033484

339868.00039242.949615625.0503850.015678

442858.00039242.9496153615.0503850.084349

...............

89340113.00039559.520171553.4798290.013798

89441806.00048224.3538206418.3538200.153527

89551895.37537610.72715214284.6478480.275259

89634546.00044010.8965349464.8965340.273980

89733595.00032194.0551271400.9448730.041701

898 rows × 4 columns

平均绝对误差python_机器学习回归模型的常用评价指标(8):均方误差MSE、平均绝对误差MAE、平均绝对比例误差MAPE、相关系数R2,方差,相关性...相关推荐

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

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

  2. 模型评估 | 机器学习回归模型评价(RMSE、MAE、MAPE)

    模型评估 | 机器学习回归模型评价(RMSE.MAE.MAPE) RMSE.MAE.MAPE function result(true_value,predict_value,type) disp(t ...

  3. R语言caret包构建机器学习回归模型(regression model)、使用DALEX包进行模型解释分析、特征重要度、偏依赖分析等

    R语言caret包构建机器学习回归模型(regression model).使用DALEX包进行模型解释分析.特征重要度.偏依赖分析等 目录

  4. 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。

    机器学习回归模型精度 Congratulations on completing your Machine Learning (ML) pipeline! In the second part of ...

  5. 【实战】——基于机器学习回归模型对广州二手房价格进行分析及模型评估

    目录 1.数据导入 2.数据清洗 2.1.变量选取 2.2.空值处理 2.3.类型转化 2.4.数据再处理 3.机器学习sklearn的实现 3.1.训练集和测试集的拆分 3.2.数据的标准化 3.3 ...

  6. 模型评估 | 机器学习回归模型评价(RMSE、MAPE、R^2、NSE)

    模型评估 | 机器学习回归模型评价(RMSE.MAPE.R^2.NSE) RMSE.MAPE.R^2.NSE % RMSE RMSE_test = sqrt(sumsqr(output_test - ...

  7. 模型评价 - 分类模型的常用评价指标

    分类模型的常用评价指标 基本指标:误差率 指标解释:错分类样本占总样本的比例 基本指标:准确率 指标解释:正确分类样本占总样本的比例 指标解读:准确率越接近1,模型越准确 混淆矩阵 真实情况 预测:正 ...

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

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

  9. (4)机器学习--回归模型

    老饼|机器学习 (bbbdata.com) 1逻辑回归模型 1.1与线性回归模型的区别 • 线性回归模型的过程: 找出一个函数能够拟合自变量x与因变量y之间的线性关系,预测新数据x的y值. 先决条件是 ...

  10. 机器学习——回归模型

    回归模型的功能一般是预测,分为线性回归,决策树(回归树),支持向量机(SVR) 1.线性回归 线性回归一般使用的公式如下: y' = w[0]*x[0] +w[1]*x[1] +w[2]*x[2] + ...

最新文章

  1. 一步一步玩控件:自定义TabControl——从山寨Safari开始
  2. spring aop JointPoint类
  3. Oracle左右链接
  4. 最短路径问题matlab作图,[MATLAB基础] matlab最短路径的输出问题,用了递归,但程序出错了,请大虾指点...
  5. 2018年,牛客网小白月赛5
  6. 第5章分布式系统模式 Broker(代理程序)
  7. RPA机器人如何调用USB SERVER
  8. Windows 10 自带的远程协助工具 快速助手
  9. 拼多多linux版本,拼多多没有Linux版本客户端,但可用xDroid来运行拼多多APP
  10. android 微信浮窗实现_Android仿微信文章悬浮窗效果
  11. 蓄电池内阻测试仪分析软件,福禄克 Fluke BT500系列蓄电池内阻测试仪
  12. 数据科学家和人工智能职业生涯之外软件公司之外的热门市场
  13. 人物画像————圆球转动效果
  14. node.js 安装详细步骤
  15. 刷题、OJ 1337: 运动员分组
  16. Tomcat配置图片保存路径
  17. android9手机电池管家,电池寿命修复大师手机版
  18. 微软杀毒软件Microsoft Security Essentials 今起可下载
  19. 百度云高速下载Pandownload
  20. js监听元素尺寸变化

热门文章

  1. Win10磁盘有很多磁盘0分区
  2. Zotero批量下载知网文献
  3. 根据hash值找到bt种子的磁力下载链
  4. frida-trace入门
  5. 如何记忆 Spring Bean 的生命周期
  6. Linux软件安装方法之rpm包安装
  7. html 自动填充 颜色,excel如何设置输入数字后单元格自动填充颜色
  8. win10找不到wifi网络_win10找不到realtek高清晰音频管理器的解决放法
  9. 谷歌浏览器上不了网如何设置_如何解决电脑网络连接正常却上不了网
  10. ARM 电源管理 4种模式