目录
一 什么是线性模型
1.1 定义

1.2 回归和分类的转换

1.3 几何解释
二 线性回归
2.1 定义

2.2 参数学习方法


三 Logistic回归
3.1 定义

3.2 参数学习方法

四 SoftMax回归
4.1 定义

4.2 参数学习方法
同样采用交叉熵损失函数进行参数学习
五 感知机
5.1 定义

5.2 参数学习方法

输入:训练集D,最大迭代次数T
初始化:w_0 <- 0,k <- 0,t <- 0
repeat
对训练集D进行随机打乱
for n=1...N do
选取一个样本(x_n,y_n)
if y_n*w_k*x_n <=0 then
w_k+1 <- w_k+y_n*x_n
k <- k+1
end
t <- t+1
if t=T then
break
end
until t=T
输出:w_k
六 支持向量机
6.1 定义
当训练数据线性可分时,通过硬间隔最大化,可以学习一个线性的分类器,称为线性可分支持向量机或硬间隔支持向量机。
当训练数据近似线性可分时,通过软间隔最大化,也可以学习一个线性的分类器,称为线性支持向量机或软间隔支持向量机。
当训练数据非线性可分时,通过使用核技巧及软间隔最大化,可以学习一个非线性支持向量机。
6.2 核函数和核方法
当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积,通过核函数可以学习非线性支持向量机,其等价于隐式的在高维的特征空间中学习非线性支持向量机。这种方法称为核技巧、核方法。
6.3 参数学习方法

七 Numpy实现代码
7.1 Logistic回归
import numpy as np
# Logistic回归
class LogisticRegression:
def __init__(self, n_iter=200, eta=1e-3, tol=None):
# 训练迭代的次数
self.n_iter = n_iter
# 学习率
self.eta = eta
# 损失函数变化阈值
self.tol = tol
# 模型参数w(训练时初始化)
self.w = None
def _z(self, X, w):
'''g(x)函数: 计算x与w的内积.'''
return np.dot(X, w)
def _sigmoid(self, z):
'''Logistic函数'''
return 1. / (1. + np.exp(-z))
def _predict_proba(self, X, w):
'''h(x)函数: 预测y为1的概率.'''
z = self._z(X, w)
return self._sigmoid(z)
def _loss(self, y, y_proba):
''




1497

被折叠的 条评论
为什么被折叠?



