FreeAeon-ML是一个机器学习工具库,提供数据探索、预处理、特征工程、模型训练、评估和可视化的完整解决方案。
pip install FreeAeon-ML
pip install pandas numpy scikit-learn h2o matplotlib seaborn scipy statsmodels imbalanced-learn pyvis pyecharts copulas
应用场景:生成测试数据、数据集划分、不平衡数据处理
主要方法:
get_random_regression() - 生成回归样本get_random_classification() - 生成分类样本get_random_cluster() - 生成聚类样本split_dataset() - 划分训练测试集resample_smote() - SMOTE重采样处理不平衡数据resample_balance() - 简单平衡重采样find_changed_index() - 查找时序变化点split_dataframe() - 批量划分数据应用场景:分布可视化、正态性检验、分布对比
主要方法:
show_dist() - 显示分布图normal_test() - 正态性检验dist_test() - 分布相似性检验normal_fit() - 正态分布拟合应用场景:时间序列平稳性检验、因果关系分析
主要方法:
stationarity_test() - 平稳性检验 (ADF检验)show_acf_pacf() - 显示自相关和偏自相关图granger_test() - 格兰杰因果检验应用场景:曲线拟合、趋势分析
主要方法:
fit() - 数据拟合,支持三种模式:plot() - 绘制拟合曲线get_fit_data() - 获取拟合数据get_fit_param() - 获取拟合参数应用场景:描述性统计分析、数据特征提取
主要方法:
get_one_stats() - 计算单变量统计量get_stats() - 计算多变量统计量应用场景:数据转换、异常值处理、标准化
主要方法:
normal_transform() - Box-Cox正态转换normal_recovery() - 逆正态转换polyfit() - 多项式拟合get_abnormal() - 检测异常值 (Z-Score方法)remove_abnormal() - 移除异常值get_scale() - 标准化处理get_transformer_position_encoding() - Transformer位置编码assign_qbins() - 等频率分箱应用场景:分布映射、域适应、数据增强
主要方法:
fit() - 学习源分布到目标分布的映射transform() - 转换数据分布inverse() - 逆转换恢复原始分布支持模式:
应用场景:特征筛选、降维、因果分析
主要方法:
load() - 加载数据到H2O框架get_inform_graph() - 生成信息图 (基于H2O)get_anovaglm() - GLM-ANOVA方差检验granger_test() - 格兰杰因果检验get_data_pca() - PCA和t-SNE降维可视化get_matrix_by_pca() - PCA矩阵降维和重构应用场景:自动化分类模型训练(支持二分类和多分类)
主要方法:
train() - 训练多个分类模型save() - 保存模型到文件load() - 从文件加载模型predict() - 预测类别和概率evaluate() - 评估模型性能importance() - 特征重要性分析支持算法:
应用场景:自动化回归模型训练
主要方法:
train() - 训练多个回归模型save() - 保存模型load() - 加载模型predict() - 预测数值evaluate() - 评估模型性能importance() - 特征重要性分析支持算法:
应用场景:无监督聚类分析
主要方法:
fit_predict() - 训练并预测聚类标签evaluate() - 评估聚类性能sample_cluster() - 为样本添加聚类标签支持算法:
评估指标:
应用场景:时间序列预测、季节性分析
主要方法:
fit() - ARIMA模型拟合predict() - 预测训练期数据forecast() - 预测未来数据auto_fit() - 自动搜索最佳参数decomposition() - 季节性分解show_model() - 显示模型摘要信息show_result() - 可视化预测结果CFAEvaluation - 模型评估
应用场景:分类模型性能评估、ROC曲线分析
主要方法:
evaluate() - 分类模型综合评估get_binary_roc() - 计算ROC曲线数据show_binary_roc() - 绘制ROC曲线CFASimilarity - 相似度计算
应用场景:序列相似度比较、分布一致性检验
主要方法:
Cosine() - 余弦相似度Pearson() - 皮尔森相关系数Euclidean() - 欧氏距离Manhattan() - 曼哈顿距离Minkowski() - 闵可夫斯基距离Jaccard() - Jaccard相似度系数KSTest() - Kolmogorov-Smirnov检验EMD() - 地球移动距离应用场景:数据可视化、统计图表
主要方法:
show_heatmap() - 热力图展示get_sankey() - 桑基图(流向图)show_contour() - 等高线图show_sequence() - 时序数据网络图应用场景:关系网络、流程图、时序可视化
主要方法:
Add_Node() - 添加节点Add_Edge() - 添加边Add() - 便捷添加节点和边Show() - 生成交互式HTML图形Show_Series() - 时序数据可视化call_edge_info() - 边信息计算特性:
应用场景:数据IO、通用工具
主要方法:
load_csv() - 带进度条的CSV加载# 步骤1: 生成或加载数据
from FreeAeonML.FASample import CFASample
df_data = CFASample.get_random_classification(
n_sample=1000,
n_feature=10,
n_class=2
)
# 步骤2: 数据探索
from FreeAeonML.FADataEDA import CFADataDistribution, CFACommonStats
# 统计分析
stats = CFACommonStats.get_stats(df_data)
print(stats)
# 分布检验
result = CFADataDistribution.normal_test(df_data['x0'])
print(result)
# 步骤3: 数据预处理
from FreeAeonML.FADataPreprocess import CFADataPreprocess
# 标准化
df_scaled, _ = CFADataPreprocess.get_scale(
df_data,
y_column=['y'],
scale_type='z-score'
)
# 步骤4: 特征选择
from FreeAeonML.FAFeatureSelect import CFAFeatureSelect
import h2o
h2o.init(nthreads=-1, verbose=False)
selector = CFAFeatureSelect()
selector.load(df_scaled, y_column='y')
ig = selector.get_inform_graph("AUTO")
# 步骤5: 数据集划分
df_train, df_test = CFASample.split_dataset(
df_scaled,
test_ratio=0.2
)
# 步骤6: 模型训练
from FreeAeonML.FAModelClassify import CFAModelClassify
model = CFAModelClassify()
model.train(df_train, y_column='y', train_ratio=0.85)
# 步骤7: 模型评估
df_evaluate = model.evaluate(df_test, y_column='y')
print(df_evaluate)
# 步骤8: 特征重要性
df_importance = model.importance()
print(df_importance)
# 步骤1: 加载数据
import pandas as pd
ds_data = pd.Series([...]) # 你的时序数据
# 步骤2: 平稳性检验
from FreeAeonML.FADataEDA import CFADataTest
result = CFADataTest.stationarity_test(ds_data)
print(result)
# 步骤3: 查看ACF/PACF
CFADataTest.show_acf_pacf(ds_data)
# 步骤4: ARIMA建模
from FreeAeonML.FAModelSeries import CFAArima
from FreeAeonML.FASample import CFASample
df_train, df_test = CFASample.split_dataset(
pd.DataFrame({'y': ds_data}),
test_ratio=0.2
)
model, order = CFAArima.auto_fit(
ds_train=df_train['y'],
ds_test=df_test['y'],
seasonal_order_range=((1,3), (0,2), (1,3), (1,12))
)
# 步骤5: 预测未来
forecast = CFAArima.forecast(model, num_future_points=10)
print(forecast)
# 步骤6: 可视化
CFAArima.show_result(df_test['y'], model.predict())
# 步骤1: 生成数据
from FreeAeonML.FASample import CFASample
df_data = CFASample.get_random_cluster(n_sample=500)
# 步骤2: 降维可视化
from FreeAeonML.FAFeatureSelect import CFAFeatureSelect
df_pca, df_tsne = CFAFeatureSelect.get_data_pca(
df_samples=df_data,
n_components=2,
label_column='y',
with_plot=True
)
# 步骤3: 聚类
from FreeAeonML.FAModelCluster import CFAModelCluster
cluster_model = CFAModelCluster(cluster_count=2)
df_result = cluster_model.fit_predict(df_data[['x1', 'x2']])
# 步骤4: 评估
df_perf = cluster_model.evaluate(df_data[['x1', 'x2']])
print(df_perf)
# 步骤5: 获取聚类标签
df_clustered = cluster_model.sample_cluster(
df_result,
df_data,
model_name="KMeans"
)
print(df_clustered)
使用分类/回归/特征选择模块前需要初始化H2O:
import h2o
h2o.init(nthreads=-1, verbose=False)
WSL环境:使用 h2o.connect() 替代 h2o.init()
| 模块 | Linux | macOS (Intel) | macOS (ARM) | Windows |
|---|---|---|---|---|
| 基础功能 | ✅ | ✅ | ✅ | ✅ |
| H2O (非XGBoost) | ✅ | ✅ | ✅ | ✅ |
| XGBoost | ✅ | ✅ | ❌ | ❌ |