数据挖掘中的分类与预测

--本文是《Python数据分析与挖掘实战》的学习笔记

经过数据探索与数据预处理,得到了可以直接建模的数据.根据挖掘目标与数据形式可以建立分类与预测、聚类分析、关联规则、时序模式和偏差检测等模型.

分类与预测问题是预测问题的两种主要的类型,分类主要是预测分类标号(基于离散属性的),而预测是建立连续值函数模型,预测给定自变量对应的因变量的值.

一.实现过程

(1)分类

    分类属于有监督学习的范畴,大致上的意思就是我们可以将样本数据分成几个类别,将我们的数据与我们的类别相互对应.


上图假设我们的数据来源是我们的销售量的数据,我们将其分成“高”,"中","低"三个部分的分布..

(2)预测

预测是指建立两种或者两种以上变量之间相互依赖的函数模型,然后进行预测或者控制.

(3)实现过程:


思想是很简单的,你比如说我们现在要进行预测的分析,首先第一步,我们先要基于一定数量的样本来训练出一个训练模型,这个模型训练的如何,我们还要对其进行检测一下,如何测试的样本数据与我们想象中的差别太大,那么我们就要重新进行训练这个预测模型,但是如果我们的预测模型符合我们的预先的期望,那么我们就可以用这个模型进行预测的操作.

(4)回归分析的研究范围


上面的回归分析中,线性回归是相对简单的回归模型,但是通常因为因变量与自变量之间呈现某一种曲线的关系,这时就需要建立非线性回归模型(比如我们最常用的Logistic回归分析用于二分类或者多分类).

二。Logistic回归模型建模实例

Logistic回归模型的建模步骤:

1.首先根据分析的目的设置指标变量(因变量与自变量),然后我们进行数据的收集,根据收集到的数据,对特征再次进行筛选.(在具体筛选时,利用了随机逻辑回归中的get_support()函数)

2. 列出回归方程,估计出模型中的回归系数.

3. 进行模型的检测,模型有效性的检验指标有很多,最基本的有正确率,其次有混淆矩阵,ROC曲线,KS值等.

4,模型应用.

附:我们使用python语言对其进行实现,因为在Python中内置了许多针对数据处理与分析的模块.

如:我们利用Scikit-Learn对数据进行逻辑回归分析,

筛选特征的方法,主要在Scikit_Learn的feature_selection库中,比较简单的是通过F检验来给出各个特征的F值与p值,从而筛选出变量(选择F值比较大或者p值比较小的).

其次是有递归特征消除和稳定性选择等比较新的方法,然后利用筛选的特征建立逻辑回归的模型,输出平均的正确率.

输出的代码如下所示:

# -*- coding: utf-8 -*-
"""
Created on Thu Apr  5 20:37:48 2018

@author: Administrator
"""
#逻辑回归 自动建模
import pandas as pd

#参数初始化
filename = 'E:/bankloan.xls'
data = pd.read_excel(filename)
x = data.iloc[:,:8].as_matrix()#对其切片,取前1-8列的属性质,转换为数组结构
y = data.iloc[:,8].as_matrix() #对第八列的值为标签,进行处理,这里做二值逻辑回归,因此这里的值为0或者1

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))

关于bankloan.xls中的数据展示如下:







  • 2
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值