SVR Demo

用Python Sklearn包构建SVR模型。

from __future__ import division
import time
import pandas as pd
import numpy as np
from sklearn.svm import SVR
from sklearn import metrics
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import learning_curve
import matplotlib.pyplot as plt
#############################################################################
# 数据集
X=pd.read_csv('X8.csv')
data_y=pd.read_csv('y8.csv')
Y=np.ravel(data_y)

X_test=pd.read_csv('X8_test.csv')
data_y_test=pd.read_csv('y8_test.csv')
Y_test=np.ravel(data_y_test)
#############################################################################
# 训练SVR模型
# 训练规模
train_size = 99
# 初始化SVR
svr = GridSearchCV(SVR(kernel='rbf', gamma=0.1), cv=5,
                   param_grid={"C": [1e0, 1e1, 1e2, 1e3],
                               "gamma": np.logspace(-2, 2, 5)})
# 记录训练时间
t0 = time.time()
# 训练
svr.fit(X[:train_size], Y[:train_size])
svr_fit = time.time() - t0
t0 = time.time()
# 测试
y_svr = svr.predict(X_test)
svr_predict = time.time() - t0
print(y_svr)
print(Y_test)
print("RMSE:", np.sqrt(metrics.mean_squared_error(Y_test, y_svr)))


##############################################################################
################################################################################
# 对学习过程进行可视化
plt.figure()

svr = SVR(kernel='rbf', C=1e1, gamma=0.1)
train_sizes, train_scores_svr, test_scores_svr = \
    learning_curve(svr, X[:98], Y[:98], train_sizes=np.linspace(0.1, 1, 10),
                   scoring="neg_mean_squared_error", cv=10)

plt.plot(train_sizes, -test_scores_svr.mean(1), 'o-', color="r",
         label="SVR")

plt.xlabel("Train size")
plt.ylabel("Mean Squared Error")
plt.title('Learning curves')
plt.legend(loc="best")
plt.show()

#ROC曲线
plt.figure()
plt.plot(range(len(y_svr)),y_svr,'b',label="predict")
plt.plot(range(len(Y_test)),Y_test,'r',label="test")
plt.legend(loc="upper right")
plt.xlabel("the number of samples")
plt.ylabel("value of adsorption energy")
plt.show()

#优化

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值