位置:学校首页 > 学校动态>西安学习python哪家培训班较专业
西安学习python哪家培训班较专业?西安博为峰Python培训,web培训学校,IT培训领跑者,专注Web培训,Java培训,Linux培训,UI培训HTML5培训,区块链等课程培训,人才与企业需求紧密对接,拼教学,论严管,谈素养,比就业,选择IT学校,博为峰教育就够了!
Python+sklearn使用线性回归算法预测儿童身高
问题描述:一个人的身高除了随年龄变大而增长之外,在一定程度上还受到遗传和饮食以及其他因素的影响,本文代码中假定受年龄、性别、父母身高、祖父母身高和外祖父母身高共同影响,并假定大致符合线性关系。
import copy
import numpy as np
from sklearn import linear_model
def linearRegressionPredict(x,y):
lr=linear_model.LinearRegression()
#拟合
lr.fit(x,y)
return lr
#儿童年龄,性别(0女1男),父亲身高,母亲身高,祖父身高,祖母身高,外祖父身高,外祖母身高
x=np.array([[1,0,180,165,175,165,170,165],
[3,0,180,165,175,165,173,165],
[4,0,180,165,175,165,170,165],
[6,0,180,165,175,165,170,165],
[8,1,180,165,175,167,170,165],
[10,0,180,166,175,165,170,165],
[11,0,180,165,175,165,170,165],
[12,0,180,165,175,165,170,165],
[13,1,180,165,175,165,170,165],
[14,0,180,165,175,165,170,165],
[17,0,170,165,175,165,170,165]])
#儿童身高,单位:cm
y=np.array([60,90,100,110,
130,140,150,164,
160,163,168])
#根据已知数据拟合较佳直线的系数和截距
lr=linearRegressionPredict(x,y)
#查看较佳拟合系数
print('k:',lr.coef_)
#截距
print('b:',lr.intercept_)
#预测
xs=np.array([[10,0,180,165,175,165,170,165],
[17,1,173,153,175,161,170,161],
[34,0,170,165,170,165,170,165]])
for item in xs:
#深复制,假设超过18岁以后就不再长高了
item1=copy.deepcopy(item)
if item1[0]>18:
item1[0]=18
print(item,':',lr.predict(item1.reshape(1,-1)))
运行结果:
k:[8.03076923e+00-4.65384615e+00 2.87769231e+00-5.61538462e-01
7.10542736e-15 5.07692308e+00 1.88461538e+00 0.00000000e+00]
b:-1523.15384615
[10 0 180 165 175 165 170 165]:[140.56153846]
[17 1 173 153 175 161 170 161]:[158.41]
[34 0 170 165 170 165 170 165]:[176.03076923]