逻辑回归

逻辑回归

是一种广义线性回归模型,是分类算法而不是一个回归算法。它是根据已知的一系列因变量估计离散数值(比方说二进制数值 0 或 1 ,是或否,真或假)。y=f(x∗w+b)y=f(x∗w+b)
其中w是训练得到的权重参数(Weight);x是样本特征数据;b是偏置(Bias),f成为激活函数。
简单来说,它通过将数据拟合进一个逻辑函数来预估一个事件出现的概率。因此,它也被叫做逻辑回归。因为它预估的是概率,所以它的输出值大小在 0 和 1 之间(正如所预计的一样)。

  • 应用场景:
    1.CR预估、推荐排序
    2.信评分
    3.大规模在线学习

重要概念

  • 1.Sigmoid函数
    sigmoid(x)=1/(1+e^{z))
    2.二分类:在逻辑回归的基础上,判断分类概率是否大于0.5,大于则属于这个分类。
    y= 1,f(xw+b) ≥ 0.5
    y=−1,f(xw+b)<0.5
  • 参数求解方法:最大似然估计(每个样本预测结果二值化输出较大概率的乘积)
  • 损失函数cost:似然函数取对数。损失最小化->参数估计时优化的目标。常用方法梯度下降法
  • 正则化
    L1:λ/2m*(|x1|+|x2|+…+|xn|)
    L2:λ/2m*( ∣ x 1 ∣ |x1| x12+$|x2|$2+…+ ∣ x n ∣ |xn| xn^2)
    m是样本总个数,n是正则化后选择参数的个数,x参数越多惩罚越厉害,模型欠拟合
  • 回归模型重要参数

在这里插入图片描述

例子学习

意大利三种酒的分类数据(http://archive.ics.uci.edu/ml/index.php),包含了13种不同的酒的属性,共分成3类,分别标记为“1”、“2”、“3”。每行为一个样本数据,第一列为酒的种类,后13列为酒的属性,一共178个样本。

import scipy as sp
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn import metrics
from sklearn.linear_model import LogisticRegression

x=np.loadtxt('D:\\MyData\\Desktop\\winequality-red.txt' , delimiter = "," , usecols=(1,2,3,4,5,6,7,8,9,10,11,12,13) )      #获取属性集
y=np.loadtxt('D:\\MyData\\Desktop\\winequality-red.txt', delimiter = "," , usecols=(0))                                  #获取标签集

# 加载数据集,切分数据集80%训练,20%测试
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)         #切分数据集
#调用逻辑斯特回归
model = LogisticRegression()
model.fit(x_train, y_train)
# 预测
expected = y_test                       #测试样本的期望输出
predicted = model.predict(x_test)       #测试样本预测
#输出结果
print('Coefficient: n', model.coef_) #输出三种类别的logistics回归系数
print('Intercept: n', model.intercept_) #输出三种类别的logistics回归截距
print(metrics.classification_report(expected, predicted))       #输出结果,精确度、召回率、f-1分数
print(metrics.confusion_matrix(expected, predicted))            #混淆矩阵

结果:
Coefficient: n [[-4.5e-01 6.7e-01 9.9e-01 -5.6e-01-2.5e-02 9.0e-02 1.3e+00 9.3e-02 -3.9e-01 -1.4e-01 -1.7e-01 5.8e-01 1.5e-02]
[ 9.1e-01 -9.7e-01 -9.8e-01 1.9e-01 6.7e-03 8.6e-01 4.5e-01 2.9e-01
5.7e-01 -1.7e+00 8.2e-01 1.9e-01 -1.5e-02]
[-4.1e-01 4.07e-01 1.3e-01 1.7e-01 2.4e-02 -7.8e-01 -1.7e+00 -7.3e-02
-6.6e-01 1.06e+00 -4.7e-01 -1.2e+00 -5.8e-06]]

Intercept: n [-0.30550987 0.35785443 -0.06918921]

precision recall f1-score support
1.0 1.00 1.00 1.00 12
2.0 1.00 0.92 0.96 13
3.0 0.92 1.00 0.96 11

avg / total 0.97 0.97 0.97 36

[[12 0 0]
[ 0 12 1]
[ 0 0 11]]

  • 优点:
    1.算法简单、训练速度快
    2.模型可解析性好(线性可加)
    3.深度神经网络的基础
  • 缺点
    模型精度一般,容易欠拟合
  • 改进
    加入交互项
    精简模型特性
    使用正则化方法
    使用非线性模型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值