机器学习实战-第12章Fpgrowth代码勘误+递归打印效果分析
我們修改數據集,使用:
《數據挖掘導論》中的數據集:
def loadSimpDat():simpDat = [['a', 'b'],['b', 'c', 'd'],['a', 'c', 'd', 'e'],['a', 'd', 'e'],['a', 'b', 'c'],#與下面一條一樣['a', 'b', 'c','d'],['a'],['a', 'b', 'c'],#與上面一條一樣['a', 'b', 'd'],['b', 'c' ,'e']]如果打印出來是這個, ?
Null Set ? 1
? ? ?a ? 7
? ? ? ?c ? 1
? ? ? ? ?d ? 1
? ? ? ? ? ?e ? 1
? ? ? ?b ? 4
? ? ? ? ?c ? 2
? ? ? ? ? ?d ? 1
? ? ? ? ?d ? 1
? ? ? ?d ? 1
? ? ? ? ?e ? 1
? ? ?b ? 2
? ? ? ?c ? 2
? ? ? ? ?e ? 1
? ? ? ? ?d ? 1
?
那么對應的圖就是下面這個的,注意,這里閱讀上面的打印結果時,
是橫著看的,不是豎著看的。
而數字則是橫向和字母配對的。
?
好了,問題來了,我們會發現圖中a:8,代碼輸出卻是a:7
這是為什么呢?
修改書中的代碼即可:
def createInitSet(dataSet):retDict = {}for trans in dataSet:# retDict[frozenset(trans)] = 1retDict[frozenset(trans)]=retDict.get(frozenset(trans), 0) +1print"初始化數據retDict=",retDictreturn retDict然后輸出結果就會和圖中一模一樣了
?
? ?Null Set ? 1
? ? ?a ? 8
? ? ? ?c ? 1
? ? ? ? ?d ? 1
? ? ? ? ? ?e ? 1
? ? ? ?b ? 5
? ? ? ? ?c ? 3
? ? ? ? ? ?d ? 1
? ? ? ? ?d ? 1
? ? ? ?d ? 1
? ? ? ? ?e ? 1
? ? ?b ? 2
? ? ? ?c ? 2
? ? ? ? ?e ? 1
? ? ? ? ?d ? 1
總結
以上是生活随笔為你收集整理的机器学习实战-第12章Fpgrowth代码勘误+递归打印效果分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xubuntu沒有登錄輸入框,左上角出現
- 下一篇: FPgrwoth详解(转载+修改一处图片