scikit_learn.linear_model线性回归与正则化(一)

来源:互联网 发布:js中有foreach in 编辑:程序博客网 时间:2024/06/08 07:34
       众所周知,机器学习根据训练数据是否拥有标记信息,将学习任务划分为两大类:“监督学习”与“无监督学习”,分类和回归是前者的代表,聚类是后者的代表。
       在监督学习中,如果预测对象是离散值的定性分析,则属于分类范畴;如果预测对象是连续值的定量分析,则属于回归范畴。由此看来,“回归”已然占据了监督学习的半壁江山,其重要性不言而喻。
############################################################################################
        先说说“回归”的前世今生吧  (不感兴趣可略过)
      《朱子语类》卷九《论知行》篇中讲,“不可取名上理会。需求其所以然。”  做学问,理当知其然,知其所以然。
      “回归”是由英国著名生物学家、统计学家高尔顿(Francis Galton, 1822~1911.生物学家达尔文的表弟)在研究人类遗传问题时提出来的。为了研究父代与子代身高的关系,高尔顿搜集了1078对父子的身高数据。
      他发现这些数据的散点图大致呈直线状态,即,总的趋势是父亲身高增加时,儿子的身高也倾向于增加。但是,高尔顿对实验数据进行了深入分析,发现有趣的“回归”现象——当父亲高于平均身高时,他们的儿子身高比他更高的概率小于比他更矮的概率;当父亲矮于平均身高时,他们的儿子身高比他更高的概率小于比他更高的概率。
       一般性的解释是:大自然具有一种约束力,使人类身高的分布相对稳定而不产生两极分化,这就是所谓的“回归”效应。

(有线性表达式,感兴趣的可自行搜索,不再赘述)

############################################################################################

线性回归

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

参数:fit_intercept: boolean, optional, default True

模型表达式是否有截距,若为False,则表达式经过坐标原点。

normalize: boolean, optional, default False

训练数据集与预测数据集是否经过归一化处理。但当fit_intercept为False时,该参数忽略。如果要进行标准化,则在调用fit(X,y)方法前调用sklearn.preprocessing.StandardScaler(copy=True, with_mean=True, with_std=True)

copy_X : boolean, optional, default True我也没读懂它的意义~

n_jobs: int ,optional, default  -1工作的CPU数量,暂时不理解它的意义~

属性: coef_: array, 

线性回归所得系数

intercept: float

回归表达式的截距

<未完待续>