逻辑回归公式
sigmoid函数g(z)
过点:(0, 0.5)
映射区间:(负无穷, 正无穷) -> (0, 1)
e 是常数 2.71828…
逻辑回归的损失函数
对数似然损失函数
完整的损失函数
cost 损失值越小,那么预测的类别准确度更高
逻辑回归
线性回归的式子作为逻辑回归的输入
逻辑回归的损失函数,优化
与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解
算法 策略 优化
逻辑回归 对数似然损失 梯度下降
损失函数(梯度下降求解)
-均方误差(不存在多个局部最低点,只有一个最小值)
-对数似然损失(多个局部最小值)
-1、多次随机初始化,多次比较最小值结果
-2、求解过程中,调整学习率,劲量改善
-3、尽管没有全局最低点,但是效果都是不错的
逻辑回归,属于1的概率值
哪个类别少,判定概率值是指的这个类别
恶性 正例
良性 反例
逻辑回归应用
广告点击率预测,是否患病,金融诈骗,是否为虚假账号
优点:适合需要得到一个分类概率的场景,简单速度快
缺点:不好处理多分类问题
softmax方法,逻辑回归在多分类问题上的推广
区别
判别模型:K-近邻,决策树,随机森林,神经网络
生成模型:隐马尔科夫模型
代码示例
# -*- coding: utf-8 -*- from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import StandardScaler from sklearn.metrics import classification_report # 加载数据 breast = load_breast_cancer() # 数据拆分 X_train, X_test, y_train, y_test = train_test_split( breast.data, breast.target) # 数据标准化 std = StandardScaler() X_train = std.fit_transform(X_train) X_test = std.transform(X_test) # 训练预测 lg = LogisticRegression() lg.fit(X_train, y_train) y_predict = lg.predict(X_test) # 查看训练准确度和预测报告 print(lg.score(X_test, y_test)) print(classification_report( y_test, y_predict, labels=[0, 1], target_names=["良性", "恶性"])) """ 0.958041958041958 precision recall f1-score support 良性 0.98 0.90 0.93 48 恶性 0.95 0.99 0.97 95 avg / total 0.96 0.96 0.96 143 """