使用python或AI自动分析数据关联(简介)

有一些Python库可以帮助用户自动发现数据集中的关联关系。通常这类方法被称为关联分析或关联规则挖掘,其中最著名的算法是AprioriFP-Growth

两个算法

  1. Apriori算法

    • 这是一个用于频繁项集挖掘和关联规则学习的经典算法。
    • Python中的mlxtend库提供了一个简单的实现。
  2. FP-Growth算法

    • 与Apriori相比,FP-Growth算法通常更快,因为它采用了不同的数据结构(FP-Tree)来存储频繁项集。
    • Python的pyfpgrowth库提供了FP-Growth的实现。

有哪些实现库?

以下Python库可以实现这些算法:

  1. mlxtend

    • mlxtend 是一个包含许多实用的数据挖掘、机器学习扩展工具的库,其中就包括用于关联规则挖掘的模块。mlxtend(Machine Learning Extensions)是一个专门用于数据科学和机器学习任务的Python库。
    • 使用方式举例:
      from mlxtend.preprocessing import TransactionEncoder
      from mlxtend.frequent_patterns import apriori, association_rules# 数据预处理
      item_list = [['牛奶', '面包'], ['面包', '黄油'], ...]
      te = TransactionEncoder()
      te_ary = te.fit(item_list).transform(item_list)
      df = pd.DataFrame(te_ary, columns=te.columns_)# 计算频繁项集
      frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)# 提取关联规则
      rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
      
  2. pymining
    虽然在较早时期是一个流行的库,但请注意这个库可能不如mlxtend维护活跃,但它也曾提供Apriori算法的实现。

    PyMining 提供了如下的功能:

  • 数据预处理:包括对原始数据进行清洗、转换和格式化,为后续分析做准备。

  • 特征选择:提供用于减少特征空间维度的方法,比如主成分分析(PCA)等技术,通过示例/pca_matplot_example.py可以看到它如何将高维数据降至二维展示的例子。

  • 分类与回归:支持多种机器学习算法来进行分类和预测分析。

  • 聚类分析:包含不同聚类方法的实现,如K-means、层次聚类等。

  • 关联规则挖掘:能够发现数据集中的频繁项集,并基于这些项集生成关联规则,例如使用Apriori算法发现“购物篮分析”中的商品组合规律。

  1. pandas-profiling
    • 这个库主要用于快速生成数据分析报告,其中包括了对数据集之间潜在关联性的可视化展示,但并不直接执行关联规则挖掘。
      主要特点:
  • 自动化报告:通过一行代码即可生成交互式的HTML报告,报告中包含了数据的基本描述统计(如均值、中位数、标准差等)、分布直方图、相关性矩阵、缺失值分析等丰富的可视化图表。

  • 特征洞察:自动计算各个特征之间的关系,并进行可视化展示,帮助用户迅速了解数据集的内部结构和特征间的相互作用。

  • 高效易用:对于大型数据集,它还支持采样以提高处理速度,且其API设计简洁,只需对DataFrame调用.profile_report()方法就能生成分析报告。

  • 可定制化:允许用户自定义配置,比如选择要显示哪些类型的统计指标或调整报告的样式等。

  • 输出格式:除了生成HTML报告外,还可以将报告导出为JSON文件,方便进一步的整合与使用。

  1. orange3
    • Orange3是一个基于组件的数据挖掘和机器学习软件套件,它有一个关联规则模块,支持FP-growth算法。
    • 但请注意,在大多数情况下,Orange3推荐使用的开发方式是在其提供的图形化环境中拖拽各种数据挖掘和机器学习组件进行数据分析。

与Apriori相比,FP-Growth算法通常更快,因为它采用了不同的数据结构(FP-Tree)来存储频繁项集。,Python的pyfpgrowth库也提供了FP-Growth的实现。

对于简单的探索性关联分析,pandas 库本身通过计算相关系数或使用crosstab等函数也能揭示变量间的简单统计关联关系。然而,对于复杂的市场篮子分析或其他类型的关联规则挖掘,上述专门的库更为适用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】有监督学习算法之:K最近邻

K最近邻 1、引言2、决策树2.1 定义2.2 原理2.3 实现方式2.3.1 距离度量2.3.2 K值的选择 2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥, 这么长时间没更新了,是不是得抓紧时间了。 小鱼:最近可都是在忙的呢,…

已解决ResponseEntityException的Spring MVC异常响应实体异常的正确解决方法,亲测有效!!!

由于ResponseEntityException并非Spring框架中明确定义的异常类,我推断这里可能指的是在使用ResponseEntity时遇到的常见异常或错误。因此,我将根据这个假设,提供一个解决Spring MVC中与ResponseEntity相关异常的通用方法指南。 目录 问题分…

线上历史馆藏系统 Java+SpringBoot+Vue+MySQL

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

day09_商品管理订单管理SpringTaskEcharts

文章目录 1 商品管理1.1 添加功能1.1.1 需求说明1.1.2 核心概念SPUSKU 1.1.3 加载品牌数据CategoryBrandControllerCategoryBrandServiceCategoryBrandMapperCategoryBrandMapper.xml 1.1.4 加载商品单元数据ProductUnitProductUnitControllerProductUnitServiceProductUnitMap…

详解java中的Lambda表达式

Lambda表达式的前世今生(来历与概述) Lambda表达式的前世------匿名类 以往,使用单一抽象方法的接口被用作函数类型。 它们的实例表示函数(functions)或行动(actions)。 自从 JDK 1.1 于 1997…

【MySQL】超详细-基础操作

数据库定义 数据库是一类软件,用来管理数据,组织数据; 关系型数据库MySQL(Oracle,SQL Server,SQLite)以表格形式组织数据,数据格式要求严格;非关系型数据库Redis(MongoDB,HBase&…

数据结构与算法-冒泡排序

引言 在数据结构与算法的世界里,冒泡排序作为基础排序算法之一,以其直观易懂的原理和实现方式,为理解更复杂的数据处理逻辑提供了坚实的入门阶梯。尽管在实际应用中由于其效率问题不常被用于大规模数据的排序任务,但它对于每一位初…

【C++】set、multiset与map、multimap的使用

目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set3.1.1 模板参数列表3.1.2 构造3.1.3 迭代器3.1.4 容量3.1.5 修改操作 3.2 multiset3.3 map3.3.1 模板参数列表3.3.2 构造3.3.3 迭代器3.3.4 容量3.3.5 修改操作3.3.6 operator[] 3.4 multimap 一、关联式容器 谈…

Hololens 2应用开发系列(1)——使用MRTK在Unity中设置混合现实场景并进行程序模拟

Hololens 2应用开发系列(1)——使用MRTK在Unity中进行程序模拟 一、前言二、创建和设置MR场景三、MRTK输入模拟的开启 一、前言 在前面的文章中,我介绍了Hololens 2开发环境搭建和项目生成部署等相关内容,使我们能生成一个简单Ho…

Redis 之九:Spring Data Redis -- Redis Template 用法

SpringData Redis Spring Data Redis 是 Spring Data 项目的一部分,它为 Java 应用程序提供了一种便捷的方式来与 Redis 数据库进行交互。 Spring Data Redis 提供了对 Redis 的抽象封装,使得开发者能够以面向对象的方式操作 Redis,并简化了 …

matlab 写入格式化文本文件

目录 一、save函数 二、fprintf函数 matlab 写入文本文件可以使用save和fprintf函数 save输出结果: fprintf输出结果: 1.23, 2.34, 3.45 4.56, 5.67, 6.78 7.89, 8.90, 9.01 可以看出fprintf输出结果更加人性化,符合要求,下面分别介绍。 一、save函数 …

linux系统Jenkins工具介绍

Jenkins概念介绍 Jenkins概念Jenkins目的特性产品发布流程 Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些…

MQL5-MT5连接上国内期货

主要原因是昨天在学习MACD时发现给的基础代码感觉不对,但无法证明,因为MT5接的都是外汇交易,数据和国内的文华啥的全对不上,便找了一些国内接CTP的,直接写代码有点麻烦,虽然之前对接过国内CTP的东西&#x…

AI入门笔记(三)

神经网络是如何工作的 神经网络又是如何工作的呢?我们用一个例子来解释。我们看下面这张图片,我们要识别出这些图片都是0并不难,要怎么交给计算机,让计算机和我们得出同样的结果?难点就在于模式识别的答案不标准&…

十二、Nacos源码系列:Nacos配置中心原理(四)- RefreshEvent 事件处理

前面文章,我们说到回调监听器的方法中,主要就是发布了一个RefreshEvent事件,这个事件主要由 SpringCloud 相关类来处理。今天我们继续分析后续的流程。 RefreshEvent 事件会由 RefreshEventListener 来处理,该 listener 含有一个 …

Object类方法

toString(): 返回对象的字符串表示形式。默认情况下,返回对象的类名和哈希码的十六进制表示。 equals(Object obj): 比较两个对象是否相等。默认情况下,这个方法比较的是两个对象的引用是否相同,但是通常会在子类中重写这个方法以实现自定义…

武器大师——操作符详解(下)

目录 六、单目操作符 七、逗号表达式 八、下标引用以及函数调用 8.1.下标引用 8.2.函数调用 九、结构体 9.1.结构体 9.1.1结构的声明 9.1.2结构体的定义和初始化 9.2.结构成员访问操作符 9.2.1直接访问 9.2.2间接访问 十、操作符的属性 10.1.优先性 10.2.结合性 …

sql基本语法+实验实践

sql语法 注释: 单行 --注释内容# 注释内容多行 /* 注释内容 */数据定义语言DDL 查询所有数据库 show databases;注意是databases而不是database。 查询当前数据库 select database();创建数据库 create database [if not exists] 数据库名 [default charset 字符…

备战蓝桥杯Day22 - 计数排序

计数排序问题描述 对列表进行排序,已知列表中的数范围都在0-100之间。设计时间复杂度为O(n)的算法。 比如列表中有一串数字,2 5 3 1 6 3 2 1 ,需要将他们按照从小到大的次序排列,得到1 1 2 2 3 3 5 6 的结果。那么此时计数排序是…

一:面试流程

面试 项目介绍功能测试接口测试性能测试测试用例 项目介绍 南网智搜是南方电网公司研发的搜索引擎,主要场景Web 端场景有搜索频道、个人中心、和一些积分活动等,我在里面主要负责功能测试,接口测试,性能测试,压力测试…