DDDA
Project description
DDDA (Data Driven Dimensional Analysis) v1.4.1
DDDA can extract the uniqueness and relative importance features in dimensionless number from one or more sets of experiment data. This package is basic on buckinhum pi theory but upgraded.
目录 :point_down:
特点
🔐 Robust
- 强噪声抑制 —— 在数据预处理截断我们开发并在全局上使用了高阶的自适应收敛算法,至少在2阶精度上使每一数据点做到了最佳收敛。
🏄 Researcher friendly
- 可以根据使用者所处环境内的噪声情况对结果的不确定性进行定量化。
- 我们尽最大程度减少了自定义参数。
📊 Good visualisation
- 所有的数据都可以方便的以图表方式呈现。
🚀 Fast (and light) All algorithms work within optimised data structure:
- 针对高维度大数据量计算进行了数据结构优化,随着数据维度(k)增加,主要代码的时间复杂度由O(n^k)降低为O(kN^(1-1/k)).
入门指南
安装
-
下载代码包至本地
Github
Shell: (https) & (ssh)
git clone https://github.com/whoseboy/DDDA.git git clone git@github.com:whoseboy/DDDA.git
-
创建 Python 3.8 或以上更新环境.
使用 Anaconda:
conda create -n my-package python=3.8 conda activate my-package
需要安装的代码包:
conda install numpy pandas scipy copy math numba sklearn pylab operator random
可以选装的代码包 —— 用于可视化和计时:
conda install matplotlib seaborn time
如何使用代码包
示例
我们在jupyter notebook中提供了简洁易读的测试算例:
☝️ 上述算例的详细信息可以看链接内文件夹中的readme文档
关于本程序包
工作流程图
部分算法解释
自适应收敛光滑
基于径向基函数的原理,为了抑制数据的噪声,我们将每一个数据点都做了局部最佳优化。
上图是我们示例数据中某一数据点的收敛判定。
图中,x轴代表光滑长度,其随x轴的增加而增大,y轴为抽象出来的收敛参数以0为判定基准。
左图中,红色的点为以欧式距离为标准,运用在本算法中得到的0阶距,其随光滑长度的增大而收敛。绿色点为1阶距的结果,其随光滑长度的增加而愈加远离判定基准。
这种交叉的趋势提供了最优收敛点,如右图所见,我们将两组数据组合后,选择了最小的计算域为此数据点的最佳收敛位置。
基于位置噪声的权重分配
我们根据数据点的位置噪声,使用voronoi图的方式为每一数据点分配了权重。并在n维度数据点的voronoi cell边缘切割上提供了创新可靠的算法。
流程概览
我们以2维与3维算例为基础,按流程图的顺序向您展示我们代码中每一步骤的实现方法和巧思。
Tubeflow
This case is performed in v0.0.0, which is the initial edition specified in 2D. The dataset come out of real experiment.
FAQ
输入的数据结构
正在开发中
v2.0.0 - 对噪声的传播进行定量化。
重要版本更新
v1.4.0 确定了参数之间的相关性,减少了用户自定义参数,提高易用性
v1.3.0 重写了聚类算法,提升了聚类精度。提升了数据可视化程度
v1.2.0 更新收敛算法,从单一的0阶距提升到了高阶距
v1.1.0 数据结构优化
v1.0.0 改写MATLAB代码到Python
v0.4.2 完整的MATLAB下的三维代码实现
v0.3.1 截止到分区的MATLAB下的三维代码实现
v0.2.0 截止到分区的MATLAB下的二维代码实现
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.