zoukankan      html  css  js  c++  java
  • 回归模型构建

    回归模型构建

    模块 函数 算法名称 简称
    linear_model LinearRegression 线性回归 LR
    svm SVR 支持向量机回归 SVM
    neighbors KNeighborsRegressor 最近邻回归 KNN
    tree DecisionTreeRegressor 回归决策树 DT
    ensemble RandomForestRegressor 随机森林回归 RF
    ensemble GradientBoostingRegressor 梯度提升回归树 GBDT

    以SVM为例,咱简单过一遍模型构建的大致流程。

    from sklearn.datasets import load_diabetes  # 导入糖尿病数据
    from sklearn.model_selection import train_test_split  # 数据集划分
    from sklearn.preprocessing import StandardScaler  # 标准差标准化
    from sklearn.svm import SVR  # 导入SVR库
    
    # 导出所需的数据
    diabetes = load_diabetes()
    X = diabetes['data']
    y = diabetes['target']
    # 数据集划分
    X_train, X_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, random_state = 123)
    # 数据标准化
    Standard = StandardScaler().fit(X_train)  # 训练规则
    x_train = Standard.transform(X_train)  # 应用规则
    x_test = Standard.transform(X_test)  # 应用规则
    # 开始构建
    svr = SVR().fit(x_train, y_train)  # 训练模型
    y_pred = svr.predict(x_test)  # 预测标签
    

      数据标准化的目的,是消除量纲差异。因为量纲差异会导致涉及距离计算和梯度下降的模型出现异常,例如某些特征重要性非常大,而某些特征则变得不那么重要。

      至此,模型就构建完毕了。当然,很多时候我们还需要对构建的模型进行评价。

    回归模型评价

    方法名称 最优值 sklearn函数
    平均绝对误差 0.0 metrics. mean_absolute_error
    均方误差 0.0 metrics. mean_squared_error
    中值绝对误差 0.0 metrics. median_absolute_error
    可解释方差值 1.0 metrics. explained_variance_score
    R方值,确定系数 1.0 metrics. r2_score

    所有回归模型评价函数的参数均为两个:

    • 真实值,即在划分时划分的测试集标签

    • 预测值,通过模型预测所得出的结果

    一般情况下,单一一个回归模型无法说明回归模型好坏,需要多个回归模型进行比较。

    from sklearn import metrics
    metrics.mean_absolute_error(y_test, y_pred)
    

    60.62483115202473

    metrics.mean_squared_error(y_test,y_pred)
    

    5160.5160.043822698072

    metrics.median_absolute_error(y_test,y_pred)
    

    56.12912460415339

    metrics.explained_variance_score(y_test,y_pred)
    

    0.20385710303138893

    metrics.r2_score(y_test,y_pred)
    

    0.18096718824416846

      由这里我们也可以看出,不同的评价方法也会得出不同的模型优劣。

      所以,要想构建一个好的模型,首先得确定一或多个适合的模型算法,之后进行交叉验证等手段验证,还得运用恰当的评价方法进行客观评价。甚至即便如此,我们也还不能肯定地说:得到的模型,就是一个十全十美的最好的模型。

      下课。

    一个佛系的博客更新者,随手写写,看心情吧 (っ•̀ω•́)っ✎⁾⁾
  • 相关阅读:
    C++ 实现简单快速排序
    LEETCODE 198. House Robber
    leetcode 174
    GIT 版本的回退
    unorderd_map 自定义键值及哈希函数的重载
    互斥锁 形成死锁实例
    leetcode 300
    LeetCode 62
    LeetCode 122
    SVN提交,强制注释
  • 原文地址:https://www.cnblogs.com/WoLykos/p/9565845.html
Copyright © 2011-2022 走看看