当前位置: 首页 > article >正文

机器学习-人与机器生数据的区分模型测试-数据处理 - 续

这里继续 机器学习-人与机器生数据的区分模型测试-数据处理1的内容

查看数据 中1的情况

#查看数据1的分布情况
one_ratio_list = []
for col in data.columns:if col == 'city' or col == 'target' or col == 'city2':  # 跳过第一列continueelse:one_ratio = data[col].mean()  # 计算1值占比print(f"{col}: {one_ratio}")one_ratio_list.append(one_ratio)plt.figure(figsize=(8,4))
sns.histplot(one_ratio_list, bins=20, kde=True)
plt.title('Histogram of 1-Value Proportion Distribution')
plt.xlabel('Proportion of 1 value')
plt.show()

可以看每个区间的具体分布
在这里插入图片描述

应用Apriori算法挖掘频繁项集

查看数据组合有没有意义

# 数据预处理管道
def preprocess_for_apriori(data):"""对输入的数据进行预处理,使其适合 Apriori 算法。Apriori 算法要求输入数据为二元数据(仅包含 0 和 1)。参数:data (pandas.DataFrame): 输入的原始数据,需要转换为适合 Apriori 算法的格式。返回:pandas.DataFrame: 经过预处理的二元数据,仅包含有效二元字段。"""# 类型转换与验证# 将输入数据转换为整数类型,确保数据为数值型data_binary = data.astype(int)# 过滤无效字段# 找出所有元素仅为 0 或 1 的列,Apriori 算法要求输入为二元数据valid_cols = data_binary.columns[data_binary.isin([0,1]).all()]# 从转换后的二进制数据中选取有效列data_valid = data_binary[valid_cols]# 最终验证# 确保处理后的数据至少有一个有效二元字段,若没有则抛出异常assert data_valid.shape[1] > 0, "无有效二元字段可用"return data_valid

执行数据预处理

try:data_preprocessed = preprocess_for_apriori(data_clean)print(f"有效字段数量: {len(data_preprocessed.columns)}")# Apriori算法执行frequent_itemsets = apriori(data_preprocessed, min_support=0.05,use_colnames=True,low_memory=True)  # 启用内存优化if not frequent_itemsets.empty:print("Top10高频组合:")print(frequent_itemsets.sort_values('support', ascending=False).head(10))else:print("未找到满足支持度的频繁项集,尝试降低min_support值")except Exception as e:print("处理失败:", str(e))# 逐步降低阈值测试  
for support in [0.05, 0.03, 0.01]:  frequent_itemsets = apriori(data_preprocessed, min_support=support)  if not frequent_itemsets.empty:  print(f"min_support={support}时找到项集")  break  

数据组合没有想的那么好。
在这里插入图片描述

http://www.lryc.cn/news/2378623.html

相关文章:

  • ESP系列单片机选择指南:结合实际场景的最优选择方案
  • 特斯拉虚拟电厂:能源互联网时代的分布式革命
  • jvm安全点(三)openjdk17 c++源码垃圾回收之安全点结束,唤醒线程
  • Python OOP核心技巧:如何正确选择实例方法、类方法和静态方法
  • 【Linux笔记】nfs网络文件系统与autofs(nfsdata、autofs、autofs.conf、auto.master)
  • 博客打卡-求解流水线调度
  • 基于React的高德地图api教程006:两点之间距离测量
  • 数据库blog1_信息(数据)的处理与效率提升
  • 布隆过滤器介绍及其在大数据场景的应用
  • Ansys 计算刚柔耦合矩阵系数
  • 微服务八股(自用)
  • 指定elf文件dwarf 版本以及查看dwarf版本号
  • Fidder基本操作
  • 项目管理进阶:精读 78页华为项目管理高级培训教材【附全文阅读】
  • [Java] 方法和数组
  • 微软家各种copilot的AI产品:Github copilot、Microsoft copilot
  • KL散度 (Kullback-Leibler Divergence)
  • 深入解析:java.sql.SQLException: No operations allowed after statement closed 报错
  • DAY 23 训练
  • wordcount程序
  • 回溯法理论基础 LeetCode 77. 组合 LeetCode 216.组合总和III LeetCode 17.电话号码的字母组合
  • 【进程控制二】进程替换和bash解释器
  • 线性回归策略
  • Linux下的c/c++开发之操作Redis数据库
  • Bitmap、Roaring Bitmap、HyperLogLog对比介绍
  • JavaScript 的编译与执行原理
  • fastapi项目中数据流转架构设计规范
  • NHANES指标推荐:FMI
  • 【JDBC】JDBC常见错误处理方法及驱动的加载
  • React中useState中更新是同步的还是异步的?