odps/static/algorithms/network.xml (971 lines of code) (raw):
<?xml version='1.0' encoding='UTF-8'?>
<algorithms baseClass="BaseProcessAlgorithm">
<algorithm codeName="NodeDensity">
<reloadFields>false</reloadFields>
<docs><![CDATA[
在无向图G中,计算每一个节点周围的稠密度,星状网络稠密度为0,全联通网络稠密度为1。
%params%
]]></docs>
<params>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="maxEdgeCnt">
<value>500</value>
<docs>若节点度大于该值,则进行抽样</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node:string, node_cnt:bigint, edge_cnt:bigint, density:double, log_density:double</schema>
</schema>
</port>
</ports>
<metas>
<meta name="xflowName" value="NodeDensity"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="MaximalConnectedComponent">
<fieldChangable>true</fieldChangable>
<docs><![CDATA[
在无向图G中,若从顶点A到顶点B有路径相连,则称A和B是连通的;在图G种存在若干子图,其中每个子图中所有顶点之间都是连通的,但在不同
子图间不存在顶点连通,那么称图G的这些子图为最大连通子图。
%params%
]]></docs>
<params>
<param name="outputTableName">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="inputEdgeTableName">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node:string, grp_id:string</schema>
</schema>
</port>
</ports>
<metas>
<meta name="xflowName" value="MaximalConnectedComponent"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="TriangleCount">
<fieldChangable>true</fieldChangable>
<docs><![CDATA[
在无向图G中,输出所有三角形。
%params%
]]></docs>
<params>
<param name="inputEdgeTableName">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="maxEdgeCnt">
<value>500</value>
<docs>若节点度大于该值,则进行抽样</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node1:string, node2:string, node3:string</schema>
</schema>
</port>
</ports>
<metas>
<meta name="xflowName" value="TriangleCount"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="EdgeDensity">
<fieldChangable>true</fieldChangable>
<docs><![CDATA[
在无向图G中,计算每一条边周围的稠密度。
%params%
]]></docs>
<params>
<param name="inputEdgeTableName">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node1:string, node2:string, node1_edge_cnt:bigint, node2_edge_cnt:bigint,
triangle_cnt:bigint, density:double
</schema>
</schema>
</port>
</ports>
<metas>
<meta name="xflowName" value="EdgeDensity"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="PageRank">
<docs><![CDATA[
PageRank起于网页的搜索排序,google利用网页的链接结构计算每个网页的等级排名,其基本思路是:如果一个网页被其他多个网页指向,这
说明该网页比较重要或者质量较高。除考虑网页的链接数量,还考虑网页本身的权重级别,以及该网页有多少条出链到其它网页。 对于用户构成
的人际网络,除了用户本身的影响力之外,边的权重也是重要因素之一。例如:新浪微博的某个用户,会更容易影响粉丝中关系比较亲密的家人、
同学、同事等,而对陌生的弱关系粉丝影响较小。在人际网络中,边的权重等价为用户-用户的关系强弱指数。带连接权重的PageRank公式为:
.. math::
w_i = (1-d)+d \cdot \sum_{j} (w_j \cdot c_{ij})
其中,:math:`w_i` 为节点 i 的权重,:math:`c_{ij}` 为链接权重,d 为阻尼系数,算法迭代稳定后的节点权重W即为每个用户的影响力指数。
%params%
]]></docs>
<reloadFields>false</reloadFields>
<fieldChangable>true</fieldChangable>
<params>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="edgeWeightCol">
<exporter>$package_root.network._customize.get_edge_weight_column</exporter>
<inputName>input</inputName>
<docs>输入边表边的权重所在列</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="hasEdgeWeight">
<exporter>$package_root.network._customize.graph_has_edge_weight</exporter>
<inputName>input</inputName>
<docs>输入边表的边是否有权重</docs>
</param>
<param name="maxIter">
<value>30</value>
<min>0</min>
<docs>最大迭代次数</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node: string, weight: double</schema>
</schema>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="PageRankWithWeight"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="LabelPropagationClustering">
<docs><![CDATA[
图聚类是根据图的拓扑结构,进行子图的划分,使得子图内部节点的链接较多,子图之间的连接较少。标签传播算法(Label Propagation
Algorithm, LPA)是基于图的半监督学习方法,其基本思路是节点的标签(community)依赖其邻居节点的标签信息,影响程度由节点相似度
决定,并通过传播迭代更新达到稳定。
%params%
]]></docs>
<reloadFields>false</reloadFields>
<fieldChangable>true</fieldChangable>
<params>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="edgeWeightCol">
<exporter>$package_root.network._customize.get_edge_weight_column</exporter>
<inputName>edge</inputName>
<docs>输入边表边的权重所在列</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="vertexCol" required="true">
<exporter>$package_root.network._customize.get_vertex_id_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点所在列</docs>
</param>
<param name="vertexWeightCol">
<exporter>$package_root.network._customize.get_vertex_weight_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点的权重所在列</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>edge</inputName>
</param>
<param name="inputVertexTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>vertex</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>edge</inputName>
</param>
<param name="inputVertexTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>vertex</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="hasEdgeWeight">
<exporter>$package_root.network._customize.graph_has_edge_weight</exporter>
<inputName>edge</inputName>
<docs>输入边表的边是否有权重</docs>
</param>
<param name="hasVertexWeight">
<exporter>$package_root.network._customize.graph_has_vertex_weight</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点是否有权重</docs>
</param>
<param name="randSelect">
<value>false</value>
<docs>是否随机选择最大标签</docs>
</param>
<param name="maxIter">
<value>30</value>
<min>0</min>
<docs>最大迭代次数</docs>
</param>
</params>
<ports>
<port name="edge">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="vertex">
<ioType>INPUT</ioType>
<sequence>2</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node: string, group_id: string</schema>
</schema>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="LabelPropagationClustering"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="KCore">
<docs><![CDATA[
一个图的KCore是指反复去除度小于或等于k的节点后,所剩余的子图。若一个节点存在于KCore,而在(K+1)CORE中被移去,那么此节点的核数(coreness)为k。因此所有度为1的节点的核数必然为0,节点核数的最大值被称为图的核数。
%params%
]]></docs>
<reloadFields>false</reloadFields>
<params>
<param name="k" required="true">
<value>1</value>
<min>1</min>
<docs>核数</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
<docs>边表中起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
<docs>边表中终点所在列</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node1: string, node2: string</schema>
</schema>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="KCore"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="SSSP">
<docs><![CDATA[
单源最短路径参考Dijkstra算法,本算法中当给定起点,则输出该点和其他所有节点的最短路径。
%params%
]]></docs>
<reloadFields>false</reloadFields>
<fieldChangable>true</fieldChangable>
<params>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="edgeWeightCol">
<exporter>$package_root.network._customize.get_edge_weight_column</exporter>
<inputName>input</inputName>
<docs>输入边表边的权重所在列</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="hasEdgeWeight">
<exporter>$package_root.network._customize.graph_has_edge_weight</exporter>
<inputName>input</inputName>
<docs>输入边表的边是否有权重</docs>
</param>
<param name="startVertex" required="true">
<docs>起始节点ID</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>start_node: string, dest_node: string, node_value: double</schema>
</schema>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="SSSP"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="FastUnfolding">
<enabled>false</enabled>
<docs><![CDATA[
社区发现是根据图中的Modularity,进行子图的划分,使得子图内部节点的链接较多,子图之间的连接较少。Fast Unfolding是基于图的无监督
学习方法,其基本思路是节点的标签(community)依赖其邻居节点的标签信息,影响程度由归属社区后的Modularity增益决定,并通过传播
迭代更新达到稳定。
%params%
]]></docs>
<reloadFields>false</reloadFields>
<fieldChangable>false</fieldChangable>
<params>
<param name="vertexCol">
<exporter>$package_root.network._customize.get_vertex_id_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点所在列</docs>
</param>
<param name="vertexWeightCol">
<exporter>$package_root.network._customize.get_vertex_weight_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点的权重所在列</docs>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="edgeWeightCol">
<exporter>$package_root.network._customize.get_edge_weight_column</exporter>
<inputName>edge</inputName>
<docs>输入边表边的权重所在列</docs>
</param>
<param name="maxIter">
<value>30</value>
<required>true</required>
<min>1</min>
<docs>最大迭代次数</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>edge</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>edge</inputName>
</param>
<param name="inputVertexTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>vertex</inputName>
</param>
<param name="inputVertexTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>vertex</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="hasVertexWeight">
<exporter>$package_root.network._customize.graph_has_vertex_weight</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点是否有权重</docs>
</param>
<param name="hasEdgeWeight">
<exporter>$package_root.network._customize.graph_has_edge_weight</exporter>
<inputName>edge</inputName>
<docs>输入边表的边是否有权重</docs>
</param>
</params>
<ports>
<port name="edge">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="vertex">
<ioType>INPUT</ioType>
<sequence>2</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="FastUnfolding"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="LabelPropagationClassification">
<docs><![CDATA[
该算法为半监督的分类算法,原理为用已标记节点的标签信息去预测未标记节点的标签信息。
在算法执行过程中,每个节点的标签按相似度传播给相邻节点,在节点传播的每一步,每个节点根据相邻节点的标签来更新自己的标签,与该节点相似度越大,其相邻节点对其标注的影响权值越大,相似节点的标签越趋于一致,其标签就越容易传播。在标签传播过程中,保持已标注数据的标签不变,使其像一个源头把标签传向未标注数据。
最终,当迭代过程结束时,相似节点的概率分布也趋于相似,可以划分到同一个类别中,从而完成标签传播过程
%params%
]]></docs>
<reloadFields>false</reloadFields>
<fieldChangable>true</fieldChangable>
<params>
<param name="vertexCol" required="true">
<exporter>$package_root.network._customize.get_vertex_id_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点所在列</docs>
</param>
<param name="vertexWeightCol">
<exporter>$package_root.network._customize.get_vertex_weight_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点的权重所在列</docs>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>edge</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="edgeWeightCol">
<exporter>$package_root.network._customize.get_edge_weight_column</exporter>
<inputName>edge</inputName>
<docs>输入边表边的权重所在列</docs>
</param>
<param name="workerNum">
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>edge</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>edge</inputName>
</param>
<param name="inputVertexTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>vertex</inputName>
</param>
<param name="inputVertexTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>vertex</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="hasEdgeWeight">
<exporter>$package_root.network._customize.graph_has_edge_weight</exporter>
<inputName>edge</inputName>
<docs>输入边表的边是否有权重</docs>
</param>
<param name="hasVertexWeight">
<exporter>$package_root.network._customize.graph_has_vertex_weight</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点是否有权重</docs>
</param>
<param name="vertexLabelCol" required="true">
<exporter>$package_root.network._customize.get_vertex_label_column</exporter>
<inputName>vertex</inputName>
<docs>输入点表的点的标签</docs>
</param>
<param name="maxIter">
<value>30</value>
<min>0</min>
<docs>最大迭代次数</docs>
</param>
<param name="alpha">
<value>0.8</value>
<min>0</min>
<max>1</max>
<docs>阻尼系数</docs>
</param>
<param name="epsilon">
<value>0.000001</value>
<min>0</min>
<docs>收敛系数</docs>
</param>
</params>
<ports>
<port name="edge">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="vertex">
<ioType>INPUT</ioType>
<sequence>2</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node: string, tag: string, weight: double</schema>
</schema>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="LabelPropagationClassification"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
<algorithm codeName="Modularity">
<docs><![CDATA[
Modularity是一种评估社区网络结构的指标,来评估网络结构中划分出来社区的紧密程度,往往0.3以上是比较明显的社区结构。
%params%
:Returns: modularity value
]]></docs>
<baseClass>BaseMetricsAlgorithm</baseClass>
<exportFunction>true</exportFunction>
<params>
<param name="inputEdgeTableName">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="inputEdgeTablePartitions">
<exporter>get_input_partitions</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="fromGroupCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_label_column</exporter>
<inputName>input</inputName>
<docs>输入边表起点的群组</docs>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的起点所在列</docs>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
<docs>输入边表的终点所在列</docs>
</param>
<param name="workerNum">
<min>1</min>
<max>1000</max>
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<min>2048</min>
<max>32768</max>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
<param name="toGroupCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_label_column</exporter>
<inputName>input</inputName>
<docs>输入边表终点的群组</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<docs>输出</docs>
</port>
</ports>
<metas>
<meta name="xflowName" value="Modularity"/>
<meta name="xflowProjectName" value="algo_public"/>
<meta name="calculator" value="$package_root.network._customize.get_modularity_result"/>
</metas>
</algorithm>
<algorithm codeName="TreeDepth">
<reloadFields>false</reloadFields>
<docs><![CDATA[
对于众多树状网络,输出每个节点的所处深度和树ID。
%params%
]]></docs>
<params>
<param name="inputEdgeTableName" required="true">
<exporter>get_input_table_name</exporter>
<inputName>input</inputName>
</param>
<param name="inputEdgeTablePartitions" required="true">
<exporter>get_input_partitions</exporter>
<inputName>input</inputName>
</param>
<param name="fromVertexCol" required="true">
<exporter>$package_root.network._customize.get_from_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="toVertexCol" required="true">
<exporter>$package_root.network._customize.get_to_vertex_column</exporter>
<inputName>input</inputName>
</param>
<param name="outputTableName" required="true">
<exporter>get_output_table_name</exporter>
<outputName>output</outputName>
</param>
<param name="outputTablePartitions" required="true">
<exporter>get_output_table_partition</exporter>
<outputName>output</outputName>
</param>
<param name="workerNum">
<min>1</min>
<max>1000</max>
<docs>进程数量</docs>
</param>
<param name="workerMem">
<value>4096</value>
<min>2048</min>
<max>32768</max>
<docs>进程内存</docs>
</param>
<param name="splitSize">
<value>64</value>
<docs>数据切分大小</docs>
</param>
</params>
<ports>
<port name="input">
<ioType>INPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
</port>
<port name="output">
<ioType>OUTPUT</ioType>
<sequence>1</sequence>
<type>DATA</type>
<schema>
<schema>node:string, root:string, depth:bigint</schema>
</schema>
</port>
</ports>
<metas>
<meta name="xflowName" value="TreeDepth"/>
<meta name="xflowProjectName" value="algo_public"/>
</metas>
</algorithm>
</algorithms>