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

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

这里继续 机器学习-人与机器生数据的区分模型测试-数据处理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.xdnf.cn/news/498871.html

相关文章:

  • 【漫话机器学习系列】263.线性插值(Interpolation)
  • img.dims() <= 2 in function ‘cv::matchTemplate报错
  • Mysql 刷题 day05
  • 数学复习笔记 19
  • 1.2.1电商平台
  • 探索C++对象模型:(拷贝构造、运算符重载)成员函数的深度解读(中篇)
  • 力扣HOT100之二叉树:98. 验证二叉搜索树
  • 【网络入侵检测】基于Suricata源码分析运行模式(Runmode)
  • STM32烧录程序正常,但是运行异常
  • 实战2:利用Python与AI模型实现文本分类
  • STM32F103定时器1每毫秒中断一次
  • 机器学习中的过拟合及示例
  • 咖啡叶子病害检测数据集VOC+YOLO格式1468张4类别均为单叶子
  • mac-M系列芯片安装软件报错:***已损坏,无法打开。推出磁盘问题
  • PySide6 GUI 学习笔记——常用类及控件使用方法(常用类颜色常量QColorConstants)
  • JavaScript 中的 for...in 和 for...of 循环详解
  • 深入理解 TypeScript 中的 unknown 类型:安全处理未知数据的最佳实践
  • Qt Widgets模块功能详细说明,基本控件:QLabel(一)
  • 园区综合能源系统容量优化配置全流程解析:从业务逻辑到 MATLAB 实现
  • 计算机视觉与深度学习 | Matlab实现EMD-LSTM和LSTM时间序列预测对比(完整源码和数据)
  • 计算机视觉与深度学习 | Python实现EMD-SSA-VMD-LSTM-Attention时间序列预测(完整源码和数据)
  • C语言指针深入详解(一):内存和地址、指针变量和地址、指针变量类型的意义、指针运算
  • 2025.05.17淘天机考笔试真题第三题
  • Compose笔记(二十三)--多点触控
  • 1688 数据接口调用秘籍:高效获取商品实时信息的开发指南
  • Redis技术深度解析
  • Elasticsearch 查询与过滤(Query vs. Filter)面试题
  • Vue3(一)
  • 机器学习 KNN算法
  • 当硅基存在成为人性延伸的注脚:论情感科技重构社会联结的可能性