用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

文章目录

*
一. 用excel中数据分析功能

+ 1.1 导入数据集
+ 1.2 创建散点图
+ 1.3 数据分析
二. 用jupyter编程,不借助第三方库

+ 2.1 安装jupter
+ 2.2 编程
+ 2.3 运行结果
三.借助skleran对数据进行拟合
四. 参考文献

一. 用excel中数据分析功能

1.1 导入数据集

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

; 1.2 创建散点图

插入->散点图

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
选中数据,选择第一种样式
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

在生成的表格右上角勾选上生成渐近线

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

点击渐近线右边选择渐近线格式,更多选项

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

结果如下

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

1.3 数据分析

选中20组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

选中前200组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

选择前2000组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

; 二. 用jupyter编程,不借助第三方库

2.1 安装jupter

打开Windows终端命令行,先输入 pip install jupyter notebook,在输入 jupyter notebook,打开我们的jupyter工具,如下所示

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
在jupyter的web网页中创建python文件(不能关闭命令行,否则创建不了),如下所示:

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
先导入数据集文件,这样就不用去寻找文件地址了
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
上传之后就能看到
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

; 2.2 编程

原理:

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

首先引入需要的包:

import numpy as np
import pandas
import xlrd
import matplotlib.pyplot as plt

参考文献:Python报错ModuleNotFoundError: No module named ‘numpy’

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
这里我们发现缺少了numpy,所以我们在命令行运行 pip install numpy,安装完之后运行 pyton,在运行 from numpy import *如果没有保错证明安装成功(如果还有缺少的module,执行类似操作)
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
现在在运行我们的代码
将表格中数据存入到数组之中

data = xlrd.open_workbook("weights_heights(身高-体重数据集).xls")
table = data.sheets()[1]
x=[]
y=[]
for i in range (1,5000):
        x.append(table.cell(i,1).value)
        y.append(table.cell(i,2).value)

展示散点图(200组数据为例)

plt.scatter(x[0:200], y[0:200])

plt.show()

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
计算代码:
def f(a):
    sum=0
    pingjunx=0
    pingjuny=0
    chu=0
    for i in range(0,a):
        pingjunx+=x[i]
        pingjuny+=y[i]
    pingjuny/=a
    pingjunx/=a
    for i in range(0,a):
        sum+=(x[i]-pingjunx)*(y[i]-pingjuny)
        chu+=(x[i]-pingjunx)*(x[i]-pingjuny)
    B1=sum/chu
    B0=pingjuny-B1*pingjunx
    print(B1)
    print(B0)
    xx = np.linspace(0,100, 100)
    yy = B1*xx+B0
    plt.scatter(x[0:a], y[0:a],s = 1)
    plt.xlim(62,74)
    plt.ylim(0,180)
    print("相关系数R^2为")
    shang=0
    xia1=0
    xia2=0
    for i in range (0,a):
        xia1+=(x[i]-pingjunx)*(x[i]-pingjunx)
        xia2+=(y[i]-pingjuny)*(y[i]-pingjuny)
        shang+=(x[i]-pingjunx)*(y[i]-pingjuny)

    print(shang*shang/(xia1*xia2))
    plt.plot(xx, yy, c='orange')
    plt.show()
    return

2.3 运行结果

选取20组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
选取200组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
选取2000组数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

; 三.借助skleran对数据进行拟合

引入我们需要的包

from sklearn import linear_model

通过sklearn中的api创建一个线性回归模型,选取a个数据进行拟合输出截距以及斜率

def ff(a):
    model = linear_model.LinearRegression()
    model.fit(np.array(x[0:a]).reshape(-1, 1),np.array(y[0:a]).reshape(-1, 1))
    print(model.coef_)
    print(model.intercept_)

选取20个数据

用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
200组数据
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
2000组数据
用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran
可以看到sklearn它的一元线性回归方程也是通过最小二乘法来实现以至于得到了同样的结果

四. 参考文献

https://www.cnblogs.com/lwtt/p/15358625.html

Original: https://blog.csdn.net/qq_55691662/article/details/120569410
Author: 保护奶猫
Title: 用excel中数据分析功能做线性回归练习,分别选取20、200、2000(或20000)组数据,记录回归方程式、R2;用jupyter编程(不借助第三方库),用最小二乘法;借助skleran

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635602/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球