Python挖掘建模

前言

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

分类与预测

假设对于餐饮企业来说,碰到如下问题

  • 基于菜品销售历史,以及节假日、气候和竞争对手等影响因素,对菜品销量进行预测分析
  • 预测未来一段时间内哪些顾客会流失,哪个会充值VIP
  • 预测新品的销量,在不同人群中的受欢迎程度

实现过程

分类
分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。
分类模型建立在已有类标记的数据集上。
预测
建立两种或者两种以上变量间相互依赖的函数模型。然后进行预测和控制。
实现过程
分类和预测的实现过程类似,以分类模型为例,
在这里插入图片描述

常用的分类与预测算法

回归分析
确定预测属性与其他变量间相互依赖的定量关系最常用的统计学方法。包括线性回归、非线性回归、Login回归、岭回归、主成分回归、最偏小二乘回归等模型
在这里插入图片描述
决策树
自顶向下的递归方式,在内部节点进行属性值的比较,并根据不同的属性值从该节点向下分支
在这里插入图片描述
人工神经网络
在这里插入图片描述
模仿大脑神经网络结构和功能而建立起的信息处理系统,表示神经网络的输入与输出变量之间的关系模型
贝叶斯网络
在这里插入图片描述
Bayes方法的拓展,不确定知识表达和拓展、推理领域最有效的理论模型之一
支持向量机

在这里插入图片描述
通过某种非线性映射,把低纬度的非线性转换为高纬度的线性可分,在高维空间进行线性分析的算法。

回归分析

在这里插入图片描述
Logistic回归建模步骤

在这里插入图片描述

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

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

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%

决策树

  • ID3算法:在决策树各个节点上,使用信息增益方法作为属性的选择目标,帮助生成属性。
  • C4.5算法:相对于ID3的改进为:使用信息增益率来选择节点属性。克制其不足,ID3只适用于离散的描述属性,C4.5既能处理离散描述属性,也能处理连续描述属性
  • CART算法:构件数、修剪树、评估树来构造一个二叉树。当终点是连续变量时,该树为回归树;当终点是分类变量,该树木为分类树
#-*- 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().values
y = data.iloc[:, 3].as_matrix().values

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)

# show tree.dot

# $dot -Tpdf tree.dot -o tree.pdf

神经网络

在这里插入图片描述

#-*- coding: utf-8 -*-
# 使用神经网络算法预测销量高低

import pandas as pd

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

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

from keras.models import Sequential
from keras.layers.core import Dense, Activation

model = Sequential()  # 建立模型
model.add(Dense(input_dim=3, output_dim=10))
model.add(Activation('relu'))  # 用relu函数作为激活函数,能够大幅提供准确度
model.add(Dense(input_dim=10, output_dim=1))
model.add(Activation('sigmoid'))  # 由于是0-1输出,用sigmoid函数作为激活函数

model.compile(loss='binary_crossentropy',
              optimizer='adam', class_mode='binary')
# 编译模型。由于我们做的是二元分类,所以我们指定损失函数为binary_crossentropy,以及模式为binary
# 另外常见的损失函数还有mean_squared_error、categorical_crossentropy等,请阅读帮助文件。
# 求解方法我们指定用adam,还有sgd、rmsprop等可选

model.fit(x, y, nb_epoch=1000, batch_size=10)  # 训练模型,学习一千次
yp = model.predict_classes(x).reshape(len(y))  # 分类预测

from cm_plot import *  # 导入自行编写的混淆矩阵可视化函数
cm_plot(y, yp).show()  # 显示混淆矩阵可视化结果

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python数据挖掘建模中的聚类是一种将数据集中的样本分成不同的簇或类别的技术。聚类算法可以帮助我们发现数据中的隐藏模式和结构,从而更好地理解数据。其中一种常用的聚类算法是K-Means算法。 在Python中实现K-Means聚类算法需要以下几个步骤: 1. 导入数据并进行标准化:首先,需要导入数据集并进行标准化处理。标准化可以使得不同特征之间的值具有相同的尺度,避免某些特征对聚类结果的影响过大。 2. 构建K-Means模型:使用sklearn库中的KMeans类,设置聚类的类别数k,并指定一些参数如最大循环次数和随机种子等。然后,使用.fit()方法拟合模型并进行聚类。 3. 分析聚类结果:根据聚类结果,可以进行一些进一步的分析,如查看每个簇的样本数量、簇的聚类中心等。可以使用聚类模型的属性和方法来获取这些信息。 需要注意的是,在聚类分析中,评估聚类模型结果的好坏是比较主观的,通常需要根据具体问题来判断。常用的评估指标有轮廓系数和内部评价指标等,可以根据需要选择适合的评估方法。 综上所述,Python数据挖掘建模中的聚类可以帮助我们发现数据集中的模式和结构,并根据聚类结果进行进一步的分析和应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【Python数据分析】数据挖掘建模——聚类分析](https://blog.csdn.net/weixin_41168304/article/details/122747347)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [代码实操:Python聚类分析](https://download.csdn.net/download/weixin_44510615/88231861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oifengo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值