<jupyter_start><jupyter_text>データセット取得（Online Retail Dataset）Online Retail Dataset：英国を拠点とする登録オンライン小売業者の2010年12月1日から2011年9月12日の間に発生するレコードを含むトランザクションデータセット。以下のようなデータが含まれます。* InvoiceNo：請求書番号。各トランザクションに一意に割り当てられる6桁の整数。　このコードが文字「c」で始まる場合、キャンセルを示す。* StockCode：製品コード。各製品に一意に割り当てられる5桁の整数。* Description：製品名。* Quantity：トランザクションごとの各製品の数量。* InvoiceData：請求書の日付と時刻。各トランザクションが生成された日時。* UnitPrice：単価。* CustomerID：顧客番号。各顧客に一意に割り当てられる5桁の整数。* Country：各顧客が居住する国の名前。<jupyter_code># PyCaretチュートリアル用データセット取得
# 詳細は<https://pycaret.org/get-data/>を参照
from pycaret.datasets import get_data

dataset = get_data('france')
dataset.to_csv('./dataset.csv')
dataset.info()
print('データ      ：' + str(dataset.shape) + ' ' + str(dataset.index))<jupyter_output>データ      ：(8557, 8) RangeIndex(start=0, stop=8557, step=1)<jupyter_text>PyCaretでのデータセットアップ<jupyter_code># 相関ルールマイニング用インポート
from pycaret.arules import *
# session_idを指定することで欄数シードを固定
# セットアップが完了するとデータの情報や前処理のパイプラインの情報が表示される
# 詳細は<https://pycaret.org/setup/>を参照
exp = setup(data=dataset, transaction_id='InvoiceNo', item_id='Description', session_id=42)
print(exp)<jupyter_output>(     InvoiceNo StockCode                      Description  Quantity  \
0       536370     22728        ALARM CLOCK BAKELIKE PINK        24   
1       536370     22727        ALARM CLOCK BAKELIKE RED         24   
2       536370     22726       ALARM CLOCK BAKELIKE GREEN        12   
3       536370     21724  PANDA AND BUNNIES STICKER SHEET        12   
4       536370     21883                 STARS GIFT TAPE         24   
...        ...       ...                              ...       ...   
8552    581587     22613      PACK OF 20 SPACEBOY NAPKINS        12   
8553    581587     22899     CHILDREN'S APRON DOLLY GIRL          6   
8554    581587     23254    CHILDRENS CUTLERY DOLLY GIRL          4   
8555    581587     23255  CHILDRENS CUTLERY CIRCUS PARADE         4   
8556    581587     22138    BAKING SET 9 PIECE RETROSPOT          3   

          InvoiceDate  UnitPrice  CustomerID Country  
0      12/1/2010 8:45       3.75     12583.0  France  
1      12/1/2010 8:45       3.75    [...]<jupyter_text>モデル生成相関ルールマイニングのcreate_model()では必須パラメーターは無く、以下の4つのオプションある。metric：ルールが重要かどうかを評価するためのメトリック。　デフォルト設定は'confidence'　その他の指定可能なオプションは、'support', 'lift', 'leverage', 'conviction'があります。threshold：metric候補ルールが対象かどうかを決定するための最小しきい値。デフォルトは0.5min_support：返されるアイテムセットの最小サポートの値(0.0 ～ 0.1)　transactions_where_item(s)_occur / total_transactionsで計算されデフォルト設定は0.05round：スコアグリッドの小数点以下の指定桁数を四捨五入<jupyter_code># 引数で作成するモデルを指定
arule_model = create_model()
print(arule_model)
arule_model.head()<jupyter_output><empty_output><jupyter_text>セットアップ(ignore_items指定)先の実施例のPOSTAGE(送料)が第1位の相関であることは明白なため、以下の例ではPOSTAGEを無視してセットアップを行う。<jupyter_code>exp_arul101 = setup(data=dataset, transaction_id='InvoiceNo', item_id='Description', ignore_items=['POSTAGE'],session_id=42) 
arule_model2 = create_model()
print(arule_model2)
arule_model2.head()<jupyter_output><empty_output><jupyter_text>プロットモデル<jupyter_code>plot_model(arule_model2)
plot_model(arule_model2, plot='3d')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09028905488795064, 'fraction_numerical': 0.07794738551477752, 'mean_word_length': 3.888888888888889, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 21, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '5', 'dir': 'jupyter-structured-clean-dedup', 'id': '667182', 'license': 'MIT', 'n_tokens_mistral': 1697, 'n_tokens_neox': 1538, 'n_words': 169, 'path': '06.Association-Rule-Mining-Sample/06.Association-Rule-Mining-Sample.ipynb', 'repo_name': 'Kazuhito00/PyCaret-Learn', 'size': '3079'}