关注我们,跟踪前沿的研究
本期机器学习专栏将介绍机器学习中的线性回归与逻辑回归。 线性回归是逻辑回归的基础,而逻辑回归又可以在神经网络中用来处理二分类问题,因此逻辑回归是神经网络的组成部分。线性回归是所有机器学习算法的基础,也是理解神经网络中线性可分与线性不可分问题的基础。 逻辑回归中的Sigmoid函数是理解神经网络中激活函数的基础。线性回归
线性回归模型包括一元线性回归和多元线性回归。一元线性回归模型可以表示为 y = a * x + b,其中 x是唯一的变量。学习一元线性回归模型的过程就是通过训练数据集获得最合适的 a和 b的过程。为了获得最优的 a 和 b,可以使用最小二乘法。最小二乘法是一种数学优化技术,通过最小化误差的平方和的方法寻找最优的参数。代码如下:import numpy as npdef fit(x_train, y_train): x_mean = np.mean(x_train) y_mean = np.mean(y_train) m = 0.0 n = 0.0 for x, y in zip(x_train, y_train): m += (x - x_mean) * (y - y_mean) n += (x - x_mean) ** 2 a = n / m b = y_mean - a * x_mean return a, b
多元线性回归与一元线性回归类似,其表达式为
y
=
a
1
*
x
1
+ a
2
* x
2
+ ... + a
n
* x
n
+
b
,参数也可以通过最小二乘法计算。
逻辑回归
简单理解逻辑回归模型,就是在线性回归的基础上作用Sigmoid函数将最终预测值压缩到0到1之间。逻辑回归模型属于非线性模型,通常用来处理二分类问题。在逻辑回归中,计算出的预测值是一个0到1的概率值,通常以0.5为分界线。如果预测的概率值大于0.5则会归为1对应的类别,反之则归为0对应的类别。
逻辑回归分类 图片来源:GoogleSigmoid函数
Sigmoid函数表达式如下: 式中,e为自然底数,z为线性回归模型,p为计算的概率,取值在0到1之间。运行如下代码绘制 Sigmoid函数。import numpy as npimport matplotlib.pyplot as pltdef sigmoid(x): y = 1.0 / (1.0 + np.exp(-x)) return y def plot_sigmoid(x): y = sigmoid(x) plt.plot(x, y) plt.show() if __name__ == '__main__': x = np.linspace(-10, 10, 100) plot_sigmoid(x)
Sigmoid函数
当z趋近于负无穷大时,Sigmoid函数趋近于0;当z趋近于正无穷大时,Sigmoid函数趋近于1。因此,Sigmoid函数能将数值压缩在0到1范围之间,也称为压缩函数。往期精彩回顾
SHM探索
比较六种基于刚度的损伤监测方法
结构模态分析新工具箱开发
基于振动的损伤监测(VBDD)新方法论(二)
基于振动的损伤监测(VBDD)新方法论(一)
让结构学会自己进化(二)!
让结构学会自己进化(一)!
机器学习
机器学习:kNN算法参数调优
机器学习:kNN实现MNIST数据分类
机器学习:kNN算法及代码实现
地震工程
小程序:PEER地震波格式转换可执行程序v1.1
大数据:R语言快速分析科研领域
小程序:试验数据同步
剪力墙有限元模型简述Ⅲ:桁架模型及代码实现
新西兰设计反应谱计算软件v1.0发布
杨群博士开题答辩:低损伤混凝土墙结构的抗震设计
python网页爬虫实战:PEER数据库地震波批量下载
新西兰钢筋混凝土墙设计程序完整版简介
PEER地面运动数据库使用教程Ⅱ:创建反应谱
PEER地面运动数据库使用教程Ⅰ:搜索原始数据
新西兰抗震新技术“Selective weakening”
点个在看,让更多人认识我们