挖掘建模

本文探讨了数据挖掘中的分类与预测,包括回归分析、决策树、人工神经网络和逻辑回归。同时,详细介绍了聚类分析,如k-means算法的应用,以及关联规则的Apriori算法。此外,还涵盖了时序模型如ARIMA模型和离群点检测的重要性。
摘要由CSDN通过智能技术生成

一、分类与预测

分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应因变量的值。
1.主要分类与预测算法
回归分析
决策树
人工神经网络
贝叶斯网络
支持向量机
2.回归分析
回归分析是通过建立模型来研究变量之间相互关系的密切程度、结构状态以及进行模型预测的一种有效工具。
1. 线性回归:因变量和自变量是线性关系
2. 非线性回归:因变量和自变量不都是线性关系
3. logistic回归:因变量一般有1和0(是否)两种取值
4. 岭回归:参与建模的自变量之间具有多重共线性
5. 主成分回归:参与建模的自变量之间具有多重共线性


logical回归:

逻辑回归 自动建模
import pandas as pd

#参数初始化
filename = '../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)) #给出模型的平均正确率,本例为81.4%

运行结果:

有效特征为:工龄,地址,负债率,信用卡负债
逻辑回归模型训练结束。
模型的平均正确率为:0.814285714286
3.决策树
代码:

#-*- coding: utf-8 -*-
#使用ID3决策树算法预测销量高低
import pandas as pd

#参数初始化
inputfile = '../data/sales_data.xls'
data = pd.read_excel(inputfile, index_col = u'序号') #导入数据

#数据是类别标签,要将它转换为数据
#用1来表示“好”、“是”、“高”这三个属性,用-1来表示“坏”、“否”、“低”
data[data == u'好'] = 1
data[data == u'是'] = 1
data[data == u'高'] = 1
data[data != 1] = -1
x = data.iloc[:,:3].as_matrix().astype(int)
y = data.iloc[:,3].as_matrix().astype(int)

from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy') #建立决策树模型,基于信息熵
dtc.fit(x, y) #训练模型

#导入相关函数,可视化决策树。
#导出的结果是一个dot文件,需要安装Graphviz才能将它转换为pdf或png等格式。
from sklearn.tree import export_graphviz
x = pd.DataFrame(x)
from sklearn.externals.six import StringIO
x = pd.DataFrame(x)
with open("tree.dot", 'w') as f:
  f = export_graphviz(dtc, feature_names = x.columns, out_file = f)

运行结果:
生成的dot文件如下:

digraph Tree {
   
edge [fontname="SimHei"];
node [fontname="SimHei"];
node [shape=box] ;
0 [label="1 <= 0.0\nentropy = 0.9975\nsamples = 34\nvalue = [16, 18]"] ;
1 [label="2 <= 0.0\nentropy = 0.9341\nsamples = 20\nvalue = [13, 7]"] ;
0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;
2 [label="0 <= 0.0\nentropy = 0.5436\nsamples = 8\nvalue = [7, 1]"] ;
1 -> 2 ;
3 [label="entropy = 0.0\nsamples = 4\nvalue = [4, 0]"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值