当前位置: 首页 > 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  

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

相关文章:

  • 【Linux网络编程】Socket编程:协议理论入门
  • 数据中台驱动生产流程优化:从孤岛到全局敏捷
  • 游戏引擎学习第290天:完成分离渲染
  • ORACLE数据库实例报错ORA-00470: LGWR process terminated with error宕机问题分析报告
  • Java 原生网络编程(BIO | NIO | Reactor 模式)
  • 下集:一条打包到底的静态部署之路
  • hadoop.proxyuser.代理用户.授信域 用来干什么的
  • jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞
  • 免费代理IP服务有哪些隐患?如何安全使用?
  • 中国各省供水量、用水量相关数据(2003-2022年)-社科数据
  • (3)python爬虫--Xpath
  • Python爬虫之路(14)--playwright浏览器自动化
  • uniapp -- uCharts 仪表盘刻度显示 0.9999999 这样的值问题处理。
  • 卸载和安装JDK
  • 电商项目-品牌管理微服务开发
  • Jackson使用详解
  • 代码随想录算法训练营第四十二四十三天
  • 提示词工程框架:CoT、ToT、GoT、PoT( 链式提示)
  • 磁盘I/O子系统
  • Scrapy进阶实践指南:从脚本运行到分布式爬取
  • 著名文博专家吴远明因交通事故离世,享年75岁
  • 澎湃与七猫联合启动百万奖金征文,赋能非虚构与现实题材创作
  • 为什么越来越多景区,把C位留给了书店?
  • 市场监管总局召开平台企业支持个体工商户发展座谈会
  • 习近平会见智利总统博里奇
  • “80后”德州市接待事务中心副主任刘巍“拟进一步使用”