平行坐标图

Python 中的购物篮分析

Isaiah Hull

Visiting Associate Professor of Finance, BI Norwegian Business School

什么是平行坐标图?

该图展示了使用 MovieLens 数据集的平行坐标图示例。

Python 中的购物篮分析

何时使用平行坐标图

 

  • 平行坐标 vs. 热力图。
    • 不需要强度信息。
    • 只想知道规则是否存在。
    • 希望减少视觉杂乱。

 

  • 平行坐标 vs. 散点图。
    • 需要单条规则的信息。
    • 不关注多种指标。
    • 只想查看最终规则。
Python 中的购物篮分析

准备数据

 

from mlxtend.frequent_patterns import association_rules, apriori

# Load the one-hot encoded data
onehot = pd.read_csv('datasets/movies_onehot.csv')
# Generate frequent itemsets
frequent_itemsets = apriori(onehot, min_support = 0.10, use_colnames = True, max_len = 2)

# Generate association rules
rules = association_rules(frequent_itemsets, metric = 'support', min_threshold = 0.00)
Python 中的购物篮分析

将规则转换为坐标

# Convert rules to coordinates.
rules['antecedent'] = rules['antecedents'].apply(lambda antecedent: list(antecedent)[0])
rules['consequent'] = rules['consequents'].apply(lambda consequent: list(consequent)[0])
rules['rule'] = rules.index
# Define coordinates and label
coords = rules[['antecedent','consequent','rule']]

# Print example
print(coords.head(1))
                antecedent        consequent  rule
0  Dark Knight, The (2008)  Inception (2010)     0
Python 中的购物篮分析

生成平行坐标图

 

from pandas.plotting import parallel_coordinates

# Generate parallel coordinates plot
parallel_coordinates(coords, 'rule', colormap = 'ocean')
Python 中的购物篮分析

生成平行坐标图

该图展示了使用 MovieLens 数据的平行坐标图。

Python 中的购物篮分析

优化平行坐标图

# Generate frequent itemsets
frequent_itemsets = apriori(onehot, min_support = 0.01, use_colnames = True, max_len = 2)

# Generate association rules
rules = association_rules(frequent_itemsets, metric = 'lift', min_threshold = 1.00)

# Generate coordinates and print example
coords = rules_to_coordinates(rules)

# Generate parallel coordinates plot
parallel_coordinates(coords, 'rule')
Python 中的购物篮分析

优化平行坐标图

该图展示了使用 MovieLens 数据的平行坐标图。

Python 中的购物篮分析

¡Vamos a practicar!

Python 中的购物篮分析

Preparing Video For Download...