1.WPS中

1选中数据 顶端-插入


2右键随便一个点,选择添加趋势线

3右键趋势线,设置格式,勾选公式和平方值

2.最小二乘法

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import math#读取数据
def get_date(file_name,num):data = pd.read_csv(file_name)height,width = data.shapeX_parameter = []Y_parameter = []i=1# 遍历数据for x,y in zip(data['Height'],data['Weight']):X_parameter.append([float(x)])Y_parameter.append([float(y)])i=i+1if(i>num):breakreturn X_parameter,Y_parameter
x,y=get_date("all2.csv",20)
x1,y1=get_date("all2.csv",200)
x2,y2=get_date("all2.csv",2000)
'''输入文件路径和读取的排数'''
plt.scatter(x,y)
plt.axis()#设定坐标轴上限下限
plt.show()#读取到的点plt.scatter(x1,y1)
plt.axis()#设定坐标轴上限下限
plt.show()#读取到的点plt.scatter(x2,y2)
plt.axis()#设定坐标轴上限下限
plt.show()#读取到的点#返回R平方
def computeCorrelation(X, Y):xBar = np.mean(X)yBar = np.mean(Y)SSR = 0varX = 0varY = 0for i in range(0 , len(X)):diffXXBar = X[i] - xBardiffYYBar = Y[i] - yBarSSR += (diffXXBar * diffYYBar)varX +=  diffXXBar**2varY += diffYYBar**2SST = math.sqrt(varX * varY)return math.pow((SSR / SST),2)#返回回归方程
def regression(x,y):x_mean=np.mean(x)  #x平均值y_mean=np.mean(y)  #y平均值num = 0.0    #分子∑d=0.0    #分母∑for x_i,y_i in zip(x,y):num += (x_i-x_mean) *(y_i-y_mean)d +=(x_i-x_mean)**2a=num/d #根据公式得到ab=y_mean-a*x_mean #根据公式得到bfangcheng="y="+str(a)+"x+"+str(b)return fangcheng,a,bfangcheng,a,b=regression(x, y)
fangcheng1,a1,b1=regression(x1, y1)
fangcheng2,a2,b2=regression(x2, y2)
print ("方程式1:",fangcheng,"  R²=",computeCorrelation(x, y))
print ("方程式2:",fangcheng1,"  R²=",computeCorrelation(x1, y1))
print ("方程式3:",fangcheng2,"  R²=",computeCorrelation(x2, y2))y_hat=a*x+b  #回归方程
plt.scatter(x,y)  #描点
plt.plot(x,y_hat,color='r')  #画线
plt.axis()   #设置坐标上下限
plt.show()  #显示y1_hat=a1*x1+b1  #回归方程
plt.scatter(x1,y1)  #描点
plt.plot(x1,y1_hat,color='r')  #画线
plt.axis()   #设置坐标上下限
plt.show()  #显示y2_hat=a2*x2+b2  #回归方程
plt.scatter(x2,y2)  #描点
plt.plot(x2,y2_hat,color='r')  #画线
plt.axis()   #设置坐标上下限
plt.show()  #显示

3.skleran

import pandas as pd
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
import numpy as np
#读取数据
def get_date(file_name,num):data = pd.read_csv(file_name)height,width = data.shapeX_parameter = []Y_parameter = []i=1# 遍历数据for x,y in zip(data['Height'],data['Weight']):X_parameter.append([float(x)])Y_parameter.append([float(y)])i=i+1if(i>num):breakreturn X_parameter,Y_parameter
dataSet_x,dataSet_y=get_date("all2.csv",20)
dataSet_x1,dataSet_y1=get_date("all2.csv",200)
dataSet_x2,dataSet_y2=get_date("all2.csv",2000)#regr为回归过程,fit(x,y)进行回归
regr = LinearRegression().fit(dataSet_x, dataSet_y)
#输出R的平方
print('y=',regr.coef_,'x+',regr.intercept_)
print(regr.score(dataSet_x2, dataSet_y2))
plt.scatter(dataSet_x, dataSet_y,  color='black')
#用predic预测,这里预测输入x对应的值,进行画线
plt.plot(dataSet_x, regr.predict(dataSet_x), color='red', linewidth=1)
plt.show()#regr为回归过程,fit(x,y)进行回归
regr = LinearRegression().fit(dataSet_x1, dataSet_y1)
#输出R的平方
print('y=',regr.coef_,'x+',regr.intercept_)
print(regr.score(dataSet_x1, dataSet_y1))
plt.scatter(dataSet_x1, dataSet_y1,  color='black')
#用predic预测,这里预测输入x对应的值,进行画线
plt.plot(dataSet_x1, regr.predict(dataSet_x1), color='red', linewidth=1)
plt.show()#regr为回归过程,fit(x,y)进行回归
regr = LinearRegression().fit(dataSet_x2, dataSet_y2)
#输出R的平方
print('y=',regr.coef_,'x+',regr.intercept_)
print(regr.score(dataSet_x2, dataSet_y2))
plt.scatter(dataSet_x2, dataSet_y2,  color='black')
#用predic预测,这里预测输入x对应的值,进行画线
plt.plot(dataSet_x2, regr.predict(dataSet_x2), color='red', linewidth=1)
plt.show()

4.WPS结果

5.最小二乘法结果

6.skleran线性回归结果

参考链接:https://blog.csdn.net/playgoon2/article/details/77162219
结论:三种方法结果一致

【机器学习2】通过WPS,python-最小二乘法,python-skleran 三种方法回归分析相关推荐

  1. 测试Python下载图片的三种方法

    简 介: 通过Python软件包对网络URL图片链接进行下载,可以加快后期处理.本文测试了urllib, request两个软件包对图片进行下载效果.如果图片原网页有了防止下载机制,是无法下载图片. ...

  2. python学习音频-详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  3. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  4. python调用cmd命令释放端口_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  5. Python创建多线程的三种方法

    Python创建多线程的三种方法 thread模块函数式创建线程 继承threading类创建多线程 threading模块函数式创建线程 使用总结 thread模块函数式创建线程 调用thread模 ...

  6. python求平方根的三种方法

    python求平方根的三种方法 题干描述 题目解答 题干描述 没啥好说的qwq,求根号下x,并舍弃小数部分,只保留整数 题目解答 方法一:不多bb,直接0.5次方(这应该是最没有营养的解法,面试官估计 ...

  7. python程序执行三种方式,Python运行程序的三种方法

    对于python中运行程序的方法,是我们初学时就已经掌握过的了,想必大家会的只是其中的一两种方式. 本篇对程序运行的三种方式进行了整理,分别是:Python的解释器.交互式运行和PyCharm,大家在 ...

  8. Python 添加根目录的三种方法

    Python 添加根目录的三种方法 1. 将"."添加至PYTHONPTAH环境变量 [推荐] 在-/.zshrc中, export PYTHONPATH=${PYTHONPATH ...

  9. python导入模块的三种方法,例子: import numpy和from numpy import * (import matplotlib 和 from matplotlib import *)

    python导入模块有如下几种写法:以matplotlib为例 (跟numpy是一样的) 1,import matplotlib #整个导入matplotlib 2 , from matplotlib ...

最新文章

  1. 小程序里的自定义组件:组件的外部样式externalClasses的使用
  2. 2008春节长白山哈尔滨雪乡游
  3. 安装Orchard错误
  4. mysql80连接不上本地服务器_干货教程:如何在服务器上安装Mysql8.0
  5. 拓端tecdat|R语言马尔可夫区制转移模型Markov regime switching
  6. 套料软件XSuperNEST(SigmaNEST套料引擎)巧妙利用余料
  7. matlab的电路仿真,Matlab电路仿真
  8. 【黑苹果教程】修复OS X 10.11+上HD4200/HD4400/HD4600/HD5600驱动
  9. 时间都去哪了?BPC电波授时信号的“零成本”伪造
  10. 昂达v80 plus linux,8英寸便携平板 昂达V80 Plus一体工艺来袭
  11. 两种IP冲突检测方法
  12. 【转载】社会网络中心性度量
  13. php 星期几大写,php日期转大写
  14. 淘客必看的抖音引流方案,淘客小白如何在抖音上引流?
  15. 2021鹏业安装算量软件常见问题整理(二十)
  16. 网易跨域实现笔记以及顺便发现的XSS
  17. 位图文件(BMP)格式分析以及程序实现
  18. 移动web开发要点总结
  19. python math库 sqrt eval_Python 在线基础课程
  20. 懒惰型性格分析,如何改变懒惰型性格?

热门文章

  1. weui uploader java_Weui 文件上传完整版示例
  2. 防范常见的web攻击
  3. 第三方linux版电脑,易烊千玺的嘴变大了
  4. ROS2GO+Cozmo=口袋机器人之人工智能仿真和实验平台
  5. 英国豪迈收购Static Systems,大力推进医疗市场
  6. 大学四年,我悄悄看了B站上这些 Java 视频,毕业去阿里了!
  7. 关于mysql报表统计的按月按周按季度
  8. matlab simulink实现模糊pid对中央空调时延温度控制系统控制
  9. 不卸载升级cmake
  10. 【Redis系列】Redis布隆过滤之8亿大数据集实战