1.kernel介绍
机器学习有两个常见问题:1.加权。2.求相似性(距离)。
一般来说,相似性高了权值就大了,但是具体怎么求?
可以用
1.k近邻(距离越近权越大)
2.Nadaraya-Watson估计(距离越远权越大)
f(x) = wTy
其中w是 wii= К(xi,μ)
其中К(xi,μ)是核函数,这里又叫相似函数。也就是求距离的一个方法。这也就是xi和其他x的距离。
讲几个常用的kernel形式:
1.基本高斯kernel:
2.如果∑是对角矩阵那么可以写成:
3.如果对角矩阵上的值都一样那么可以写成:
4.
这个经常用在NLP里,xi在里面表示一个向量,向量里的元素xij表示里第j个word在i篇出现的次数,这样效果其实不好。很多词没有区分度,后来我们就用TF-IDF(一个上面这个算法的优化)做这个。
2.怎么学kernel
-Maximizing likelihood(最大似然估计)
-MKL (multiple kernel learning)
К(x,x’) = ∑jwjКj(x,x’)
Кj(x,x’) 是一个第j个小kernel,咱们要用的是加权结果К(x,x’) 。
-Adaptive basis function model (ABM)
这个式子里咱们要学的是w0和Φ我们都要学。
3.代码
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 19 22:26:36 2020
@author: 13056
"""
from sklearn import svm,datasets
import numpy as np
import matplotlib.pyplot as plt
iris = datasets.load_iris