列表中有很多字符串数据,即
['red','tall','cat']
['dog','car','tall','green']
等-其中约10000
列表可以包含1到〜70个项目。这些项目来自大约120种可能性的清单。
大熊猫可以对此进行关联吗,这样我就可以看到red
与哪些项之间的相关性最强或最负面,即我想知道red
是否在列表中。那只猫也会出现在该列表中的可能性有多大?
答案 0 :(得分:2)
对我来说,就像一个频繁出现的项目集问题。
这里有几个python软件包,包括apyori或mlxtend。
mlxtend用户指南中的示例:
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],
['Milk', 'Apple', 'Kidney Beans', 'Eggs'],
['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],
['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
frequent_itemsets['length'] = frequent_itemsets['itemsets'].apply(lambda x: len(x))
然后您可以按长度或支持者进行过滤,以查找最经常出现的项目。