大数据分类分析

前言

分类是机器学习中的一个重要概念,涉及将新观察分配到预定义的类别中,如邮件分类或疾病诊断。常见的分类算法包括朴素贝叶斯、决策树和逻辑回归等。分类分析用于预测和模式识别,如信用评级、欺诈检测和医学诊断,并通过特征选择和模型评估指标(如AUC、准确率、召回率和F1得分)来优化性能。

分类分析是什么?

在机器学习和统计中,分类是基于包含其类别成员资格已知的观察(或实例)的训练数据集来识别新观察所属的一组类别(子群体)中的哪一个的问题。例如,将给定的电子邮件分配给“垃圾邮件”或“非垃圾邮件”类;根据观察到的患者特征(性别,血压,某些症状的存在或不存在等)为给定患者分配诊断。分类是模式识别的一个例子。

在机器学习的术语中,分类被认为是监督学习的一个实例,即学习可以获得正确识别的观察的训练集的情况。相应的无监督程序称为聚类,并涉及基于固有相似性或距离的某种度量将数据分组。

通常,将各个观察结果分析为一组可量化的属性,不同地称为解释变量或特征。这些属性可以不同地分类(例如,对于血型:“A”,“B”,“AB”或“O”),序数(例如“大”,“中”或“小”),整数值(例如,电子邮件中特定单词的出现次数)或实际值(例如,血压的测量值)。

实现分类的算法,特别是在具体实现中,被称为分类器。术语“分类器”有时也指由分类算法实现的数学函数,其将输入数据映射到类别。

跨领域的术语是多种多样的。在统计中,通常使用逻辑回归或类似程序进行分类,观察的属性称为解释变量(或独立变量,回归量等),要预测的类别称为结果,被认为是是因变量的可能值。在机器学习中,观察通常被称为实例,解释变量被称为特征(被分组为特征向量),并且要预测的可能类别是类。其他领域可能使用不同的术语。例如,在社区生态学中,术语“分类”通常是指聚类分析,即一种无监督学习,而不是本文中描述的监督学习。

一,分类的依据

1.基于数据的属性

数值型属性:
以数字形式表示,具有明确的大小关系。例如年龄、收入、身高、体重等。可以根据数值的范围进行分类,不同的范围对应不同的类别;
以年龄为例,可以分为儿童(0 - 12 岁)、青少年(13 - 19 岁)、成年人(20 - 59 岁)、老年人(60 岁及以上)等类别。每个年龄段的人群在消费行为、健康需求、兴趣爱好等方面可能存在显著差异;
收入也可以根据不同的区间进行分类,如低收入、中等收入、高收入等。不同收入水平的消费者在购买能力、消费偏好和理财观念等方面有所不同;

分类型属性:
分类型属性的值是离散的,没有明确的大小关系。常见的分类型属性包括性别(男、女)、颜色(红、黄、蓝等)、地区(华北、华东、华南等)、职业(教师、医生、工程师等)等;
对于地区属性,可以根据地理位置进行分类,不同地区的经济发展水平、文化背景、消费习惯等可能存在较大差异。例如,华东地区经济较为发达,消费者对高端产品的需求可能相对较高;而西部地区经济发展相对滞后,消费者可能更注重产品的性价比;
职业属性也可以作为分类依据,不同职业的人群在收入水平、工作压力、消费需求等方面各不相同。例如,医生可能对医疗保健产品有较高的需求,而工程师可能对科技产品更感兴趣;

2.基于业务的需求

客户分类:

①在市场营销中,客户分类是非常重要的。可以根据客户的购买行为、消费金额、购买频率、忠诚度等因素将客户分为不同的类别;

②高价值客户通常是那些消费金额高、购买频率高、忠诚度高的客户。企业可以针对这些客户提供个性化的服务和优惠政策,以提高客户满意度和忠诚度;

③中等价值客户可能消费金额和购买频率适中,企业可以通过促销活动等方式提高他们的购买频率和消费金额;

④低价值客户则是那些消费金额低、购买频率低的客户,企业可以通过市场调研了解他们的需求,改进产品和服务,以吸引他们成为更有价值的客户;

 产品分类:

①根据产品的销售情况、利润贡献、市场需求、生命周期等因素将产品分为不同的类别;

②畅销产品通常是那些市场需求大、销售情况好、利润贡献高的产品。企业可以加大对这些产品的生产和推广力度,提高市场占有率;

③滞销产品则是销售情况不佳、库存积压的产品。企业可以通过促销活动、降价处理等方式尽快清理库存,减少损失;

④潜力产品是那些具有市场潜力但目前销售情况一般的产品。企业可以加大对这些产品的研发和市场推广力度,使其成为畅销产品;

 二、分类的方法

常用分类算法:朴素贝叶斯逻辑回归决策树随机森林支持向量机等。

1.决策树

原理:

①决策树是一种基于树形结构的分类方法。它通过对数据进行一系列的判断和分支,构建一个树形结构,每个节点代表一个属性的判断条件,叶子节点代表最终的分类结果;

②决策树的构建过程通常采用贪心算法,从根节点开始,选择一个最优的属性进行分裂,使得分裂后的子节点尽可能纯,即属于同一类别的数据尽可能多。然后,对每个子节点重复这个过程,直到所有的数据都被分类到叶子节点为止;

举例:

在信用评估中,可以根据客户的年龄、收入、职业、信用记录等属性构建决策树。

首先,选择一个最优的属性作为根节点,例如收入;

然后,根据收入的高低将客户分为两个子节点,高收入客户和低收入客户;

接着,对每个子节点选择下一个最优的属性进行分裂,例如高收入客户中,如果职业为稳定职业(如公务员、教师、医生等),则信用风险较低;如果职业为不稳定职业(如自由职业者、个体工商户等),则信用风险较高。通过不断地分裂,最终构建出一个决策树,每个叶子节点代表一个信用风险等级。

 优缺点分析:

优点缺点
易于理解和解释:决策树的结构直观,易于理解和解释,可以帮助用户快速了解数据的分类规则容易过拟合:决策树容易对训练数据过度拟合,导致在测试数据上的性能下降。为了避免过拟合,可以采用剪枝技术,对决策树进行简化
处理缺失值和异常值:决策树可以处理缺失值和异常值,对数据的质量要求相对较低不稳定:决策树的构建过程对数据的微小变化比较敏感,不同的数据集可能构建出不同的决策树
可扩展性强:决策树可以很容易地扩展到多分类问题和回归问题

代码示例:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_graphviz
# 导入评估指标模块
from sklearn.metrics import accuracy_score, auc, confusion_matrix, f1_score, precision_score, recall_score, roc_curve
# 导入表格库
import prettytable
# 导入dot插件库
import pydotplus
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

# 数据导入
df = pd.read_csv('xxx.csv', usecols=['Na','Ca','Type'])

v# 为了决策树图示简洁我们尽量减少分类,和特征值
dfs = df[df.Type < 3]

# 获取特征值
X = dfs[dfs.columns[:-1]].values
# 获取标签值
y = dfs['Type'].values - 1


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=2018)

#### 模型训练 ####
# 决策树模型
dt_model = DecisionTreeClassifier(random_state=2018)

# 训练模型
dt_model.fit(X_train, y_train)

# 对测试集做预测
pre_y = dt_model.predict(X_test)

####模型评估####

confusion_m = confusion_matrix(y_test, pre_y)

df_confusion_m = pd.DataFrame(confusion_m, columns=['0', '1'], index=['0', '1'])

df_confusion_m.index.name = 'Real'
df_confusion_m.columns.name = 'Predict'

df_confusion_m
# 获取决策树的预测概率
y_score = dt_model.predict_proba(X_test)

# ROC
fpr, tpr, thresholds = roc_curve(y_test, y_score[:, [1]])

# AUC
auc_s = auc(fpr, tpr)

# 准确率
accuracy_s = accuracy_score(y_test, pre_y)

# 精准度
precision_s = precision_score(y_test, pre_y)

# 召回率
recall_s = recall_score(y_test, pre_y)

# F1得分
f1_s = f1_score(y_test, pre_y) 

# 评估数据制表
df_metrics = pd.DataFrame([[auc_s, accuracy_s, precision_s, recall_s, f1_s]], columns=['auc', 'accuracy', 'precision', 'recall', 'f1'], index=['结果'])

df_metrics
#### 可视化ROC##### 
plt.figure(figsize=(8, 7))
plt.plot(fpr, tpr, label='ROC')  # 画出ROC曲线
plt.plot([0, 1], [0, 1], linestyle='--', color='k', label='random chance')  
# 画出随机状态下的准确率线
plt.title('ROC')  # 子网格标题
plt.xlabel('false positive rate')  # X轴标题
plt.ylabel('true positive rate')  # y轴标题
plt.legend(loc=0)
plt.savefig('x.png')

 

2.支持向量机

原理:

①朴素贝叶斯分类器是一种基于贝叶斯定理的分类方法。它假设各个特征之间相互独立,即一个特征的出现与其他特征的出现无关。然后,根据贝叶斯定理计算每个类别的概率,选择概率最大的类别作为最终的分类结果;

②贝叶斯定理:P (A|B) = P (B|A) * P (A) / P (B),其中 P (A|B) 表示在事件 B 发生的条件下事件 A 发生的概率,P (B|A) 表示在事件 A 发生的条件下事件 B 发生的概率,P (A) 和 P (B) 分别表示事件 A 和事件 B 发生的概率;

举例:

在垃圾邮件分类中,可以将邮件中的关键词作为特征,将邮件分为垃圾邮件和正常邮件两个类别。首先,统计训练数据中每个关键词在垃圾邮件和正常邮件中出现的频率,计算每个关键词属于垃圾邮件和正常邮件的概率。然后,对于一封新的邮件,根据邮件中的关键词出现的频率,计算这封邮件属于垃圾邮件和正常邮件的概率,选择概率较大的类别作为最终的分类结果。

优缺点分析:

优点缺点
算法简单:朴素贝叶斯分类器的算法简单,计算速度快,适用于大规模数据的分类假设条件严格:朴素贝叶斯分类器假设各个特征之间相互独立,这个假设在实际应用中往往不成立,可能会影响分类的准确性
对小规模数据效果好:在小规模数据上,朴素贝叶斯分类器的性能通常比较好,可以快速得到分类结果对输入数据的表达形式敏感:朴素贝叶斯分类器对输入数据的表达形式比较敏感,不同的表达形式可能会导致不同的分类结果
对缺失值不敏感:朴素贝叶斯分类器对缺失值不敏感,可以处理含有缺失值的数据

3.朴素贝叶斯

原理:

①支持向量机是一种基于统计学习理论的分类方法。它通过寻找一个超平面,将不同类别的数据尽可能地分开,使得分类间隔最大化;

②对于线性可分的情况,可以直接找到一个超平面将数据分开。对于线性不可分的情况,可以通过核函数将数据映射到高维空间,使得数据在高维空间中线性可分;

举例:

在图像识别中,可以将图像中的像素值作为特征,将图像分为不同的类别,如猫、狗、鸟等。首先,将图像中的像素值转换为特征向量,然后使用支持向量机进行分类。支持向量机可以找到一个最优的超平面,将不同类别的图像尽可能地分开。

优缺点分析:

优点缺点
泛化能力强:支持向量机在小样本数据上具有很强的泛化能力,可以有效地避免过拟合计算复杂度高:支持向量机的计算复杂度较高,特别是在处理大规模数据时,计算时间和空间开销较大
对高维数据效果好:支持向量机可以通过核函数将高维数据映射到低维空间进行分类,对高维数据的处理效果较好核函数选择困难:支持向量机的性能很大程度上取决于核函数的选择,而核函数的选择目前还没有一个统一的标准,需要根据具体问题进行选择
鲁棒性好:支持向量机对噪声和异常值不敏感,具有较好的鲁棒性

 三、应用场景

1.医疗领域

疾病诊断:

①根据患者的症状、检查结果、病史等数据,对疾病进行分类诊断。例如,通过分析患者的血液检查指标、心电图、影像学检查等数据,可以判断患者是否患有心脏病、糖尿病、癌症等疾病;

②分类分析可以帮助医生快速准确地做出诊断,制定个性化的治疗方案,提高治疗效果;

医疗风险评估:

①对患者的健康状况进行评估,预测患者发生疾病或并发症的风险。例如,通过分析患者的年龄、性别、家族病史、生活方式等因素,可以预测患者患心脏病、中风、糖尿病等疾病的风险;

②医疗风险评估可以帮助医生提前采取预防措施,降低患者的发病风险,提高医疗质量;

2.金融领域

信用评估:

①对个人或企业的信用状况进行评估,判断其信用风险等级。例如,通过分析个人的收入、资产、负债、信用记录等数据,可以判断个人的信用风险等级,为银行、信用卡公司等金融机构提供决策依据;

②信用评估可以帮助金融机构降低信用风险,提高贷款审批效率,促进金融市场的稳定发展;

欺诈检测:

①通过分析交易数据,识别出可能的欺诈行为。例如,通过分析信用卡交易数据,可以识别出异常的交易行为,如大额交易、频繁交易、异地交易等,判断是否为欺诈行为;

②欺诈检测可以帮助金融机构及时发现和防范欺诈行为,保护客户的资金安全,维护金融市场的秩序;

3.电商领域

客户细分:

①根据客户的购买行为、浏览记录、人口统计学信息等数据,将客户分为不同的细分群体。例如,根据客户的购买频率、购买金额、购买品类等因素,可以将客户分为高价值客户、中等价值客户、低价值客户等不同类别;

②客户细分可以帮助电商企业了解客户需求,制定个性化的营销策略,提高客户满意度和忠诚度;

商品推荐:

①根据客户的历史购买记录和浏览行为,为客户推荐可能感兴趣的商品。例如,通过分析客户的购买历史和浏览记录,可以发现客户的兴趣爱好和购买偏好,为客户推荐相关的商品;

②商品推荐可以提高客户的购买转化率,增加电商企业的销售额和利润;

4.交通领域

交通流量预测:

①根据历史交通流量数据、天气情况、节假日等因素,对未来的交通流量进行预测。例如,通过分析历史交通流量数据,可以发现交通流量的变化规律,结合天气情况、节假日等因素,预测未来的交通流量;

②交通流量预测可以帮助交通管理部门制定合理的交通管制措施,优化交通信号控制,提高交通效率;

交通事故分析:

①根据交通事故数据,分析交通事故的发生原因、影响因素等。例如,通过分析交通事故的发生地点、时间、车辆类型、驾驶员行为等因素,可以找出交通事故的高发区域、高发时段、高危车辆类型和高危驾驶员行为,为交通安全管理提供决策依据;

②交通事故分析可以帮助交通管理部门采取针对性的措施,降低交通事故的发生率,保障人民生命财产安全;

四、小结

大数据的分类分析在各个领域都有着广泛的应用,可以帮助我们更好地理解和处理数据,发现数据中的规律和模式,为决策提供支持。随着大数据技术的不断发展,分类分析的方法和应用场景也将不断拓展和深化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值