# feature_store **Repository Path**: yuanjun220/feature_store ## Basic Information - **Project Name**: feature_store - **Description**: feast + spark - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-13 - **Last Updated**: 2025-12-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 使用说明 # 反洗钱预测模型 Demo ## 项目概述 这是一个简易的反洗钱风险预测系统,使用机器学习技术识别潜在的高风险用户。 ## 技术栈 - **特征存储**: Feast - **机器学习框架**: PySpark - **模型算法**: XGBoost (SparkXGBClassifier) - **编程语言**: Python 3.8+ ## 项目结构 ``` feature_store/ ├── feature_repo/ │ ├── feature_repo/ │ │ ├── aml_features.py # 特征定义 │ │ ├── feature_store.yaml # Feast配置 │ │ └── data/ # 特征数据存储 │ ├── generate_data/ │ │ └── generate_data.py # 模拟数据生成脚本 │ ├── models/ │ │ ├── model/ # 模型存储目录 │ │ │ └── model_report.json # 模型报告 │ │ ├── predict.py # 预测脚本 │ │ └── train_model.py # 模型训练脚本 │ └── README.md ├── requirements.txt # 依赖包列表 ├── README.md # 本文档 └── LICENSE ``` ## 安装和设置 ### 安装教程 ```bash # 1. 创建虚拟环境 python -m venv .venv # 2. 激活虚拟环境 # Linux/Mac: source .venv/bin/activate # Windows: .\.venv\Scripts\activate # 3. 配置镜像源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 4. 安装依赖 pip install -r requirements.txt ``` ## 运行流程 ### 1. 生成数据 ```bash cd feature_repo python generate_data/generate_data.py ``` ### 2. 初始化Feast特征存储 ```bash # 应用特征定义 feast apply # 将数据加载到在线存储 feast materialize-incremental $(date +%Y-%m-%d) ``` ### 3. 训练模型 ```bash cd models python train_model.py ``` 训练完成后会生成: - 模型文件: model/aml_xgboost_model/ - 模型报告: model/model_report.json ### 4. 运行预测 ```bash python predict.py ``` ## 特征说明 ### 用户基本特征 - age: 用户年龄 - occupation: 职业类型 - country: 国家 ### 交易行为特征 - avg_transaction_amount: 平均交易金额 - total_transactions_last_30d: 过去30天交易次数 - transaction_frequency: 交易频率 - max_transaction_amount: 最大交易金额 - transaction_amount_std: 交易金额标准差 ### 账户特征 - account_age_days: 账户存在天数 - num_accounts: 账户数量 - avg_account_balance: 平均账户余额 ### 风险相关特征 - high_risk_country_flag: 高风险国家标志 - pep_flag: 政治人物标志 - suspicious_activity_count: 可疑活动次数 - unusual_transaction_pattern: 异常交易模式 ### 行为特征 - login_frequency: 登录频率 - device_changes: 设备变更次数 - ip_changes: IP地址变更次数 ### 目标变量 - is_aml_risk: 是否为反洗钱高风险用户(标签) 特征说明 用户基本特征 age: 用户年龄 occupation: 职业类型 country: 国家 交易行为特征 avg_transaction_amount: 平均交易金额 total_transactions_last_30d: 过去30天交易次数 transaction_frequency: 交易频率 max_transaction_amount: 最大交易金额 风险相关特征 high_risk_country_flag: 高风险国家标志 pep_flag: 政治人物标志 suspicious_activity_count: 可疑活动次数 unusual_transaction_pattern: 异常交易模式 ## 模型性能 ### 评估指标 - AUC-ROC: 衡量模型区分能力的指标 - 准确率: 正确预测的比例 ## API使用示例 ```python from predict import AMLPredictor # 初始化预测器 predictor = AMLPredictor("model/aml_xgboost_model") # 单用户预测 user_data = { "user_id": "USER_001", "age": 35, "occupation": "employed", "country": "US", "avg_transaction_amount": 1000.0, "total_transactions_last_30d": 25, "transaction_frequency": 5.0, "max_transaction_amount": 5000.0, "transaction_amount_std": 800.0, "account_age_days": 365, "num_accounts": 2, "avg_account_balance": 8000.0, "high_risk_country_flag": 0, "pep_flag": 0, "suspicious_activity_count": 1, "unusual_transaction_pattern": 0, "login_frequency": 10.0, "device_changes": 1, "ip_changes": 2 } result = predictor.predict(user_data) # 批量预测 batch_results = predictor.predict_batch([user_data1, user_data2]) # 获取模型信息 model_info = predictor.get_model_info() ``` ## 扩展建议 ### 1. 增加更多特征 - 社交网络分析特征 - 行为序列模式 - 地理位置特征 - 时间序列特征 ### 2. 模型改进 - 尝试深度学习模型 - 集成学习方法 - 实时学习更新 ### 3. 系统扩展 - 添加实时特征计算 - 集成监控告警系统 - 添加可解释性模块 ## 注意事项 - 数据隐私: 实际使用时需确保符合数据隐私法规 - 模型验证: 定期验证模型性能,防止模型漂移 - 监控: 建立模型预测监控系统 - 合规: 确保模型符合反洗钱监管要求 ## 故障排除 - Feast相关错误: 确保已正确初始化Feast存储 - Spark内存不足: 调整spark.driver.memory配置 - 模型加载失败: 检查模型路径和版本兼容性 ## 许可证 本项目仅供学习和演示使用。