# Data Cube Aggregation **Repository Path**: elihe999/datacube-aggregation ## Basic Information - **Project Name**: Data Cube Aggregation - **Description**: 常用的一些聚合函数,整合成包 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-06 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DataCube Aggregation PHP 数据立方体聚合与机器学习库 ## 简介 DataCube-Aggregation 是一个功能强大的 PHP 数据处理与机器学习库,提供数据聚合、统计分析、机器学习算法、路径查找等功能。该库旨在为 PHP 开发者提供便捷的数据处理和智能分析工具。 ## 功能特性 ### 🔢 数据聚合函数 - **基础聚合**: 求和、平均、计数、最大值、最小值、去重统计 - **日期筛选**: 今日、昨日、上周、近7天、近一年、日期范围筛选 - **数值筛选**: 等于、大于、小于、区间判断、空值检测 - **文本筛选**: 精确匹配、模糊包含、开头/结尾匹配 - **TopK 查询**: 获取TopK最大/最小值 - **数据透视表**: 强大的数据透视功能 ### 📊 统计函数 - 样本标准差、方差计算 - 平均值、中位数、众数 - 百分位数计算 - 异常值识别 (3σ原则) - 统计图形 (箱线图、直方图、QQ图) ### 🤖 机器学习 #### 分类算法 - SVC (支持向量机分类) - AdaBoost - K近邻 (KNN) - KD树近邻 - 逻辑回归 - 决策树分类 #### 回归算法 - Adaline - MLP 多层感知机 #### 聚类算法 - K-Means - DBSCAN - GMM (高斯混合模型) #### 异常检测 - LODA #### 关联分析 - Apriori 关联规则 #### 降维与变换 - PCA 主成分分析 - 数据集转换器 ### 🧭 路径查找 - A* (A-Star) 算法 - Dijkstra 算法 ### 📅 日期时间工具 - 时间戳处理 - 日期分组 (按年/季/月/周/日/时/分) - 友好时间显示 - 时区转换 ### 🔍 其他工具 - 数据清洗与缺失值处理 - 文本处理 (字符串索引) - 数据分割 (分层采样、K折交叉验证) - Excel 列号处理 - 图像像素处理 ## 安装 ```bash composer require elihe999/datacube-aggregation ``` ## 快速开始 ### 数据聚合 ```php use DataCube\DataCubeAggregation\Functions\Aggregate\BasicFunc; use DataCube\DataCubeAggregation\Functions\Aggregate\Summarize; $data = [ ['name' => 'Alice', 'score' => 85], ['name' => 'Bob', 'score' => 92], ['name' => 'Charlie', 'score' => 78], ]; $basicFunc = new BasicFunc(); $sum = $basicFunc->sum(array_column($data, 'score')); $avg = $basicFunc->avg(array_column($data, 'score')); $max = $basicFunc->max(array_column($data, 'score')); ``` ### 筛选过滤 ```php use DataCube\DataCubeAggregation\Functions\Aggregate\TextFilter; use DataCube\DataCubeAggregation\Functions\Aggregate\NumberFilter; $textFilter = new TextFilter(); $result = $textFilter->contains($data, 'name', 'Alice'); $numberFilter = new NumberFilter(); $result = $numberFilter->greaterThan($data, 'score', 80); ``` ### 机器学习 - 分类 ```php use DataCube\DataCubeAggregation\AI_Toolkit\Classification\KNearestNeighbors; $samples = [[1, 2], [2, 3], [3, 4], [4, 5]]; $targets = ['A', 'A', 'B', 'B']; $knn = new KNearestNeighbors(['k' => 3]); $knn->train($samples, $targets); $prediction = $knn->predict([[3, 3]]); // ['B'] ``` ### 机器学习 - 聚类 ```php use DataCube\DataCubeAggregation\Functions\MachineLearning\Clustering\Kmeans; $data = [[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]]; $kmeans = new Kmeans(); $clusters = $kmeans->kMeans($data, 2); ``` ### 路径查找 - A* ```php use DataCube\DataCubeAggregation\Functions\PathFinding\AStar; use DataCube\DataCubeAggregation\Functions\PathFinding\AStar\Terrain\TerrainCost; use DataCube\DataCubeAggregation\Functions\PathFinding\AStar\Terrain\Position; $terrainCost = new TerrainCost([ [1, 1, 1, 1, 1], [1, 2, 2, 2, 1], [1, 2, 1, 1, 1], ]); $astar = new AStar($domainLogic); $route = $astar->run(new Position(0, 0), new Position(2, 3)); ``` ### 统计计算 ```php use DataCube\DataCubeAggregation\Functions\Statistic\StatisticalFunc; $stat = new StatisticalFunc(); $mean = $stat->mean($data); $median = $stat->median($data); $std = $stat->sd($data); $outliers = $stat->identifyOutliers($data, $upperLimit, $lowerLimit); ``` ### 数据透视表 ```php use DataCube\DataCubeAggregation\Utils\Graphics\Pivot; $pivot = new Pivot([ 'rows' => ['category'], 'columns' => ['year'], 'values' => ['sales'], 'aggregate' => 'SUM', ]); $result = $pivot->pivotTable($data, 'category', 'year'); ``` ## 项目结构 ``` src/ ├── AI_Toolkit/ # 机器学习算法 │ ├── Classification/ # 分类算法 │ ├── Regression/ # 回归算法 │ ├── Clustering/ # 聚类算法 │ ├── AnomalyDetectors/ # 异常检测 │ ├── Association/ # 关联分析 │ ├── Transformer/ # 数据变换 │ └── Interfaces/ # 接口定义 ├── Functions/ # 功能函数 │ ├── Aggregate/ # 聚合函数 │ ├── OLAP/ # OLAP函数 │ ├── Statistic/ # 统计函数 │ ├── PathFinding/ # 路径查找 │ ├── MachineLearning/ # 机器学习工具 │ └── Transform/ # 数据变换 ├── Utils/ # 工具类 │ ├── DateTime/ # 日期时间 │ ├── Graphics/ # 图形处理 │ └── Image/ # 图像处理 ├── Exception/ # 异常类 └── Data/ # 示例数据 ``` ## 数据集 项目包含多个示例数据集供测试使用: - `iris.csv` - 鸢尾花数据集 - `housing.csv` - 房价预测数据集 - `wine.csv` - 葡萄酒数据集 - `churn.csv` - 客户流失数据集 - `car.csv` - 汽车数据集 - `horse-colic.csv` - 马疝气数据集 - `monthly-sunspots.csv` - 太阳黑子数据集 ## 测试 项目包含完整的单元测试,覆盖主要功能模块: ```bash # 运行测试 php vendor/bin/phpunit tests/ ``` ## 环境要求 - PHP >= 7.4 - Composer ## 依赖库 项目使用以下 PHP 库 (通过 Composer 安装): - php-ai/php-ml - rubix/ml - symfony/config - symfony/options-resolver ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request!