python - 为 SVR 回归模型寻找 pvalue、r 和调整后的 r^2
问题描述
我想使用支持向量回归 (SVR) 进行回归,因为当我有几个功能时它看起来非常强大。当我在 scikit-learn 中找到一个非常易于使用的实现时,我正在使用该实现。我下面的问题特别是关于这个 python 包的,但是如果你有任何其他语言或包的解决方案,也请告诉我。
所以,我正在使用以下代码:
from sklearn.svm import SVR
from sklearn.model_selection import cross_validate
from sklearn.model_selection import KFold
svr_rbf = SVR(kernel='rbf')
scoring = ['neg_mean_absolute_error', 'neg_mean_squared_error', 'r2']
scores = cross_validate(estimator, X, y, cv=KFold(10, shuffle=True), scoring=scoring, return_train_score=False)
score = -1 * scores['test_neg_mean_absolute_error']
print("MAE: %.4f (%.4f)" % (score.mean(), score.std()))
score = -1 * scores['test_neg_mean_squared_error']
print("MSE: %.4f (%.4f)" % (score.mean(), score.std()))
score = scores['test_r2']
print("R^2: %.4f (%.4f)" % (score.mean(), score.std()))
正如你所看到的,我可以很容易地使用 10 折交叉验证,方法是将我的数据分成 10 次打乱的折叠,并且非常容易地获得每个折叠的所有 MAE、MSE 和 r^2。
但是,我的大问题是如何专门为我的 SVR 回归模型获取 pvalue、r 和调整后的 r^2,就像我在其他 python 包中找到的一样,包括用于线性回归的statsmodels ?
我想我必须自己实现与 KFold 的交叉验证才能实现这一点,但我认为这不是一个大问题。问题是我不确定如何从 sklearn 的 SVR 实现中获得这些分数。
解决方案
推荐阅读
- html-framework-7 - Framework7 向 html 传递数据
- c# - 从 C# 中从数组中返回奇数的函数返回的行尾删除逗号
- ruby-on-rails - 当我有两个多对多关联时,如何设置我的控制器和视图?
- angular - Custom filter in server driven datagrid submits component instead of expected value
- powershell - powershell 消息依赖于多个数组匹配
- django - 使用 django-auth-ldap 绑定到 Active Directory
- python - 尝试将目录列表输出到 csv 文件
- c# - 单个 .net 进程的内存限制为大约 2.5 GB
- sql - Jmeter JDBC 配置元素选项
- android - 如何使用电子邮件身份验证的详细信息登录 Firebase