Python 线性回归分析以及评价指标详解


Posted in Python onApril 02, 2020

废话不多说,直接上代码吧!

"""
# 利用 diabetes数据集来学习线性回归 
# diabetes 是一个关于糖尿病的数据集, 该数据集包括442个病人的生理数据及一年以后的病情发展情况。 
# 数据集中的特征值总共10项, 如下: 
 # 年龄 
 # 性别 
 #体质指数 
 #血压 
 #s1,s2,s3,s4,s4,s6 (六种血清的化验数据) 
 #但请注意,以上的数据是经过特殊处理, 10个数据中的每个都做了均值中心化处理,然后又用标准差乘以个体数量调整了数值范围。
 #验证就会发现任何一列的所有数值平方和为1. 
"""
 
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets, linear_model
from sklearn.metrics import mean_squared_error, r2_score
 
# Load the diabetes dataset
diabetes = datasets.load_diabetes() 
 
# Use only one feature 
# 增加一个维度,得到一个体质指数数组[[1],[2],...[442]]
diabetes_X = diabetes.data[:, np.newaxis,2]
print(diabetes_X)
 
# Split the data into training/testing sets
diabetes_X_train = diabetes_X[:-20]
diabetes_X_test = diabetes_X[-20:]
 
# Split the targets into training/testing sets
diabetes_y_train = diabetes.target[:-20]
diabetes_y_test = diabetes.target[-20:]
 
# Create linear regression object
regr = linear_model.LinearRegression()
 
# Train the model using the training sets
regr.fit(diabetes_X_train, diabetes_y_train)
 
# Make predictions using the testing set
diabetes_y_pred = regr.predict(diabetes_X_test)
 
# The coefficients 
# 查看相关系数 
print('Coefficients: \n', regr.coef_)
 
 
# The mean squared error 
# 均方差
# 查看残差平方的均值(mean square error,MSE) 
print("Mean squared error: %.2f"
  % mean_squared_error(diabetes_y_test, diabetes_y_pred))
 
 
# Explained variance score: 1 is perfect prediction 
# R2 决定系数(拟合优度)
# 模型越好:r2→1
# 模型越差:r2→0
print('Variance score: %.2f' % r2_score(diabetes_y_test, diabetes_y_pred))
 
 
# Plot outputs
plt.scatter(diabetes_X_test, diabetes_y_test, color='black')
plt.plot(diabetes_X_test, diabetes_y_pred, color='blue', linewidth=3)
 
plt.xticks(())
plt.yticks(())
 
plt.show()

对于回归模型效果的判断指标经过了几个过程,从SSE到R-square再到Ajusted R-square, 是一个完善的过程:

SSE(误差平方和):The sum of squares due to error

R-square(决定系数):Coefficient of determination

Adjusted R-square:Degree-of-freedom adjusted coefficient of determination

下面我对以上几个名词进行详细的解释下,相信能给大家带来一定的帮助!!

一、SSE(误差平方和)

计算公式如下:

Python 线性回归分析以及评价指标详解

同样的数据集的情况下,SSE越小,误差越小,模型效果越好

缺点:

SSE数值大小本身没有意义,随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义

二、R-square(决定系数)

Python 线性回归分析以及评价指标详解

数学理解: 分母理解为原始数据的离散程度,分子为预测数据和原始数据的误差,二者相除可以消除原始数据离散程度的影响

其实“决定系数”是通过数据的变化来表征一个拟合的好坏。

理论上取值范围(-∞,1], 正常取值范围为[0 1] ------实际操作中通常会选择拟合较好的曲线计算R²,因此很少出现-∞

越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好

越接近0,表明模型拟合的越差

经验值:>0.4, 拟合效果好

缺点:

数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差

三、Adjusted R-Square (校正决定系数)

Python 线性回归分析以及评价指标详解

n为样本数量,p为特征数量

消除了样本数量和特征数量的影响

以上这篇Python 线性回归分析以及评价指标详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python创建系统目录的方法
Mar 11 Python
python分析网页上所有超链接的方法
May 08 Python
python读写ini配置文件方法实例分析
Jun 30 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
python调用虹软2.0第三版的具体使用
Feb 22 Python
原生python实现knn分类算法
Oct 24 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
Python实现代码块儿折叠
Apr 15 Python
keras 多任务多loss实例
Jun 22 Python
简单了解Django项目应用创建过程
Jul 06 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Django REST framwork的权限验证实例
Apr 02 #Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 #Python
在 Pycharm 安装使用black的方法详解
Apr 02 #Python
Python Numpy中数据的常用保存与读取方法
Apr 01 #Python
Python PyQt5整理介绍
Apr 01 #Python
django之导入并执行自定义的函数模块图解
Apr 01 #Python
在脚本中单独使用django的ORM模型详解
Apr 01 #Python
You might like
239军机修复记
2021/03/02 无线电
php 方便水印和缩略图的图形类
2009/05/21 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
如何获取select下拉框的值(option没有及有value属性)
2013/11/08 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
JS交互点击WKWebView中的图片实现预览效果
2018/01/05 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
Python标准库之Sys模块使用详解
2015/05/23 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
python学生管理系统学习笔记
2019/03/19 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
2014年公司庆元旦活动方案
2014/03/05 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
核心价值观演讲稿
2014/05/13 职场文书
经营管理策划方案
2014/05/22 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
作文批改评语
2014/12/25 职场文书
市场部经理岗位职责
2015/02/02 职场文书
校本培训个人总结
2015/02/28 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
小学教师教学反思
2016/02/24 职场文书
Golang的继承模拟实例
2021/06/30 Golang
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫
Redis基本数据类型List常用操作命令
2022/06/01 Redis