机器学习的数学基础(叁)

1 最小二乘法(Least Square Fitting)

最小二乘法则是一种统计学习优化技术,它的目标是最小化误差平方之和来作为目标,从而找到最优模型,这个模型可以拟合(fit)观察数据。
回归学习最常用的损失函数是平方损失函数,在此情况下,回归问题可以用著名的最小二乘法来解决。最小二乘法就是曲线拟合的一种解决方法。
来自https://blog.csdn.net/iterate7/article/details/78992015

J ( θ ) = ∑ i = 1 m ( f θ ( x i ) − y i ) 2 J(\theta)= \sum_{i=1}^{m} (f_\theta(x_{i})-y_{i})^2 J(θ)=i=1m(fθ(xi)yi)2

  • 矩阵求导方法
    ( X T X ) θ = X T y (X^T X)\theta = X^Ty (XTX)θ=XTy
    θ = ( X T X ) − 1 X T y \theta = (X^T X)^{-1}X^Ty θ=(XTX)1XTy

推导https://blog.csdn.net/ACdreamers/article/details/44662633

  • 数值方法牛顿法
    x k + 1 = x k − H k − 1 g k x^{k+1}=x^{k}-H^{-1}_kg_{k} xk+1=xkHk1gk

推导https://blog.csdn.net/iterate7/article/details/78387326

  • 梯度下降
    θ j : = θ j − α ∗ ∂ J ( θ ) ∂ ( θ j ) \theta_j:=\theta_j - \alpha* \frac{\partial J(\theta)}{\partial(\theta_j)} θj:=θjα(θj)J(θ)
    如果被分析的函数是线性的,在线性回归中,我们假设损失函数形式是 J ( θ ) = 1 2 N ∑ 1 n ( h θ ( x ) ( i ) − y ( i ) ) 2 J(\theta)=\frac{1}{2N}\sum_1^n(h_\theta(x)^{(i)}-y^{(i)})^2 J(θ)=2N11n(hθ(x)(i)y(i))2并且 h ( x ) = θ 1 x 1 + θ 0 h(x)=\theta_1 x_1+\theta_0 h(x)=θ1x1+θ0,则:
    θ 0 ← θ 0 − α ∗ ∂ J ( θ 1 , θ 0 ) ∂ ( θ 0 ) , α > 0 \theta_0 \leftarrow \theta_0 -\alpha* \frac{\partial J(\theta_1,\theta_0)}{\partial(\theta_0)} ,\alpha>0 θ0θ0α(θ0)J(θ1,θ0)α>0
    θ 1 ← θ 1 − α ∗ ∂ J ( θ 1 , θ 0 ) ∂ ( θ 1 ) , α > 0 \theta_1 \leftarrow \theta_1 -\alpha* \frac{\partial J(\theta_1,\theta_0)}{\partial(\theta_1)} ,\alpha>0 θ1θ1α(θ1)J(θ1,θ0)α>0
    α \alpha α是学习速率, ∂ J ( θ 1 , θ 0 ) ∂ ( θ 1 ) = 1 N ∑ 1 n ( h ( x ) ( i ) − y ( i ) ) x 1 ( i ) \frac{\partial J(\theta_1,\theta_0)}{\partial(\theta_1)}=\frac{1}{N}\sum_1^n(h(x)^{(i)}-y^{(i)})x_1^{(i)} (θ1)J(θ1,θ0)=N11n(h(x)(i)y(i))x1(i), ∂ J ( θ 1 , θ 0 ) ∂ ( θ 0 ) = 1 N ∑ 1 n ( h ( x ) ( i ) − y ( i ) ) \frac{\partial J(\theta_1,\theta_0)}{\partial(\theta_0)}=\frac{1}{N}\sum_1^n(h(x)^{(i)}-y^{(i)}) (θ0)J(θ1,θ0)=N11n(h(x)(i)y(i))如果 h ( x ) = θ T x h(x)=\theta^Tx h(x)=θTx,则梯度下降更新公式变为:
    θ j : = θ j − α ∗ ∂ J ( θ ) ∂ ( θ j ) \theta_j:=\theta_j - \alpha* \frac{\partial J(\theta)}{\partial(\theta_j)} θj:=θjα(θj)J(θ)
    . . . = θ j − α ∗ 1 N ∑ 1 n ( h ( x ) ( i ) − y ( i ) ) x j ( i ) , x , θ ∈ R n + 1 ...=\theta_j - \alpha* \frac{1}{N}\sum_1^n(h(x)^{(i)}-y^{(i)})x_j^{(i)},x,\theta\in R^{n+1} ...=θjαN11n(h(x)(i)y(i))xj(i),x,θRn+1
    上式对 θ 0 \theta_0 θ0来说, x 0 x_0 x0=1。一开始 θ \theta θ是随机给定。

2 归一化(Feature Scaling)

可以让一些优化方法收敛速度更快,数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:

  • 标准归一化(Standardization)
    又称Z-score normalization。 z = z − μ δ z=\frac{z-\mu}{\delta} z=δzμ, μ \mu μ是特征均值, δ \delta δ是特征标准差。区间范围[-1,1].
  • 最大最小归一化(Min-Max Scaling)
    x = x − m i n ( x ) m a x ( x ) − m i n ( x ) x=\frac{x-min(x)}{max(x)-min(x)} x=max(x)min(x)xmin(x),分布区间为[0,1]。
    编程实现(python)
def standardize(X):
    """特征标准化处理
    Args:
        X: 样本集
    Returns:
        标准后的样本集
    """
    m, n = X.shape
    # 归一化每一个特征
    for j in range(n):
        features = X[:,j]
        meanVal = features.mean(axis=0)
        std = features.std(axis=0)
        if std != 0:
            X[:, j] = (features-meanVal)/std
        else
            X[:, j] = 0
    return X
 
def normalize(X):
    """Min-Max normalization     sklearn.preprocess 的MaxMinScalar
    Args:
        X: 样本集
    Returns:
        归一化后的样本集
    """
    m, n = X.shape
    # 归一化每一个特征
    for j in range(n):
        features = X[:,j]
        minVal = features.min(axis=0)
        maxVal = features.max(axis=0)
        diff = maxVal - minVal
        if diff != 0:
           X[:,j] = (features-minVal)/diff
        else:
           X[:,j] = 0
    return X

3 奥卡姆剃刀原则

奥卡姆剃刀定律(Occam’s Razor, Ockham’s Razor)又称“奥康的剃刀”,原理称为“如无必要,勿增实体”,即“简单有效原理”。
原理具体内容为:1.避重趋轻 2.避繁逐简 3.以简御繁 4.避虚就实

剃刀原则从来没有说简单的理论就是正确的理论,通常表述为“当两个假说具有完全相同的解释力和预测力时,我们以那个较为简单的假说作为讨论依据。”(科学松鼠会)
剃刀原则不是一个理论而是一个原理,它的目的是为了精简抽象实体。它不能被证明也不能被证伪,因为它是一个规范性的思考原则。大部分情况下,应用奥卡姆剃刀原理是合适的;但是这不代表奥卡姆剃刀就是正确的。(知乎)

总结一下,剃刀原则并不是一种定理(在数学上有推导,数学之美——刘未鹏),而是一种思维方式,可用于指导我们的工作,比如我们可以用A和B达到同样的效果,但B更简单,于是我们选择B。同时,也有人说可能因为能力不足,于是我们选择更简单的方式来处理问题,这也是剃刀的原则的一种应用吧。举个贴切的例子,做决策树分析的时候,采用9个属性的预测性能和5个属性的预测性能是相似的,那么我们就会选择5个属性来预测。
来源https://blog.csdn.net/david_jett/article/details/77714796

4 过拟合(Overfitting)

过拟合是指为了得到一致假设而使假设变得过度严格。

避免措施

  • 更多的数据
  • 使用集成学习来平均每个模型的效果
  • 加入正则项来惩罚复杂项
  • 交叉验证(例如N-fold cross-validation)

10折交叉验证(10-fold cross validation),将数据集分成十份,轮流将其中9份做训练1份做验证,10次的结果的均值作为对算法精度的估计,一般还需要进行多次10折交叉验证求均值,例如:10次10折交叉验证,以求更精确一点。

5 纬度诅咒

简单说机器学习里面的采样问题。很多时候需要采样来获取一个概率分布的均值,一个范围是10的一维分布可能采样10个点就差不多了,二维情况下要采样100个点,三维就要1000个点。所以高维数据处理起来更加复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值