燕山大学机器学习实验一:线性回归1——糖尿病情预测

这篇具有很好参考价值的文章主要介绍了燕山大学机器学习实验一:线性回归1——糖尿病情预测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实操项目 1——糖尿病情预测

实验要求

一、加载糖尿病数据集 diabetes,观察数据
1.载入糖尿病情数据库 diabetes,查看数据。
2.切分数据,组合成 DateFrame 数据,并输出数据集前几行,观察数据。
二、基于线性回归对数据集进行分析
3.查看数据集信息,从数据集中抽取训练集和测试集。
4.建立线性回归模型,训练数据,评估模型。
三、考察每个特征值与结果之间的关联性,观察得出最相关的特征
5.考察每个特征值与结果之间的关系,分别以散点图展示。
思考:根据散点图结果对比,哪个特征值与结果之间的相关性最高?
四、使用回归分析找出 XX 特征值与糖尿病的关联性,并预测出相关结果
6.把 5 中相关性最高的特征值提取,然后进行数据切分。
8.创建线性回归模型,进行线性回归模型训练。
9.对测试集进行预测,求出权重系数。
10.对预测结果进行评价,结果可视化。

实验过程

1.对该题目的理解

糖尿病情预测主要是是利用线性回归的算法得到不同的特征值与结果之间的关联性,利用散点图的方式得到关联性最高的特征值,再对其进行回归分析与预测。

2.实现过程

(1)数据预处理:导入必要的包和数据集,其中data即为特征变量,target为目标变量,再将data和target转换为DataFrame格式以方便展示,并输出前几行观察数据。

代码如下:

import matplotlib.pyplot as plt  
import numpy as np  
import pandas as pd     #导入pandas库  
from sklearn.datasets import load_diabetes  
diabetes = load_diabetes()   
#print(diabetes)   
#print(diabetes.keys())  
#print(diabetes.feature_names)  
#print(diabetes.data)  
bos = pd.DataFrame(diabetes.data)    #将data转换为DataFrame格式以方便展示  
print (bos.head())   #前几行输出  
bos_target = pd.DataFrame(diabetes.target)    #将target转换为DataFrame格式以方便展示  
print(bos_target)  

(2)数据集划分并建立模型:数据集的划分可以采用Scikit-learn库中的model-selection程序包来实现,25%的数据构建测试样本,剩余作为训练样本。然后建立模型,训练数据,并进行模型评估。

代码如下:

from sklearn.linear_model import LinearRegression  
from sklearn.model_selection import train_test_split  #导入数据划分包   
from sklearn.metrics import mean_squared_error  
  
X=np.array(diabetes.data)  
y=np.array(diabetes.target)# 把X、y转化为数组形式,以便于计算  
train_X,test_X,train_y,test_y=train_test_split(X,y,test_size=0.25)  
# 以20%的数据构建测试样本,剩余作为训练样本  
  
	#建立线性回归模型  
model=LinearRegression()  
model.fit(train_X,train_y)  
 
	#print(model.coef_)  
pred_y=model.predict(test_X)   #计算预测值  
print('均方差值:',mean_squared_error(test_y,pred_y)) #计算均方差值  
#通过决定系数来判断回归方程拟合程度  
r_sq=model.score(train_X,train_y)  
print('r_sq',r_sq)  
  
	#返回预测性能得分。score不超过1,但是可能为负值;score越大,预测性能越好  
print("Score:%.2f" % model.score(test_X,test_y))  

(3)考察单个特征:考察单个特征值与结果之间的关系,需要循环对每个特征值进行建模训练,分别以散点图形式展示,然后画出每一个特征训练模型得到的拟合直线,并得出每一个的模型评估结果。

代码如下:

for index in range(0,10):
    x_temp=diabetes.data[:, np.newaxis, index] #获取特征
    x=np.array(x_temp)
    x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)#划分数据集
    
    lr=LinearRegression()
    lr.fit(x_train,y_train)
    
    plt.title('LinearRegression Diabetes') #标题
    plt.xlabel(u'Attribute') #x轴
    plt.ylabel(u'Measure of disease') #y轴
    plt.scatter(x_test,y_test, color='red') #点的颜色
    plt.plot(x_test,lr.predict(x_test),color='blue',linewidth=2) #直线颜色
    plt.show()
    print('Score:%.2f' % lr.score(x_test,y_test))

(4)找到最具相关性的特征:提取出最具相关性的特征值,然后进行数据切分,创建回归模型并对其进行训练,然后对测试集进行预测,预测结果用直线表示。

代码如下:

x_temp=diabetes.data[:, np.newaxis, 8] #获取第9个特征
x=np.array(x_temp)
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25)#划分数据集

lr=LinearRegression()
lr.fit(x_train,y_train)

plt.title('LinearRegression Diabetes') #标题
plt.xlabel(u'Attribute') #x轴
plt.ylabel(u'Measure of disease') #y轴
plt.scatter(x_test,y_test, color='red') #点的颜色
plt.plot(x_test,lr.predict(x_test),color='blue',linewidth=2) #直线颜色
plt.show()

3.实验结果

每个特征值与结果之间的关系

以下分别是十个特征值与结果的散点图

燕山大学机器学习实验一:线性回归1——糖尿病情预测
 

燕山大学机器学习实验一:线性回归1——糖尿病情预测 

  找到最具相关性的特征并预测用直线表示:

燕山大学机器学习实验一:线性回归1——糖尿病情预测

实验总结 

1.从实验得知,如果单独看所有特征的训练结果,并不没有得到有效信息,需要我们拆分各个特征与指标的关系,此时我们可以看出:bmi与糖尿病的相关性最强,其他血清指标虽然多少都和糖尿病有些关系,但是有的相关性强,有的相关性弱。

2.通过此实验了解了划分训练集与测试集时,一般训练集的数据多一些,此实验中训练集数据与测试集数据之比为3:1。

3.通过此实验我更加系统的了解了Numpy和Pandas的主要功能,学会了创建DataFrame。了解了怎么构建回归模型文章来源地址https://www.toymoban.com/news/detail-475597.html

到了这里,关于燕山大学机器学习实验一:线性回归1——糖尿病情预测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 燕山大学——软件用户界面设计(五)UI架构

                 界面设计中的“设计”与“实现”,本节的UI架构属于“实现”部分。 (1)视图树( View tree ) ①定义:GUI结构是一个视图树。视图是一个对象,显示在屏幕的某个区域,可以是一个控件或者其他元素。 ②视图树的使用:         输出:GUI通过改变视图树

    2024年02月05日
    浏览(52)
  • 燕山大学数据结构与算法课程实践——ISBN号识别系统的设计与开发

            ISBN 号是国际标准书号的简称,它是国际标准化组织于 1972 年公布的一项国际通用的出版物统一编号方法。所有正规出版的普通图书版权页都有 ISBN 号, ISBN 是 international standard of book number 几个英文字母的缩写,即国际标准书号。这个号码印刷在每本图书封底( 或

    2024年03月15日
    浏览(72)
  • 机器学习实验——单变量线性回归(披萨价格预测问题)

    假设某披萨店的披萨价格和披萨直径之间有下列数据关系: 训练样本 直径(英寸) 价格(美元) 1 6 7 2 8 9 3 10 13 4 14 17.5 5 18 18 根据上面的训练数据,预测12英寸的披萨的可能售价。 1、直径为自变量X,价格为因变量y,画出二者的散点图,并给出结论。 2、根据现有的训练数

    2024年02月05日
    浏览(50)
  • 吴恩达机器学习-可选实验:使用ScikitLearn进行线性回归(Linear Regression using Scikit-Learn)

    有一个开源的、商业上可用的机器学习工具包,叫做scikit-learn。这个工具包包含了你将在本课程中使用的许多算法的实现。 在本实验中,你将:利用scikit-learn实现使用梯度下降的线性回归 您将使用scikit-learn中的函数以及matplotlib和NumPy。 np.set_printoptions(precision=2) 的作用是告诉

    2024年03月14日
    浏览(49)
  • 机器学习——线性回归/岭回归/Lasso回归

    线性回归会用到python第三方库:sklearn.linear_model中的LinearRegression 导入第三方库的方法:from sklearn.linear_model import LinearRegression 使用LinearRegression(二维数据,一维数据)进行预测,其中数据类型可以是pandas中的DataFrame或者series,也可以是numpy中的array数据,但维度一定要正确输入。

    2024年02月10日
    浏览(46)
  • 机器学习~从入门到精通(二)线性回归算法和多元线性回归

    SimpleLinearRegression.py moduel_selection.py draft.py lin_fit(x,y) lin_fit2(x,y) x.shape y.shape MSE mean squared error 均方误差 R squared error

    2024年02月01日
    浏览(70)
  • Spark-机器学习(3)回归学习之线性回归

    在之前的文章中,我们了解我们的机器学习,了解我们spark机器学习中的特征提取和我们的tf-idf,word2vec算法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。 Spark-机器学习(2)特征工程之特征提

    2024年04月22日
    浏览(44)
  • 机器学习——线性回归、梯度下降

    监督学习 :学习数据带有标签 无监督学习 :没有任何的标签,或者有相同的标签 其他:强化学习、推荐系统等 还是房价预测的例子, 训练集如下: 定义各个变量的含义如下: m——代表训练集中实例的数量 x——代表特征/输入变量 y——代表目标变量/输出变量 (x,y)——代

    2024年02月07日
    浏览(49)
  • 机器学习——多元线性回归算法

    多元线性回归算法,即多特征量线性回归算法,用多个特征量来进行预测,如这里用多个特征量(房子面积、卧室数量、房屋楼层数、房子年龄)来预测房子的售价问题 假如有一个多特征量的机器学习问题,并且这个问题中的多个特征可以在一个相近的范围内取值,那么可以

    2024年02月22日
    浏览(48)
  • 【机器学习】线性回归模型详解

    PS:本文有一定阅读门槛,如果有不明白的地方欢迎评论询问! 接下来我们将要学习我们的第一个模型——线性回归。比如说我需要根据数据预测某个面积的房子可以卖多少钱 接下来我们会用到以下符号: m:训练样本数量 x:输入值,又称为属性值 y:输出值,是我们需要的结果

    2024年02月03日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包