第五章 挖掘建模

经过数据探索与数据预处理,得到了可以直接建模的数据。根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模式和偏差检测等模型,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力。

5.1 分类与预测

就餐饮企业而言,经常会碰到如下问题:

  1. 如何基于菜品历史销售情况,以及节假日、气候和竞争对手等影响因素,对菜品销量进行趋势预测?
  2. 如何预测未来一段时间哪些顾客会流失,哪些顾客最有可能会成为VIP客户?
  3. 如何预测一种新产品的销售量,以及在哪些类型的客户中会较受欢迎?

除此之外,餐厅经理需要通过数据分析来帮助他了解具有哪些特征的顾客的消费习惯;餐饮企业老板希望知道下个月的销售收入,原材料采购需要投入多少,这些都是分类与预测的例子。
分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数类型,预测给定自变量对应的因变量的值。

5.1.1 实现过程

(1)分类
分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。
分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便地计算,所以分类属于有监督的学习。
(2)预测
预测是指建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。
(3)实现过程
分类和预测的实现过程类似,以分类模型为例,实现过程如下图所示。


分类模型的实现步骤

分类算法有两步过程:第一步是学习步,通过归纳分析训练样本集来建立分类模型得到分类规则;第二步是分类步,先用已知的测试样本集评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知类标号的待测样本集进行预测。
预测模型的实现也有两步,类似于上图描述的分类模型,第一步是通过训练集建立预测属性(数值型的)的函数模型,第二步在模型通过检验后进行预测或控制。

5.1.2 常用的分类与预测算法

主要分类与预测算法简介

5.1.3 回归分析

回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态及进行模型预测的一种有效工具,在工商管理、经济、社会、医学和生物学领域应用十分广泛。从19世纪初高斯提出最小二乘估计起,回归分析的历史已有200多年。从经典的回归分析方法到近代的回归分析方法,按照研究方法划分,回归分析研究的范围大致如下:



在数据挖掘环境下,自变量与因变量具有相关关系,自变量的值是已知的,因变量是要预测的。
常见的回归模型如下表:

回归模型名称 使用条件 算法描述
线性回归 因变量与自变量是线性关系 对一个或多个自变量和因变量之间的线性关系进行建模,可用最小二乘法求解模型系数
非线性回归 因变量与自变量之间不都是线性关系 对一个或多个自变量和因变量之间的非线性关系进行建模。如果非线性关系可以通过简单的函数变换转化成线性关系,用线性回归的思想求解;如果不能转化,用非线性最小二乘法求解
Logistic回归 因变量一般有1和0(是否)两种取值 是广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0和1之间,表示取值为1的概率
岭回归 参与建模的自变量之间具有多重共线性 是一种改进最小二乘估计的方法
主成分回归 参与建模的自变量之间具有多重共线性 主成分回归是根据主成分分析的思想提出来的,是对最小二乘法的一种改进,它是参数估计的一种有偏估计。可以消除自变量之间的多重共线性

线性回归模型是相对简单的回归模型,但是通常因变量和自变量之间呈现某种曲线关系,就需要建立非线性回归模型。
Logistic回归属于概率型非线性回归,分为二分类和多分类的回归模型。对于二分类的Logistic回归,因变量y只有“是、否”两个取值,记为1和0.假设在自变量x1,x2,...,xp作用下,y取“是”的概率是p,则取“否”的概率是1-p,研究的是当y取“是”发生的概率p与自变量x1,x2,...,xp的关系。
当自变量之间出现多重共线性时,用最小二乘估计的回归系数将会不准确,消除多重共线性的参数改进的估计方法主要有岭回归和主成分回归。

1.Logistic回归分析介绍

(1)Logistic函数
Logistic回归模型中的因变量的只有1-0(如是和否、发生和不发生)两种取值。假设在p个独立自变量x1,x2,...,xp作用下,记y取1的概率是p = P(y = 1|X),取0的概率是1-p,取1和取0的概率之比为p/(1-p),称为事件的优势比(odds),对odds曲子然对数即得Logistic变换Logit(p) = ln(p/(1-p))
Logit(p) = ln(p/(1-p)) = z,则p = 1/(1+e-z)即为Logistic函数,如下图所示:

Logistic函数

当p在(0,1)之间变化时,odds的取值范围是(0, +∞),则ln(p/(1-p))的取值范围是(-∞,+∞)。
(2)Logistic回归模型
Logistic回归模型是建立ln(p/(1-p))与自变量的线性回归模型。
Logistic回归模型为:

因为ln(p/(1-p))的取值范围是(-∞,+∞),这样,自变量x1,x2,...,xp可在任意范围内取值。
记g(x) = β01x1+...+βpxp,得到:

(3)Logistic回归模型解释

2.Logistic回归建模步骤

Logistic回归模型的建模步骤如下所示:

Logistic回归模型的建模步骤

1)根据分析目的设置指标变量(因变量和自变量),然后收集数据,根据收集到的数据,对特征再次进行筛选;
2)y取1的概率是p = P(y = 1|X),取0概率是1-p。用ln(p/(1-p))和自变量列出线性回归方程,估计出模型中的回归系数;
3)进行模型检验。模型有效性的检验指标有很多,最基本的有正确率,其次有混淆矩阵、ROC曲线、KS值等。
4)模型应用:输入自变量的取值,就可以得到预测变量的值,或者根据预测变量的值去控制自变量的取值。
下面对某银行在降低贷款拖欠率的数据进行逻辑回归建模,该数据示例如下表所示:

年龄 教育 工龄 地址 收入 负债率 信用卡负债 其他负债 违约
41 3 17 12 176.00 9.30 11.36 5.01 1
27 1 10 6 31.00 17.30 1.36 4.00 0
40 1 15 14 55.00 5.50 0.86 2.17 0
41 1 15 14 120.00 2.90 2.66 0.82 0
24 2 2 0 28.00 17.30 1.79 3.06 1

利用Scikit-Learn对这个数据进行逻辑回归分析。首先进行特征筛选,特征筛选的方法有很多,主要包含在Scikit-Learn的feature_selection库中,比较简单的有通过F检验(f_regression)来给出各个特征的F值和p值,从而可以筛选变量(选择F值大的或者p值小的特征)。其次有递归特征消除(Recurisive Feature Elimination,RFE)和稳定性选择(Stability Selection)等比较新的方法。这里使用了稳定性选择方法中的随机逻辑回归进行特征筛选,然后利用筛选后的特征建立逻辑回归模型,输出平均正确率,其代码如下:

# _*_ coding:utf-8 _*_
# 逻辑回归 自动建模
import pandas as pd

# 参数初始化
filename = 'data/fifth_data/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:, :8].as_matrix()
y = data.iloc[:, 8].as_matrix()

from sklearn.linear_model import LogisticRegression as LR
from sklearn.linear_model import RandomizedLogisticRegression as RLR
rlr = RLR()  # 建立随机逻辑回归模型,筛选变量
rlr.fit(x, y)  # 训练模型
rlr.get_support()  # 获取特征筛选结果,也可以通过.scores_方法获取各个特征的分数
print(u'通过随机逻辑回归建模筛选特征结束。')
print(u'有效特征维:%s' % ','.join(data.columns[rlr.get_support()]))
x = data[data.columns[rlr.get_support()]].as_matrix()  # 筛选好特征

lr = LR()
lr.fit(x, y)  # 用筛选后的特征数据来训练模型
print(u'逻辑回归模型训练结束。')
print(u'模型的平均正确率为:%s' % lr.score(x, y))

运行结果:

通过随机逻辑回归模型筛选特征结束。
有效特征为:工龄,地址,负债率,信用卡负债
逻辑回归模型训练结束。
模型的平均正确率为:0.814285714286
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容