1,逻辑回归介绍

逻辑回归:分类模型
应用场景:广告点击率、是否垃圾邮件
逻辑回归主要用于解决二分类问题

输入:

逻辑回归的输入:线性回归的结果
激活函数:sigmoid函数

回归的结果输入到sigmoid函数中
输出结果:[0,1]区间中的一个概率值,默认为0.5为阈值

输出结果解释:假设AB两类,A是正类,则输出结果是属于A类的概率值,如果大于0.5,则说明属于A类,否则属于B类。也可以自己设定阈值(不是0.5,选0.6,0.4都可)

衡量预测概率----对数似然损失

损失函数
分开写:

完整写:

优化:使用梯度下降法进行优化

2,逻辑回归api介绍

sklearn.linear_model.LogisticRegression(solve=‘liblinear’,penalty=‘l2’,C=1.0)
solve可选(‘liblinear’,‘sag’,‘saga’,‘newton-cg’,‘lbfgs’)
小数据集—‘liblinear’;小数据集—‘sag’,‘saga’
penalty ----正则化的种类
C---- 正则化力度

3,案例:癌症分类预测-良/恶性乳腺癌肿瘤预测

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import standardScaler
from sklearn.linear_model import LogisticRegression
#1.获取数据
data = pd.read_csv("data")
data.head()#2.数据处理
#2.1缺失值处理
data = data.replace(to_replace="?",value=np.nan)
data = data.dropna()
#2.2确定特征值,目标值
data.head()
x = data.iloc[:,1:-1]
x.head()
y = data['Class']
y.head()
#2.3分割数据
x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=22,test_size=0.2)
#3,特征工程
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.fit_transform(x_test)
#4,逻辑回归
estimator = LogisticRegression()
estimator.fit(x_train,y_train)
#5,模型评估
#5.1准确率
ret = estimator.score(x_test,y_test)
print('准确率:\n',ret)
#5.2预测值
y_pre = estimator.predict(x_test)
print('预测值:\n',y_pre)

4,分类评估方法

混淆矩阵:

准确率:(TP+TN)/(TP+FP+FP+TN)
精确率:TP/(TP+FP) —针对预测为真的数据中
召回率:TP/(TP+FN)—针对真实结果中
F1 =2TP/(2TP+FN+FP)

4.1分类评估报告API

sklearn.metrics.classification_report(y_true,y_pred,labels=[],target_names=None)

#5.3精确率、召回率指标评价
ret = classification_report(y_test,y_pre,labels=(2,4),target_names=('良性','恶性'))
print(ret)


precision–精确率
recall —召回率
f1-score —f1值

TPR= TP/(TP+FN)–所有真实类别为1的样本中,预测类别为1的比例
FPR = FP/(FP+TN)–所有真实类别为0的样本中,预测类别为1的比例

#5.4AUC指标计算
y_test = np.where(y_test>3,1,0)
roc_auc_score(y_test,y_pre)

auc只能用于计算二分类问题

5,ROC曲线的绘制

ROC曲线中:FPR横坐标,TPR纵坐标
AUC指标即ROC曲线下的面积。AUC曲线越接近1,模型越优

6、分类中解决类别不平衡问题

l类别不平衡问题:即有的类别中数据量大,有的类别中数据量小
处理方法:
1,欠采样方法–减少数量较多的那一类样本的数量,使得正负样本比例均衡
2,过采样方法–增加数量较小的那一类样本的数量,使得正负样本比例均衡

过采样:
随机过采样:通过复制粘贴增加样本量较小的类RandomOverSampler–可能会造成过拟合
Smoth过采样:找两点连线,找中间的点

欠采样:
随机欠采样:RandomUnderSampler
可能会造成信息的缺失

人工智能-逻辑回归、分类评估方法、ROC曲线、类别不平衡相关推荐

  1. 理解逻辑回归中的ROC曲线和KS值

    1.回归和分类任务 分类和回归都属于监督学习(训练样本带有信息标记,利用已有的训练样本信息学习数据的规律预测未知的新样本标签) 分类预测的结果是离散的(例如预测明天天气-阴,晴,雨) 回归预测的任务是 ...

  2. python 多分类 recall_python实现二分类和多分类的ROC曲线教程

    基本概念 precision:预测为对的当中,原本为对的比例(越大越好,1为理想状态) recall:原本为对的当中,预测为对的比例(越大越好,1为理想状态) F-measure:F度量是对准确率和召 ...

  3. 数据挖掘—逻辑回归分类—信用卡欺诈分析

    文章目录 1.分析目的: 2.掌握要点: 3.构建逻辑回归分类器 4.模型评估指标 5.精确度和召回率(不平衡数据衡量指标) 6.案例分析: 1.分析目的: 信用卡欺诈的危害性大,如何通过遗忘的交易数 ...

  4. 树模型与线性模型的区别 决策树分类和逻辑回归分类的区别 【总结】

    树模型与线性模型的区别在于: (一)树模型 ①树模型产生可视化的分类规则,可以通过图表表达简单直观,逐个特征进行处理,更加接近人的决策方式   ②产生的模型可以抽取规则易于理解,即解释性比线性模型强. ...

  5. java基础巩固-宇宙第一AiYWM:为了维持生计,编程语言番外篇之机器学习(项目预测模块总结:线性回归算法、逻辑回归分类算法)~整起

    机器学习 一.机器学习常见算法(未完待续...) 1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小 2.算法二:逻辑回归分类算法 3.算法三:贝叶斯分类算法 4.算 ...

  6. R语言使用逻辑回归分类算法

    R语言使用逻辑回归分类算法 逻辑回归属于概率统计的分类算法模型的算法,是根据一个或者多个特征进行类别标号预测.在R语言中可以通过调用logit函数执行逻辑回归分类算法并预测输出概率.通过调用glm函数 ...

  7. python机器学习基础05——sklearn之逻辑回归+分类评价指标

    文章目录 逻辑回归 逻辑回归的损失函数 逻辑回归API 分类模型的评价指标 混淆矩阵 准确率 召回率(较多被使用) 精确率 f1-score:精确率和召回率的调和平均数 AUC 逻辑回归 逻辑回归是经 ...

  8. ROC原理介绍及利用python实现二分类和多分类的ROC曲线

    对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score1,以及即将要讨论的ROC和AUC.本文通过对这些指标的原理做一个简单的介绍,然后用python分别实现二分类 ...

  9. 逻辑回归分类鸢尾花和红酒等级

    逻辑回归分类鸢尾花和红酒等级 源代码以及训练数据和测试数据已上传:https://download.csdn.net/download/j__max/10816259 一.实验准备 1.实验内容和目的 ...

  10. python利用什么写模板_Python利用逻辑回归分类实现模板

    Logistic Regression Classifier逻辑回归主要思想就是用最大似然概率方法构建出方程,为最大化方程,利用牛顿梯度上升求解方程参数. 优点:计算代价不高,易于理解和实现. 缺点: ...

最新文章

  1. JVM调优:G1垃圾回收器
  2. springboot项目中的注解 启动项目的方式 解决spring的bean.xml配置不生效 spring的基础JDBC配置
  3. 户频繁点击发送ajax请求
  4. JavaScript算法与数据结构——字典详解
  5. Android开发之自定义控件的基本介绍(附源码)
  6. perl对文件和目录进行操作
  7. 怎么修改服务器上的cpt文件,DELL-服务器-RAID-配置详解(28页)-原创力文档
  8. 计算机的网络与结构,计算机结构与组成29-网络.ppt
  9. 第二节:重写(new)、覆写(overwrite)、和重载(overload)
  10. 重构碎片化知识_day22重构力-思维导图:让碎片化知识的零存整取
  11. python 函数可以作为容器对象的元素_14、函数对象和闭包
  12. ant vue 树形菜单横向显示_快速实现一个简单可复用可扩展的Vue树组件
  13. 商城数据库模板mysql_ecshop 2.7.3仿京东jd商城源码 最新模板jd整站带数据支付插件...
  14. distpicker初始化以及设定指定值
  15. JavaScript获取汉字的区位码
  16. Jo-SRC: A Contrastive Approach for Combating Noisy Labels
  17. dp主机_DP接口与HDMI接口的区别?
  18. 青岛再添新动脉|唐河路—安顺路预计年底通车
  19. unity Inspector 面板扩展
  20. 生物信息学基础——基因表达过程

热门文章

  1. 计算机教师教学能手演讲,信息技术教学能手演讲稿
  2. 常见数学符号的英文表达
  3. AD域是什么意思?有什么用?
  4. 年总结兼英语小黑屋总结
  5. go lris框架学习笔记
  6. IE的缺省设置(转)
  7. 帆软填报-解决Error:很抱歉,导入EXCEL格子数超过限制
  8. java的编译器、解释器和JIT编译器(转载)
  9. HTML页面跳转的5种方法分享
  10. 华清远见学习笔记—Level1—Day5—数组和字符串