Machine learning Large margin classification
和常规 SVM 理解不同
看的教材也好,参考文章也罢,都是从最大化间隔 2||ω||2 出发,然后提出优化目标,一通复杂的数学后得出了:
minw,bm∑i=1max(0,1−yi(ωT∗ϕ(xi)+b)+2λ||ω2||)Ng 的思路刚好相反,从 logistic 和 hingo 铰链函数的相似性出发,并交换了正则化(由λ到C,C=1/λ),并在约束条件下,可以得到等价的优化目标:
\underset{\theta}{min}\sum_{j=1}^{m}\theta_{j}^{2} \\ st. x^{T}\theta_{i} \geq 1,when \ y_{i}&=1\ and \ x^{T}\theta_{i} \leq 1,when \ y_{i}=0 \end{align*}然后从内积(xTθi)和欧式距离summj=1θ2j的物理意义,即来直观理解SVM是如何选择决策边界的. $$
kernel
kernel 的理解,比如高斯核
函数:
表示 xi,xj 的相似程度,相同为 1,越不同,越接近 0,也就是对一个原来样本的一个点 xi,通过 kernel 函数映射了 n 维一个向量,每个向量的长度为样本的总长度 n,(由原特征空间维度 m 变成样本空间长度 n)
f=[f1,f2,...fn],where fi=exp(||xi−xj||2/σ2)另外 n 是可以取无穷维的,这就是维度映射的概念.
从数学公式角度,exp 函数可以用泰勒公式
展开,也就是背后的数学原理.
线性核
就是没有使用核函数的结果.
参数选择
C 越大,λ越小,过拟合(high variance)
C 越小,λ越大,欠拟合(high bias)
σ越小,f 变化越陡峭,过拟合(high variance)
σ越大,f 变化越平缓,欠拟合(high bias)
K 分类 SVM
和 logistic regression 相似,用 onevsall 的思想,把 1 个多分类,变成 n 个 2 元分类,保留每次正分类的结果(概率),最后比较谁最大就好了。
如何选择 ls 和 svm 算法
样本数为 m,特征维度为 n
n » m 时,lr or svm without kernel;
n 很小,m>n,一般般大,svm with gaussian kernel better;
m»n,lr or svm without kernel;
垃圾邮件分类的特征工程
email 如何做特征工程?
- 去掉异常符号标点;
- 将变化的网址,价格等用不变的量表示如 emailaddr dollar;
- 单词 stem 化 如 discouts discounted discounting 统一为 discount;
最后的 test 里选取频率最高的(比如 2000)个单词作为特征,然后将每个 email 样本转化为 [0 1 0 0 1 0 0 1…]这样的向量。
gaussian kernel 处理之。
Gitalking ...