栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

体重预测[线性回归]

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

体重预测[线性回归]

在人们的日常生活中,体重偏高与偏低均是身体出现亚健康的体现,也是身体部分器官发病的前兆。影响体重的因素较多(如体内激素水平、饮食情况、心情原因等),而且与身高具有直接的相关性。因而,如何在指定身高下评估体重是否达标进而让人们提前预知身体状况具有一定实际意义。
训练数据测试数据
序号身高(米)体重(千克)序号身高(米)体重(千克)
10.861210.8311
20.961521.0817
31.122031.2627
41.353541.5141
51.554851.6050
61.635161.6764
71.715971.7566
81.857581.9089

代码:
'''一、问题描述:根据表1所示训练数据构建线性回归模型并求取测试数据的预测精度'''

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

x_train=np.array([[0.86],[0.96],[1.12],[1.35],[1.55],[1.63],[1.71],[1.85]])

y_train=np.array([[12],[15],[20],[35],[48],[51],[59],[75]])

x_test=[[0.83],[1.08],[1.26],[1.51],[1.60],[1.67],[1.75],[1.90]]

y_test=[[11],[17],[27],[41],[50],[64],[66],[89]]

'''二、数据处理:

数据归一化处理'''

X_train=(x_train-np.min(x_train))/(np.max(x_train)-np.min(x_train))

Y_train=(y_train-np.min(y_train))/(np.max(y_train)-np.min(y_train))

X_test=(x_test-np.min(x_test))/(np.max(x_test)-np.min(x_test))

Y_test=(y_test-np.min(y_test))/(np.max(y_test)-np.min(y_test))

'''======================================================================'''

'''三、利用线性回归构建模型'''

'''归一化'''

L=LinearRegression(fit_intercept=True)

L.fit(X_train,Y_train)

ys=L.score(X_test,Y_test)

print(ys)

'''未归一化'''

L.fit(x_train,y_train)

yn=L.score(x_test,y_test)

print(yn)

'''====================================================================='''

#精度对比图

plt.figure(1)

plt.xlim(0, 1)

plt.ylim(0, 1)

plt.xlabel("DataClass")

plt.ylabel("TestAccuracy")

Data_list=['Normalized','Not Normalized']

xlis=[0.3,0.7]

ylis=[ys,yn]

plt.bar(xlis,ylis,width=0.3,tick_label=Data_list,color=['g','b'])

for i in range(len(xlis)):

    plt.text(xlis[i], ylis[i],format(ylis[i],'.2f'))

plt.show()

'''======================================================================'''

#身高体重预测图

print("L的截距为:",L.intercept_[0])

print("L的斜率为:",L.coef_[0][0])

b=L.intercept_[0]

k=L.coef_[0][0]

Y_fit=k*np.array(x_test)+b

plt.figure(2)

plt.xlabel("height")

plt.ylabel("weight")

plt.scatter(x_test,Y_fit,color='black',label='fit')

plt.plot(x_test,Y_fit,color='red',label='fit_line')

plt.scatter(x_test,y_test,color='y',label='test')

plt.grid(True)

plt.legend(loc='upper left')

plt.show()

'''四、实验分析:

体重数据随身高数据的增大而增大,归一化数据的测试精度比未归一化数据测试精度高'''
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012686.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号