Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

マーケティングに活かせるPythonライブラリ PyConJP 2014

11,923 views

Published on

PyCon 2014の発表資料です。

CRMやマーケティングに活用できる実践的なデータ分析とはどのようなものなのか、データ分析の実例を交えつつ、データ分析関連のPythonのライブラリ(NumPy, pandas, SciPy, scikit-learn など)をダイジェストで紹介します。

Published in: Technology

マーケティングに活かせるPythonライブラリ PyConJP 2014

  1. 1. و٦؛ذ؍ؚٝח崞ַׇ׷ 1ZUIPOٓ؎ـٓٔ 1Z$PO+1 !JLUBLBIJSP5BLBIJSP*LFVDIJ
  2. 2. 8IPBN* ˖ 5BLBIJSP*LFVDIJ ˖ -#35*OD$PSQPSBUF0DFS ˖ !JLUBLBIJSP ˖ IUUQMJCSBCVDIKQ ˖ 1ZUIPO 84 3FETIJGU ,JOFTJTFUD 2
  3. 3. ˖ (JUIVC IUUQTHJUIVCDPNJLUBLBIJSP ˖ IJQDIBUQZ)JQ$IBU$MJFOU IUUQTQZQJQZUIPOPSHQZQJIJQDIBUQZ 3
  4. 4. 'JSTU NJO-JHIUOJOHUBML 4
  5. 5. 5
  6. 6. :FTUFSEBZ 6
  7. 7. 5IF,FZOPUF 7
  8. 8. 8
  9. 9. XPX 9
  10. 10. ˑ/P#FOFU˒ 10
  11. 11. '21Z$PO5VUPSJBM ˖ 禸ה禸ָ֮׏ג幉✉ׅ׷ ד葺ְדׅկ *SFDPNNFOEFE 11
  12. 12. 0INZ(PE 12
  13. 13. UUIBUNPNFOU *VOEFSTUPPENZ$BMMJOH 13
  14. 14. 6TF1ZUIPO 14
  15. 15. -FUˏTMFBSO1ZUIPO 5PHFUIFS 15
  16. 16. *BMTPIBSETJNJMBSQSPCMFNJO+BQBO 16
  17. 17. PlayStation 3 PlayStation 4 17
  18. 18. 1MBZ14 18
  19. 19. -FUˏTMFBSO1ZUIPO 5PHFUIFS 19
  20. 20. 4PSSZ *XFOUUPGBS 20
  21. 21. 4FSJPVTMZ 21
  22. 22. 1ZUIPO4VQQPSU ˖ /VN1Z ˖ 4DJ1Z ˖ QBOEBT ˖ TDJLJUMFBSO ˖ NBUQMPUMJC 22
  23. 23. *MMQSPWFJU 23
  24. 24. /PQSPCMFN %POˏUCFBGSBJE 24
  25. 25. .BZCF 25
  26. 26. *GZPVMFBSOCBTJDTUBUJTUJDT EBUB NJOJOHPSNBDIJOFMFBSOJOH *SFDPNNFOE1ZUIPO 26
  27. 27. ˖ #VU *IBWFBTVQFSDJBMLOPXMFEHF ˖ *GZPVIBWFEFFQLOPXMFEHF QMFBTFUFMM!JLUBLBIJSP ˖ -FUˏTMFBSO1ZUIPO5PHFUIFS 27
  28. 28. OHMJTI4FTTJPOJTPWFS 28
  29. 29. HFOEB ˖ و٦؛ذ؍ؚٝהر٦ةⴓ匿 ˖ ،اءؒ٦ءّٝⴓ匿 29 ˖ ؙٓأة٦ⴓ匿 ˖ /VN1Z 4DJ1Z QBOEBT TDJLJUMFBSO NBUQMPUMJC
  30. 30. و٦؛ذ؍ؚٝה ر٦ةⴓ匿 30
  31. 31. ֶ➬✲חאְג ˖ 吳䒭⠓爡-#35 IUUQBMCFSUDPKQ ˖ ⴓ匿⸂׾؝،הׅ׷و٦؛ذ؍ؚٝ أُ٦ءّٝؕٝػص٦ ˖ و٦؛ذ؍ؚٝفٓحزؿؓ٦ي ˖ ،شٔذ؍ؙأ؝ٝ؟ٕذ؍ؚٝ 31
  32. 32. و٦؛ذ؍ؚٝהכ ˖ 顋㡰׾♶銲חׅ׷ֿה CZسٓحؕ٦ ˖ ص٦ؤ׾鋅噰׭ג׉׸ח䘔ִ׷ֿ CZ؝زٓ٦ 32
  33. 33. ˖ ״׶䎢ְ䠐㄂דכծ֮׷䋐㜥חְֶ ג畸✯⮚⡘䚍׾׮׋׵ׅ捀ך《׶穈 ׫Ⰻ⡤ծה׮鎉ִ׷ ˖ 鼅䮙㼎瘻׮و٦؛ذ؍ؚٝ 33
  34. 34. ז׈ر٦ةⴓ匿ַ ˖ 姻׃ְ植朐钠陎 ˖ ⱄ植䚍ך֮׷䩧׍䩛 ˖ 倵瘻ך㹏錁涸ז鐰⣣ 34
  35. 35. ⴓ匿ًصُ٦⢽䔲爡ذٝفٖ 分析対象分析手法例 顧客ユーザークラスタリング RFM分析・ロイヤルカスタマー分析 商圏商圏・出店分析 商品 商品間アソシエーション分析 時系列分析 / 需要・売上予測 35 季節性分析 広告 マイクロコンバージョン分析 クリエイティブ最適化 アトリビューション分析
  36. 36. 1Z$PO+1ذ٦و ˑ1ZUIPOדⱄ涪鋅˒ 3FEJTDPWFSXJUI1ZUIPO 36
  37. 37. ر٦ةⴓ匿خ٦ٕך鼅䫛肇ח 1ZUIPO׾ 37
  38. 38. ⤑ⵃז垥彊ٌآُ٦ٕ 38
  39. 39. JUFSUPPMT$PMMFDUJPOT ˖ JUFSUPPM ˖ QFSNVUBUJPOT ˖ DPNCJOBUJPOT ˖ $PMMFDUJPOT ˖ $PVOUFS ˖ EFGBVMUEJDU 39
  40. 40. QFSNVUBUJPOT갫⴨ from itertools import permutations ! d = ['A', 'B', 'C'] ! for v in permutations(d) print(v) 40
  41. 41. $PVOUFS from collections import Counter ! d = ['A', 'A', 'A', 'B', 'B', 'C'] ! for w, c in Counter(d).items() print('{0}が{1}個'.format(w, c)) 41
  42. 42. TUBUJTUJDTNPEVMF 42
  43. 43. TUBUJTUJDTNPEVMF ˖ 1ZUIPOַ׵垥彊䵧鯹ׁ׸׋窟鎘 欽ٌآُ٦ٕ ˖ 䎂㖱ծ⚥㣛⦼ծⴓ侔זו♧菙涸ז 窟鎘䞔㜠ך《䖤ח⢪ֲ ˖ IUUQTEPDTQZUIPOPSHMJCSBSZ TUBUJTUJDTIUNM 43
  44. 44. TUBUJTUJDTNPEVMF ˖ NFBO ˖ NFEJBO ˖ QTUEFW 44
  45. 45. 䗁统垥彊⨉䊴הכ ر٦ةךל׵אֹ׾邌ׅ 45
  46. 46. EBUB ך垥彊⨉䊴׾実׭׷ 46
  47. 47. ㉀ㅷⴓ匿 ։،اءؒ٦ءّٝⴓ匿։ 47
  48. 48. ،اءؒ٦ءّٝⴓ匿 ˖ غأ؛حزⴓ匿ָ剣せ ˖ ˑֿך㉀ㅷה״ֻ♧筰ח顠׻׸גְ׷ ㉀ㅷכֿ׍׵˒ ˖ ⴓ匿穠卓׾ٖ؝ًٝر٦ءّٝה׃ ג欽ְ׷ֿה׮⳿勻׷ 48
  49. 49. ! أ٦ػ٦ךغأ؛حزך؎ً٦آ 人買った物 Aさんパン、バター Bさんパン、ジュース、サラダ Cさんサラダ、玉子 Dさんバター、パン、ジュース 49
  50. 50. 人買った物 Aさんパン、バター Bさんパン、ジュース、サラダ Cさんサラダ、玉子 Dさんバター、パン、ジュース 50
  51. 51. ! $؟؎ز飑顠ؚٗر٦ة 決済ID ユーザーID 買った物金額日付 110 user_A パン140 2014-09-12 110 user_A バター210 2014-09-12 111 user_B サラダ398 2014-09-12 111 user_B 玉子200 2014-09-12 51
  52. 52. Ⱏ饯䚍ך䭷垥 52
  53. 53. Ⱏ饯걼䏝 |X Y | ㉀ㅷ9ה:׾⚕倯顠׏׋➂ך侧 53
  54. 54. data = (('A', 'i1'), ('A', 'i2'), ('B', 'i1')) ! inverted_dict = defaultdict(set) ! for row in data: user = row[0] item = row[1] inverted_dict[item].add(user) 54 買った人買われたもの A i1 A i2 B i1 買われたもの買った人(達) i1 A, B i2 A
  55. 55. dict((k, len(v)) for k, v in inverted_dict.items()) 55 買われたもの買った人(達) i1 A, B i2 A 買われたもの買った人数 i1 2 i2 1
  56. 56. len(x.intersection(y)) 56 買われたもの買った人(達) i1 A, B i2 A |X Y | 一緒に買われたもの人数 i1とi2 1
  57. 57. Jaccard = |X Y | |X [ Y | 57 Dice = 2⇥|X Y | |X| + |Y | Simpson = |X Y | min (|X| , |Y |)
  58. 58. ٖ؝ًٝر٦ءّٝח 欽ְ׵׸׷䭷垥 58
  59. 59. $POEFODF 59
  60. 60. 4VQQPSU 60
  61. 61. -JGU 61
  62. 62. 62 Ⰻ⡤ : 9 9͂: -JGU㔳鍑
  63. 63. 63 : Ⰻ⡤ 9 9͂: 9:ך$POEFODFכ :כⰋ⡤ך
  64. 64. 64 -JGU
  65. 65. ⡦׾׃׋ְַ ׅ׷ץַֹ ָꅾ銲 ˖ 㡰׸瘡׾،ؾ٦ٕ׃׋ְ ˖ 㖈䏧׾㖱׃׋ְ ˖ 4FSFOEJQJUZ׾䲿⣘׃׋ְ 65
  66. 66. 遤⹛ؚٗה湡涸ךꟼ⤘ ˖ ꠘ鋮ؚٗז׵嫰鯰嗚鎢 ˖ 飑顠ؚٗז׵⢘ׇ顠ְ ؚٗך䚍颵׾罋ִזְהծⲆ詿䏧׾顠׏׋ ِ٦ؠ٦חⲆ詿䏧׾ֶ⹻׭׃ג׃ת׏׋׶˘ 66
  67. 67. 黝䘔ָꨇ׃ְ؛٦أ׮ ˖ ♶⹛欵זו飑Ⰵ걼䏝ָ⡚ֻծ⢘ׇ顠 ְ׃זְ㉀勞嫰鯰嗚鎢ז׵֮׶ ˖ ㉀ㅷ挿侧ָ㢳ֻծ➂孡ָ⨉׏גְ׷ 㜥さⰟ饯㔐侧ך㉀ㅷָ㢳涪 67
  68. 68. /VN1Z 68
  69. 69. /VN1Zהכ ˖ 넝鸞ז遤⴨鎘皾ך⳿勻׷侧⦼鎘皾 ٓ؎ـٓٔ ˖ QBOEBTזו׮ⰻ鿇דⵃ欽׃גְ׷ 69
  70. 70. OEBSSBZ import numpy ! data = numpy.array([[0, 1], [1, 0]]) 70
  71. 71. ؝ٖדׅ 遤⴨הכ 71
  72. 72. 遤⴨הכ 72
  73. 73. /VN1Zד遤⴨怴皾 ˖ 遤⴨ךㄤ ˖ 遤⴨ך琎 ˖ 遤⴨ךأؕٓ٦⦓ ˖ 鯄縧遤⴨ 73
  74. 74. 遤⴨ךㄤ import numpy as np ! x = np.array([[1, 2], [1, 3]]) y = np.array([[3, 2], [2, 1]]) ! x + y 74
  75. 75. 遤⴨ך琎 import numpy as np ! x = np.array([[1, 2], [1, 3]]) y = np.array([[3, 2], [2, 1]]) ! x.dot(y) 75
  76. 76. 遤⴨ךأؕٓ٦⦓ import numpy as np ! x = np.array([[1, 2], [1, 3]]) ! x * 3 76
  77. 77. 遤⴨ך鯄縧 import numpy as np ! x = np.array([[1, 2], [1, 3]]) ! x.T 77
  78. 78. /VN1Zד⨉䊴⦼鎘皾 78
  79. 79. /VN1Zד⨉䊴⦼鎘皾 # 要点のみ抜粋 50 + 10 * (score - np.average(a)) / np.std(a) 79
  80. 80. QBOEBT 80
  81. 81. QBOEBTהכ ˖ ر٦ةך乼⡲׾㺁僒ח遤ִ׷ 3ךEBUBGSBNF׫׋ְז䠬ׄח ˖ IFBEUBJMזו湫䠬涸ח鍗׸׷ ˖ ぐ珏ر٦ة䕎䒭פך*0׾⪒ִ׷ YDFMؿ؋؎ٕ׮铣׫鴥׭׷ 81
  82. 82. QBOEBTדر٦ة乼⡲ ˖ SFBE@DTW ˖ IFBEUBJM ˖ NFSHF ˖ EFTDSJCF 82
  83. 83. ر٦ة乼⡲ import pandas ! # CSVファイルの読み込み df = pandas.read_csv('../sample3.csv') ! # 先頭から3行 df.head(3) ! # 末尾から2行 df.tail(2) 83
  84. 84. 㛇劤窟鎘ꆀך♧鿇 from pandas import DataFrame ! x = [1, 2, 4, 4, 5, 10] df = DataFrame(x) df.describe() DPVOU NFBO TUE NJO 84 NBY
  85. 85. ،اءؒ٦ءّٝⴓ匿 䖓קו 85
  86. 86. 4DJ1Z 86
  87. 87. 4DJ1Zהכ ˖ 넝䏝ז猰㷕鎘皾ٓ؎ـٓٔ ˖ 窟鎘ծ騃ꨄ鎘皾ַ׵䎗⡦㷕涸㢌䳔FUD 87
  88. 88. 4DJ1Zד騃ꨄ鎘皾 ˖ TQBUJBMEJTUBODFFVDMJEFBO ˖ TQBUJBMEJTUBODFDPTJOF ˖ TQBUJBMEJTUBODFNBIBMBOPCJT 88
  89. 89. ِ٦ؙٔحس騃ꨄהכ 89
  90. 90. ״ֻ֮׷欽鷿 䓼 90 㢌 Ⱗ 暴 佝 乼 ˟㔳כ؎ً٦آדׅ ٖ٦ت٦ثٍ٦زד邌植ׁ׸׷ ،ٝ؛٦ز穠卓ず㡦ך겲⡂䏝׾庠׷
  91. 91. 4DJ1Zדꥡ㾴ؙٓأةؚٔٝ ˖ DMVTUFSIJFSBSDIZMJOLBHF ˖ IJFSBSDIZEFOESPHSBN 91
  92. 92. ✲⵸،ٝ؛٦زךⴓ匿穠卓 92
  93. 93. 곁㹏ⴓ匿 ։ؙٓأة٦ⴓ匿։ 93
  94. 94. ˖ ꬊꥡ㾴ؙٓأةؚٔٝ ˖ ➿邌涸ז䩛岀 ,.FBOT$MVTUFSJOH 94 ! ˖ 곁㹏Y飑顠ؕذ؞ٔדؙٓأة٦ⴓ匿 ˖ ؙٓأة٦嫣ך곁㹏ך暴䗙׾䱱׷
  95. 95. TDJLJUMFBSO 95
  96. 96. TDJLJUMFBSOהכ ˖ 堣唒㷕统ٓ؎ـٓٔ ˖ 47. /BJWF#BZT %FDJTJPO5SFFT /FBSFTU/FJHICPST /FVSBMOFUXPSL $MVTUFSJOH ˖ 傈劤铂ך䞔㜠ꆀכת׌㼰ז׭ 96
  97. 97. TDJLJUMFBSOהو٦؛ذ؍ؚٝ 手法の例適応できる分析の例 SVM 時系列分析/需要予測 クラスタリング顧客分析、 97 商品カテゴリ分析 決定木ロイヤルカスタマー分析 ロジスティック回帰商圏・出店分析 季節性分析
  98. 98. TDJLJUMFBSOד,.FBOT GSPNTLMFBSODMVTUFSJNQPSU,.FBOT 銲挿ך׫䫙磏 LN,.FBOT O@DMVTUFST LNU EBUB ! GPSMBCFMJOLNMBCFMT@ QSJOU MBCFM 98
  99. 99. TDJLJUMFBSOך,.FBOTMHPSJUIN酡駈 ˖ 騃ꨄ鎘皾כِ٦ؙٔحس騃ꨄ IUUQTHJUIVCDPNTDJLJUMFBSOTDJLJUMFBSOCMPCNBTUFSTLMFBSO DMVTUFSL@NFBOT@QZ ˖ LNFBOT
  100. 100. ח״׷ⴱ劍⦼ך鼅㹀ָ遤׻׸׷ ˖ 㣐鋉垷ر٦ةך《׶䪔ְח黝׃׋ .JOJ#BUDI,NFBOT$MBTT׮֮׷ IUUQTDJLJUMFBSOPSHTUBCMFNPEVMFTDMVTUFSJOHIUNMNJOJCBUDIL NFBOT 99
  101. 101. ⸬卓庠㹀 ։,1*ך〳鋔⻉։ 100
  102. 102. ر٦ة〳鋔⻉֮׸ֿ׸ ˖ %BUB7JTVBMJ[BUJPOך걄㚖כ岣湡䏝ָ 넝ְדׅⴓַ׶װְׅ׃י ˖ +BWB4DSJQUٓ؎ـٓٔ%ָ衼せ ˖ 5BCMFBVזוך#*خ٦ٕ׮ؽآُ،ٓ ؎ؤח⸂׾Ⰵ׸גְ׷ 101
  103. 103. 102 5BCMFBV
  104. 104. %BUB7JTVBMJTBUJPO 1ZUIPOד׮דֹתׅ 103
  105. 105. ٓ؎ـٓٔ稱➜NBUQMPUMJC 104
  106. 106. NBUQMPUMJCהכ ˖ ؽآُ،ٓ؎ؤך׋׭ךٌآُ٦ٕ ˖ *1ZUIPOה穈׫さ׻ׇ׷ה⤑ⵃ 105
  107. 107. %FNP 106
  108. 108. ⠗ִ׋ְֿה ˖ ،ٕ؞ٔؤيך椚鍑כ㣐ⴖ׌ָ ˖ 곁㹏椚鍑ծ㉀ㅷ椚鍑׮㣐ⴖ ˖ ⸬卓庠㹀תדך鏣鎘׾䘌׸׆ח 107
  109. 109. 3FGFSFODF ˖ LNFBOT
  110. 110. 5IFEWBOUBHFTPG$BSFGVM4FFEJOH IUUQJMQVCTTUBOGPSEFEVQEG ˖ 8FC4DBMF,.FBOT$MVTUFSJOH IUUQXXXFFDTUVGUTFEV_ETDVMMFZQBQFSTGBTULNFBOTQEG ˖ 5VUPSJBMTQBOEBT IUUQQBOEBTQZEBUBPSHQBOEBTEPDTTUBCMFUVUPSJBMTIUNM ˖ 6TFS(VJEFTDJLJUMFBSO IUUQTDJLJUMFBSOPSHTUBCMFVTFS@HVJEFIUNM ˖ ذؙظٗآ٦吳䒭⠓爡-#35 IUUQXXXBMCFSUDPKQUFDIOPMPHZ 108
  111. 111. 5IBOLZPVGPSZPVSBUUFOUJPO ! ׀꫼耮֮׶ָהֲ׀ְׂת׃׋ 109

×