<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 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks


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

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

    ss 
    = ","


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

    print "交易數(shù)據(jù)庫(kù)展現(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={}

    # 遍歷過(guò)程 臨時(shí) 局部  頻繁項(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)' 對(duì)比 交易數(shù)據(jù)庫(kù)  計(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ù)庫(kù)展現(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) 評(píng)論(0)  編輯  收藏 所屬分類: python算法/函數(shù)
    主站蜘蛛池模板: 中文字幕免费视频一| 亚洲免费视频在线观看| 又大又黄又粗又爽的免费视频| 亚洲AⅤ男人的天堂在线观看| 无码国模国产在线观看免费| 日韩毛片免费一二三| 久久久久久久99精品免费| 91精品国产亚洲爽啪在线影院 | 免费播放美女一级毛片| 国产亚洲精品一品区99热| 中国在线观看免费国语版| 中文在线免费视频| 国产精品久久亚洲不卡动漫| 国产午夜亚洲不卡| 久久综合AV免费观看| 爱丫爱丫影院在线观看免费| 亚洲色偷偷综合亚洲av78| 亚洲国产另类久久久精品小说| 成年美女黄网站18禁免费| 成人无码a级毛片免费| 亚洲AV无码成人精品区日韩| 亚洲AV无码国产精品色午友在线| 国产色婷婷精品免费视频| 99re6在线精品视频免费播放| 国产精品亚洲一区二区无码| 亚洲白色白色永久观看| 美腿丝袜亚洲综合| 国产精品视频免费一区二区三区| 99re在线免费视频| 一级特黄特色的免费大片视频| 伊人久久五月丁香综合中文亚洲 | 亚洲人成网站色7799| 亚洲va在线va天堂va不卡下载| 亚洲免费在线观看| 永久免费毛片手机版在线看| 亚洲免费一级视频| 一级毛片免费毛片一级毛片免费| 亚洲免费日韩无码系列| 成人亚洲国产精品久久| 亚洲AV无码无限在线观看不卡 | 日本视频在线观看永久免费|