为了账号安全,请及时绑定邮箱和手机立即绑定

SciKit-Learn 糖尿病数据集上支持向量回归的 R^2 得分较低

SciKit-Learn 糖尿病数据集上支持向量回归的 R^2 得分较低

温温酱 2023-10-05 16:39:58
我在 sklearn-diabetes 数据集上实现了许多 ML 算法,除了 SVR 之外,所有这些算法在测试子集上的 R^2 约为 0.45。不过,当我进行 SVR 时,我在测试子集上得到的 R^2 分数为 0.16。我想知道这是否是因为 SVR 对于数据集来说是一个糟糕的算法选择,或者是因为我错误地实现了它。我的程序如下:import pandas as pdimport numpy as npimport matplotlib as pltfrom sklearn import model_selectionfrom sklearn.linear_model import LinearRegressionfrom sklearn.linear_model import Ridgefrom sklearn.linear_model import RidgeCVfrom sklearn.linear_model import Lassofrom sklearn.linear_model import ElasticNetfrom sklearn.preprocessing import PolynomialFeaturesfrom sklearn.svm import SVRfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.metrics import r2_scorefrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import GridSearchCVfrom sklearn.metrics import mean_squared_errorfrom math import sqrtfrom sklearn.datasets import load_diabetesdiabetes_data= load_diabetes()#print (diabetes_data.keys())data1 = pd.DataFrame(data= np.c_[diabetes_data['data'], diabetes_data['target']],                     columns= diabetes_data['feature_names'] + ['target'])predictors= data1.drop('target', axis=1).valuestarget_df= data1['target'].valuesX_train, X_test, y_train, y_test= train_test_split(predictors, target_df,test_size=0.30, random_state=42)svr_reg = SVR(kernel = "rbf")svr_reg.fit(X_train, y_train)svr_reg_train= svr_reg.predict(X_train)print("SVR Train RMSE: %.2f"      % np.sqrt(mean_squared_error(y_train, svr_reg_train)))print("SVR Train R^2 Score: %.2f"      % r2_score(y_train, svr_reg_train))svr_reg_test= svr_reg.predict(X_test)print("SVR Test RMSE: %.2f"      % np.sqrt(mean_squared_error(y_test, svr_reg_test)))print("SVR Test R^2 Score: %.2f"      % r2_score(y_test, svr_reg_test))
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

首先,内核的有效性取决于数据——这就是内置各种选项的原因。当一种选择不起作用时,请随意尝试其他选择。例如,

svr_reg = SVR(kernel="sigmoid")

提高test R^2to 0.35,这与您之前的结果更接近。

我相信该程序没有出错,因为朴素的线性回归产生了test R^2 = 0.058。因此,test R^2 = 0.16径向基函数(rbf)内核确实获得了一些额外的精度。它只是碰巧不太适合数据特征。


查看完整回答
反对 回复 2023-10-05
  • 1 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信