`
zengshaotao
  • 浏览: 786861 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

树节点加权得分

 
阅读更多

一棵树,层次不限,深度可以不一,只要设定好叶子节点的权重,得分,就可以一次求得每一个节点的得分,当然,每一个节点的权重也是要提前设定的:

 

/**

* 递归计算当前节点的得分=子节点的加权得分

* @param curr_folder_id

* @return

*/

public double calNodeScore(String curr_folder_id){

 

Dao dao = new DaoImp();

double gs = 0;//当前节点的加权结果,若当前节点包括叶子和非叶子节点

try{

String pfkSQL = "select folder_id,isleaf,weight,score from estimate_card where status=1 and par_folder_id="+curr_folder_id;

List ll = dao.getResultList(pfkSQL);

 

for(int ii = 0;ii<ll.size();ii++){//当前节点的子节点,包括可能的叶子节点和非叶子节点

String child_folder_id = (String)((Map)ll.get(ii)).get("FOLDER_ID");

String isleaf = (String)((Map)ll.get(ii)).get("ISLEAF");

String weight = (String)((Map)ll.get(ii)).get("WEIGHT");

if("0".equals(isleaf)){

//当前节点的非叶子子节点的计算结果

double ret = calNodeScore(child_folder_id);

//还要和兄弟节点的结果进行加权

gs += (ret*Double.valueOf(weight));

}else{

//当前节点的叶子子节点

double s = Double.valueOf((String)((Map)ll.get(ii)).get("SCORE"));

double w = Double.valueOf((String)((Map)ll.get(ii)).get("WEIGHT"));

gs += s*w;

}

}

//更新当前节点的加权得分

String update = "update estimate_card set score="+gs+" where folder_id="+curr_folder_id;

dao.update(update);

 

}catch(Exception e){

e.printStackTrace();

}finally{

dao.closeconn();

}

return gs;

}

 

另外,算法很需要实际业务模型的理解,还有参考,还需要实际的大概逻辑

分享到:
评论

相关推荐

    基于PageRank的有向加权复杂网络节点重要性评估方法 (2013年)

    并结合复杂网络节点重要性评估特点,提出节点重要性评估的新指标―――DWCN - NodeRank和相应评估方法,该指标既反映出节点局部连接的特性,又从全局体现了有向加权复杂网络中整体链接关系对节点重要性的影响。...

    算法-数据结构- 线段树.rar

    在实际应用中,线段树广泛应用于各种问题,如求解动态区间最值、求解区间加权和、解决区间覆盖问题等。例如,在线评分系统中,可以使用线段树快速计算某段时间内的平均分;在游戏计分板中,它可以用来实时更新玩家的...

    python绘制热图、计算网络节点degree、kshell、介数中心性、接近中心性、特征向量中心性、PageRank

    特征向量中心性是基于节点的邻接节点重要性的加权和。网络x库的`networkx.eigenvector_centrality()`方法用于计算这个度量。 最后,PageRank是Google的标志性算法,它考虑了网页之间的链接结构来评估重要性。在...

    node2vec-master.zip

    5. **优化目标**:使用负采样方法优化损失函数,通过最大化目标节点和其相关节点的得分,最小化目标节点和不相关节点的得分,逐步更新节点的向量表示。 三、Node2vec的应用场景 1. **节点分类**:通过学习到的节点...

    剩余两题非编程作业1

    为了简化优化过程,XGBoost采用CART树的结构,将每棵树的叶节点得分 \( w_j \)视为参数,通过梯度下降或随机梯度下降方法寻找最优值。CART树的结构用映射函数 \( q(x) \)表示,其预测值为 \( w_{q(x)} \)。 正则化...

    数据挖掘十大经典算法.doc

    - **决策树的结构**:每个节点表示一个属性上的测试,每个分支代表一个测试结果,每个叶节点代表一个类别。 - **决策树的应用**:在实际应用中,决策树不仅可以用于分类任务,还可以用于回归任务。 - **决策树的优点...

    graph-attention-layer.py

    5. **计算过程**: GAT的前向传播通常包括以下步骤:(i) 计算节点间注意力得分,(ii) 应用softmax函数归一化得分,(iii) 使用归一化的得分加权邻接节点的特征,(iv) 可能地进行线性变换和激活函数应用,最后(v) 更新...

    PathSim算法的Java可执行文件

    3. **路径计数和加权**:对于找到的每条路径,算法会根据路径长度计算权重,并累加到两个节点的相似度得分上。 4. **相似度计算**:最后,根据所有路径的权重求和,计算出两个节点的PathSim分数。 执行这个Java可...

    2019-ICML-YOU-Position-aware Graph Neural Networks-利用邻近锚点集,强化位置描

    P-GNN的核心思想是通过采样一组锚点节点,并计算目标节点与这些锚点之间的距离,然后学习一种非线性的距离加权聚合策略,从而得到位置感知的节点嵌入。 在传统的GNN中,虽然能有效处理节点间的局部关系,但难以捕捉...

    2019-ICLR-Confidence-based Graph Convolutional Networks for Semi

    传统的GCNs通常采用平均或加权平均的方法聚合邻居信息,而ConfGCN则根据节点的置信度动态调整这一过程,使传播更加灵活和适应性。 6. **实验与基准**:ConfGCN在多个标准数据集上进行了广泛的实验,结果表明其性能...

    基于树的汉字形状相似度度量

    具体来说,该方法首先将每个汉字递归分解为一棵树,树的根节点是整个汉字,而叶子节点则是原子部分,也就是笔画。通过树的层次结构,能够详细地描述汉字的构造信息。 在树结构的基础上,通过计算树之间的最小超树...

    计算机视觉报告模板

    通过聚类SIFT描述符,我们可以构建一棵树状结构,其中每个内部节点代表一组相似特征的集合,叶节点则对应于特定的图像特征。这使得在大规模数据集上快速匹配和识别成为可能。 4. 得分定义 (Definition of scoring) ...

    图注意力网络attention.pdf

    模型根据查询向量Q和键向量集合K计算相关性得分,然后通过Softmax函数进行归一化,得到注意力分布α,用于加权求和计算输出值Value。这一过程可以用以下公式表示: ```markdown Value = ∑ni Softmax(S(Ki,Q)) · Ki...

    sfan:选择要素作为(网络)节点

    网络可以加权。 在这种情况下,特征选择是通过找到最大化目标函数(即总和)的特征集来完成的 所选功能的相关性; (1)鼓励稀疏性(选择了很少的特征)和(2)鼓励选定的特征在网络中相互连接的正则化术语。 所...

    datascience-stock-pagerank

    在初始状态下,每个节点得分平均分布,随后的迭代中,节点的得分将根据其连接的节点得分加权平均。迭代直到得分收敛或达到预设的迭代次数。Python 中的 NetworkX 库提供了 `pagerank()` 函数,可以直接用于计算节点...

    关于-房地产项目考核及奖金分配及方案.docx

    在节点考核中,通过加权累计算总分的方式,如工程节点考核结果等于质量管理、进度管理、成本管理、安全文明管理和部门管理各项指标完成情况的加权平均值。同时,设有附加(减)分机制,对有突出贡献或造成重大损失的...

    PathSim代码实现

    - **相似度计算**:使用APVPA方法计算每一对节点的相似度得分,即所有路径贡献的加权平均值。 4. **Path2.7框架下的实现** 在Path2.7环境中,实现PathSim算法需要以下几个步骤: - **数据预处理**:导入异构网络...

    matlab-网站排名问题.doc

    每个网页的PageRank得分是所有指向它的网页的PageRank得分的加权平均值,乘以相应的链接概率p,并加上一个平滑项(1-p)以防止出现死循环或孤立节点。 实验中,我们观察了p值从0.85到0.75,再到0.90的变化对PageRank...

Global site tag (gtag.js) - Google Analytics