机器学习笔记 (2)-逻辑回归模型

来源:互联网 发布:网络犯罪举报中心 编辑:程序博客网 时间:2024/04/30 15:39

参考资料

  • 《机器学习》-周志华
  • 《统计学习方法》-李航
  • 《斯坦福大学2014机器学习教程个人笔记》-黄海广
  • 《寒小阳机器学习讲义》-寒小阳

摘要

机器学习包含监督学习、非监督学习、以及强化学习三大部分。监督学习又分为分类和回归两大类。Logistic回归模型就属于监督学习里的分类模型

正文

1. 问题的引入

在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈等等。
我们从二元的分类问题开始讨论

2.逻辑回归的定义

2.1 定义:
hθ(x)=g(θ0+θ1.x1+θ2.x2+...+θn.xn)=11+expz
其中z=θ0+θ1.x1+θ2.x2+...+θn.xn
向量化表示为为:
hθ(x)=11+expθT.x

2.2 判定边界
* z = 0时,g(z) =0.5
* z > 0时,g(z) >0.5
* z < 0时,g(z) <0.5

3.激活函数Sigmod函数

3.1 激活函数的定义:
f(x)=11+expx

3.2 激活函数的图像
激活函数的图像

4.损失函数

4.1 不用最小二乘定义损失函数的原因:
J(θ)=1mmi=112{hθ(xi)yi}2
对应的图像为:
非凸函数

由上图知,最小二乘定义的损失函数不为凸函数,不易于数学计算。因此不用最小二乘定义的损失函数。

4.2 逻辑回归对应的损失函数:
损失函数的公式
该损失函数为凸函数

损失函数向量化为:
总体损失函数

4.3正则化后的损失函数为:
正则化后的损失函数
正则化的目的:防止数据过拟合

4.4 损失函数对应的图像
损失函数对应的图像

5. 梯度下降算法

5.1 梯度下降算法求损失函数的极小值
即对损失函数正则化后的损失函数,通过梯度下降算法求极小值。即:
梯度下降算法对应的公式

5.2 算法的伪代码表述:
算法的伪代码表述

6. 多分类问题

利用二分类器进行多分类
* one vs one
利用二分类器对其中的两个类别进行训练,需要训练出 n.(n-1) 个分类器,然后选择投票数最多的类别作为整个模型最终预测的类别。

  • one vs rest
    在一对多方法中,我们将多类分类问题转化成二元分类问题。为了能实现这样的转变,我们将多个类中的一个类标记为正向类(y=1),然后将其他所有类都标记为负向类。
    最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。

7.主要代码实现:

代码下载

#导入依赖模块import pandas as pdimport numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import minimizefrom sklearn.preprocessing import PolynomialFeatures%matplotlib inline#定义sigmoid激活函数def sigmoid(z):    return(1 / (1 + np.exp(-z)))#定义损失函数def costFunction(theta, X, y):    m = y.size    h = sigmoid(X.dot(theta))    J = -1.0*(1.0/m)*(np.log(h).T.dot(y)+np.log(1-h).T.dot(1-y))    if np.isnan(J[0]):        return(np.inf)    return J[0]#梯度函数def gradient(theta, X, y):    m = y.size    h = sigmoid(X.dot(theta.reshape(-1,1)))    grad =(1.0/m)*X.T.dot(h-y)    return(grad.flatten())# 最小化损失函数res = minimize(costFunction, initial_theta, args=(X,y), jac=gradient, options={'maxiter':400})

总结:

  • LR模型可解释性强,可控度高
  • 训练快,进行合适的特征工程之后效果很好
    结果为概率,可以用于做排名
  • 添加feature简单
  • 常作为系统的基线模型

本章代码下载 https://github.com/yanwosky4/MLNotebookProject/tree/master/note2-LogisticModel/code
邮箱: yanwosky4@gmail.com
github地址: https://github.com/yanwosky4 ,欢迎Star

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 洗澡桶 家用洗澡桶 橡木洗澡桶 熏蒸沐浴桶 泡澡沐浴桶 木桶足浴桶 可折叠洗澡桶 沐浴桶儿童 沐浴桶尺寸 宝宝沐浴桶 沐浴桶塑料袋 沐浴桶安装 浴室玻璃隔断 浴室隔断玻璃门 浴室隔断效果图 浴室柜龙头 复古卫浴 脸盆龙头 折叠洗脸盆 婴儿脸盆 陶瓷洗脸盆 卫浴脸盆 木桶花瓣浴 婴儿沐浴乳 酸性沐浴液 泰迪狗狗沐浴液 舒肤佳沐浴液价格 新生儿沐浴液 沐浴液可以洗头发吗 儿童沐浴液排行 多芬沐浴液价格 一次性沐浴液 沐浴液哪个牌子好 沐浴液什么牌子好 婴儿沐浴液什么牌子好 两面针沐浴液 可悠然沐浴液 沐浴液怎么用 沐浴液 香皂 雪纳瑞沐浴液 猫沐浴液