欢迎光临散文网 会员登陆 & 注册

理论加实操快速掌握机器学习中几类回归算法

2021-07-23 12:01 作者:深度之眼官方账号  | 我要投稿

一周前学姐的一篇干货讲解了“机器学习初学者要掌握哪些知识点”通过简单的例子,解释了比较复杂的概念,便于大家理解掌握。

 

理解了概念之后我们就需要学习一下机器学习中的几类算法,今天讲解的是回归算法,为了方便同学们的理解采用了理论加python代码的方式,毕竟初学者的难处学姐有切身体会。

 

1.线性回归

 

【图片】The Linear Regression algorithm in a graph | Source: Image processed with Python.

线性回归是一种统计方法,用来模拟输入特征和输出之间的关系。输入特征称为自变量,输出称为因变量。目的是通过将输入特征与其最优系数相乘来预测输入特征的输出值。

 

线性回归实际应用案例:

 

(1)预测产品销量。

(2)预测经济增长。

(3)预测石油价格。

(4)预测新车的排放量。

(5) GPA对大学录取的影响。

 

线性回归有两种类型:

1.简单线性回归

2.多元线性回归

 

1.1 简单线性回归:

 

在简单线性回归中,我们仅根据一个输入特征来预测输出/因变量。简单线性回归由下式给出:

 

线性回归方程


下面使用Python中的sklearn库来实现简单的线性回归。

 

实现思路及步骤:

 

a. 导入所需库:

 

因为需要各种库来进行计算,所以要导入库.

b. 读取CSV文件


在本例中,我们使用的是车辆模型数据集——请查看Softlayer IBM上的数据集(数据集链接在文章末尾)。

 

检查数据集的前五行

 


c.选择在预测值时要考虑的特征:

 

我们的目标是根据数据集中“发动机尺寸”的值预测“二氧化碳排放量”的值。


d. 绘制数据:

 

用散点图可视化数据.


e. 将数据分为训练数据和测试数据:

 

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

线性回归算法数据图


f. 训练模型:

 

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

 



G.绘制最佳拟合线:

 

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

 

Data plot for linear regression based on its coefficients


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


理论加实操快速掌握机器学习中几类回归算法的评论 (共 条)

分享到微博请遵守国家法律