K近邻
$k$近邻是最简单的分类算法了,对于一个实例$x$,找到它最近的邻居,根据邻居的类标来进行一个投票。 对于找到k近邻而言,对每个点采用暴力遍历,取前k个最小的即可。然后进行投票。 代码如下:k_nearest_neighbours 产生的决策面如下所示: 对于最近邻,可能暴力搜索会造成过高的耗时,为了减少这种耗时,采用了一种叫做KD树的数据结构。思想是将空间进行划分,拿二维平面举例:首先按照某个轴
$k$近邻是最简单的分类算法了,对于一个实例$x$,找到它最近的邻居,根据邻居的类标来进行一个投票。 对于找到k近邻而言,对每个点采用暴力遍历,取前k个最小的即可。然后进行投票。 代码如下:k_nearest_neighbours 产生的决策面如下所示: 对于最近邻,可能暴力搜索会造成过高的耗时,为了减少这种耗时,采用了一种叫做KD树的数据结构。思想是将空间进行划分,拿二维平面举例:首先按照某个轴
Linear Regression with Elastic Net线性回归线性回归最简单的形式为$$y = wx$$ 损失函数为$$L(y,x;w) = \frac{1}{2n}\sum_{i}||y_i - w^Tx_i||_2^2$$ 这个问题可以直接求解,令梯度为0,得到$$w = (X^TX)^{-1}X^Ty$$ 但是通常来说$(X^TX)$不是满秩的,数值计算上会有问题,将会有无穷多