# 市场研究MMInsight算法 **Repository Path**: deeporigin/MMInsight ## Basic Information - **Project Name**: 市场研究MMInsight算法 - **Description**: MMInsight算法撕开突破口。这套系统不用魔法,而是靠四根技术支柱撑起新局面。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-10 - **Last Updated**: 2025-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MMInsight 算法文档 ## 概述 MMInsight 是一个针对大规模市场分析场景优化的算法框架,支持异构数据融合和动态特征生成。该算法特别适用于需要处理多种数据源(结构化数据、文本数据、图像数据和图数据)的商业分析场景。 ## 核心功能 1. **异构数据融合**:统一处理SQL数据库、日志文件、用户评论等多源数据 2. **动态特征工程**:自动生成时序特征、交叉特征和图网络特征 3. **智能特征选择**:基于信息熵和模型重要性自动筛选高价值特征 ## 安装要求 ```bash pip install numpy pandas scikit-learn transformers vaderSentiment tsfresh stellargraph featuretools lightgbm ``` ## 核心模块 ### 1. HybridDataFusion (异构数据融合层) #### 功能 - 多源结构化数据对齐与修复 - 非结构化文本特征提取(BERT嵌入 + VADER情感分析) - 基于信息熵的动态权重分配 - 特征级数据融合 #### API说明 ```python class HybridDataFusion(entropy_threshold=0.85) ``` 参数: - `entropy_threshold`: 信息熵阈值,低于此值的数据源权重将被设为0.01 主要方法: - `fuse(sql_data, log_data, text_data, img_data=None)`: 执行数据融合 - 返回: 融合后的特征矩阵(numpy.ndarray) ### 2. AdaptiveFeatureFactory (动态特征工厂) #### 功能 - 自动生成500+种时间序列特征 - 构建行为交叉特征 - 提取用户关系网络特征 - 基于LightGBM的特征重要性选择 #### API说明 ```python class AdaptiveFeatureFactory(time_window=30) ``` 参数: - `time_window`: 时间窗口大小(天) 主要方法: - `generate(raw_data, graph_data=None)`: 生成所有特征 - 返回: 包含所有特征的DataFrame - `auto_feature_selection(X, y)`: 执行特征选择 - 返回: 筛选后的特征矩阵 ## 使用示例 ### 基本用法 ```python from main import HybridDataFusion, AdaptiveFeatureFactory # 初始化融合器 fusion = HybridDataFusion() # 执行数据融合 fused_data = fusion.fuse(sql_df, log_df, text_data) # 初始化特征工厂 factory = AdaptiveFeatureFactory() # 生成特征 features = factory.generate(raw_data, graph_data) # 特征选择 selected_features = factory.auto_feature_selection(X, y) ``` ### 完整流程示例 ```python import pandas as pd from main import HybridDataFusion, AdaptiveFeatureFactory # 1. 准备数据 sql_df = pd.read_csv('sql_data.csv') log_df = pd.read_csv('log_data.csv') with open('comments.txt') as f: text_data = f.readlines() raw_data = pd.read_csv('user_actions.csv') graph_data = { "nodes": pd.read_csv('user_nodes.csv'), "edges": pd.read_csv('user_relations.csv') } # 2. 数据融合 fusion = HybridDataFusion() fused = fusion.fuse(sql_df, log_df, text_data) # 3. 特征生成 factory = AdaptiveFeatureFactory() features = factory.generate(raw_data, graph_data) # 4. 特征选择 X = features.values y = pd.read_csv('target.csv').values selected_X = factory.auto_feature_selection(X, y) ``` ## 注意事项 1. **BERT模型加载**:首次使用会下载约400MB的预训练模型 2. **内存需求**:处理大规模文本数据时需要至少16GB内存 3. **图数据处理**:StellarGraph需要节点和边数据为特定格式: - 节点DataFrame必须包含index列 - 边DataFrame必须包含source和target列 4. **特征选择**:auto_feature_selection需要已标记的训练数据 ## 性能优化建议 1. 对于超过100万条记录的数据集,建议: - 使用Dask替代Pandas - 启用TFBertModel的GPU加速 2. 分布式计算支持: ```python from dask.distributed import Client client = Client() # 启动Dask集群 ``` ## 许可证 Apache License 2.0 和我聊天微:cy321one 反馈邮箱:[samhoclub@163.com](mailto:samhoclub@163.com) 公众号:尘渊文化 官网:www.cycu.top