理论加实操快速掌握机器学习中几类回归算法
一周前学姐的一篇干货讲解了“机器学习初学者要掌握哪些知识点”通过简单的例子,解释了比较复杂的概念,便于大家理解掌握。
理解了概念之后我们就需要学习一下机器学习中的几类算法,今天讲解的是回归算法,为了方便同学们的理解采用了理论加python代码的方式,毕竟初学者的难处学姐有切身体会。
1.线性回归

线性回归是一种统计方法,用来模拟输入特征和输出之间的关系。输入特征称为自变量,输出称为因变量。目的是通过将输入特征与其最优系数相乘来预测输入特征的输出值。
线性回归实际应用案例:
(1)预测产品销量。
(2)预测经济增长。
(3)预测石油价格。
(4)预测新车的排放量。
(5) GPA对大学录取的影响。
线性回归有两种类型:
1.简单线性回归
2.多元线性回归
1.1 简单线性回归:
在简单线性回归中,我们仅根据一个输入特征来预测输出/因变量。简单线性回归由下式给出:

下面使用Python中的sklearn库来实现简单的线性回归。
实现思路及步骤:
a. 导入所需库:
因为需要各种库来进行计算,所以要导入库.

b. 读取CSV文件
在本例中,我们使用的是车辆模型数据集——请查看Softlayer IBM上的数据集(数据集链接在文章末尾)。
检查数据集的前五行

c.选择在预测值时要考虑的特征:
我们的目标是根据数据集中“发动机尺寸”的值预测“二氧化碳排放量”的值。

d. 绘制数据:
用散点图可视化数据.

e. 将数据分为训练数据和测试数据:
为了检查模型的准确性,把数据分成训练和测试数据集。然后使用训练数据来训练模型,使用测试数据集检查模型的准确性。

f. 训练模型:
下图代码是训练模型并找到最佳拟合回归线的系数

G.绘制最佳拟合线:
根据系数,我们可以为我们的数据集绘制最佳拟合线。

h.预测函数:
为测试数据集使用预测函数.

i. 预测二氧化碳排放量:
基于回归线预测二氧化碳排放值。

j. 检查测试数据的准确性:
通过实际值与数据集中的预测值进行比较来检查模型的准确性。

执行代码汇总:
1.2 多元线性回归:
简单的线性回归只能用一个输入特征来预测输出特征的值。但在多元线性回归中,可以基于多个输入特征来预测输出。
多元线性回归的公式:

实现思路及步骤:
a. 导入库:

b读取CSV文件:

c. 定义X and Y:
X存储输入特征,Y存储输出特征.

d. 将数据划分为测试和训练数据集:
在训练中使用 80% 的数据,在测试中使用 20% 的数据.

e. 训练模型:
用80%的数据训练模型.

f. 求得输入特征系数:
我们要知道哪个特征对输出变量的影响更显着。为此,我们print系数值。
注意,负系数意味着它对输出有相反的影响。如果该特征的值增加,则输出值减少。

g. 预测值:

h. 模型的准确度:

这里使用相同的数据集进行简单和多变量线性回归。我们可以看到,多元线性回归的准确度远远好于简单线性回归的准确度。
执行代码汇总:
1.3 多项式回归:

有时,数据不仅仅遵循线性趋势,或遵循多项式趋势。这时我们可以使用多项式回归。
在深入研究它的实现之前,我们需要知道一些主要多项式数据的图形是怎样的。
多项式函数及其图形:
a. Y=X的图形:

b. Y = X²的图形:

c. Y = X³的图形:

d. 多个多项式图: Y = X³+X²+X:

上图中红点显示了Y=X³+X²+X的图形,蓝点显示了Y = X³的图形。可知,最突出的幂会影响图形的形状。
多项式回归公式如下:

在之前的回归模型中,我们使用了sci-kit学习库来实现。现在,我们将使用正规方程来实现。
也可以使用scikit-learn来实现多项式回归,但是别的方法会让我们了解它是如何工作的。
等式如下:

上面的等式中:
θ: hypothesis parameters that define it the best.
X: input feature value of each instance.
Y: Output value of each instance.
1.3.1 多项式回归的假设函数

标准方程中的主矩阵:

实现思路及步骤:
a. 导入库:

b.生成数据点:
生成一个数据集来实现多项式回归.

c. 初始化x,x²,x³向量:
取x的最大幂为3,X矩阵将有X、X²、X³。

d. X矩阵的第1列:
主矩阵X的第一列始终为1,因为它保存了beta_0的系数.

e. 形成完整的X矩阵:
查看开始时的矩阵X,通过附加向量来创建:

f. 矩阵转置:
找到矩阵的转置,逐步计算theta的值

g. 矩阵乘法:
找到转置后,将其与原始矩阵相乘。使用正规方程来实现它时,必须遵循规则。

h. 矩阵的逆矩阵:
查找矩阵的逆矩阵并将其存储在temp1中.

i. 矩阵乘法:
找到转置的X和Y向量的乘法将其存储在temp2变量中.

j. 系数值:
要找到系数值,我们需要将 temp1 和 temp2 相乘,参考正规方程公式。

k. 将系数存储在变量中:
将这些系数值存储在不同的变量中:

l. 用曲线绘制数据:
用回归曲线绘制数据:

m. 预测函数:
使用回归曲线来预测输出

n. 误差函数:
使用均方误差函数计算误差:

o. 计算误差:

执行代码汇总:
1.4 指数回归:

指数增长的例子:
1.培养物中的微生物。
2.食物变质。
3.人口。
4.复利。
5.大流行(如Covid-19)。
6.埃博拉疫情。
7.入侵物种。
8.火灾。
9.癌细胞。
10.智能手机的使用和销售。
指数回归公式:

这种情况下使用scikit-learn库来查找系数值,例如 a、b、c。
实现思路及步骤:
a. 导入所需库:

b. 插入数据点:

c. 实现指数回归算法:

d.应用最优参数和协方差:
使用curve_fit来寻找最优参数值,返回两个变量,称为popt、pcov。popt存储最优参数的值,pcov存储其协方差的值。
popt变量有两个值,这些值是最佳参数。使用这些参数并绘制最佳拟合曲线,如图。

e.绘制数据:
用找到的系数绘制数据

f. 检查模型的准确性:
使用r2_score检查模型的准确性:

执行代码汇总:
1.5 正弦回归

正弦回归应用例子:
音乐波的产生。
声音以波的形式传播。
构造中的三角函数。
用于太空飞行。
GPS 位置计算。
建筑学。
电流。
无线电广播。
海洋的低潮和高潮。
建筑物。
正弦回归公式:

实现思路及步骤:
a. 生成数据集:


b. 应用正弦函数:
创建了一个名为“calc_sine”的函数来根据最优系数计算输出值。使用scikit-learn库来寻找最优参数。


c. 为什么正弦回归比线性回归表现更好?
在用直线拟合数据后检查模型的准确性,可以看到预测的准确性低于正弦波回归的准确性,这就是使用正弦回归的原因。


执行代码汇总:
1.6 对数回归

对数回归实际应用:
地震的震级。
声音的强度。
溶液的酸度。
溶液的 pH 值。
化学反应的产率。
商品的生产。
婴儿的成长。
COVID-19 图表。
有时数据在呈现中以指数级增长,但在某个点之后,变得平坦。这种情况下,可以使用对数回归。

实现思路及步骤:
a. 导入库:

b. 生成数据集

c. 矩阵X的第一列:
使用正规方程找到系数值

d. 重塑X

e. 使用正规方程公式

f.形成主矩阵 X

g. 找到转置矩阵

h. 执行矩阵乘法

i.求逆

j. 矩阵乘法

k. 查找系数值

l. 用回归曲线绘制数据:

m. 准确性

执行代码汇总:
参考文档:
https://pub.towardsai.net/machine-learning-algorithms-for-beginners-with-python-code-examples-ml-19c6afd60daa
https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/ML0101ENv3/labs/FuelConsumptionCo2.csv
如果有错误的地方欢迎评论区指出!
关注【学姐带你玩AI】公众号,掌握一手AI前沿,知识点,比赛baseline
