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冒泡排序注意要点实例详解
Sep 09 Python
使用python实现接口的方法
Jul 07 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
pandas数据分组和聚合操作方法
Apr 11 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
详解python网络进程
Jun 15 Python
Pandas数据类型之category的用法
Jun 28 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
Drupal读取Excel并导入数据库实例
2014/03/02 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
谈谈JavaScript数组常用方法总结
2017/01/24 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
十个Python程序员易犯的错误
2015/12/15 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
Python拼接微信好友头像大图的实现方法
2018/08/01 Python
python爬取网易云音乐评论
2018/11/16 Python
python实现智能语音天气预报
2019/12/02 Python
Python如何用filter函数筛选数据
2020/03/05 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
2020/03/12 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
大型活动策划方案
2014/01/12 职场文书
会议接待欢迎词
2014/01/12 职场文书
法学个人求职信范文
2014/01/27 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
2015年音乐教研组工作总结
2015/07/22 职场文书