【机器学习】多变量线性回归

1|0Liner Regression with Multiple Variable

用向量实现的代码,单变量和多变量可以共用

多变量线性回归相当于是单变量的扩展,主要还是按照模型假设、构造代价函数和研究代价函数的最小值这样的思路展开。

与单变量线性回归不同的是,多变量线性回归还可能涉及到特征缩放的问题,主要原因是存在着不同尺度的特征变量,为了使得梯度下降能够快速地收敛,需要将这些特征变量统一尺度(类似于归一化的思想)

相比于单变量线性回归,多变量线性回归在求解代价函数的特征方程时,除了可以使用梯度下降法,还可以使用正则方程。根据特征变量的多少,灵活地选择这两种方法。

1|1线性回归模型

1|0数学表达式

fw,b(x)=w1x1++wnxn+b

or

fw,b(x)=wx+b

X=(x0(0)x1(0)xn1(0)x0(1)x1(1)xn1(1)x0(m1)x1(m1)xn1(m1))

w=(w0w1wn1)

1|2Feature scaling

当参数的差距在几个数量级时或参数导致模型溢出时,需要缩放特征,以提高梯度下降的速度

1|0数学表达式

Feature scaling Mean normalization Z-score normalization
xj,scaled=xjmax,xj[0,1] xj=xjμjmaxmin,xj[1,1] xj=xjμjσj,xj[3,3]

1|0代码

def zscore_normalize_features(X): """ computes X, zcore normalized by column Args: X (ndarray): Shape (m,n) input data, m examples, n features Returns: X_norm (ndarray): Shape (m,n) input normalized by column mu (ndarray): Shape (n,) mean of each feature sigma (ndarray): Shape (n,) standard deviation of each feature """ # find the mean of each column/feature mu = np.mean(X, axis=0) # mu will have shape (n,) # find the standard deviation of each column/feature sigma = np.std(X, axis=0) # sigma will have shape (n,) # element-wise, subtract mu for that column from each example, divide by std for that column X_norm = (X - mu) / sigma return (X_norm, mu, sigma)

1|3Cost Function

1|0数学表达式

J(w1,,wn,b)

1|4Gradient Descent

1|0数学表达式

repeat until convergence:{wj=wjαJ(w,b)wjfor j = 0..n-1b  =bαJ(w,b)b}

1|5Normal equation

仅适用于线性回归 && 求解时不迭代


__EOF__

本文作者MrFeng
本文链接https://www.cnblogs.com/MrFeng2997/p/17592014.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   码农要战斗  阅读(134)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示