运用最小二乘法和sklearn库分析身高体重数据
文章目录
- 一.使用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库分析身高体重数据相关推荐
- 送书 | 使用决策树对身高体重数据进行分类
决策树(Decision Tree)是一个非参数的监督式学习方法,决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类 ...
- Python实现部分地区男人身高/体重数据的线性拟合
# Python实现部分地区男人身高/体重数据的线性拟合 import numpy as np import matplotlib.pyplot as plt from scipy import op ...
- 【数据平台】sklearn库特征工程之数据预处理
1.背景: 通过特征提取,我们能得到未经处理的特征,这时的特征可能有以下问题: 不属于同一量纲:即特征的规格不一样,不能够放在一起比较.无量纲化可以解决这一问题. 信息冗余:对于某些定量特征,其包含的 ...
- 分类问题:使用决策树对身高体重数据进行分类
import numpy as np import scipy as sp from sklearn import tree from sklearn.metrics import precision ...
- KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类
KNN算法是k-Nearest Neighbor Classification的简称,也就是k近邻分类算法.基本思路是在特征空间中查找k个最相似或者距离最近的样本,然后根据k个最相似的样本对未知样本进 ...
- 使用线性回归对身高体重数据集分析
初识线性回归 一.数学原理分析 线性回归 最小二乘法 二.EXCEL简单处理 20组数据 200组数据 2000组数据 20000组数据 三.python语言设计最小二乘法计算(使用anaconda的 ...
- python最佳身高_KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类
KNN算法是k-Nearest Neighbor Classification的简称,也就是k近邻分类算法.基本思路是在特征空间中查找k个最相似或者距离最近的样本,然后根据k个最相似的样本对未知样本进 ...
- 小学身高体重测试软件,学生身高、体重检测汇总分析
2018年秋季,我校对全校993名学生进行体质健康检查.卫生室教师检测视力:体育组教师检测身高.体重.肺活量.镇中心卫生医院负责检查血压.龋齿.内科等16项指标,共计20项内容. 本文针对学生的身高. ...
- 新手奶爸,分享一款记录儿童身高体重的APP,并分析其中所用到的技术。
所用的技术: 1.本地数据存储(SharedPreferences + SQLite数据库) 2.databinding组件库应用. 3.RecyclerView加载列表类数据. 应用简介: 本应用是 ...
最新文章
- Eclipse 常用快捷键-java
- 【图像超分辨率】Remote Sensing Image Super-resolution: Challenges and Approaches
- [剑指offer]面试题7:用两个栈实现队列
- win10子linux如何重置密码,Win10如何使用Windows PowerShell命令重置本地账户密码
- 黑苹果 选择语言 点不了_什么是天然的“黑钻”?—科普贴
- Pytorch:优化器
- 数字电路与微型计算机原理,电子科技大学1999年考研真题-微机原理与数字电路...
- mokoid android open source HAL hacking in a picture
- uniapp遮罩_uni-app实现弹窗遮罩
- 人工智能之我见(1)
- 计算机应用基础素材,计算机应用基础(Windows XP+Office 2003)、素材和习题答案-王向慧 计算机应用基础...
- 常用电平标准——LVTTL、LVCMOS、LVDS
- 【ProVerif学习笔记】2:协议建模中的声明
- canal安装最详细教程
- EDA-功能仿真和时序仿真有什么区别?
- android仿小米指南针
- git 命令 导出有变动的文件
- 锤子手机获工信部入网许可:清晰照曝光
- cad max提示应用程序无法启动,因为应用程序的并行配置不正确
- No cached version available for offline mode解决办法