# 开发者:董书雄
# 开发时间:2022-12-01 22:19
# 开发内容:{}
# 开发者:董书雄
# 开发时间:2022-11-13 23:33
# 开发内容:{}
import numpy as np
from sklearn.model_selection import train_test_split
import pandas as pd
import joblib
from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn import metrics, ensemble
from catboost import CatBoostRegressor # 调用模型
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.gaussian_process.kernels import RBF, ConstantKernel as C
pd.set_option('display.max_columns', None) # 结果显示所有列
pd.set_option('display.max_rows', None) # 结果显示所行行
# 1:TGAN合成数据的训练效果
# data1 = pd.read_csv('traindata928.csv')
# data2 = pd.read_csv('testdata.csv')
# 2:纯原数据232个的训练效果
data2 = pd.read_csv('testdata.csv')
data1, data2 = train_test_split(data2, test_size=0.3)
print(data1)
print(data2)
# 记得把测试和训练数据集的特征第一行特征整一样!
# print(data1,type(data1))
x_train = data1.iloc[:, 0:9]
y_train = data1.iloc[:, 9]
x_test = data2.iloc[:, 0:9]
y_test = data2.iloc[:, 9]
X = pd.concat([x_train, x_test])
Y = pd.concat([y_train, y_test])
col = data1.columns[:-1]
# print(X)
# print(x_train)
# 训练模型
kernel = C(10, (0.1, 0.1)) * RBF(0.5, (1e-4, 10))
rfmodel = GaussianProcessRegressor(kernel=kernel, n_restarts_optimizer=5, alpha=0.05
) #
rfmodel.fit(x_train, y_train)
# 模型预测
joblib.dump(rfmodel, 'rffinal.model')
rfmodel = joblib.load('rffinal.model')
rf_predict_test = rfmodel.predict(x_test)
rf_predict_train = rfmodel.predict(x_train)
rf_predict_all = rfmodel.predict(X)
rf_error = rf_predict_test - y_test
# 计算性能指标
rf_R2_rtrain = metrics.r2_score(y_train, rf_predict_train)
rf_R2_rtest = metrics.r2_score(y_test, rf_predict_test)
rf_R2_rall = metrics.r2_score(Y, rf_predict_all)
rf_RMSE_train = metrics.mean_squared_error(y_train, rf_predict_train) ** 0.5
rf_RMSE_test = metrics.mean_squared_error(y_test, rf_predict_test) ** 0.5
rf_RMSE_all = metrics.mean_squared_error(Y, rf_predict_all) ** 0.5
rf_MAPE_train = metrics.mean_absolute_percentage_error(y_train, rf_predict_train)
rf_MAPE_test = metrics.mean_absolute_percentage_error(y_test, rf_predict_test)
rf_MAPE_all = metrics.mean_absolute_percentage_error(Y, rf_predict_all)
rf_performance = (rf_R2_rtrain, rf_R2_rtest, rf_R2_rall, rf_RMSE_train,
rf_RMSE_test, rf_RMSE_all, rf_MAPE_train, rf_MAPE_test, rf_MAPE_all)
# 绘图数据
data_array = np.array(rf_predict_test)
rf_predict_test = data_array.tolist()
data_array = np.array(rf_predict_all)
rf_predict_all= data_array.tolist()
print('y_test=', y_test)
print('rf_predict_test: %0.3f', rf_predict_test, type(rf_predict_test))
print('Y=', Y)
print('rf_predict_all=', rf_predict_all)
print('rf_R2_rtrain=', rf_R2_rtrain)
print('rf_R2_rtest=', rf_R2_rtest)
print('rf_R2_rall=', rf_R2_rall)
print('rf_RMSE_train=', rf_RMSE_train)
print('rf_RMSE_test=', rf_RMSE_test)
print('rf_RMSE_all=', rf_RMSE_all)
print('rf_MAPE_train=', rf_MAPE_train)
print('rf_MAPE_test=', rf_MAPE_test)
print('rf_MAPE_all=', rf_MAPE_all)
#plt.scatter(Y, rf_predict_all, )
#plt.show()
没有合适的资源?快使用搜索试试~ 我知道了~
机器学习模型+高斯过程回归(GPR)+greadsearchCV+源码
共2个文件
py:2个
需积分: 5 1 下载量 158 浏览量
2024-03-15
15:28:04
上传
评论
收藏 2KB ZIP 举报
温馨提示
该代码是基于材料参数预测材料性能的项目的源码,可用于学习材料参数与材料性能之间的映射关系,建立材料性能预测模型,以及利用网格搜索算法的超参数调优,附上源码与完整的代码注释。(售后服务加V:Baobabp)(材料学科or土木学科or电力均可使用)
资源推荐
资源详情
资源评论
收起资源包目录
GPR+greadsearchCV.zip (2个子文件)
GPR+greadsearchCV
GPR超参数调优.py 1KB
GPR.py 3KB
共 2 条
- 1
资源评论
智能提桶工程师
- 粉丝: 251
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功