机器学习:线性模型通过python创建机器模型最终预测出儿童身高

机器学习:线性模型通过python创建机器模型最终预测出儿童身高,第1张

机器学习:线性模型通过python创建机器模型最终预测出儿童身高

**

机器学习:线性模型通过python创建机器模型最终预测出儿童身高*

理论上,一个人的身高除了随年龄变大而增长之外,在一定程度上还受到遗传和饮食习惯以及其他因素的影响。在这里我们把问题简化一下,假定一个人的身高只受年龄、性别、父母身高、祖父母身高和外祖父母身高这几个因素的影响,并假定大致符合线性关系。
*
代码如下
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)))

结果:

注意:如果我们训练的数据集越多和准确,我们的预测也越准确。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4680999.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-07

发表评论

登录后才能评论

评论列表(0条)

保存