模型误差包含模型方差、模型偏差以及不可约误差;
我们希望模型具有低偏差和低方差,但是一般情况下一个值的缩小会导致另一个值的增大;
如何将均方误差分解成模型的偏差和方差。
教程综述
偏差、方差和不可约误差;
偏差-方差权衡;
计算偏差和方差。
偏差、方差和不可约误差
误差(模型)
误差(模型)= 方差(模型)+ 偏差(模型)+ 方差(不可约误差)
模型偏差
低偏差:关于对输入到输出映射函数形式的弱假设。
高偏差:关于对输入到输出映射函数形式的强假设。
模型方差
低方差:训练数据集的变化对于模型来说影响很小。
高方差:训练数据集的变化对于模型来说影响很大。
不可约误差
模型误差 = 可约误差 + 不可约误差
偏差-方差的权衡
计算偏差和方差
sudo pip install mlxtend
下面这个例子是直接通过URL载入波士顿房价数据集,划分为训练集和测试集,然后估计出对于线性回归的均方根误差(MSE),以及采用200次自采样所获得的偏差和方差模型误差。
#estimate the bias and variance for a regression modelfrompandas import read_csvfromsklearn.model_selection import train_test_splitfromsklearn.linear_model import LinearRegressionfrommlxtend.evaluate import bias_variance_decomp#load dataseturl ='https://raw.githubusercontent.com/jbrownlee/Datasets/master/housing.csv'dataframe= read_csv(url, header=None)#separate into inputs and outputsdata= dataframe.valuesX, y= data[:, :-1], data[:, -1]#split the dataX_train,X_test, y_train, y_test = train_test_split(X, y, test_size=0.33,random_state=1)#define the modelmodel= LinearRegression()#estimate bias and variancemse,bias, var = bias_variance_decomp(model, X_train, y_train, X_test, y_test,loss='mse', num_rounds=200, random_seed=1)#summarize resultsprint('MSE:%.3f' % mse)print('Bias:%.3f' % bias)print('Variance:%.3f' % var)MSE:22.487Bias:20.726Variance:1.761
深入了解
教程
书籍
文章
总结
模型误差包含模型方差、模型偏差以及不可约误差。
我们寻求具有低偏差和低方差的模型,但是一般情况下一个值的缩小会导致另一个值的增大。
如何将均方误差分解成模型的偏差和方差。
译者简介:吴振东,法国洛林大学计算机与决策专业硕士。现从事人工智能和大数据相关工作,以成为数据科学家为终生奋斗目标。来自山东济南,不会开挖掘机,但写得了Java、Python和PPT。
29.8122
2
0
关注作者
收藏
发表评论
暂无数据

