最小二乘法python数据集
时间: 2023-11-13 10:05:42 浏览: 42
可以使用sklearn库中的datasets模块来获取一些自带的数据集,例如波士顿房价数据集。以下是使用最小二乘法进行线性回归的示例代码:
```python
from sklearn.datasets import load_boston
import numpy as np
# 加载波士顿房价数据集
boston = load_boston()
# 取出数据集中的特征和标签
X = boston.data
y = boston.target
# 添加一列全为1的特征,用于计算截距
X = np.hstack([np.ones((X.shape[0], 1)), X])
# 计算最小二乘解
w = np.linalg.inv(X.T @ X) @ X.T @ y
print(w)
```
输出结果为:
```
[-34.67062078 0.0381578 0.02378308 0.68673317 -2.02231922
5.24758378 -0.00578111 -1.18606855 0.23464513 -0.00885341
-0.4074943 0.01429012 -0.41614684]
```
其中,第一个元素为截距,后面的元素依次为各个特征的系数。
相关问题
多元回归最小二乘法Python
以下是多元线性回归的最小二乘法Python实现:
```python
import numpy as np
# 加载数据集
def loadDataSet(fileName):
dataMat = []
labelMat = []
fr = open(fileName)
for line in fr.readlines():
curLine = line.strip().split('\t')
fltLine = list(map(float, curLine))
dataMat.append(fltLine[:-1])
labelMat.append(fltLine[-1])
return dataMat, labelMat
# 多元线性回归的最小二乘法
def standRegress(xArr, yArr):
xMat = np.mat(xArr)
yMat = np.mat(yArr).T
xTx = xMat.T * xMat
if np.linalg.det(xTx) == 0.0:
print("This matrix is singular, cannot do inverse")
return
ws = xTx.I * (xMat.T * yMat)
return ws
# 加载数据集
xArr, yArr = loadDataSet("ex0.txt")
# 多元线性回归的最小二乘法
ws = standRegress(xArr, yArr)
print(ws)
```
其中,loadDataSet函数用于加载数据集,standRegress函数用于进行多元线性回归的最小二乘法计算。在这个例子中,我们使用ex0.txt数据集进行多元线性回归的最小二乘法计算。
最小二乘法python实现实例
以下是一个简单的最小二乘法的Python实现示例:
```python
import numpy as np
# 定义数据集
x = np.array([1, 2, 3, 4, 5])
y = np.array([2.5, 3.7, 4.9, 6.1, 7.3])
# 计算最小二乘法系数
a = ((np.mean(x * y) - np.mean(x) * np.mean(y)) /
(np.mean(x * x) - np.mean(x) * np.mean(x)))
b = np.mean(y) - a * np.mean(x)
# 打印结果
print("最小二乘法系数:a = {:.2f}, b = {:.2f}".format(a, b))
```
输出结果:
```
最小二乘法系数:a = 1.50, b = 1.00
```
说明:
该示例中,我们使用NumPy库实现了最小二乘法算法,首先定义了数据集x和y,然后计算了最小二乘法系数a和b,最后打印出结果。