Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RCO アドテク部勉強会 2014/11/12

Avatar for Kenji Sugiki Kenji Sugiki
November 20, 2014

RCO アドテク部勉強会 2014/11/12

エンジニアのための機械学習入門

Avatar for Kenji Sugiki

Kenji Sugiki

November 20, 2014

Other Decks in Technology

Transcript

  1. Τ ϯ δχ Ξ ͷ ͨ Ί ͷ ػ ց

    ֶ श ೖ ໳ ਿ ໦ ݈ ೋ @ 2 0 1 4 / 1 1 / 1 2 Ξ υ ς Ϋ ෦ ษ ڧ ձ
  2. ࣮ ͸ ɺ σ ʔ λ αΠΤ ϯ ςΟε τ

    Λ ۀ ຿ ͱ ͠ ͯ ॳ Ίͯ ͔ Β 3 ೥ ໨ ͷ ۦ ͚ ग़ ͠Ͱ ͢ɻ ʢ େ ֶ ͷ ͱ ͖ ݚ ڀ ͱ ͯ͠ গ ͠ ΍ ͬͯ · ͠ ͨ ʣ ձ ࣾ ΍ ੈ ͷ த ͷ χʔζ ʹ ߹ Θ ͤ ͯɺ W E B Ξ ϓ Ϧ ։ ൃ ͔ Β ෼ ੳ ΍ Τ ϯ δ ϯ ։ ൃ ʹ 
 ͩ Μ ͩ Μ γ ϑ τ ͯ͠ · ͠ ͨ ɻ
  3. ʮ ػ ց ֶ श ʯ ͱ ͍ ͏ ͱ

    ೉ ͢͠ ͗ ͯ ࣗ ෼ ʹ ͸ Ͱ ͖ ͳ ͍ ͱ ࢥ ͬͯ ͠ · ͏ ਓ ΋ ͍ Δ ͔ ͱ ࢥ ͍ · ͢ɻ Ͱ ΋ ɺ ͦ Μ ͳ ͜ ͱ ͳ ͍ Α ɺ ͱ ͍ ͏ ࿩ Λ ࠓ ೔ ͸ ͠ Α ͏ ͱ ࢥ ͍ · ͢ɻ http://shop.oreilly.com/product/0636920018483.do "Machine Learning for Hackers - Case Studies and Algorithms to Get You Started" Drew Conway, John Myles White, O'reilly ↑ػցֶशͷ࣮ྫͱ࢖͍ํΛ஌Δʹ͸Φεεϝ
  4. ϑϧε λ ο Ϋ Τ ϯ δχ Ξ ΍ άϩʔεϋοΧʔͬͯྲྀߦͬ

    ͯ · ͢ Ͷʁ ػ ց ֶ श ΋ ͥ ͻ Ҿ ͖ ग़ ͠ ͱ ͯ͠ Ճ ͑ͯ ΋ Β ͑Δ ͱ ɻ
  5. ػ ց ֶ श ʹ ਺ ࣜ ػ ց ֶ

    श ʹ Ξϧ ΰ Ϧζ Ϝ ͱࢥ͏ͱɺΤϯδχΞʹೃછΈ͕ਂ͘
 ϋʔυϧ͕͍ͩͿԼ͕Γ·͢Ͷɻ
  6. ೔ຊޠʹ͢Δͱɺ σʔλɿμϒϧ഑ྻ [σʔλ1..N][ಛ௃ͷॏΈ] ॳظԽɿ 1. ϥϯμϜʹΫϥελத৺ʢηϯτϩΠυʣΛkݸબͿ ൓෮ɿ 2. Nݸͷσʔλʹରͯ͠ɺkݸͷηϯτϩΠυͱڑ཭͕Ұ൪͍ۙΫϥελ ൪߸ΛৼΔɻ

    3. ͢΂ͯͷΫϥελkʹରͯ͠ɺ൪߸ৼͬͨσʔλͷฏۉΛͱͬͯɺͦΕ ΛηϯτϩΠυͱ͢Δɻ ߋ৽͕ͳ͘ͳΔ·Ͱ2, 3Λ܁Γฦ͢ɻ ഑ྻͱforϧʔϓͱൺֱΦϖϨʔλΛ࢖͑͹ҙ֎ͱ؆୯ʹͰ͖·͢ɻ
  7. ΋ ͪ Ζ Μ ศ ར ͳ ϥ Π ϒ

    ϥ Ϧ ͕ ఏ ڙ ͞ Εͯ ͍ · ͢Α ʂ
  8. Ϋ ϥε ΍ ϝ ι ο υ ͱ 
 ೖ

    ग़ ྗ ͷ σ ʔ λ ϑ Υ ʔϚ ο τ 
 ͞ ͑ ͓ ͞ ͑ͯ ͓ ͚ ͹ ɺ 
 Έ ͳ ͞ ΜͰ ͖ · ͢ Ͷ ^ ^
  9. Numpy, Scipy: ઢܗ୅਺ϥΠϒϥϦ Scikit-Learn: ػցֶशϥΠϒϥϦ Statsmodels: ճؼ෼ੳϥΠϒϥϦ Pandas: σʔλૢ࡞ܥϥΠϒϥϦ Matplotlib:

    άϥϑඳࣸܥϥΠϒϥϦ
 Ipython (Notebook): ର࿩ࣜΠϯλϑΣʔε PythonϥΠϒϥϦͱͯ͠͸͜Μͳ΋ͷ͕͋Γ·͢ ͜Ε͚ͩ࢖͑͹܅΋σʔλαΠΤϯςΟετʹʂʂ
  10. I P Y T H O N N O T

    E B O O K 1. ϒϥ΢βͰίʔυ͕ॻ͚Δ 2. MarkdownͰυΩϡϝϯτ Λ࢒ͤΔʢ਺ࣜରԠʣ 3. ର࿩ࣜʹίʔυ͕ॻ͚Δ 4. ίʔυิ׬΍ϔϧϓදࣔ 5. σʔλ΍݁ՌΛਤࣔ http://ipython.org/notebook.html
  11. 1. CVS΍SQLͰඞཁͳσʔλΛ४උ͢Δ 2. PandasͰσʔλΛಡΈࠐΉ 3. ػցֶशͰಡΊΔΑ͏ʹσʔλΛ੔ܗ͢Δ 4. scikit-learn΍statsmodelͷػցֶशϞσϧΛݺͼग़͢(fit) 5. ݁ՌΛςʔϒϧͰදࣔͨ͠ΓɺmatplotlibͰਤࣔͯ͠ධՁ͢Δ

    6. ݁Ռ͕Α͚Ε͹ͦͷϞσϧΛద༻͢Δ (predict) df = pd.read_csv(…) df[‘device’].apply({‘pc’:0, ‘sp’:1}} clf = RandomForestClassifier(n_estimators=10) clf.fit(df[‘໨తม਺’], df.ix[:, ’આ໌ม਺1’:’આ໌ม਺n’]) clf.feature_importances_ # ॏཁੑͷධՁ ༧ଌ݁Ռ = clf.predict(new_df[‘આ໌ม਺1’:’આ໌ม਺n’])
  12. ୅ ද త ͳ ख ๏ - ෼ྨɾճؼ෼ੳ - ΫϥελϦϯά

    - ࣌ܥྻ෼ੳ - ΞιγΤʔγϣϯ෼ੳʗόεέοτ෼ੳ ೔ৗۀ຿ϨϕϧͳΒɺ
 ؔ਺ͱͦͷ࢖͍ํ͑͞஌͓͚ͬͯ͹
 ଟ͘ͷਓ͸͖ͬͱͰ͖·͢ɻ http://en.wikipedia.org/wiki/Regression_analysis http://en.wikipedia.org/wiki/K-means_clustering http://webdocs.cs.ualberta.ca/~zaiane/courses/cmput499/slides/Lect10/sld054.htm http://www.dtreg.com/TimeSeries.htm
  13. S C I K I T- L E A R

    N A L G O R I T H M C H E AT- S H E E T Ұ෦Ͱ͕͢ɺ ͲͷϞσϧΛ બ΂͹͍͍͔ Θ͔Γ΍͍͢ http://scikit-learn.org/stable/tutorial/machine_learning_map/
  14. σ ʔ λ ྔ ͕ े ෼ Χ ς ΰ

    Ϧ ෼ ྨ ͠ ͨ ͍ ਖ਼ ղ σ ʔ λ ͋ Γ σ ʔ λ ྔ 
 ͦ Μ ͳ ʹ ଟ ͘ ͳ ͍ ઢ ܗ S V M ( S V C )
  15. ͞ ͖ ΄ Ͳ ೖ ྗ σ ʔ λ Λ

    ४ උ ͢ Δ ͱ ͍ ͏ ࿩ ͕ ͋ Γ · ͠ ͨ ͕
  16. ࣮ ͸ લ ॲ ཧ ͱ ͍ ͏ ࢓ ࣄ

    ͷ ΄ ͏ ͕ େ ม ͜ Ε ʹ ಛ Խ ͠ ͨ ਓ Λ 
 Ϛ Τ γ ϣ Ϧε τ ͱ ݺ Ϳ ɻ PythonͰͷલॲཧͷΦεεϝຊ http://www.oreilly.co.jp/books/9784873116556/ ʮPythonʹΑΔσʔλ෼ੳೖ໳ʕNumPyɺpandasΛ࢖ͬͨσʔλॲཧʯ O'reilly, Wes McKinney΄͔
  17. ࣮ ͸ ట ष ͍ ࿩ ɺ ੜ ϩ ά

    ΍ D B Λ ू ܭ ɾ ݁ ߹ ɾ ੔ ܗ ͯ͠ɺ ཉ ͠ ͍ ಛ ௃ σ ʔ λ Λ ࡞ Δ ͓ ࢓ ࣄ ͕ ۀ ຿ ͷ େ ෦ ෼ Λ క Ίͯ · ͢ ʢ ʙ 9 ׂ ʣ
  18. Τ ϯ δχ Ξ ͷ Έ ͳ ͞ Μ 


    ͳ Β ૝ ૾ ͭ ͘ ͱ ࢥ ͏ ͷ Ͱ 
 ׂ Ѫ
  19. Έ ͳ ͞ Μ ΋ ɺ ͥ ͻ Ծ આ

    Λ ཱ ͯ ͯɺ 
 σ ʔ λ Λ ४ උ ͯ͠ɺ τ ϥ Π ͯ͠ Έ ͯ͘ ͩ ͞ ͍ ɻ
  20. ͪ ͳ Έ ʹ ɺ ࠷ ۙ ͷ ࣗ ෼

    ͷ ͓ ࢓ ࣄ ϩάσʔλՃ޻ɿ͜Ε͕Ϗοάσʔλ DBͷσʔλՃ޻ɿ͋ΕɺDBAʁ σʔλͷ݁߹ɿͦΕ୯ʹJOINͯ͠1ͭͷςʔϒϧΛ࡞ͬͯΔͷͶ ػցֶशɿ͋͋ɺྫͷϥΠϒϥϦ࢖͏ͷͶ σʔλ෼ੳɿͪΐͬͽ͠ σʔλαΠΤϯςΟετʹ෼ੳ΍Δਓ ͡Όͳͯ͘ɺݩʑ͸ΤϯδχΞدΓͷ৬ۀͰɺ ෯޿͍εΩϧ͕ٻΊΒΕ·͢ɻ "Ϗοάσʔλʴۀ຿ཧղʴػցֶशʴ෼ੳʴ࣮૷"
  21. Έ ͳ ͞ Μ ͷ ۀ ຿ ΋ σ ʔ

    λ αΠΤ ϯ ςΟε τ ͷ Ұ ෦ Λ ୲ ͬͯ ͍ · ͢ ʂ 
 ͥ ͻ ͜ ͷ ػ ձ ʹ ɺ ػ ց ֶ श ʹ τ ϥ Π ͠ ͯɺάϩʔεϋοΫྗΛ৳͹ͯ͠Έͯ͸ʁ σ ʔ λ αΠΤ ϯ ςΟε τ ʹ Ұ ਓ ͷ εʔύʔϚ ϯ σ ʔ λ αΠΤ ϯ ςΟε τ ʹ ν ʔϜ