一、梯度下降
二、 线性方程怎么样?
三、有噪音吗?
四、让我们看一个列子
五、如何优化
启发式搜索
学习进度
六、线性回归、逻辑回归、分类
总结、
简单线性回归是一种统计方法,用于确定两个变量之间的关系。具体来说,它试图找到一条直线,能够最好地描述因变量(通常称为Y)和自变量(通常称为X)之间的关系。这条直线可以通过公式 Y=β0+β1XY=β0+β1X 来表示,其中 β0β0 是截距,β1β1 是斜率。
线性回归的目标是最小化实际值与预测值之间差的平方和,这种方法被称为最小二乘法。通过这种方式,我们可以找到最能代表数据趋势的直线。
代码案例:
下面是使用Python和Scikit-Learn库进行简单线性回归分析的例子。我们将创建一些虚拟数据来模拟一个简单的线性关系,并使用这些数据训练一个线性回归模型。
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_splitprint("程序开始执行...")# 设置随机种子以获得可重复的结果
np.random.seed(0)# 创建虚拟数据
X = 2 * np.random.rand(100, 1) # 自变量:广告支出
y = 4 + 3 * X + np.random.randn(100, 1) # 因变量:销售额,基于一个线性方程加上一些噪声print("数据生成完成!前5个样本:")
print(X[:5])
print(y[:5])# 数据集划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)print("训练/测试集分割完成!")# 创建线性回归模型对象
lin_reg = LinearRegression()# 使用训练数据拟合模型
lin_reg.fit(X_train, y_train)# 打印出截距和斜率
print(f'截距 (β0): {lin_reg.intercept_}')
print(f'斜率 (β1): {lin_reg.coef_[0]}')# 使用模型进行预测
y_pred = lin_reg.predict(X_test)print("预测完成!前5个预测值:")
print(y_pred[:5])# 可视化结果并保存为文件
plt.figure(figsize=(10, 6)) # 设置图表大小
plt.scatter(X_test, y_test, color='blue', label='真实值') # 绘制实际值
plt.plot(X_test, y_pred, color='red', label='预测值') # 绘制预测值
plt.title('广告支出与销售额的关系')
plt.xlabel('广告支出')
plt.ylabel('销售额')
plt.legend()# 保存图像到文件
image_path = "regression_result.png"
plt.savefig(image_path)
print(f"图像已保存为 {image_path}")# 不调用 plt.show() 以避免图形界面相关的问题