所谓的有向哈斯图技术方法其实就是解释结构模型方法,只不过换了一个说法而已。 Directed-Hasse Diagram Technique,D-HDT翻译成中文就是有向哈斯图技术。
哈斯图(英语Hasse 发音为/ˈhæsə/, 德语: /ˈhasə/)、在离散数学中的序理论有着描述,是用来表示有限偏序集的一种数学图表,它是一种图形形式的对偏序集的传递简约。
用数学符号的方式来表示就是:对于偏序集合$(S, ≤)$,把$S$的每个要素表示为图的的顶点,从某空间拓扑平面$x \rightarrow y$ 偏序方向上的边,只要$y 覆盖x$。这些弧线可以相互交叉但不能触及任何非其端点的顶点。带有标注的顶点的这种图唯一确定这个集合的偏序。
上面的话,没有学过或者了解偏序的肯定听了一脸懵逼。这个可以先放一边。仅仅记住下面的一句话就理解了D-HDT等价于ISM方法。
哈斯矩阵就是骨架矩阵;且哈斯矩阵不存在回路。
哈斯图是以德国人Helmut Hasse(1898-1979)来命名; 根据加勒特·伯克霍夫(Garrett Birkhoff,1948)的解释——人们之所以用哈斯图来称呼这种技术,是因为Hasse非常高效地使用了它们。 但是,哈斯本人并不是第一个使用HDT的人。 根据已有的文献表明Henri Gustav Vogt在 1895就使用过这种方法,而当时术语“哈斯图”还可以称呼作为抽象有向无环图(DAG)的传递简约,独立于这个图的任何绘制形式。
D-HDT跟ISM几乎就是一个东西,或者说在得到哈斯布尔矩阵后的处理,D-HDT就是ISM的一个子集。但是运用D-HDT的文章不多,远低于用ISM的文章。两者相差几个数量级。造成这种差异有两个原因:
1、偏序的概念相对难理解。如偏序集合 Partially ordered set等概念与算法
2、偏序相关的一些术语翻译得很混乱,部分翻译得跟一坨屎一样,进一步阻碍了D-HDT运用的推广。比如最小元、最大元、极小元、极大元;上界、下界、最小上界、最大下界;格等等术语。其中上界有一些就叫上确界,同时还看到过有人翻译成上阙界。
在计算机科学领域,偏序有着大量的运用,比如数据库中的对表查询语句 …… order by A,B ……就是一种偏序;这种情况太习以为常了,所以除了一些理论研究外,几乎没有人专门讲偏序。在纯数学与计算机领域之外,大力推动哈斯图方法的人是布吕格曼 (Brüggemann)。
在已有的国内外的文章基本是按照他的思路依葫芦画瓢弄的。不过检验过布吕格曼的一篇运用的文章,发现他在具体的运用中也有计算错误的。
有意思的是布吕格曼跟哈斯都是德国人。
在国内我国学者岳立柱用这个方法整了不少文章。他的文章在偏序到哈斯矩阵的这个过程是严谨的数理推演过程。并非单纯的运用。
而在哈斯图相关的文章中,最有特点的是有人画了八卦哈斯图
该文称“易有太极,是生两仪,两仪生四象,四象生八卦”。我们这里没有采用序理论构建哈斯图的方法,而是根据八卦本身特有的矩阵变换直接得到。实际上,这两种方法是一样的,都能得到一个八元哈斯 图。八元哈斯图对易图重构之所以重要,是因为它能与易图的八卦相对应。获 “八卦哈斯图原型”( 图1) 后,经八卦行列相乘,则有卦名的以下排列: 坤、艮、坎、巽、震、离、兑、乾,获 “八卦卦名哈斯图”( 图2) 。再用二进制数表示各卦的爻,则有 “八卦卦爻哈斯图”( 图3) 。
最后该文称:中国古老的易图似乎可被视为现代电子计算机与信息技术逻辑运算的 “先驱”( 图 6)
八卦哈斯图得到的逻辑暂且不去讨论。但是上面的图二、图三是真画对了,它的确是一个骨架矩阵。层级也没有问题。而图六要素剩余格按照标准画法是要向下移动一个层级。
对比起错误一堆的文章八卦哈斯图最少是画对了,或者说算对了。
整体步骤
$$ \require{cancel} S=\left[ s_{ij} \right]_{n \times m} \require{AMScd} \begin{CD} @>最少100种大小方法,比如各种神经网络>> F=\left[ f_{ij} \right]_{n \times m}@>累加聚类>>D=\left[ d_{ij} \right]_{n \times m}@>取偏序>>A=\left[ a_{ij} \right]_{n \times n}@>求解一般性骨架矩阵>>HS=\left[ h_{ij} \right]_{n \times n} \Longrightarrow 绘制有向哈斯图 \\ \end{CD} $$
1)、$S$为原始数据,以表格形式存在,它需要真实、客观的具有明显测度的数据。
2)、$F$为模糊矩阵。它具有三个特征,归一化、标准化和正则化。其中归一化为最主要的特征
3)、$D$通过各种转化得到的一个累加矩阵。其特征是具有聚类特点
4)、$A$为普通的布尔方阵。其特点为无回路。
5)、$HS$为骨架矩阵。
6)、层级图的绘制就是最简菊花拓扑层级图,也就是ISM层级图的绘制。
一、研究对象的确立
1)、确定样品(方案)要素集合。
2)、确定评价指标(可测度的分类)要素集合。
不失一般性,系统有如下矩阵形式 :
$$ S=\left[ s_{ij} \right]_{n \times m} $$
$$S=\begin{array} {c|c|c|c|c|c|c|c}{S_{n \times m}} &1 &2 &{\cdots} &m \\ \hline 1 & {s_{11}}&{s_{12}}&{\cdots}&{s_{1m}}\\ \hline 2 & {s_{21}}&{s_{22}}&{\cdots}&{s_{2m}}\\ \hline 3 & {s_{31}}&{s_{32}}&{\cdots}&{s_{3m}}\\ \hline {\vdots} &{\vdots}&{\vdots}&{\ddots}&{\vdots}\\ \hline n & {s_{n1}}&{s_{n2}}&{\cdots}&{s_{nm}}\\ \hline \end{array} $$
归一化
1)、归一化的本质是进行无量纲化。即对原始数据进行预处理,去掉因使用不同单位而造成的差异。
2)、无量纲化,通常是以百分比形式表示,即无量纲后的数$\forall n_{ij} \in [0,1]$
无量纲化方法选择的标准:
①客观性。选择的转化公式要能够客观地反映指标数实际值与指标评价值之间的对应关系。要做到客观性原则,需要进行深入彻底的分析和比较,不要乱拍脑袋胡说八道。最好是有实实在在的可表征的数据支撑。
②可行性与可操作性。以酸碱度为例子,在取值的时候,通常是先转化成成PH值再进行无量纲化。
算例$Min-Max$归一化(线性转化):
设:$S$中第一列为氢离子浓度,在5个样本中其浓度$\{s_{11}=1\times 10^{-1}, s_{21}=1\times 10^{-3} ,s_{31}=1\times 10^{-4},s_{41}=1\times 10^{-10},s_{51}=1\times 10^{-12}\}$
得:PH值的集合 $\{s_{11}=1, s_{21}=3 ,s_{31}=4,s_{41}=10,s_{51}=12\}$
采用极差法,且有酸性最强的PH值为1,碱性最强的PH为12
$$ X_{new}=\left| \frac{{X-X_{min}}}{{X_{max}-X_{min}}} \right| $$
采用酸性为表征以 $\{s_{21}=3 \}$为例:
$$ X_{21new}=\left| \frac{{3-12}}{{1-12}} \right|=0.8182 $$
$$N=\{n_{11}=1, s_{21}=0.8182 ,s_{31}=0.7272,s_{41}=0.1818,s_{51}=0\}$$
采用碱性为表征以 $\{s_{21}=3 \}$为例:
$$ X_{21new}=\left| \frac{{3-1}}{{12-1}} \right|=0.8182 $$
$$N=\{n_{11}=0, s_{21}=0.1818 ,s_{31}=0.2727,s_{41}=0.8182,s_{51}=1\}$$
以酸性为表征的归一化后的矩阵:
$$N=\begin{array} {c|c|c|c|c|c|c|c}{N_{5 \times m}} & 酸性 &2 &{\cdots} &m \\ \hline 1 & 1 &{n_{12}}&{\cdots}&{n_{1m}}\\ \hline 2 & 0.8182 &{n_{22}}&{\cdots}&{n_{2m}}\\ \hline 3 & 0.7272 &{n_{32}}&{\cdots}&{n_{3m}}\\ \hline 4 &0.1818 &{\vdots}&{\ddots}&{\vdots}\\ \hline 5 &0 &{n_{52}}&{\cdots}&{n_{5m}}\\ \hline \end{array} $$
以碱性为表征的归一化后的矩阵:
$$N=\begin{array} {c|c|c|c|c|c|c|c}{N_{5 \times m}} & 碱性 &2 &{\cdots} &m \\ \hline 1 & 0 &{n_{12}}&{\cdots}&{n_{1m}}\\ \hline 2 & 0.1818 &{n_{22}}&{\cdots}&{n_{2m}}\\ \hline 3 & 0.2727 &{n_{32}}&{\cdots}&{n_{3m}}\\ \hline 4 &0.8182 &{\vdots}&{\ddots}&{\vdots}\\ \hline 5 &1 &{n_{52}}&{\cdots}&{n_{5m}}\\ \hline \end{array} $$
正则有序化
所谓正则有序化,通俗来说,就是对评价指标的优势度进行排序,或者说对偏序内容(评价指标)的权重进行确定。
计算权重方法非常非常多,不好确定的事物,可以拍脑袋,想个大概就行,只要有道理就行。
而对于客观的体系来说,它是有详实的数据支撑,在神经网络、或者机器学习中,流行的一句话叫,无导师监督学习。因此最好选一些无监督学习的模型。如果用有监督学习的模型,最好有一个公认的,取得了一致的标准。比如国家标准,或者某某标准。
无监督学习有如下方法:
1)、聚类算法
聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。聚类,就像回归一样,有时候人们描述的是一类问题,有时候描述的是一类算法。聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM)。聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络/深度学习。
2)K-均值算法(K-Means)
K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数,利用函数求极值的方法得到迭代运算的调整规则。K-means算法以欧式距离作为相似度测度,它是求对应某一初始聚类中心向量V最优分类,使得评价指标J最小。算法采用误差平方和准则函数作为聚类准则函数。K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。
3)、主成分分析(Principal Component Analysis,PCA)
主成分分析是利用正交变换将一些列可能相关数据转换为线性无关数据,从而找到主成分。PCA方法挺好用的操作起来及其简单,点两下就出来东西,它最大的好处是可以删掉一堆不必要的维度。
4)、SVD矩阵分解(Singular Value Decomposition)
这个没有啥好说的,就一个简单的运算,大把的软件工具。
5)、独立成分分析(ICA)
独立成分分析(Independent Component Analysis,ICA)是一门统计技术,用于发现存在于随机变量下的隐性因素。ICA为给观测数据定义了一个生成模型。在这个模型中,其认为数据变量是由隐性变量,经一个混合系统线性混合而成,这个混合系统未知。并且假设潜在因素属于非高斯分布、并且相互独立,称之为可观测数据的独立成分。
上面一些,可以有非常多种组合,下面介绍最直观的,最简便的熵权法
熵权法是一种客观赋权方法,能够反映出指标信息熵的效用价值,从而确定权重,由它得出的权重值比主观赋权法具有较高的精确度和可信度。
在有向哈斯图中,只需要求出各列之间的权重即可。
$$ 已经归一化矩阵N=\left[ x_{ij} \right]_{n \times m} $$
☆ 第 $ j $ 项指标下第 $i$ 个样本值占该指标的比重:$$ \rho _{ij}=\frac {x_{ij}} {\sum \limits_{i=1}^{n}{x_{ij}}},(i=1,2,3,\cdots,n;j=1,2,3,\cdots,m)$$
☆ 第 $ j $ 项指标(列)的熵值:
$$ e_{j}=-k {\sum \limits_{i=1}^{n}{\rho _{ij}\times ln({\rho _{ij}}) } },(j=1,2,3,\cdots,m)$$
$$其中通常取 \quad \quad k= \frac{1}{ln(n)},( 0 \leqslant e_{j} \lt 1)$$
☆ 第 $ j $ 项指标(列)的差异系数:
$$ \quad d_{j}=1-e_{j} $$
☆ 第 $ j $ 项指标(列)的权重:
$$ \omega_{j}=\frac {d_{j}} {\sum \limits_{j=1}^{m}{d_{j}}},(j=1,2,3,\cdots,m)$$
二、累加矩阵的获得
1)、取偏序前的模糊矩阵获得方法有很多种,比如各种算法微调一下,比如可以用SOM,用AHP,用灰度,用概率,用贝叶斯概率,用ANP……
2)、累加矩阵按照权重大小方向累加值。其本质就是模糊矩阵的一种聚类方式。亦是传递性的一种表现。它具有保序性
设模糊矩阵
$$ 当 \omega_{2}>\omega_{1}>{\cdots}>\omega_{m} \require{AMScd} \begin{CD} @>按权重大小排列>> \end{CD} Fuzzy=\left[ f_{ij} \right]_{n \times m} =\begin{array} {c|c|c|c|c|c|c|c}{F_{n \times m}} &2 &1 &{\cdots} &m \\ \hline 1 & {f_{12}}&{f_{11}}&{\cdots}&{f_{1m}}\\ \hline 2 & {f_{22}}&{f_{21}}&{\cdots}&{f_{2m}}\\ \hline 3 & {f_{32}}&{f_{31}}&{\cdots}&{f_{3m}}\\ \hline {\vdots} &{\vdots}&{\vdots}&{\ddots}&{\vdots}\\ \hline n & {f_{n2}}&{f_{n1}}&{\cdots}&{f_{nm}}\\ \hline \end{array} $$
$$ D=\left[ d_{ij} \right]_{n \times m} =\begin{array} {c|c|c|c|c|c|c|c}{D_{n \times m}} &2 &1 &{\cdots} &m \\ \hline 1 & {f_{12}}&{f_{12}+f_{11}}&{\cdots}&{f_{12}+f_{11}+{\cdots}+f_{1m}}\\ \hline 2 & {f_{22}}&{f_{22}+f_{21}}&{\cdots}&{f_{22}+f_{21}+{\cdots}+f_{2m}}\\ \hline 3 & {f_{32}}&{f_{32}+f_{31}}&{\cdots}&{f_{32}+f_{31}+{\cdots}+f_{3m}}\\ \hline {\vdots} &{\vdots}&{\vdots}&{\ddots}&{\vdots}\\ \hline n & {f_{n2}}&{f_{n2}+f_{n1}}&{\cdots}&{f_{n2}+f_{n1}+{\cdots}+f_{nm}}\\ \hline \end{array} $$
三、关系矩阵与哈斯矩阵的获取
1)、由D矩阵获得关系矩阵A方式如下。
D矩阵中任意两行$x$行与$y$行。
当矩阵值$d_{x1}>d_{y1}且d_{x2}>d_{y2}且d_{x3}>d_{y3}且{\cdots}且d_{xm}>d_{ym}$
记作:$$ \quad \quad PS_{(x)}>PS_{(y)}$$
$$偏序关系矩阵记作A={[a_{xy}]_{n \times n}}$$
$$a_{xy}= \begin{cases} 1, \text{ $PS_{(x)}>PS_{(y)}$ 即D矩阵中x行跟y行的偏序比较} \\ 0, \text{ $PS_{(x)} ≯PS_{(y)}$ 即D矩阵中x行跟y行的偏序比较} \end{cases}$$
关系矩阵$A$有如下特征:a)、无回路。b) 、对角线的值全部为0 。
2)、哈斯矩阵的获得
$$B=(A+I)$$
$$B^{(k-1)}≠B^{k}=B^{(k+1)}=R$$
$$HS=S=R-(R-I)^2-I$$
其中 $A:$原始矩阵 ; $I:$单位矩阵;$B:$相乘矩阵;$R:$可达矩阵;$S:$骨架矩阵;$HS:$哈斯矩阵。
四、哈斯图的绘制
1)、层级总数的确定与要素所属层级的确定
a)、层级划分就是ISM的层级划分,大体种类就可以参考其它页面
b)、仅仅层级划分方式可以组合出若干说法,不下8种
2)、代入的有向边为一般性骨架矩阵进行绘制。即代入哈斯矩阵进行绘制
本研究基于有向哈斯图方法(D-HDT)对地下水水质依据国家标准进行建模、解释与评估。具体做法是,对某地区的13个取样点进行了地下水质全方位的检测。运用主成分分析法,去掉了不必要的检测内容,最后剩下了8个检测内容。同时基于国家标准,加入了5个标准样本,分别对应5类水质。
上述S1到S5依据《地下水质量标准(GB/T 14848-2017)》构造五组标准等级样品。此五组样品可以看成机器学习中的标注数据。
以列为单位,用极差法进行归一化。计算公式如下:
$$ X_{new}=\left| \frac{{X-X_{min}}}{{X_{max}-X_{min}}} \right| $$
采用熵权法获得每列的权重。这里只关注权重大小的顺序。权重的计算公式如下:
$1、 \rho _{ij}=\frac {x_{ij}} {\sum \limits_{i=1}^{n}{x_{ij}}}$
$2、 e_{j}=-k {\sum \limits_{i=1}^{n}{\rho _{ij}\times ln({\rho _{ij}}) } },(其中有 \quad k= \frac{1}{ln(18)}, 且 \quad 当 \rho _{ij}=0 时,令 \quad ln({\rho _{ij}})=-1000 )$
$3、 \quad d_{j}=1-e_{j} $
$4、 \quad \omega_{j}=\frac {d_{j}} {\sum \limits_{j=1}^{m}{d_{j}}} $
这步只是更有效的保序而已。变过方法又是一个新东西。记住此次的用法是权重从大到小排序。
累加可以看成权重方向的模糊聚类。
关系矩阵获得的方式如下两种可以任选一种:
$$a_{xy}= \begin{cases} 1, \text{ $PS_{(x)}>PS_{(y)}$ 即D矩阵中x行跟y行的偏序比较} \\ 0, \text{ $PS_{(x)} ≯PS_{(y)}$ 即D矩阵中x行跟y行的偏序比较} \end{cases}$$
$$a_{xy}= \begin{cases} 1, \text{ $PS_{(y)}>PS_{(x)}$ 即D矩阵中x行跟y行的偏序比较} \\ 0, \text{ $PS_{(y)} ≯PS_{(x)}$ 即D矩阵中x行跟y行的偏序比较} \end{cases}$$
以上两种,核心在于偏序完全相等时,取0,取1的话有可能出现回路。
在基于偏序的有向哈斯图方法中,核心就是模糊矩阵$F$的获得,累加矩阵并非必须。关键是模糊矩阵的处理,其特点非常灵活,几乎可以把现在流行的各种神经网络,机器学习都弄进来。
取偏序的规则有非常多种,只要有合理的数理逻辑就行。比如可以按照两行之间,只要有5个同时更大就算1等方式进行,也可以按照行和更大,也可以有其它规矩。
核心流程也可以如下:
$$ \require{cancel} \require{AMScd} \begin{CD} F=\left[ f_{ij} \right]_{n \times m}@>各种算法>>FuzzyMat=\left[ d_{ij} \right]_{n \times n}@>各种模糊算子>>FR=\left[ a_{ij} \right]_{n \times n}@>>>A=\left[ a_{ij} \right]_{n \times n} \\ \end{CD} $$
其中$FuzzyMat$为模糊方阵,它可以是偏序得到的结果。然后由模糊方阵,得到模糊可达矩阵,最终得到若干个层级图。