Task02 详读西瓜书+南瓜书第3章 1 基本形式
- 概念:给定由 d d d个属性描述的实例 x = ( x 1 ; x 2 ; … ? ; x d ) x=(x_1; x_2; \dots ; x_d) x=(x1?; x2?; …; xd?),其中 x i x_i xi?是 x x x在第 i i i个属性上的取值,线性模型试图学得一个通过属性的线性组合来进行预测的函数,即 f ( x ) = w 1 x 1 + w 2 x 2 + ? + w d x d + b f(x)=w_1x_1+w_2x_2+\cdot+w_dx_d+b f(x)=w1?x1?+w2?x2?+?+wd?xd?+b
- 一般用向量形式: f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b,其中 w = ( w 1 ; w 2 ; ? ; w d ) w=(w_1; w_2; \cdot; w_d) w=(w1?; w2?; ?; wd?)
- 属性值转换:对离散属性,若属性值之间存在“序关系”,则可以将其转化为连续值;若属性值之间不存在“序关系”,则通常将其转化为向量的形式
- 确定 w w w和 b b b
- 目标:最小化 f ( x ) f(x) f(x)与 y y y均方误差
- 输入属性只有一个(最小二乘法):首先计算出每个样本预测值与真实值之间的误差并求和,通过最小化均方误差MSE,使用求偏导等于零的方法计算出拟合直线 y = w x + b y=wx+b y=wx+b的两个参数 w w w和 b b b。
- 输入属性有多个(多元线性回归):可类似于最小二乘法,将数据集 D D D表示为一个 m × ( d + 1 ) m\times (d+1) m×(d+1)大小的矩阵,再表示为向量形式,最后通过计算 w ^ \hat{w} w^偏导,得到最优解。
- 简写形式: y = w T x + b y=w^Tx+b y=wTx+b
- 广义线性模型: y = g ? 1 ( w T x b ) y=g^{-1}(w^Tx_b) y=g?1(wTxb?),其中 g ( ? ) g(\cdot) g(?)时单调可微函数
- 单位阶跃函数:若预测值 z z z大于零判为正例,小于零判为反例,预测值为临界值零则可任意判别。
- 对数几率函数: y = 1 1 + e ? z y=\frac{1}{1+e^{-z}} y=1+e?z1?
- 概念:若将 y y y看做样本为正例的概率, ( 1 ? y ) (1-y) (1?y)看做样本为反例的概率,则使用线性回归模型的预测结果器逼近真实标记的对数几率
- 思路:使用最大似然估计的方法来计算出 w w w和 b b b两个参数的取值
$\displaystyle \ln \frac{p(y=1 | x)}{p(y=0 | x)}=w^T x + b $
∵ p ( y = 1 ∣ x ) = 1 ? p ( y = 0 ∣ x ) \because p(y=1|x)=1-p(y=0|x) ∵p(y=1∣x)=1?p(y=0∣x)
正例: p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b \displaystyle p(y=1|x) = \frac{e^{w^T x + b}}{1 + e^{w^T x + b}} p(y=1∣x)=1+ewTx+bewTx+b?
负例: p ( y = 0 ∣ x ) = 1 1 + e w T x + b \displaystyle p(y=0|x) = \frac{1}{1 + e^{w^T x + b}} p(y=0∣x)=1+ewTx+b1?
似然函数: ? ( w , b ) = ∑ i = 1 m ln ? p ( y i ∣ x i ; w , b ) \displaystyle \ell(w, b)=\sum_{i=1}^m \ln p(y_i | x_i ; w, b) ?(w,b)=i=1∑m?lnp(yi?∣xi?; w,b),对数变乘为加,即所有样本出现真实值的概率乘积最大。
- 线性判别分析(LDA)基本思想:将训练样本投影到一条直线上,使得同类的样例尽可能近,不同类的样例尽可能远。对新样本进行分类时,投影到同一条直线上,根据投影点的位置确定新样本的类别。
- 具体步骤:
- 给定数据集 D = { ( x i , y i ) } i = 1 m , y i ∈ { 0 , 1 } D=\{(x_i,y_i)\}_{i=1}^m, y_i \in \{0,1\} D={(xi?,yi?)}i=1m?,yi?∈{0,1},令 X i , μ i , Σ i X_i,\mu_i, \Sigma_i Xi?,μi?,Σi?分别表示第 i ∈ { 0 , 1 } i \in \{0,1\} i∈{0,1}类示例的集合、均值向量、协方差矩阵。
- 若将数据投影到直线 w w w上,则两类样本的中心在直线上的投影分别为 w T μ 0 w^T \mu_0 wTμ0?和 w T μ 1 w^T \mu_1 wTμ1?;若将所有样本点都投影到直线上,则两类样本的协方差分别为 w T Σ 0 w w^T \Sigma_0 w wTΣ0?w和 w T Σ 1 w w^T \Sigma_1 w wTΣ1?w。
- 使得各类的协方差之和尽可能小,不同类之间中心的距离尽可能大。
- 计算类内散度矩阵:
- 计算类间散度矩阵:
S b = ( μ 0 ? μ 1 ) ( μ 0 ? μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb?=(μ0??μ1?)(μ0??μ1?)T - 计算LDA最大化的目标函数: J = w T S b w w T S w w J=\frac{w^T S_b w}{w^T S_w w} J=wTSw?wwTSb?w?
- W W W的闭式解是 S w ? 1 S b S_w^{-1}S_b Sw?1?Sb?的 N ? 1 N-1 N?1个最大广义特征值所对应的特征向量组成的矩阵
- 【机器学习|Task02 详读西瓜书+南瓜书第3章】LDA常被视为一种经典的监督降维技术。
- “拆分”策略:将多分类问题拆解为多个二分类问题,训练出多个二分类学习器,最后将多个分类结果进行集成得出结论。
- “一对一”(OvO):给定数据集 D D D,假定其中有 N N N个真实类别,将这 N N N个类别进行两两配对(一个正类/一个反类),从而产生 N ( N ? 1 ) / 2 N(N-1)/2 N(N?1)/2个二分类学习器,在测试阶段,将新样本提交给所有学习器,得出 N ( N ? 1 ) N(N-1) N(N?1)个结果,最终通过投票产生最终的分类结果。
- “一对其余”(OvR):给定数据集 D D D,假定其中有 N N N个真实类别,每次取出一个类作为正类,剩余的所有类别作为一个新的反类,从而产生 N N N个二分类学习器,在测试阶段,得出 N N N个结果,若仅有一个学习器预测为正类,则对应的类标作为最终分类结果。
- “多对多”(MvM):给定数据集 D D D,假定其中有 N N N个真实类别,每次取若干个类作为正类,若干个类作为反类(通过ECOC码给出,编码),若进行了 M M M次划分,则生成了 M M M个二分类学习器,在测试阶段(解码),得出 M M M个结果组成一个新的编码,最终通过将预测编码与每个类别各自的编码进行比较,选择距离最小的类别作为最终分类结果。
- 概念:指分类问题中不同类别的训练样本相差悬殊的情况
- 常用方法:
- 对训练样本较多的类别中进行“欠采样”(undersampling),使得正反例数目接近,常见的算法有:EasyEnsemble。
- 对训练样本较少的类别中进行“过采样”(oversampling),增加较少类的数量,使得正反例数目接近,常见的算法有SMOTE。
- 直接基于原数据集进行学习,对预测值进行“再缩放”处理。其中“再缩放”也是“代价敏感学习”的基础。
y ′ 1 ? y ′ = y 1 ? y × m ? m + = y 1 ? y × cost ( + > ? ) cost ( ? > + ) \frac{y'}{1-y'}=\frac{y}{1-y} \times \frac{m^{-}}{m^{+}} = \frac{y}{1-y} \times \frac{\text{cost} (+>-)}{\text{cost} (->+)}\quad 1?y′y′?=1?yy?×m+m??=1?yy?×cost(?>+)cost(+>?)?
推荐阅读
- 机器学习|机器学习思考题目——05支持向量机(SVM)
- 机器学习|datawhale学习之一西瓜书和南瓜书概论
- python|18 个 Python 编程坏习惯,一定要抛弃哦
- python|使用Python进行压缩与解压缩
- python|5个必知必会的 Python 数据合并技巧
- python|python 三维数组 txt_python(其他语言也可以)如何保存和拼接三维数组()
- OpeenCV(python)|openCV专栏(一)(基础操作)
- Quant|量化分析师的Python日记【Q Quant兵器谱之函数插值】
- OpenCV|opencv3/python 鼠标响应操作