• 线性回归-初步


    1.1.1. Ordinary Least Squares

    from sklearn import linear_model
    reg = linear_model.LinearRegression()
    reg.fit([[0,0],[1,1],[2,2]],[0,1,2])
    
    • reg使用的参数:

      LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

    reg.coef_
    
    array([0.5, 0.5])
    

    最小二乘法的代价函数表述为:

    1.1.2 Ridge Regression

    岭回归通过对最小二乘法的系数做出惩罚以解决部分的问题,最小化了惩罚的残差平方和

    • 现行回归含有惩罚项的代价函数表述为:
    • 正则化的背后的概念是引入额外的信息(偏差)来对极端参数的权重做出惩罚,此处的正则化则是引入的L2正则化。
    • 代价函数的参数α的变化导致权重稀疏的变化,岭回归即L2正则化(L2收缩),也叫权重衰减
    from sklearn import linear_model
    reg= linear_model.Ridge(alpha=0.5)
    reg.fit([[0,0],[0,0],[1,1]],[0,0.1,1])
    
    • reg使用的参数
      Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
      normalize=False, random_state=None, solver='auto', tol=0.001)
     reg.intercept_ 
    
    0.1363636363636364
    
    reg.coef_
    
    array([0.34545455, 0.34545455])
    

    1.1.2.1 Setting the regularization parameter: generalized Cross-Validation 通过交叉验证获得回归效果最恰当的惩罚项的参数

    from sklearn import linear_model
    reg=linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
    reg.fit([[0,0],[0,0],[1,1]],[0,0.1,1])
    
    • reg使用的参数
      RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, gcv_mode=None,
      normalize=False, scoring=None, store_cv_values=False)
    reg.alpha_
    
    0.1
    

    1.1.3 Lasso(权重稀疏)

    • L1正则化可生成稀疏的特征向量,且大多数的权值为0,当高维的数据集中包含许多不想管的特征,尤其是在不相关的特征数量大于样本数量是,权重的稀疏化可以发挥特征选择的作用。
    • 损失函数可以表示为:
    from sklearn import linear_model
    reg= linear_model.Lasso(alpha=0.1)
    reg.fit([[0,0],[1,1]],[0,1])
    
    • reg使用的参数:

      Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,
      normalize=False, positive=False, precompute=False, random_state=None,
      selection='cyclic', tol=0.0001, warm_start=False)

    import numpy as np
    reg.predict([[1,1]])
    # 如果是一维数组的话,需要使用np.array([1,1]).reshape(1,-1)  保证是一行多列数据,如果是(-1,1)保证是一列多行数据。-1 表示会根据原始数据的shape自动的更改
    
    array([0.8])
    
    reg
    
    • reg使用的参数:

      Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,
      normalize=False, positive=False, precompute=False, random_state=None,
      selection='cyclic', tol=0.0001, warm_start=False)

    reg.coef_
    
    
    array([0.6, 0. ])
    
    reg.intercept_
    
    0.2
  • 相关阅读:
    linux的lsof命令
    linux find
    linux 查看磁盘空间大小
    eclipse运行时编码设置
    WebService工作原理
    Java获取字符串编码方式
    JavaScript,base64加密解密
    如何用javascript 的eval动态执行一个需要传对象参数的函数
    struts2结果类型
    执行maven-build.cmd失败
  • 原文地址:https://www.cnblogs.com/onemorepoint/p/9295274.html
Copyright © 2020-2023  润新知