python 线性回归 :Python实现线性回归,LinearRegression,最小二乘法,梯度下降法,的各种方法对比详解(图文详解1)
在 Python 中实现线性回归有多种不同的方法,每种方法都有其特点和适用场景。以下是几种主要的线性回归实现方法及其详细解决方案:
- 使用 Scikit-learn 库的 LinearRegression 类:
- 底层原理:
Scikit-learn 的 LinearRegression 类使用普通最小二乘法(Ordinary Least Squares)来拟合线性模型。它通过最小化样本点与预测线之间的平方误差来找到最佳拟合参数。 - 开发流程:
- 导入必要的库:
from sklearn.linear_model import LinearRegression import numpy as np
- 准备数据:
X = np.array([[1, 2], [1, 4], [1, 6], [1, 8]]) y = np.array([3, 5, 7, 9])
- 创建并训练模型:
model = LinearRegression() model.fit(X, y)
- 使用模型进行预测:
prediction = model.predict([[1, 10]]) print(prediction)
- 导入必要的库:
- 底层原理:
- 使用 Numpy 实现最小二乘法:
- 底层原理:
使用 Numpy 直接计算最小二乘法的解析解,即 (X.T @ X)^-1 @ X.T @ y。 - 开发流程:
- 导入必要的库:
import numpy as np
- 准备数据:
X = np.array([[1, 2], [1, 4], [1, 6], [1, 8]]) y = np.array([3, 5, 7, 9])
- 计算最小二乘解:
theta = np.linalg.inv(X.T @ X) @ X.T @ y print(theta)
- 使用模型进行预测:
prediction = np.dot([1, 10], theta) print(prediction)
- 导入必要的库:
- 底层原理:
- 使用 Tensorflow 实现梯度下降法:
- 底层原理:
使用梯度下降法优化线性回归模型参数。Tensorflow 提供了自动求梯度的功能,使得优化过程更加简单高效。 - 开发流程:
- 导入必要的库:
import tensorflow as tf import numpy as np
- 准备数据:
X = np.array([[1, 2], [1, 4], [1, 6], [1, 8]]) y = np.array([3, 5, 7, 9])
- 定义模型并训练:
model = tf.keras.Sequential([ tf.keras.layers.Dense(1, input_shape=(2,)) ]) model.compile(optimizer='sgd', loss='mse') model.fit(X, y, epochs=1000, verbose=0)
- 使用模型进行预测:
prediction = model.predict([[1, 10]]) print(prediction)
- 导入必要的库:
- 底层原理:
- 使用 Statsmodels 实现线性回归:
- 底层原理:
Statsmodels 库提供了基于 OLS 算法的线性回归实现,同时还支持更复杂的统计分析。 - 开发流程:
- 导入必要的库:
import statsmodels.api as sm import numpy as np
- 准备数据:
X = np.array([[1, 2], [1, 4], [1, 6], [1, 8]]) y = np.array([3, 5, 7, 9]) X = sm.add_constant(X)
- 创建并训练模型:
model = sm.OLS(y, X).fit() print(model.summary())
- 使用模型进行预测:
prediction = model.predict([[1, 10]]) print(prediction)
- 导入必要的库:
- 底层原理:
以上是 Python 中实现线性回归的几种主要方法,每种方法都有其特点和适用场景。在实际应用中,根据具体需求和数据特点,选择合适的方法可以得到更好的模型性能。
Linux报 “no buffer space available”,系统打开文件数过多,系统内存不足,网络接口缓冲区大小设置过小 异常的原因以及解决办法(图文详解1)
python 列表合并,extend,append,列表推导式,itertools.chain的方法汇总分享(图文详解1)