预测分析身高与体重


是否存在线性关系?

程序

#导入模块
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn.linear_model import LinearRegressionmpl.rcParams['font.family'] = 'SimHei'
mpl.rcParams['axes.unicode_minus'] = False# 定义一个函数
# 设置画板
# 设置x和y轴的说明# 设置x是 0到2 y
# 显示网格#显示数据
def runplt():plt.figure()plt.title('身高与体重一元关系',fontproperties=font)plt.xlabel('身高(米)',fontproperties=font)plt.ylabel('体重(公斤)',fontproperties=font)plt.axis([0,2,0,85],fontproperties=font)plt.grid(True)return plt#输入训练数据
X=[[0.86],[0.96],[1.12],[1.35],[1.55],[1.63],[1.71],[1.78]]
y = [[12],[15],[20],[35],[48],[51],[59],[66]]
# 显示一下数据
plt = runplt()
plt.plot(X,y,'k.')
plt.show()
# 观察出是线性关系# 所以可以建立回归模型,利用sklearn里面的fit和predict
# fit用来分析模型参数
# predict用来预测
#创建模型
lr = LinearRegression()
# 然后将训练集放到模型中
lr.fit(X, y)
# 预测
print('预测身高为1.67m的体重是:%2.f公斤'%lr.predict(np.array([1.67]).reshape(-1, 1)))#使用测试数据真题对该模型进行预测
X2 = [[0.75],[1.08],[1.26],[1.51],[1.6],[1.85]]
y2 = lr.predict(X2)
plt.plot(X,y,'k.')
plt.plot(X2, y2, 'g-')# # 残差预测值
yr = lr.predict(X)
for idx, x in enumerate(X):plt.plot([x, x], [y[idx], yr[idx]], 'r-')
plt.show()# 模型打分 R^2
X_test = [[0.75],[1.08],[1.26],[1.51],[1.6],[1.85]]
y_test = [[10],[17],[27],[41],[50],[75]]
r2 = lr.score(X_test, y_test)
print('R^2=%.2f'%r2)


预测身高为1.67m的体重是:56公斤

R^2=0.93

注意:

2. 预测学生成绩


# 一元线性回归import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mplmpl.rcParams['font.family'] = 'SimHei'
mpl.rcParams['axes.unicode_minus'] = Falsefrom sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_splitimport pandas as pd# 官方文档# skitlearn
# https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html#sklearn.linear_model.LinearRegression# matplotlib
# https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatter# 思路#  使用matplotlib.pyplot库作图,将结果可视化。
#这里主要用到库中的scatter()函数和plot()函数,其中scatter()画散点图,plot()画经过点的线# 我们使用sklearn.linear_model.LinearRegression类来训练模型。
#首先创建该类的对象regressor,然后使用该类的fit()方法对数据集进行训练。

3. 预测房价

# 1. 数据预处理
dataset = pd.read_csv('studentscores.csv')
# dataset
# 观察数据集可以发现,我们不需要处理缺失值和进行特征缩放。
X = dataset.iloc[:,:1].values # 设么意思?和直接填0有什么区别?
# X
Y = dataset.iloc[:,1].values
# YX_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)# 2. 训练模型
regressor = LinearRegression()
regressor = regressor.fit(X_train, Y_train)# 3. 预测结果
Y_pred = regressor.predict(X_test)# 4. 可是化
# 训练集结果可视化
plt.scatter(X_train, Y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
# plt.show()# 测试集结果可视化
plt.scatter(X_test, Y_test, color = 'red')
plt.plot(X_test, regressor.predict(X_test), color = 'blue')
plt.show()
Y_pred

# 导入模块
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LinearRegression# 输入文件,将房间大小和价格的数据转成scikitlearn中LinearRegression模型识别的数据
def get_data(file_name):data = pd.read_csv(file_name)X_parameter = []Y_parameter = []for single_square_meter, single_price_value in zip(data['square_meter'], data['price']):X_parameter.append([float(single_square_meter)])Y_parameter.append([float(single_price_value)])return X_parameter, Y_parameter# 线性分析
def line_model_main(X_parameter, Y_parameter, predict_square_meter):# 模型对象regr = LinearRegression()# 训练模型regr.fit(X_parameter, Y_parameter)# 预测数据predict_outcome = regr.predict(predict_square_meter)predictions = {}# 截距值predictions['intercept'] = regr.intercept_# 斜率值predictions['coefficient'] = regr.coef_# 预测值predictions['predict_value'] = predict_outcomereturn predictions# 显示图像
def show_linear_line(X_parameter, Y_parameter):# 构造模型对象regr = LinearRegression()# 训练模型regr.fit(X_parameter, Y_parameter)# 绘制已知数据的散点图plt.scatter(X_parameter, Y_parameter, color='blue')# 绘制预测直线plt.plot(X_parameter, regr.predict(X_parameter), color='red', linewidth=4)plt.title('Predict the house price')plt.xlabel('square meter')plt.ylabel('price')plt.show()# 主函数
def main():#读取数据X,Y = get_data('./house_price.csv')#获取预测值,这里我们预测700平英尺的房子的房价predict_square_meter = 700result = line_model_main(X,Y,predict_square_meter)for key,value in result.items():print('{0}:{1}'.format(key,value))#绘图show_linear_line(X,Y)if __name__ == '__main__':main()

回归问题1:一元线性回cases (身高体重学生成绩房价)相关推荐

  1. 小学身高体重测试软件,学生身高、体重检测汇总分析

    2018年秋季,我校对全校993名学生进行体质健康检查.卫生室教师检测视力:体育组教师检测身高.体重.肺活量.镇中心卫生医院负责检查血压.龋齿.内科等16项指标,共计20项内容. 本文针对学生的身高. ...

  2. 【Python养成】:案例(身高体重BMI值、模拟用户登录系统、键盘录入10个学生的成绩,计算出最高分、最低分和成绩总和、词频统计)

    案例题目:身高体重BMI值 计算成人身高体重指数BMI值.公式:bmi = 体重 / (身高 * 身高),体重的单位是千克,身高的单位是米 .键盘输入身高和体重值,计算bmi值,并根据结果对用户做出友 ...

  3. 华为od统一考试B卷【按身高体重排队】C语言 实现

            所有题目均有五种语言实现.C实现目录.C++ 实现目录.Python实现目录.Java实现目录.JavaScript实现目录 题目 题目描述: 某学校举行运动会,学生们按编号(1.2. ...

  4. 华为机试:身高体重排序

    [编程题目 | 100分]身高体重排序 [ 100 / 中等 ] 身高体重排序 题目描述: 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重 ...

  5. 华为od机试79 (python)身高体重排序

    某学校举行运动会,学生们按编号(1.2.3.....n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列,对于身高体重都相同的人,维持原有的编号顺序关系.请输出排列后的学生编号 ...

  6. 华为机试:身高体重排序(仅有题,待求解)

    [编程题目 | 100分]身高体重排序 [ 100 / 中等 ] 题目描述 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对 ...

  7. 身高体重排序-华为OD

    题目描述 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对于身高体重都相同的人,维持原有的编号顺序关系.请输出排列后的学生编 ...

  8. 机器学习-线性回归-身高体重关系预测

    基于上一篇机器学习-根据身高体重画图练习, 本篇采用回归模型,拟合身高和体重的数据,并且可以根据给定的身高预测体重. # 引用sklearn库,其中包含线性回归模块 from sklearn impo ...

  9. 使用线性回归对身高体重数据集分析

    初识线性回归 一.数学原理分析 线性回归 最小二乘法 二.EXCEL简单处理 20组数据 200组数据 2000组数据 20000组数据 三.python语言设计最小二乘法计算(使用anaconda的 ...

最新文章

  1. 某程序员哀叹:自己薪资远远超过了能力,想跳槽又怕外面接不住,怎么办?...
  2. 【鸿蒙 HarmonyOS】UI 组件 ( Text 组件 )
  3. C# 委托(Delegate) 事件(Event)应用详解
  4. JS实例操作QQ空间自动点赞方法
  5. JAVA Swing 事件监听
  6. maya中的桥接命令
  7. freemarker必须指定模板文件夹吗?
  8. GAMES101-现代计算机图形学入门-闫令琪——Lecture 12 Geometry 3 学习笔记
  9. 百度地图 创建应用
  10. java权限控制是什么_论Java访问权限控制的重要性
  11. 计算机操作系统-文件管理 知识点归纳
  12. 多台显示器连接一台服务器,如何用一台显示器连接多台电脑?
  13. 图灵对计算机行业的贡献论文,这届图灵奖得主究竟做了什么贡献?这篇1974年的论文给了我们答案...
  14. 弘辽科技:刘强东下“重手”
  15. data from cuda to cpu
  16. nRF52840作为通信模块与Arduino的联动
  17. php购物网站毕设ppt,购物网站设计与实现毕业设计展示PPT.ppt
  18. 简单几步自己动手用智能手机展示全息立体影像图
  19. 华为交换机vlan配置举例_华为S5700系列配置实例
  20. 【Python】python之π的计算

热门文章

  1. Nessus 数据库损坏解决方案
  2. 服务器启动虚拟控制台,服务器虚拟控制台设置
  3. git 生成ssh公钥
  4. QQ管家在你的电脑上不能卸载,结束进程怎么办?
  5. http://184.154.128.246/index.php,小程序实现自动加载的完整代码
  6. Win11的两个实用技巧系列之如何关闭文字热门搜索、任务栏上的应用
  7. UE4_IFmaterial 通过红色通道渲染4个色块
  8. Testflight 上传报错:No suitable application records were found. Verify your bundle identifier
  9. spring 依赖注入的三种方式
  10. 数字逻辑基础:数制与码制之数码和字符的代码表示