前言:本文主要是学习《The Elements of Statistical Learning》这本书第二章的心得体会,以及纯python实现,与大家一起分享。
- 对于分类问题,若输出有多类,最常用的是哑变量编码(dummy variabvles),K类经过编码后变成维度为K的二值矢量,仅有一个值为1,其他K-1个值均为0。
- low variance, high variance, low bias, high bias如何理解?
假设样本集为,模型为 , 目的是预测 ,则均方误差MSE为:
线性分类模型假设模型是线性可分的,如果假设不成立,则偏差较大;但是该模型比较稳定,在多个训练集上的预测结果区别较小,即方差较小。
kNN模型没有对模型作假设,总能选取附近的k个点得到的估计,因此偏差较小;但是kNN的边界是扭曲的且不稳定,在多个训练集上的预测结果浮动较大,即方差较大。
- kNN和线性分类模型的自由度。
显然线性分类模型的自由度由输入的维度决定,若维度为p,则自由度为p+1(考虑到截距,否则分类边界始终经过原点)。kNN虽然只有一个参数k,若假设近邻都不重叠,则子区域的个数为N/k(N为样本集大小),每个子区域都需要计算一个参数(即均值),参数数量为N/k,这种情况类似于聚类。原文如下:
It appears that k-nearest-neighbor fits have a single parameter, the number of neighbors k, compared to the p parameters in least-squares fits. Although this is the case, we will see that the effective number of parameters of k-nearest neighbors is N/k and is generally bigger than p, and decreases with increasing k. To get an idea of why, note that if the neighborhoods were nonoverlapping, there would be N/k neighborhoods and we would fit one parameter (a mean) in each neighborhood.
- 贝叶斯误差如何计算(optimal Bayes error rate)
根据定义,贝叶斯误差是在已知概率密度的条件下的最小分类误差,即irreduceable error。
对于两类问题,若每类由单个高斯分布决定,则计算样本属于各类的概率,根据概率大小分类,统计分类错误的比例。若每类由混合高斯决定,计算样本属于各类中每个分布的概率之和,然后比较两类和的大小。
看文献以前觉得这种方法也可行:计算样本属于各分布的概率,根据概率最大的分布所属类别进行分类,然后计算分类错误的比例。经仿真,概率和的方法误差始终低于概率最大的方法,因此前者对应于贝叶斯误差。