预测型数据分析:分类及逻辑回归

数据分析师(入门)     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 linear_model
from sklearn.model_selection import cross_val_score
lm=linear_model.LogisticRegression()
model=lm.fit(X,y)
cross_val_score(lm,X,y,cv= 5,scoring= 'accuracy')

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

import pandas
iris = pandas.read_csv( 'http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data',header= None)
iris.columns=[ 'SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm', 'PetalWidthCm', 'Species']

实现logistic回归

import sklearn
import numpy as np
from sklearn import linear_model
lm=linear_model.LogisticRegression()
features=[ 'PetalLengthCm']
X=iris[features]
#需要讲Species这个字段由字符串类型转变为数值类型,以表示不同的类别
from sklearn.preprocessing import LabelEncoder
#初始化label
le=LabelEncoder()
le.fit(iris[ 'Species'])
#用离散值转化标签值
y=le.transform(iris[ 'Species'])
print(y)
#通过交叉检验,得到分类准确率
from sklearn.model_selection import cross_val_score
#logistic中的scoring参数指定为accuracy
scores=cross_val_score(lm,X,y,cv= 5,scoring= 'accuracy')
print(np.mean(scores))
#请尝试往Feature中添加特征,看看最后的准确率会如何变化

补充知识

LogisticRegression参数

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

评估逻辑回归模型

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

逻辑回归和线性回归

逻辑回归的数学模型

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

关系

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

数据分析师(入门)    港科大博后 王乐业   主讲

更多数据科学课程,上DC学院


Alt text
关注DC,获取更多学习资源

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值