logo资料库

皮尔逊-III相关\皮尔逊相关系数的java实现.docx

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
相关系数的值介于–1 与+1 之间,即–1≤r≤+1。其性质如下:  当 r>0 时,表示两变量正相关,r<0 时,两变量为负相关。  当|r|=1 时,表示两变量为完全线性相关,即为函数关系。  当 r=0 时,表示两变量间无线性相关关系。  当 0<|r|<1 时,表示两变量存在一定程度的线性相关。且|r|越接近 1,两变量间线性 关系越密切;|r|越接近于 0,表示两变量的线性相关越弱。  一般可按三级划分:|r|<0.4 为低度线性相关;0.4≤|r|<0.7 为显著性相关;0.7≤|r|<1 为高度线性相关。 代码来源: http://blog.csdn.net/larrylgq/article/details/7350842 ackage com.Social.cbra.praron2; 02 03 04 import java.util.HashMap; 05 import java.util.Iterator; 06 import java.util.Map; 07 import java.util.logging.Logger; 08 09 /** 10 * 11 * @author larry 12 * 13 */ 14 public class Similarity { 15 static Logger logger = Logger.getLogger(Similarity.class.getName()); 16 Map rating_map = new HashMap(); 17 18 19 20 21 22 23 24 25 26 27 28 /** * @param args */ public static void main(String[] args) { Similarity similarity1 = new Similarity(); similarity1.rating_map.put("1", 434d); similarity1.rating_map.put("2", 7d); similarity1.rating_map.put("3", 23d); Similarity similarity2 = new Similarity(); similarity2.rating_map.put("1", 6d); similarity2.rating_map.put("2", 2d);
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 similarity2.rating_map.put("3", 6d); logger.info("" + similarity1.getsimilarity_bydim(similarity2)); } public double getsimilarity_bydim(Similarity u) { double sim = 0d; double common_items_len = 0; double this_sum = 0d; double u_sum = 0d; double this_sum_sq = 0d; double u_sum_sq = 0d; double p_sum = 0d; Iterator rating_map_iterator = this.rating_map.keySet().iterator(); while(rating_map_iterator.hasNext()){ String rating_map_iterator_key = rating_map_iterator.next(); Iterator u_rating_map_iterator = u.rating_map.keySet().iterator(); while(u_rating_map_iterator.hasNext()){ String u_rating_map_iterator_key = u_rating_map_iterator.next(); if(rating_map_iterator_key.equals(u_rating_map_iterator_key)){ double this_grade = this.rating_map.get(rating_map_iterator_key); double u_grade = u.rating_map.get(u_rating_map_iterator_key); //评分求和 //平方和 //乘积和 this_sum += this_grade; u_sum += u_grade; this_sum_sq += Math.pow(this_grade, 2); u_sum_sq += Math.pow(u_grade, 2); p_sum += this_grade * u_grade; common_items_len++; } } } //如果等于零则无相同条目,返回 sim=0 即可 if(common_items_len > 0){
logger.info("common_items_len:"+common_items_len); logger.info("p_sum:"+p_sum); logger.info("this_sum:"+this_sum); logger.info("u_sum:"+u_sum); double num = common_items_len * p_sum - this_sum * u_sum; double den = Math.sqrt((common_items_len * this_sum_sq - Math.pow(this_sum,2)) * (common_items_len * u_sum_sq - Math.pow(u_sum, 2))); logger.info("" + num + ":" + den); sim = (den == 0) ? 1 : num / den; } //如果等于零则无相同条目,返回 sim=0 即可 return sim; } 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 } 模比系数(一般记为 Kp)与频率(一般记为 P)是对应的,当频率 P 较小时,属于暴雨洪 水问题,此时频率 P 与重现期 T 之间是倒数关系!
分享到:
收藏