<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks


    代碼:
    # -*- coding: UTF8 -*-

    import sys
    # 最小 支持度
    sup_min = int(sys.argv[1])

    ss 
    = ","


    # 交易 數(shù)據(jù) 庫
    D=[
     
    'A,B,C,D',
     
    'B,C,E',
     
    'A,B,C,E',
     
    'B,D,E',
     
    'A,B,C,D'
    ]

    print "交易數(shù)據(jù)庫展現(xiàn)" 
    for arr in D : print arr
    print



    '''
    rows=int(sys.argv[1])
    D=[]
    for tid in open('BuyMusic.20090722.mob.prodIds').readlines()[:rows] :
        D.append(tid.split("\n")[0].split("\t")[1])


    print "讀取 文件結(jié)束 BuyMusic.20090722.mob.prodIds !"
    '''
    #全局 頻繁項(xiàng) 收集
    sup_data_map = {}
    #全局  最大頻繁項(xiàng) 收集
    is_zsup={}

    # 遍歷過程 臨時 局部  頻繁項(xiàng) 收集
    mapL = {}

    # 第一次 頻繁項(xiàng) 收集
    def find_frequent_1_itemset(I):
        
    if I=='null' or I=='' : return  
        
    if mapL.has_key(I): mapL[I]+=1 
        
    else: mapL[I]=1

    map(find_frequent_1_itemset,[ I  
    for TID in D for I  in TID.split(ss) ])

    # 刷選掉 小于 最小支持度 的 頻繁項(xiàng)
    def remove_not_sup_min(map,supmin=sup_min):
        
    for k  in [k for k,v in map.items() if v<supmin] :
            
    del map[k]
    remove_not_sup_min(mapL)

    print "第一次 篩選 頻繁項(xiàng) 結(jié)束!"
    print mapL

    # 裝載 全局 頻繁項(xiàng) 最大頻繁項(xiàng)
    for k,v in mapL.items() : 
        sup_data_map[k]
    =v
        is_zsup[k]
    =v

    # 判定 是否 'BD' 屬于  'BCD' 中 
    isInTid = lambda I,TID : len(I.split(ss)) == len([i for i in I if i in TID.split(ss)])


    # 組合  [A,B] + [A,C] = [A,B.C]
    def comb(arr1,arr2):
        tmap
    ={}
        
    for v in arr1+arr2 : tmap[v]="" 
        
    return tmap.keys()

    # apriori 迭代核心
    def runL(mapL,dep):
        mapL2 
    = {}
        C
    ={}
        keys 
    = mapL.keys()
        iik
    =""
        jjk
    =""
        
    # 根據(jù) 上次  頻繁項(xiàng) ,生成本次 '可能頻繁項(xiàng)' 集合 
        for ii in range(len(keys)) : 
            
    for jj in range(ii+1,len(keys)) :
                keystr
    =comb([ch for ch in keys[ii].split(ss)],[ch for ch in keys[jj].split(ss)])
                
    if not len(keystr) == dep : continue
                keystr.sort()
                tk
    =ss.join(keystr)
                
    if not tk in C : C[tk]=(keys[ii],keys[jj])

        
    #  '可能頻繁項(xiàng)' 對比 交易數(shù)據(jù)庫  計(jì)數(shù)
        for tk,z in C.items():
            
    for TID in D:
                
    if isInTid(tk,TID) :
                    
    if mapL2.has_key(tk): mapL2[tk]+=1
                    
    else: mapL2[tk]=1

        
    # 刷選掉 小于 最小支持度 的 頻繁項(xiàng)
        remove_not_sup_min(mapL2)
        
    for k,v in  is_zsup.items() :
            
    for k1,v1 in mapL2.items() :
                
    if isInTid(k,k1) :
                    
    del is_zsup[k]
                    
    break
        
    # 全局 頻繁項(xiàng) ,最大頻繁項(xiàng)  收集 
        for k,v in mapL2.items() : 
            sup_data_map[k]
    =v
            is_zsup[k]
    =v
        
    print ""+str(dep)+"次 篩選 頻繁項(xiàng) 結(jié)束!" 
        
    return mapL2

    # 真正 運(yùn)行 
    ii=1
    while mapL :
        ii
    =ii+1
        mapL 
    = runL(mapL,ii)
        
    print mapL

    # 全局  頻繁項(xiàng) 中 去除 最大頻繁項(xiàng)
    for k,v in is_zsup.items() :
        
    if sup_data_map.has_key(k) : del sup_data_map[k]

    print "頻繁項(xiàng)"
    print sup_data_map
    print 
    print "最大頻繁項(xiàng)"
    print is_zsup
    print 

    print "可信度 展現(xiàn)"
    for k,v in  sup_data_map.items() :
        
    for k1,v1 in is_zsup.items() :
            
    if isInTid(k,k1) :
                
    print k,"->",k1,"\t%.1f" %((float(is_zsup[k1])/float(sup_data_map[k]))*100)+"%"




    結(jié)果:
    -bash-3.00$ python ap.py 2
    交易數(shù)據(jù)庫展現(xiàn)
    A,B,C,D
    B,C,E
    A,B,C,E
    B,D,E
    A,B,C,D

    第一次 篩選 頻繁項(xiàng) 結(jié)束!
    {'A': 3, 'C': 4, 'B': 5, 'E': 3, 'D': 3}
    第2次 篩選 頻繁項(xiàng) 結(jié)束!
    {'C,D': 2, 'C,E': 2, 'A,D': 2, 'A,B': 3, 'A,C': 3, 'B,E': 3, 'B,D': 3, 'B,C': 4}
    第3次 篩選 頻繁項(xiàng) 結(jié)束!
    {'A,B,D': 2, 'A,B,C': 3, 'B,C,D': 2, 'B,C,E': 2, 'A,C,D': 2}
    第4次 篩選 頻繁項(xiàng) 結(jié)束!
    {'A,B,C,D': 2}
    第5次 篩選 頻繁項(xiàng) 結(jié)束!
    {}
    頻繁項(xiàng)
    {'A': 3, 'C': 4, 'B': 5, 'E': 3, 'D': 3, 'C,D': 2, 'C,E': 2, 'A,D': 2, 'A,B': 3, 'A,C': 3, 'A,B,D': 2, 'B,C,D': 2, 'A,C,D': 2, 'B,E': 3, 'B,D': 3, 'B,C': 4, 'A,B,C': 3}

    最大頻繁項(xiàng)
    {'B,C,E': 2, 'A,B,C,D': 2}

    可信度 展現(xiàn)
    A -> A,B,C,D     66.7%
    C -> B,C,E     50.0%
    C -> A,B,C,D     50.0%
    B -> B,C,E     40.0%
    B -> A,B,C,D     40.0%
    E -> B,C,E     66.7%
    D -> A,B,C,D     66.7%
    C,D -> A,B,C,D     100.0%
    C,E -> B,C,E     100.0%
    A,D -> A,B,C,D     100.0%
    A,B -> A,B,C,D     66.7%
    A,C -> A,B,C,D     66.7%
    A,B,D -> A,B,C,D     100.0%
    B,C,D -> A,B,C,D     100.0%
    A,C,D -> A,B,C,D     100.0%
    B,E -> B,C,E     66.7%
    B,D -> A,B,C,D     66.7%
    B,C -> B,C,E     50.0%
    B,C -> A,B,C,D     50.0%
    A,B,C -> A,B,C,D     66.7%



    整理 m.tkk7.com/Good-Game
    posted on 2009-08-31 14:25 劉凱毅 閱讀(1815) 評論(0)  編輯  收藏 所屬分類: python算法/函數(shù)
    主站蜘蛛池模板: 亚洲变态另类一区二区三区 | 久久久久噜噜噜亚洲熟女综合| 亚洲系列国产精品制服丝袜第| 无码av免费一区二区三区| 狠狠综合久久综合88亚洲| 精品一区二区三区高清免费观看| 亚洲电影日韩精品| 国产精品小视频免费无限app| 亚洲国产成人久久综合一区77| 免费国产黄网站在线看| 亚洲精品456播放| 国产精品极品美女自在线观看免费 | 丰满亚洲大尺度无码无码专线| 欧洲美熟女乱又伦免费视频| 韩国亚洲伊人久久综合影院| 免费在线视频一区| 成人国产网站v片免费观看| 国产亚洲精品成人a v小说| 亚欧免费无码aⅴ在线观看| 77777_亚洲午夜久久多人| 久久久久久久免费视频| 亚洲精品av无码喷奶水糖心| 亚洲精品高清在线| 久久免费视频网站| 亚洲国产精品综合一区在线| 永久免费无码网站在线观看| 久久国产乱子伦精品免费午夜 | 亚洲视频无码高清在线| 日韩特黄特色大片免费视频| 一级一级一级毛片免费毛片| 亚洲综合日韩中文字幕v在线| 丁香花免费高清视频完整版| 粉色视频成年免费人15次| 日本亚洲欧洲免费天堂午夜看片女人员| 一级毛片免费不卡在线| 亚洲精品中文字幕| 91精品国产免费| 亚洲男人的天堂在线播放| 日本免费在线观看| 亚洲中文无码av永久| 一个人免费观看www视频|