【【sklearn非线性回归预测】交叉验证评估与调参非线性回归预测】交叉验证评估与调参
交叉验证调参与交叉验证评估的区别与使用交叉验证调参与交叉验证评估的区别与使用
什么是交叉验证什么是交叉验证
交叉验证原理
交叉验证原理与常用方法
scikitlearn交叉验证评估
交叉验证:评估估算器的表现
在交叉验证中数据集一般可以分为训练集和测试集,其
中训练集的某一折用于作为验证集,这样有利于充分利用数据,但是同样提升了计算量。交叉验证的使用往往时代码运行缓慢。
交叉验证的作用交叉验证的作用
交叉验证一方面可以用于调整超参数,也即是通过反复的交叉训练,找到模型最优的超参数,比如使用网格搜索GridSearchCV()。另一方面用于评估模型在数据集上的表现,比如
cross_val_score()。
交叉验证评估: 针对在训练集上训练得到的模型表现良好,但在测试集的预测结果不理想,即模型出现过拟合(overfitting),偏差(bias)低而方差(variance)高,泛化能力差的情况。也
就是说交叉验证用于评估模型的预测性能。此外,也可以用于从有限数据中获取尽可能多的有效信息。
实际使用方法实际使用方法
交叉验证评估交叉验证评估
在针对回归问题上,我们首先需要确定选用的模型,如何确定哪个模型更好?,便可以采用交叉验证评估的方法选取评分较高且稳定的模型。如下图所示,针对不同的模型采用6折
交叉验证评分。针对每个模型的每次训练给出了一个评分,6折也就是每个模型6个评分。
可见BayesianRidge,GBR, XGBR模型的评分较高且比较稳定,因此可以选用这三个模型以进行更进一步的选择。
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 4 10:49:07 2020
@author: 85845
"""
import numpy as np
import dataprocess as dp # 自己写的数据预处理的模块
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import
BayesianRidge, LinearRegression, ElasticNet
from sklearn.svm import SVR
from sklearn.ensemble.gradient_boosting
import GradientBoostingRegressor
import xgboost as xgb
from sklearn.model_selection import
cross_val_score
from sklearn.metrics import
explained_variance_score, mean_absolute_error, mean_squared_error, r2_score
# 评估指标介绍https://www.cnblogs.com/mdevelopment/p/9456486.html
# EV: 解释回归模型的方差得分,[0,1],接近1说明自变量越能解释因变量的方差变化
# MAE: 平均绝对误差,评估预测结果和真实数据集的接近程度的程度,越小越好
# MSE: 均方差,
计算拟合数据和原始数据对应样本点的误差的平方和的均值,越小越好
评论0