经过数据探索与数据预处理,得到了可以直接建模的数据。根据挖掘目标和数据形式可以建立分类与预测、聚类分析、关联规则、时序模式和偏差检测等模型,帮助企业提取数据中蕴含的商业价值,提高企业的竞争力。
1.常用的分类与预测算法
回归分析
决策树
人工神经网络
贝叶斯网络
支持向量机
2.回归分析
回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态以及进行模型预测的一种有效工具。
1. 线性回归:因变量和自变量是线性关系
2. 非线性回归:因变量和自变量不都是线性关系
3. logistic回归:因变量一般有1和0(是否)两种取值
4. 岭回归:参与建模的自变量之间具有多重共线性
5. 主成分回归:参与建模的自变量之间具有多重共线性
现在就用逻辑回归进行银行借款违约数据预测分析
先来数据截图
再来代码描述
# -*- coding: utf-8 -*-
# 逻辑回归 自动建模
import pandas as pd
# 参数初始化
filename = 'data/bankloan.xls'
data = pd.read_excel(filename)
# x为xls表的前8列矩阵,如果改为4则为前4列
x = data.iloc[:, :8].as_matrix()
# y为第9列矩阵,如果改为5说明从第6项开始选取
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 rlr.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)) #给出模型的平均正确率,本例为81.4%
代码上有注释,也就不多解释了。
最后输出截图如下
正确率越高说明模型建的越准确,特征与结果的相关性更高。然后就可以用这个模型来预测新数据。在现实生活中的场景就是录入一个人的工龄、地址、负债率、信用卡负债、就能预测他违约的概率高不高,银行就可以进行相应的贷款操作,当然生活中也不止这几个特征数据,预测也要比这繁琐。