1. # coding: utf-8
  2. # 利用 diabetes数据集来学习线性回归
  3. # diabetes 是一个关于糖尿病的数据集, 该数据集包括442个病人的生理数据及一年以后的病情发展情况。
  4. # 数据集中的特征值总共10项, 如下:
  5. # 年龄
  6. # 性别
  7. #体质指数
  8. #血压
  9. #s1,s2,s3,s4,s4,s6  (六种血清的化验数据)
  10. #但请注意,以上的数据是经过特殊处理, 10个数据中的每个都做了均值中心化处理,然后又用标准差乘以个体数量调整了数值范围。验证就会发现任何一列的所有数值平方和为1.
  11. #关于数据集更多的信息: http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_diabetes.html
  12. # http://scikit-learn.org/stable/datasets/index.html#datasets
  13. import numpy as np
  14. from sklearn import datasets
  15. diabetes=datasets.load_diabetes()
  16. #查看第一列年龄的数据
  17. diabetes.data[0]
  18. #求证: 每一列的数值的平方和为1
  19. np.sum( diabetes.data[:,0]**2)  #求年龄列
  20. #糖尿病进展的数据
  21. diabetes.target  #数值介于   25到346之间
  22. #切分训练集与测试集
  23. #自动切分训练集太小了
  24. #from sklearn.cross_validation import train_test_split
  25. #x_train,x_test,y_train,y_test=train_test_split( diabetes.data,diabetes.target,random_state=14)
  26. #所以换成手工切分
  27. x_train=diabetes.data[:-20]
  28. y_train=diabetes.target[:-20]
  29. x_test=diabetes.data[-20:]
  30. y_test=diabetes.target[-20:]
  31. #什么是回归呢? 回归的目的是预测数值型的目标值。最直接的办法是根据训练数据计算出一个求目标值的计算公式。假如你想预测一个地区的餐馆数量,可能会这么计算:
  32. #     num = 0.002 * people + 0.001 * gpd
  33. # 以上就是所谓的回归方程,其中的0.002, 0.001称作回归系数,求这些回归系数的过程就是回归。一旦求出了这些回归系数,再给定输入,做预测就简单了.
  34. # 回归分为线性回归和非线性回归。 上面的公式描述的就是线性回归.
  35. #线性回归通过拟合线性模型的回归系数W =(w_1,…,w_p)来减少数据中观察到的结果和实际结果之间的残差平方和,并通过线性逼近进行预测。
  36. #scikit-learn库的线性回归预测模型通过fit(x,y)方法来训xaisaj型,其中x为数据的属性,y为所属的类型.线性模型的回归系数W会保存在它的coef_方法中.
  37. from sklearn import linear_model
  38. linreg=linear_model.LinearRegression()   #创建线性回归
  39. #用训练集训练模型
  40. linreg.fit( x_train,y_train)
  41. #调用预测模型的coef_属性,求出每种生理数据的回归系数b, 一共10个结果,分别对应10个生理特征.
  42. linreg.coef_
  43. #在模型上调用predict()函数,传入测试集,得到预测值,
  44. linreg.predict( x_test )
  45. #结果:array([ 197.61846908,  155.43979328,  172.88665147,  111.53537279,
  46. #      164.80054784,  131.06954875,  259.12237761,  100.47935157,
  47. #      117.0601052 ,  124.30503555,  218.36632793,   61.19831284,
  48. #      132.25046751,  120.3332925 ,   52.54458691,  194.03798088,
  49. #      102.57139702,  123.56604987,  211.0346317 ,   52.60335674])
  50. #查看实际目标值
  51. y_test
  52. #array([ 233.,   91.,  111.,  152.,  120.,   67.,  310.,   94.,  183.,
  53. #         66.,  173.,   72.,   49.,   64.,   48.,  178.,  104.,  132.,
  54. #        220.,   57.])
  55. #如何评价以上的模型优劣呢?我们可以引入方差,方差越接近于1,模型越好.
  56. # 方差: 统计中的方差(样本方差)是各个数据分别与其平均数之差的平方的和的平均数
  57. linreg.score( x_test,y_test)
  58. #对每个特征绘制一个线性回归图表
  59. import matplotlib.pyplot as plt
  60. #matplot显示图例中的中文问题 :   https://www.zhihu.com/question/25404709/answer/67672003
  61. import matplotlib.font_manager as fm
  62. #mac中的字体问题请看: https://zhidao.baidu.com/question/161361596.html
  63. myfont = fm.FontProperties(fname='/Library/Fonts/Xingkai.ttc')
  64. plt.figure(  figsize=(8,12))
  65. #循环10个特征
  66. for f in range(0,10):
  67. #取出测试集中第f特征列的值, 这样取出来的数组变成一维的了,
  68. xi_test=x_test[:,f]
  69. #取出训练集中第f特征列的值
  70. xi_train=x_train[:,f]
  71. #将一维数组转为二维的
  72. xi_test=xi_test[:,np.newaxis]
  73. xi_train=xi_train[:,np.newaxis]
  74. plt.ylabel(u'病情数值',fontproperties=myfont)
  75. linreg.fit( xi_train,y_train)   #根据第f特征列进行训练
  76. y=linreg.predict( xi_test )       #根据上面训练的模型进行预测,得到预测结果y
  77. #加入子图
  78. plt.subplot(5,2,f+1)   # 5表示10个图分为5行, 2表示每行2个图, f+1表示图的编号,可以使用这个编号控制这个图
  79. #绘制点   代表测试集的数据分布情况
  80. plt.scatter(  xi_test,y_test,color='k' )
  81. #绘制线
  82. plt.plot(xi_test,y,color='b',linewidth=3)
  83. plt.savefig('python_糖尿病数据集_预测病情_线性回归_最小平方回归.png')
  84. plt.show()

数据挖掘-diabetes数据集分析-糖尿病病情预测_线性回归_最小平方回归的更多相关文章

  1. [matlab] 21.灰色预测、线性回归分析模型与最小二乘回归 (转载)

    灰色预测的主要特点是只需要4个数据,就能解决历史数据少,序列的完整性以及可靠性低的问题,能将无规律的原始数据进行生成得到规律性较强的生成序列,易于检验 但缺点是只适合中短期的预测,且只适合指数级增长的 ...

  2. 《机器学习_01_线性模型_线性回归_正则化(Lasso,Ridge,ElasticNet)》

    一.过拟合 建模的目的是让模型学习到数据的一般性规律,但有时候可能会学过头,学到一些噪声数据的特性,虽然模型可以在训练集上取得好的表现,但在测试集上结果往往会变差,这时称模型陷入了过拟合,接下来造一些 ...

  3. Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析

    Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析 今天主要讲述的内容是关于决策树的知识,主要包括以下内容:1.分类及决策树算法介绍2.鸢尾花卉数据集介绍3.决策树实现鸢尾数据集分析.希望这篇 ...

  4. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的计 ...

  5. PASCAL VOC数据集分析(转)

    PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 本文主要分析PASCAL V ...

  6. 【数据挖掘】关联分析之Apriori(转载)

    [数据挖掘]关联分析之Apriori 1.Apriori算法 如果一个事务中有X,则该事务中则很有可能有Y,写成关联规则 {X}→{Y} 将这种找出项目之间联系的方法叫做关联分析.关联分析中最有名的问 ...

  7. 【计算机视觉】PASCAL VOC数据集分析

    PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集,从2005年到2012年每年都会举行一场图像识别challenge. 本文主要分析PASCAL V ...

  8. R语言重要数据集分析研究——需要整理分析阐明理念

    1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标 ...

  9. js分析 天_眼_查 字体文件

    0. 参考 js分析 猫_眼_电_影 字体文件 @font-face 1. 分析 1.1 定位目标元素 1.2 查看网页源代码 1.3 requests 请求提取得到大量错误信息 对比猫_眼_电_影抓 ...

随机推荐

  1. mysql连接超时的问题处理

    1. 内网 ts 连接mysql 有时候会连接失败, 原因是 连接超时, 当时所有服务器一起启动,抢占资源,导致连接超过10s. 现在增加一次连接机会, 增加一些日志. 2. 并且对mysql 全局参 ...

  2. Mysql 权限命令整理大全

    mysql show slave status 需要什么权限 grant replication client on *.* to 'user_name'@'%';

  3. 2019亚太内容分发大会,阿里云获CDN领袖奖、技术突破奖

    近日,亚太CDN产业联盟主办的2019亚太内容分发大会在上海召开.本次大会以"5G分发"为主题,集结了CDN领域近千名行业领袖.专家参与.在会上,阿里云斩获“CDN领袖奖”.“技术 ...

  4. iOS ARC下命名规则

    当我在ARC模式下写以下代码的时候,编译器报错 Semantic Issue: Property's synthesized getter follows Cocoa naming conventio ...

  5. 尚学python课程---13、python基础语法

    尚学python课程---13.python基础语法 一.总结 一句话总结: legend2系统使我能够快速掌握一门语法,特别有用 pass 语句:空语句:是为了保持程序结构的完整性  :作用:比如: ...

  6. SQLServer日期格式化及创建相关日期

    DECLARE @FirstDay_M DATETIME --本月初日期 ,); DECLARE @LastDay_M DATETIME --本月末日期 SET @LastDay_M = DATEAD ...

  7. QString组合、拆分。

    1.组合字符常用arg()函数 QString test=QString("_haha_%1_hehe%2") .arg("ee").arg("aa& ...

  8. Mysql配置innodb_flush_log_at_trx_commit

    当innodb_flush_log_at_trx_commit被 设置为0,日志缓冲每秒一次地被写到日志文件,并且对日志文件做到磁盘操作的刷新,但是在一个事务提交不做任何操作.当这个值为1(默认值)之 ...

  9. USACO 2008 November Gold Cheering up the Cows /// MST oj24381

    题目大意: 输入n,p:n个点,p条路 接下来n行输入c[]:在各个点需要花费的时间 接下来p行输入u,v,w:u点到v点的路需要花费时间w 求经过所有点且最后回到起点的最少花费时间 https:// ...

  10. USACO 2013 January Silver Painting the Fence /// oj23695

    题目大意: 输入n,k :n次操作 找到覆盖次数在k及以上的段的总长 一开始位置在0 左右活动范围为1-1000000000 接下来n行描述每次操作的步数和方向 Sample Input 6 22 R ...