集成学习3
文章目录
1. 什么是偏差和方差
偏差是指预测结果与真实值之间的差异,排除噪声的影响,偏差更多的是针对某个模型输出的样本误差,偏差是模型无法准确表达数据关系导致,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型。
模型方差不是针对某一个模型输出样本进行判定,而是指多个(次)模型输出的结果之间的离散差异,注意这里写的是多个模型或者多次模型,即不同模型或同一模型不同时间的输出结果方差较大,方差是由训练集的数据不够导致,一方面量 (数据量) 不够,有限的数据集过度训练导致模型复杂,另一方面质(样本质量)不行,测试集中的数据分布未在训练集中,导致每次抽样训练模型时,每次模型参数不同,输出的结果都无法准确的预测出正确结果;
2. 偏差,方差 和误差的关系
Error = Bias + Variance
Error反映的是整个模型的准确度,
Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,
Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。
3. 如果使用pca降维前是一个三维的椭球,那么把该图形降维成二维是一个什么样的图形?
椭圆形或者圆形
4. 尝试使用sklearn,对一组数据先进行特征的简化(使用三种方式),再使用回归模型,最后使用网格搜索调参,观察三种方法的优劣。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 用来正常显示中文标签,用来正常显示负号
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
import seaborn as sns
from scipy import stats
import warnings
warnings.filterwarnings('ignore')
%matplotlib inline
from sklearn.datasets import load_boston
boston = load_boston()
x = boston["data"]
y = boston["target"]
names = boston["feature_names"]
# 标准化
from sklearn.preprocessing import StandardScaler
sd = StandardScaler()
x_ = sd.fit_transform(x)
# 删除低方差
from sklearn.feature_selection import VarianceThreshold
var = VarianceThreshold(threshold=1.0)
x_= var.fit_transform(x)
# PCA 降维
from sklearn.decomposition import PCA
pca = PCA(n_components="mle") # int, float, "mle"
x_ = pca.fit_transform(x)