python实现多元线性回归(Iris为例,二元回归)

python实现多元线性回归

这是东北大学20级信息科学与工程学院工业智能专业的一次小作业,但是过程中我遇到了些困难,包括且不限于:
1、如何读取csv文件变成矩阵
2、应该用什么代码程序实现?

我的开发环境:MacBook Air M1 丘比特notebook(写python的话应该能看懂这是啥吧hhhh)(什么机器不重要,能安装丘比特notebook就可以了)

这是老师的要求

python实现多元线性回归(Iris为例,二元回归)

其中的iris文件在这里(不知道为什么csdn不能直接插入文件,这不重要)

python实现多元线性回归(Iris为例,二元回归)
这个文件长这样,如上。

python实现多元线性回归(Iris为例,二元回归)

首先要做的是把这个xlsx文件分成两个文件,一个表示X,一个表示y。题目要求用Sepal.Length和Width预测Petal.Length,那么前两者就是X,后者就是y。那么把数据复制到新的表格中,另存为对应的X.csv和y.csv,长这样

python实现多元线性回归(Iris为例,二元回归)
这个是X,注意第一列全是1,为什么呢,其实这是公式中(第三个图片的那个公式)α
的系数。

python实现多元线性回归(Iris为例,二元回归)
这个是y,就是正常的petal.length数据。注意,要把上面两个文件保存为csv文件,另存为-csv,这个不要我教吧?
然后
import numpy
x_matrix = numpy.loadtxt(open("这里写上你的X.csv的路径","rb"),delimiter=",",skiprows=0)
y_matrix = numpy.loadtxt(open("同样的,这里是你的y.csv路径","rb"),delimiter=",",skiprows=0)
x_matrix=x_matrix.reshape(-1,3)
y_matrix=y_matrix.reshape(-1,1)
X=x_matrix
y=y_matrix
from numpy.linalg import lstsq
print(lstsq(X,y)[0])

运行之后的结果我这边是
[[ 0.79102009]
[ 0.14850402]
[-0.0211293 ]]
第一个是α的值,第二个是贝塔1的值,第三个是贝塔2的值。最后如果要预测的petal.length是y的话,sepal.length是x1,sepal.width是x2,那么得出来的线性回归结果是

python实现多元线性回归(Iris为例,二元回归)

Original: https://blog.csdn.net/qq_51325651/article/details/123696997
Author: 牙签烤肉
Title: python实现多元线性回归(Iris为例,二元回归)

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

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

(0)

大家都在看

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