电影演员中的关联关系
需求分析:对徐峥有关的电影进行分析,得到演员的频繁项集和关联关系。
数据源:前一篇爬虫在豆瓣爬取的数据。
完整代码:
import pandas as pd from mlxtend.frequent_patterns import apriori from mlxtend.frequent_patterns import association_rules # 数据加载 movies = pd.read_csv('./movie_actors.csv') print('=======================================') print(movies) # print(movies.head()) # 使用get_dummies 将actors进行one-hot编码(离散特征有多少取值(就是整个数据集中有多少个不同的演员),就用多少维来表示这个特征) movies_hot_encoded = movies.drop('actors', 1).join(movies.actors.str.get_dummies('/')) print('=======================================') print(movies_hot_encoded) pd.options.display.max_columns = 100 # print(movies_hot_encoded.head()) # 将movieId, title设置为index movies_hot_encoded.set_index(['title'], inplace=True) print('=======================================') print(movies_hot_encoded.head()) # 挖掘频繁项集,最小支持度为0.05 itemsets = apriori(movies_hot_encoded, use_colnames=True, min_support=0.05) # 按照支持度从大到小进行输出 itemsets = itemsets.sort_values(by="support", ascending=False) print('-' * 20, '频繁项集', '-' * 20) print(itemsets) print('-' * 20, '关联规则', '-' * 20) # 根据频繁项集计算关联规则,设置最小提升度为2 rules = association_rules(itemsets, metric='lift', min_threshold=2) # 按照提升度从大到小进行排序 rules = rules.sort_values(by="lift", ascending=False) # rules.to_csv('./rules.csv', index=False, encoding='utf_8_sig') print(rules)
运行结果展示:
频繁项集: 关联规则:

今天也是元气满满的一天。

浙公网安备 33010602011771号