如何在vps上建设网站,代做网站跳转,wordpress 模板引入文件,怎么给wordpress加背景图往期目录
python在线性规划中的应用 文章目录 一、线性回归算法概述1.1 什么是线性回归#xff1f;1.2 线性回归算法原理1.3 线性回归的应用场景 二、线性回归算法Python实现2.1 导入必要的库2.2 随机生成数据集2.3 拟合模型2.4 预测结果2.5 结果可视化 三、完整代码 线性回归… 往期目录
python在线性规划中的应用 文章目录 一、线性回归算法概述1.1 什么是线性回归1.2 线性回归算法原理1.3 线性回归的应用场景 二、线性回归算法Python实现2.1 导入必要的库2.2 随机生成数据集2.3 拟合模型2.4 预测结果2.5 结果可视化 三、完整代码 线性回归是机器学习中最基础的算法之一其原理简单易懂应用广泛。
回归分析Regression Analysis是统计学的数据分析方法目的在于了解两个或多个变量间是否相关、相关方向与强度并建立数学模型以便观察特定变量来预测其它变量的变化情况。
线性回归算法Linear Regression的建模过程就是使用数据点来寻找最佳拟合线。公式y mx c其中 y 是因变量x 是自变量利用给定的数据集求 m 和 c 的值。 线性回归又分为两种类型即 简单线性回归simple linear regression)只有 1 个自变量*多变量回归multiple regression)至少两组以上自变量。
一、线性回归算法概述
1.1 什么是线性回归
线性回归是一种常见的监督学习算法用于预测一个连续的输出变量也称为响应变量或因变量和一个或多个输入变量也称为自变量之间的关系。这种关系可以用一条直线的方程来表达。
1.2 线性回归算法原理
线性回归基于最小二乘法即寻找一条直线最小化观测数据和线之间的平方误差和。该算法的目标是找到一条最佳拟合直线使得每个观测值与拟合直线之间的距离最小。
线性回归模型的数学表达式如下 Y β 0 β 1 X 1 β 2 X 2 … … β n ∗ X n Y β_{0} β_{1}X_{1} β_{2}X_{2} …… β_{n}*X_{n} Yβ0β1X1β2X2……βn∗Xn
其中 Y Y Y 是响应变量 X 1 X_{1} X1 X 2 X_{2} X2…… X n X_{n} Xn 是自变量 β 0 β 1 β 2 … … β n β_{0}β_{1}β_{2}……β_{n} β0β1β2……βn 是模型的参数。
线性回归算法主要包括两个步骤
寻找最佳拟合直线的参数 β 0 β 1 β 2 … … β n β_{0}β_{1}β_{2}……β_{n} β0β1β2……βn。
使用模型对新的数据进行预测。
1.3 线性回归的应用场景
线性回归可以用于许多不同的领域包括金融、经济学、营销、社会科学等。以下是一些可能的应用场景
通过销售额和广告支出建立销售预测模型 分析股票市场的趋势和波动 将房价与房屋面积、地理位置等因素联系起来 预测医疗保健成本
二、线性回归算法Python实现
为了实现线性回归算法我们需要将其转化为一个优化问题。我们需要使用机器学习库 scikit-learn 实现这个问题。下面是实现流程
2.1 导入必要的库
在开始编写代码之前我们需要导入一些必要的库包括 pandas、numpy 和 sklearn 等。这些库使得我们可以轻松地进行数据处理、数学运算和模型训练。下面是导入库的代码示例
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression2.2 随机生成数据集
在进行机器学习算法时我们需要先准备合适的数据集。在这个例子中我们使用一个包含房屋面积和价格的数据集。我们可以使用 pandas 库来加载数据集。下面是加载数据集的代码示例
# 生成随机数据集
np.random.seed(0) # 设置随机种子
X np.random.rand(100, 1)
y 2 3*X np.random.randn(100, 1)在上述代码中我们使用 Pandas 的 read_csv() 方法从 CSV 文件中读取数据并将其划分为输入变量也称为特征和输出变量。X 是包含所有输入变量的 NumPy 数组y 是包含所有输出变量的一维 NumPy 数组。
2.3 拟合模型
接下来我们需要创建一个 LinearRegression 对象并拟合模型。这个对象将用于训练模型和进行预测。下面是拟合模型的代码示例
# 创建线性回归对象并拟合数据
reg LinearRegression().fit(X, y)上述代码中我们创建了一个 LinearRegression 对象 regressor并调用其 fit() 方法来拟合模型。这里的 fit() 方法会自动调整模型参数以最小化观测值和拟合直线之间的误差。
2.4 预测结果
有了拟合的模型后我们就可以使用它来进行预测了。这里我们可以根据输入变量预测输出变量。下面是预测结果的代码示例
# 预测新数据
X_new np.array([[0.5]])
y_new reg.predict(X_new)# 绘制数据散点图和拟合直线使用 seaborn 库美化
sns.set(stylewhitegrid, font_scale1.2)在上述代码中我们使用训练好的模型 regressor 来预测输出变量 y 的值。这里的 predict() 方法将根据输入变量 X 来返回相应的预测值 y_pred。
2.5 结果可视化
最后在得到预测结果之后我们可以将其可视化。这里我们使用 matplotlib 库来绘制散点图和拟合直线。下面是可视化结果的代码示例
plt.scatter(X, y, alpha0.8, color#3F7F4C)
plt.plot(X, reg.predict(X), color#6D8F18, linewidth2)
plt.grid(False)
plt.xlabel(xlabel,font)
plt.ylabel(ylabel,font)
plt.show()在上述代码中我们使用 matplotlib 库将原始数据绘制为散点图。然后我们使用 predict() 方法计算出预测结果并绘制一条拟合直线。最后我们添加一些标题和标签来说明图形内容并使用 show() 方法展示图形。
三、完整代码
import numpy as np
from sklearn.linear_model import LinearRegression
import seaborn as sns
import matplotlib.pyplot as plt# 生成随机数据集
np.random.seed(0) # 设置随机种子
X np.random.rand(100, 1)
y 2 3*X np.random.randn(100, 1)fig,ax plt.subplots(figsize(8,6),dpi300)
plt.tick_params(labelsize20)
labels ax.get_xticklabels() ax.get_yticklabels()
[label.set_fontname(Times New Roman) for label in labels]
font {family: Times New Roman,size: 24}
# font_1 {family: Times New Roman,size: 14}
plt.rcParams[font.family] Times New Roman #全图字号新罗马字体# 创建线性回归对象并拟合数据
reg LinearRegression().fit(X, y)# 预测新数据
X_new np.array([[0.5]])
y_new reg.predict(X_new)# 绘制数据散点图和拟合直线使用 seaborn 库美化
sns.set(stylewhitegrid, font_scale1.2)plt.scatter(X, y, alpha0.8, color#3F7F4C)
plt.plot(X, reg.predict(X), color#6D8F18, linewidth2)
plt.grid(False)
plt.xlabel(xlabel,font)
plt.ylabel(ylabel,font)
plt.show()#
# 打印模型参数和预测结果
print(模型参数:, reg.coef_, reg.intercept_)
print(预测结果:, y_new)
本文对于Python实现线性回归算法进行了详细的介绍。首先我们介绍了线性回归的概念和原理然后介绍了它的应用场景。最后我们使用 scikit-learn 库来实现了线性回归算法并对结果进行了可视化。