91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 646KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-13
  • 語言: 其他
  • 標簽: 推薦算法??

資源簡介

使用聚類對movielens 1M數據集做預處理,在itemCF基礎上改進的基于關聯規則學習的推薦算法

資源截圖

代碼片段和文件信息

#?-*-?coding:?UTF-8?-*-
#__author__?=?‘fourier‘

import?pandas?as?pd

def?mergeData(data):
????dataframe?=?pd.Dataframe(data)
????user_num?=?len(set(dataframe[0]))
????#?print(user_num)
????mergedatas?=?[]
????for?i?in?range(user_num+1):?????#從0->51,但是不包括51,一共51個
????????mergedatas.append([])
????for?j?in?range(len(data)):
????????for?n?in?range(1user_num+11):?????#用來判斷的用戶id,從1->51,但不包括51
????????????if?data[j][0]?==?n:
????????????????mergedatas[n].append(data[j][1])
????return?mergedatas




#?def?loadDataSet():
#?????return?[[1?3?4]?[2?3?5]?[1?2?3?5][2?5]]

def?createC1(dataSet):
????C1?=?[]
????for?transaction?in?dataSet:
????????for?item?in?transaction:
????????????if?not?[item]?in?C1:
????????????????C1.append([item])
????C1.sort()
????#?return?list(map(listlist(map(frozenset?C1))))
????return?list(map(frozensetC1))

#計算滿足最小支持度的頻繁多項集
def?scanD(D?Ck?minSupport):???????????#(數據集,候選一項集,最小支持度)
????ssCnt?=?{}
????for?tid?in?D:
????????for?can?in?Ck:
????????????if?can.issubset(tid):
????????????????#?if?not?ssCnt.has_key(can):?ssCnt[can]?=?1
????????????????if?can?not?in?ssCnt:
????????????????????ssCnt[can]?=?1
????????????????else:?ssCnt[can]?+=?1
????numItems?=?float(len(D))
????retList?=?[]??????????????#滿足最小支持度的物品
????supportData?=?{}????????????#支持度的值
????for?key?in?ssCnt:
????????support?=?ssCnt[key]/numItems
????????if?support?>=?minSupport:
????????????retList.insert(0key)
????????supportData[key]?=?support
????return?retList?supportData???????#滿足最小支持度的物品,物品支持度的值

#返回由一項集組合而成的多項集
def?aprioriGen(Lk?k):??????????????#(頻繁項集列表,項集內元素個數)
????retList?=?[]
????lenLk?=?len(Lk)?????????????????#用戶個數
????for?i?in?range(lenLk):
????????for?j?in?range(i+1?lenLk):
????????????L1?=?list(Lk[i])[:k-2]
????????????L2?=?list(Lk[j])[:k-2]
????????????L1.sort()
????????????L2.sort()
????????????if?L1?==?L2:
????????????????retList.append(Lk[i]?|?Lk[j])
????#?print(retList)
????return?retList??????????#返回由一項集組合而成的多項集

def?apriori(dataSet?minSupport):
????C1?=?createC1(dataSet)???????????????????#一項集
????D?=?list(map(set?dataSet))??????????????#建集合set表示的數據集
????L1?supportData?=?scanD(D?C1?minSupport)??????????#滿足最小支持度的物品列表,物品的支持度的值
????L?=?[L1]????????????#L會包含L1?L2?L3、、、,現在包含了L1,通過while尋找L2L3、、、
????k?=?2
????while(len(L[k-2])?>?0):
????????Ck?=?aprioriGen(L[k-2]?k)??????????????#得到頻繁多項集
????????Lk?supK?=?scanD(D?Ck?minSupport)?????#滿足最小支持度的物品組合,物品組合的支持度的值
????????supportData.update(supK)????????????????#將一個字典的鍵值更新到另一個字典
????????L.append(Lk)
????????k?+=?1
????return?L?supportData

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????3103??2018-05-08?11:30??recommendation_test\apriori_test.py

?????文件???????5578??2018-05-08?20:12??recommendation_test\itemCF_test.py

?????文件???????6102??2018-05-08?17:26??recommendation_test\item_CF.py

?????文件???????1954??2018-05-07?16:33??recommendation_test\kmeans_cluster_test.py

?????文件????2438266??2018-05-01?17:18??recommendation_test\ratings.csv

?????文件???????3389??2018-05-08?20:17??recommendation_test\recommender_test.py

?????文件???????1892??2018-05-08?11:30??recommendation_test\__pycache__\apriori_test.cpython-36.pyc

?????文件???????2039??2018-05-08?17:34??recommendation_test\__pycache__\itemCF_test.cpython-36.pyc

?????文件???????1176??2018-05-07?17:31??recommendation_test\__pycache__\kmeans_cluster_test.cpython-36.pyc

?????目錄??????????0??2018-05-08?20:18??recommendation_test\__pycache__

?????目錄??????????0??2018-05-08?20:18??recommendation_test

-----------?---------??----------?-----??----

??????????????2463499????????????????????11


評論

共有 條評論