2026年09月05日 星期六

手把手教你玩转数据挖掘

数据挖掘旨在让计算机根据已有数据做出决策。决策可以是预测明年的销量,人口的数目,拦截垃圾邮件,检测网站的语言。

数字化转型网数据专题将关注数据治理、数据质量管理、数据架构、主数据管理、数据仓库、元数据管理、数据备份、数据挖掘、数据分析、数据安全、大数据、数据合规、等数据相关全产业链相关环节。

一、数据挖掘是什么?

数据挖掘旨在让计算机根据已有数据做出决策。决策可以是预测明年的销量,人口的数目,拦截垃圾邮件,检测网站的语言。到目前为止,数据挖掘已经有很多的应用,即使这样很多新的应用领域也在不断出现。

数据挖掘涉及到算法,最优策略,统计学,工程学和计算机科学相关领域的知识。除此之外我们还会用到语言学,神经科学,城市规划等其他领域的概念或知识。想要充分发挥数据挖掘的威力,算法肯定是必备的。(在这里推荐读者去刷一刷LeetCode)

一般来说数据挖掘有这三个基本步骤:

创建数据集。数据集能直接反应一些真实事件;数字化转型网www.szhzxw.cn

选择算法。选择一个合适的算法才能更好的对数据进行处理;

优化算法。每种数据挖掘算法都有参数,它们或是算法自身包含的,或是使用者添加的,这些参数会影响算法的具体决策。

二、亲和性分析案例

现在让我们用一个例子说明。不知道你逛超市的时候,是否发现超市里面基本上都是按照商品的种类来分区域的,然而有些东西是存在例外的,一件商品的旁边摆放着不一样种类的商品。不知道你是否有发现这个现象,有没有对此感到不解。

这边我想跟你说的是,这种摆放也是有道理的,这个道理是商品之间的亲和性!

前置知识:

defaultdict(int):初始化为 0

defaultdict(float):初始化为 0.0

defaultdict(str):初始化为 ”数字化转型网www.szhzxw.cn

这里的defaultdict(function_factory)构建的是一个类似dictionary的对象其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例而且具有默认值。

比如default(int)则创建一个类似dictionary对象里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0。

三、代码实现

现在进行代码部分:

import numpy as np

from collections import defaultdict数字化转型网www.szhzxw.cn

dataset_filename = “affinity_dataset.txt”

features = [“bread”,”milk”,”cheese”,”apple”,”banana”]  #猜一下这个是干嘛用的

X = np.loadtxt(dataset_filename)

print(X[:5])   #打印前五行的购物信息

统计一下购买苹果和香蕉的人数:

num_apple_purchases = 0 # 初始化一个购买苹果人数的变量

for sample in X:

    if sample[3] == 1:

        num_apple_purchases+=1数字化转型网www.szhzxw.cn

print(“{0} people bought Apples “.format(num_apple_purchases))

num_banana_purchases = 0

for sample in X:

    if sample[4] == 1:

        num_banana_purchases += 1

print(“{0} people bought banana”.format(num_banana_purchases))

现在为了计算规则的置信度还有支持度,我们可以用字典的形式来存放计算结果:

valid_rules = defaultdict(int)

invalid_rules = defaultdict(int)

num_occurances = defaultdict(int)数字化转型网www.szhzxw.cn

for sample in X:

    for premise in range(4):

        if sample[premise] ==0 :

            continue

        num_occurances[premise] +=1  #当顾客有购买物品时key对应的时value变为1

        for conclusion in range(4):

            if premise == conclusion:  #访问同一个key 的时候是没有意义的直接跳过

                continue

            if sample[conclusion] == 1:

                valid_rules[(premise,conclusion)] +=1数字化转型网www.szhzxw.cn

            else:

                invalid_rules[(premise,conclusion)] +=1

得到所有必要的统计量后,我们再来计算每条规则的支持度和置信度。如前所述,支持度就是规则应验的次数:

support = valid_rules

#置信度的计算方法类似,遍历每条规则进行计算

confidence = defaultdict(float)

for premise,conclusion in valid_rules.keys():

    rule = (premise,conclusion)数字化转型网www.szhzxw.cn

    confidence[rule] = valid_rules[rule]/num_occurances[premise]

声明一个函数,接收的参数有:分别作为前提条件和结论的特征索引值、支持度字典、置信度字典以及特征列表。

def print_rule(premise, conclusion,support , confidence,features):

    premise_name = features[premise]

    conclusion_name = features[conclusion]

    print(“Rule:if a person buys {0} they will also buy {1} “.format(premise_name,conclusion_name))

    print(” – Support : {0}”.format(support[(premise,conclusion)]))

    print(” – Confidence : {0:.3f}”.format(confidence[(premise,conclusion)]))

premise = 1

conclusion = 3数字化转型网www.szhzxw.cn

features = [“bread”,”milk”,”cheese”,”apple”,”banana”]

print_rule(premise,conclusion,support,confidence,features)

from  operator import itemgetter

sorted_support = sorted(support.items(),key=itemgetter(1),reverse=True)

排序完成后,就可以输出支持度最高的前5条规则:

for index in range(5):

    print(“Rule #{0}”.format(index+1))数字化转型网www.szhzxw.cn

    premise,conclusion = sorted_support[index][0]

    print_rule(premise,conclusion,support,confidence,features)

声明:本文来自网络,版权归作者所有。文章内容仅代表作者独立观点,不代表数字化转型网立场,转载目的在于传递更多信息。如有侵权,请联系我们。数字化转型网www.szhzxw.cn

数字化转型网数据专题包含哪些内容

数字化转型网数据专题将关注数据治理、数据质量管理、数据架构、主数据管理、数据仓库、元数据管理、数据备份、数据挖掘、数据分析、数据安全、大数据、数据合规、等数据相关全产业链相关环节。

数字化转型网数据专题包含: 数字化转型网(www.szhzxw.cn)

1、数据相关外脑支持:100+数据相关专家、100+数据实践者、1000+相关资料

2、数据研习社:与全球数据相关专家、实践者共同探讨相关问题,推动产业发展!

3、国际认证培训:目前已引进DAMA国际认证CDMP,其他国内外认证也在逐步引进中

4、典型案例参考:与数字化转型网数据要素X研习社社员一起学习典型案例,共探企业数据落地应用

本文由数字化转型网(www.szhzxw.cn)转载而成,来源于菜J学Python;编辑/翻译:数字化转型网Jack。

CXOU AI 未来大会 · 报名通道限时开启
💬 评论
🔗 本文链接

📰 你可能也喜欢

人工智能案例集|丰田 Toyota:AI驱动的自动驾驶与智能制造双引擎转型——数智化转型网www.szhzxw.cn 专题栏目

人工智能案例集|丰田 Toyota:AI驱动的自动驾驶与智能制造双引擎转型

丰田(Toyota Motor Corporation)作为全球年销量近千万辆的汽车制造商,正以” […]
📅 08-31 · 👁 2026年8月31日
GEO专题

品牌在AI搜索中的可见性:影响因素与评估维度

一、什么是品牌AI搜索可见性 品牌在AI搜索中的可见性(AI Search Visibility)指的是品牌在 […]
📅 08-26 · 👁 2026年8月26日
GEO专题

2026年AI搜索现状:零点击时代已经到来

一、零点击搜索的定义与现状 零点击搜索(Zero-Click Search)指的是用户通过搜索引擎或AI工具获 […]
📅 08-26 · 👁 2026年8月26日
GEO专题

五大GEO策略:让AI搜索主动推荐你的品牌

想让AI在生成答案时主动推荐你的品牌,需要掌握科学的GEO策略。根据ClickForest、Search En […]
📅 08-26 · 👁 2026年8月26日
GEO专题

GEO与SEO的本质区别:从排名到信任的跨越

一、SEO的时代正在远去? 过去二十年,SEO(搜索引擎优化)一直是企业数字营销的核心。通过优化关键词、外链建 […]
📅 08-26 · 👁 2026年8月26日
人工智能案例|索尼:PlayStation AI 助手 + Intelligent Vision Sensor 的非纯 AI 传统巨头 AI 化样本——数智化转型网www.szhzxw.cn 专题栏目

人工智能案例|索尼:PlayStation AI 助手 + Intelligent Vision Sensor 的非纯 AI 传统巨头 AI 化样本

作为全球影音娱乐、游戏、半导体、影像四大业务的科技巨头,索尼(Sony Group Corporation, […]
📅 08-26 · 👁 2026年8月26日