导论
-
根据因变量的是否连续,有监督学习又分为回归和分类:
-
回归:因变量是连续型变量,如:房价,体重等。
例子: Boston房价数据集
from sklearn import datasets boston = datasets.load_boston() X = boston.data y = boston.target features = boston.feature_names
-
分类:因变量是离散型变量,如:是否患癌症,西瓜是好瓜还是坏瓜等。
例子:iris鸢尾花数据集
from sklearn import datasets iris = datasets.load_iris() X = iris.data y = iris.target features = iris.feature_names
-
使用sklearn构建完整的机器学习项目流程
- 步骤:
- 明确项目任务:回归/分类
- 收集数据集并选择合适的特征。
- 选择度量模型性能的指标。
- 选择具体的模型并进行训练以优化模型。
- 评估模型的性能并调参。
使用sklearn构建完整的回归项目
-
收集数据集并选择合适的特征
-
选择度量模型性能的指标:
- MSE均方误差: MSE ( y , y ^ ) = 1 n samples ∑ i = 0 n samples − 1 ( y i − y ^ i ) 2 . \text{MSE}(y, \hat{y}) = \frac{1}{n_\text{samples}} \sum_{i=0}^{n_\text{samples} - 1} (y_i - \hat{y}_i)^2. MSE(y,y^)=nsamples1∑i=0nsamples−1(yi−y^i)2.
- MAE平均绝对误差: MAE ( y , y ^ ) = 1 n samples ∑ i = 0 n samples − 1 ∣ y i − y ^ i ∣ \text{MAE}(y, \hat{y}) = \frac{1}{n_{\text{samples}}} \sum_{i=0}^{n_{\text{samples}}-1} \left| y_i - \hat{y}_i \right| MAE(y,y^)=nsamples1∑i=0nsamples−1∣yi−y^i∣
- R 2 R^2 R2决定系数: R 2 ( y , y ^ ) = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2(y, \hat{y}) = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} R2(y,y^)=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2
- 解释方差得分: e x p l a i n e d _ v a r i a n c e ( y , y ^ ) = 1 − V a r { y − y ^ } V a r { y } explained\_{}variance(y, \hat{y}) = 1 - \frac{Var\{ y - \hat{y}\}}{Var\{y\}} explained_variance(y,y^)=1−Var{ y}Var{ y−y^}
-
选择具体的模型并进行训练
-
线性回归模型:
假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w :
假设:数据集 D = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } D = \{(x_1,y_1),...,(x_N,y_N) \} D={ (x1,y1),...,(xN,yN)}, x i ∈ R p , y i ∈ R , i = 1 , 2 , . . . , N x_i \in R^p,y_i \in R,i = 1,2,...,N xi∈Rp,yi∈R,i=1,2,...,N, X = ( x 1 , x 2 , . . . , x N ) T , Y = ( y 1 , y 2 , . . . , y N ) T X = (x_1,x_2,...,x_N)^T,Y=(y_1,y_2,...,y_N)^T X=(x1,x2,...,xN)T,Y=(y1,y2,...,yN)T
假设X和Y之间存在线性关系,模型的具体形式为 y ^ = f ( w ) = w T x \hat{y}=f(w) =w^Tx y^=f(w)=wTx
from sklearn import linear_model # 引入线性回归方法 lin_reg = linear_model.LinearRegression() # 创建线性回归的类 lin_reg.fit(X,y) # 输入特征X和因变量y进行训练 print("模型系数:",lin_reg.coef_) # 输出模型的系数 print("模型得分:",lin_reg.score(X,y)) # 输出模型的决定系数R^2
-
最小二乘估计:
衡量真实值 y i y_i yi与线性回归模型的预测值 w T x i w^Tx_i wTx
-