文章目录

  • 一.使用Excel分析身高体重
  • 二.用Jupyter Notebook编程使用最小二乘法分析身高体重
  • 三.运用Sklearn库,导入数据模拟.
  • 四.参考

一.使用Excel分析身高体重

(这里一excel2019为例子)
1.文件->选项->加载项->分析工具库(默认是没有的),继续点击转到

点击分析工具库


数据->发现数据分析库就出现在数据面板上了

点击数据分析库->回归

拖动表格框,框出所要的数据

右键拟合图

选择添加趋势线或者设置趋势线

勾选线性,显示公式,显示R平方值

2.结果演示

1. 选取20组数据进行分析

2.选取200组数据进行分析


3.选取2000数据进行分析

4.选取20000数据进行分析

**

二.用Jupyter Notebook编程使用最小二乘法分析身高体重

**

1.导入所需要的基本库

#当体重X变量取20个的时候
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

2.导入数据文件1111.xsl

points = np.genfromtxt("D:\rgzn\1111.xls",delimiter=",")

3.为x,y赋值

x=points[0:20,1];
y=points[0:20,2];

自变量x的取值为0-20行,表示体重,后面的数字表示体重位于第1列,相当于表格总的B列
自变量y的取值为0-20行,表示身高,后面的数字表示体重位于第2列,相当于表格中C列

4.最小二乘法的算法编程,求y=ax+b中的a和b

x_mean = np.mean(x)
y_mean = np.mean(y)
xsize = x.size
zi = (x * y).sum() - xsize * x_mean *y_mean
mu = (x ** 2).sum() - xsize * x_mean ** 2
# 参数a b
a = zi / mu
b = y_mean - a * x_mean
# 这里对参数保留两位有效数字
a = np.around(a,decimals=2)
b = np.around(b,decimals=2)

由最小二乘法公式得来

5.输出打印求出的线性回归方程

print(f'回归线方程:y = {a}x + {b}')

6.通过scatter画出拟合曲线图

在这里插入代码片#借助第三方库skleran画出拟合曲线
y1 = a*x + b
plt.scatter(x,y)
plt.plot(x,y1,c='r')

7.全部代码

#用jupyter编程(不借助第三方库),用最小二乘法,
#当体重X变量取20个的时候
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
points = np.genfromtxt("D:/mytest.csv",delimiter=",")
#points
#提取points中的两列数据,分别作为x,y
# 回归方程y = ax + b           求a 和 b
x=points[0:20,1];
y=points[0:20,2];
x_mean = np.mean(x)
y_mean = np.mean(y)
xsize = x.size
zi = (x * y).sum() - xsize * x_mean *y_mean
mu = (x ** 2).sum() - xsize * x_mean ** 2
# 参数a b
a = zi / mu
b = y_mean - a * x_mean
# 这里对参数保留两位有效数字
a = np.around(a,decimals=2)
b = np.around(b,decimals=2)
print(f'回归线方程:y = {a}x + {b}')
#借助第三方库skleran画出拟合曲线
y1 = a*x + b
plt.scatter(x,y)
plt.plot(x,y1,c='r')

2.结果演示

注意!!!数据文件编码格式要改成utf-8方式,不能用gdk。否则会报错。

解决方式如下:
将保存类型改成CSV UTF-8(逗号分隔)(*.csv)即可

成功运行:

三.运用Sklearn库,导入数据模拟.

1.导入我们需要的库

from sklearn import linear_model        #表示,可以调用sklearn中的linear_model模块进行线性回归。
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

2.导入我们的数据文件 【1111.csv】

data = np.loadtxt(open("D:\rgzn\1111.xls","rb"),delimiter=",",skiprows=0)
data1=data[0:20]

data1表示导入文件数据的前20行

3.为x,y赋值

x=[example[1] for example in data1]
y=[example[2] for example in data1]
X = np.asarray(x).reshape(-1, 1)
Y = np.asarray(y).reshape(-1, 1)

a.example[数据所在列数],表示将导入数据的第一列,第二列,分别赋值给x,y。
b.三四行表示将数据将数据列表转换成array数组方便sklearn库进行数据解析
4.运用sklearn库进行数据处理,求y=ax+b中的a和b

model = linear_model.LinearRegression()
model.fit(X,Y)
b=model.intercept_[0] #截距
a=model.coef_[0]#线性模型的系数
a1=a[0]

5.输出打印线性回归方程

print("y=",a1,"x+",b)

6.通过scatter画出拟合曲线图

y1 = a1*X + b
plt.scatter(X,Y)
plt.plot(x,y1,c='r')

7.全部代码

from sklearn import linear_model        #表示,可以调用sklearn中的linear_model模块进行线性回归。
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
data = np.loadtxt(open("D:mytest.csv","rb"),delimiter=",",skiprows=0)
data1=data[0:20]
x=[example[1] for example in data1]
y=[example[2] for example in data1]
X = np.asarray(x).reshape(-1, 1)
Y = np.asarray(y).reshape(-1, 1)
model = linear_model.LinearRegression()
model.fit(X,Y)
b=model.intercept_[0] #截距
a=model.coef_[0]#线性模型的系数
a1=a[0]
print("y=",a1,"x+",b)
y1 = a1*X + b
plt.scatter(X,Y)
plt.plot(x,y1,c='r')

8.代码出现问题
ValueError: could not convert string to float: ‘Index’,查看其它帖子说是index无法转化成字符的原因,用记事本打开删除index后

出现下面报错
**

四.参考

**
https://blog.csdn.net/qq_42451251/article/details/104881776
https://blog.csdn.net/qq_42451251/article/details/104801182

运用最小二乘法和sklearn库分析身高体重数据相关推荐

  1. 送书 | 使用决策树对身高体重数据进行分类

    决策树(Decision Tree)是一个非参数的监督式学习方法,决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类 ...

  2. Python实现部分地区男人身高/体重数据的线性拟合

    # Python实现部分地区男人身高/体重数据的线性拟合 import numpy as np import matplotlib.pyplot as plt from scipy import op ...

  3. 【数据平台】sklearn库特征工程之数据预处理

    1.背景: 通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题: 不属于同一量纲:即特征的规格不一样,不能够放在一起比较.无量纲化可以解决这一问题. 信息冗余:对于某些定量特征,其包含的 ...

  4. 分类问题:使用决策树对身高体重数据进行分类

    import numpy as np import scipy as sp from sklearn import tree from sklearn.metrics import precision ...

  5. KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类

    KNN算法是k-Nearest Neighbor Classification的简称,也就是k近邻分类算法.基本思路是在特征空间中查找k个最相似或者距离最近的样本,然后根据k个最相似的样本对未知样本进 ...

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

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

  7. python最佳身高_KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类

    KNN算法是k-Nearest Neighbor Classification的简称,也就是k近邻分类算法.基本思路是在特征空间中查找k个最相似或者距离最近的样本,然后根据k个最相似的样本对未知样本进 ...

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

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

  9. 新手奶爸,分享一款记录儿童身高体重的APP,并分析其中所用到的技术。

    所用的技术: 1.本地数据存储(SharedPreferences + SQLite数据库) 2.databinding组件库应用. 3.RecyclerView加载列表类数据. 应用简介: 本应用是 ...

最新文章

  1. Eclipse 常用快捷键-java
  2. 【图像超分辨率】Remote Sensing Image Super-resolution: Challenges and Approaches
  3. [剑指offer]面试题7:用两个栈实现队列
  4. win10子linux如何重置密码,Win10如何使用Windows PowerShell命令重置本地账户密码
  5. 黑苹果 选择语言 点不了_什么是天然的“黑钻”?—科普贴
  6. Pytorch:优化器
  7. 数字电路与微型计算机原理,电子科技大学1999年考研真题-微机原理与数字电路...
  8. mokoid android open source HAL hacking in a picture
  9. uniapp遮罩_uni-app实现弹窗遮罩
  10. 人工智能之我见(1)
  11. 计算机应用基础素材,计算机应用基础(Windows XP+Office 2003)、素材和习题答案-王向慧 计算机应用基础...
  12. 常用电平标准——LVTTL、LVCMOS、LVDS
  13. 【ProVerif学习笔记】2:协议建模中的声明
  14. canal安装最详细教程
  15. EDA-功能仿真和时序仿真有什么区别?
  16. android仿小米指南针
  17. git 命令 导出有变动的文件
  18. 锤子手机获工信部入网许可:清晰照曝光
  19. cad max提示应用程序无法启动,因为应用程序的并行配置不正确
  20. No cached version available for offline mode解决办法

热门文章

  1. 小学科学骨干教师课堂教学展示活动总结
  2. 计算机端口汇聚实验报告,路由器端口聚合配置实验报告
  3. 网络安全就业有什么要求?可算来了,给大家了解一下网络安全就业篇学习大纲
  4. 为Twemproxy 添加 Auth
  5. 24小时改变你的人生(16)
  6. 如何给Linux系统安装中文字体
  7. CR0-4寄存器介绍
  8. uniwide服务器不能进入系统,AMD巴塞罗那服务器全面上市
  9. 【目标检测 DeformableDETR】通俗理解 DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION,值得一看。
  10. Java JAXB示例