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

python实现多元线性回归

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

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

这是老师的要求
在这里插入图片描述

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

给出公式:在这里插入图片描述

首先要做的是把这个xlsx文件分成两个文件,一个表示X,一个表示y。题目要求用Sepal.Length和Width预测Petal.Length,那么前两者就是X,后者就是y。那么把数据复制到新的表格中,另存为对应的X.csv和y.csv,长这样
在这里插入图片描述
这个是X,注意第一列全是1,为什么呢,其实这是公式中(第三个图片的那个公式)α
的系数。

在这里插入图片描述
这个是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)#这个代码是转换为矩阵的,reshape里边的第一个数字是行数,第二个数字是列数,如果是-1的话就是自动匹配,这里转换的是50行3列,因为有50个样本,2个特征,但还有一列是1,注意!
y_matrix=y_matrix.reshape(-1,1)#同上,这个代码把y矩阵转化为50行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,那么得出来的线性回归结果是
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值