在监督学习中,如果预测对象是离散值的定性分析,则属于分类范畴;如果预测对象是连续值的定量分析,则属于回归范畴。由此看来,“回归”已然占据了监督学习的半壁江山,其重要性不言而喻。
############################################################################################
先说说“回归”的前世今生吧 (不感兴趣可略过)
《朱子语类》卷九《论知行》篇中讲,“不可取名上理会。需求其所以然。” 做学问,理当知其然,知其所以然。
“回归”是由英国著名生物学家、统计学家高尔顿(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
回归表达式的截距
<未完待续>