数据分析师(入门)     DC学院

回归和分类的区别
  • 分类:对离散型变量进行预测(二分类、多分类)
  • 回归:对数值型变量进行预测
  • 区别:回归的y为数值连续型变量;分类的y是类别离散型变量
分类问题

1. 分类问题示例:信用卡 
从x1:职业,x2:收入等等信用卡申请人不同的信息维度,来判断y:是否发放信用卡,发放哪一类信用卡

2. 分类经典方法:logistic回归(二分类) 
虽然名字里有回归二字,但logistic回归解决的是分类的问题

  • 回归得到的数值y可以看做属于类别1的概率: 
    下图为logistic函数(也叫sigmoid函数)图像
  • 二分类到多分类:通过One vs. Rest 
    使用logistic进行多分类,scikit-learn 会默认采用OvR方法: 
    1.为每个类别分别建立一个二分类器 
    2.训练中正例为该类别样本,负例为所有其他样本 
    3.在所有分类中,选择概率最高的那个类别 
    如iris数据集中有三个类别,选择使用logistic回归进行分类,则需要训练三个分类器,根据每个样本隶属不同类的概率大小来进行分类

3. scikit learn 实现logistic回归

from sklearn 
  import
 
 
from sklearn.model_selection 
  import
 
 

   lm=linear_model.LogisticRegression() 
 
 
 

   model=lm.fit(X,y) 
 
 
 
5,scoring= 
  'accuracy')



4. 回到iris的数据集来实现: 
载入iris数据集

import
 
 
'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',header= 
  None) 
 
 
 
'SepalLengthCm', 
  'SepalWidthCm', 
  'PetalLengthCm', 
  'PetalWidthCm', 
  'Species'] 
 
 
 
实现logistic回归
 
 
import
 
 
import numpy 
  as
 
 
from sklearn 
  import
 
 

   lm=linear_model.LogisticRegression() 
 
 
 
'PetalLengthCm'] 
 
 
 

   X=iris[features] 
 
 
 
#需要讲Species这个字段由字符串类型转变为数值类型,以表示不同的类别
 
 
from sklearn.preprocessing 
  import
 
 
#初始化label
 
 

   le=LabelEncoder() 
 
 
 
'Species']) 
 
 
 
#用离散值转化标签值
 
 
'Species']) 
 
 
 

   print(y) 
 
 
 
#通过交叉检验,得到分类准确率
 
 
from sklearn.model_selection 
  import
 
 
#logistic中的scoring参数指定为accuracy
 
 
5,scoring= 
  'accuracy') 
 
 
 

   print(np.mean(scores)) 
 
 
 
#请尝试往Feature中添加特征,看看最后的准确率会如何变化




补充知识

LogisticRegression参数

classifier = LogisticRegression() 

这条指令调用的都是默认的参数,LogisticRgression函数中还有其他关于正则项、优化算法等参数可以进行设置,请阅读:

评估逻辑回归模型

逻辑回归本质是一个分类的算法,则可以通用分类算法的评估方法,主要有ROC,AUC,confusion matrix等等

逻辑回归和线性回归

逻辑回归的数学模型

逻辑回归将线性回归中的线性关系放到了指数位置,这两者都属于广义线性回归

  • Logistic Regression–逻辑回归算法汇总,了解逻辑回归的数学模型
  • 逻辑回归优缺点,逻辑回归可以用于预测隶属类的概率,但由于曲线的特性,而有难以确定阈值的特点
关系

阅读对线性回归、逻辑回归、各种回归的概念学习,“2.逻辑回归”中,关于二者的关系的解释