Slide 1

Slide 1 text

PythonistaʹಌΕͨ෼ੳ԰ͷฃಆه @kanan* 2017.06.07 ΈΜͳͷPythonษڧձ#25

Slide 2

Slide 2 text

ࣗݾ঺հ ˎKANANʢ͔ͳΜʣ ɹɹcompass-ID @kanan* ɹɹTwitter-ID @Addition_quince ˎ͓࢓ࣄ ɹɹSIerاۀͰσʔλαΠΤϯεؔ࿈ۀ຿Λ΍ͬͯ·͢ ɹɹݴޠ͸SAS ˎPyLadiesʹ͸2016.ळ͔Βͪΐͪ͜ΐ͜ࢀՃ ˎझຯ͸ԅɻ͓ञ͕େ޷͖ɻ

Slide 3

Slide 3 text

ࠓ೔ͷ͓͸ͳ͠ ˎϓϩάϥϛϯάʹڵຯ͕ͳ͔ͬͨ෼ੳ԰͕ ˎεΩϧΞοϓͨͯ͘͠PythonʹखΛग़ͦ͏ͱܾҙ͠ ˎ৺ંΕͳ͕Βฃಆͨ͠10ϲ݄ؒͷ͓࿩Ͱ͢ PythonistaʹಌΕͨ෼ੳ԰ͷฃಆه Pythonista Lv0 → Lv1.5 ※͖ͬͱੌ͍ਓ͸Lv 20͘Β͍

Slide 4

Slide 4 text

Pythonͱͷग़ձ͍ σʔλ෼ੳܥɹˠɹPython Α͋͘Δ΍ͭ

Slide 5

Slide 5 text

͜Ε·Ͱͷϓϩάϥϛϯάྺ 2013 2014 2015 2016 2012 2011 େֶ γεςϜΤϯδχΞ σʔλαΠΤϯςΟετ ˎੲ͸ϓϩάϥϛϯάͯͨͭ͠΋Γͩͬͨ ˎ࢓ࣄͰϚωδϝϯτ͕ଟ͘ͳΓɺ΋͸΍৮Βͳ͍ۭനͷظؒ ˎSAS͸ݴޠͱ͍͍ͳ͕Β΋πʔϧͬΆ͍ ϓϩάϥϛϯάɹʹɹ࢓ࣄ

Slide 6

Slide 6 text

͜Ε·Ͱͷϓϩάϥϛϯάྺ ͪΌΜͱϓϩάϥϛϯά΍ͬͯͳ͍

Slide 7

Slide 7 text

PythonσϏϡʔΛܾҙ PyLevel 0 2016೥9݄ ˎҟ༷ͳ΄Ͳͷ΍Δؾ ˎ࢒Δ͸෼ੳ԰ͷ஌ࣝ

Slide 8

Slide 8 text

ͦͷ̍िؒޙɾɾɾ PyLevel 0 2016೥9݄ ͦͷ̎ ˎΠϯετʔϧํ๏ݕࡧ͢Δͱ ɹɹ΍Γํ͕஍ຯʹҧ͏ ˎHomebrewʁpyenvʁφχιϨ ˎPython3ΛೖΕͨͷʹ ɹɹόʔδϣϯ͕Python2ͬͯͳΔ ˎ.bash_plofileͳ͍͠ʂ ˎPython͸͡ΊΔͨΊʹങͬͨ ɹɹMACͷ࢖͍ํ͕Θ͔Βͳ͍ Πϯετʔϧ Ͱ͖ͳ͍ʂ

Slide 9

Slide 9 text

ܸɹ௜

Slide 10

Slide 10 text

ͦΜͳ࣌ɺPyLadiesTokyoͱग़ձ͏

Slide 11

Slide 11 text

PyLadies TokyoͰSTEP UP PyLadies Tokyo ळ߹॓ 2016 [2016.10.8-10] PyLadies Tokyo Meet Up #16 [2016.11.27] PyLadies Tokyo Meet Up #17 [2016.12.11] PyLadies Tokyo Meet Up #20 [2016.03.25] *؀ڥߏங,AnacondaͱJupyterNotebookͷ࢖͍ํΛֶͿ *ڝٕϓϩάϥϛϯάͰPythonͷॻ͖ํΛֶͿ *ϚΠίϯϘʔυ(STM32 Discovery)ʹMicro PythonͰLνΧ *WebεΫϨΠϐϯάΛ΍ͬͯΈΔ

Slide 12

Slide 12 text

ݸਓతʹ΋σʔλ෼ੳपลͰษڧ ˎσʔλ෼ੳܥ ɹɹɹ1) titanicੜଘऀ༧ଌ ɹɹɹ2) ΞϝϦΧͷՈͷച٫Ձ֨༧ଌ ɹɹɹ3) ίϯϏχͷച্͛༧ଌ ˎͦͷଞ ɹɹɹ1) खॻ͖਺ࣈͷೝࣝ ɹɹɹ2) RaspberryPi3ͰPython࢖ͬͯΈΔ 2017.3 ʙ2017.4

Slide 13

Slide 13 text

PyLevel 1.0 2017೥4݄ ˎΞϧΰϦζϜָ͍͠ ˎԿ͔Ͱ͖Δͱخ͍͠ ˎExcel΍SASͰ ɹ΍ͬͯͨࣄ͕PythonͰ΋ ˎ΋ͬͱ৭ʑ΍ͬͯΈ͍ͨ ΍Δؾ෮׆ɻ΍ͬͱೖ໳ऀϨϕϧʹ

Slide 14

Slide 14 text

νϟϨϯδ ࣗ෼͕ڵຯ͕͋ΔςʔϚͰ ΍Γ͍ͨͱࢥͬͨ΋ͷΛ΍Ζ͏

Slide 15

Slide 15 text

΢ΟεΩʔͰػցֶशʹ௅ઓ ʲͳΜͰ΢ΟεΩʔʁʳ ɹˎͱΓ͋͑ͣࢲ͕޷͖ ɹˎϫΠϯΈ͍ͨʹ໏ฑ͕Ռͯ͠ͳ͘ଟ͍Θ͚͡Όͳ͍ ɹˎւ֎ͷϏʔϧΈ͍ͨʹຯ΍߳Γͷಛ௃͕͸͖ͬΓͯ͠Δ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ޷͖ͳ໏ฑ͔ΒͨͿΜ͓ޱʹ߹͏΋ͷΛਪન Ϩίϝϯυ

Slide 16

Slide 16 text

Anaconda Continuum Analyticsࣾఏڙͷ σʔλ෼ੳͰΑ͘ར༻͞ΕΔϥΠϒϥϦ܊Λ ҰׅΠϯετʔϧͰ͖ͪΌ͏ύοέʔδ ΢ΟεΩʔͰػցֶशʹ௅ઓ Jupyter Notebook ϒϥ΢βͰಈ࡞͢Δର࿩ܕ࣮ߦ؀ڥ ίʔυهड़ͱ࣮ߦɺίϝϯτૠೖ͕Ͱ͖ɺ ݁Ռͷอଘ΍ڞ༗ʹ΋ศར AnacondaೖΕΔͱσϑΥϧτͰೖͬͯΔ ɹPythonҎ֎ʹ΋R, node.js, Ruby౳ෳ਺ݴޠʹରԠ ʲ࣮ߦ؀ڥʳ

Slide 17

Slide 17 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̍ʣҰੜݒ໋σʔλΛूΊΔ ̎ʣskimageΛ࢖ͬͯHOGಛ௃ྔΛऔಘ͢Δ ̏ʣֶशσʔλͱςετσʔλʹ෼ׂ ̐ʣsklearnΛ࢖ͬͯCodeBookΛ࡞੒͠BoVWʹม׵ ̑ʣֶशͱςετ ■࢖༻ͨ͠ϥΠϒϥϦ ɹɹskimage, matplotlib, sklearn, glob, os

Slide 18

Slide 18 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̍ʣҰੜݒ໋σʔλΛूΊΔ 899ຕ ࣗ෼ͷ޷͖ͳ11໏ฑ͚ͩͰ৺ંΕͯఘΊΔ

Slide 19

Slide 19 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̎ʣskimageΛ࢖ͬͯHOGಛ௃ྔΛऔಘ͢Δ HOG(Histograms of Oriented Gradients) ɹہॴྖҬ (ηϧ) ͷً౓ͷޯ഑ํ޲ΛώετάϥϜԽ 1.ը૾Λద౰ͳαΠζʹϦαΠζ͠ɺάϨΠεέʔϧͰಡΈࠐΉ 2.֤pixelͷً౓͔Βޯ഑ڧ౓ͱޯ഑ํ޲ΛٻΊΔ 3.ηϧྖҬ͝ͱʹώετάϥϜΛٻΊΔʢࠓճ͸8×8ϐΫηϧʣ 4.ϒϩοΫ͝ͱʹਖ਼نԽ͠ɺಛ௃ྔΛநग़͢Δʢࠓճ͸3×3ηϧʣ

Slide 20

Slide 20 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̎ʣskimageΛ࢖ͬͯHOGಛ௃ྔΛऔಘ͢Δ

Slide 21

Slide 21 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̐ʣsklearnΛ࢖ͬͯCodeBookΛ࡞੒͠BoVWʹม׵ BoVW(Bag-of-Visual-Words)ܗࣜ ɹը૾ͷಛ௃ྔΛϕΫτϧԽ͠ώετάϥϜʹͨ͠΋ͷ ɾɾɾɾ ɾɾɾ ɾɾɾ Visual-word vectors Codebook (୅දύλʔϯͷϦετʣ ç ç ç ç

Slide 22

Slide 22 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ̑ʣֶशͱςετ ը૾σʔλͱਖ਼ղͷϥϕϧΛֶशͤ͞Δɹ※SVMʢαϙʔτϕΫλϚγϯʣΛ࠾༻ άϦουαʔνͰϋΠύʔύϥϝʔλνϡʔχϯά

Slide 23

Slide 23 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ਖ਼౴཰ ɹ72% ςετ݁Ռ

Slide 24

Slide 24 text

΢ΟεΩʔͰػցֶशʹ௅ઓ Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ ΍ͬͯΈͨ݁Ռ ■ը૾ͷલॲཧ෦෼ ɹɹɾࠓճ͸ϥϕϧΞοϓͷը૾͹͔ΓΛ࢖༻ͨ͠ͷͰɺ ɹɹɹҾ͖ͷࣸਅʹରԠͰ͖ͳ͍ʢ΍ͬͯΈͨΒյ໓తʣ ɹɹɾഎܠͱ͔΋ະߟྀͷ·· ɹɹɾOpenCVʁͳʹͦΕ ■ֶश෦෼ ɹɹɾಛ௃ྔϕʔε(BoVW)ͰͷֶशΛ࠾༻͚ͨ͠Ͳɺ ɹɹɹσΟʔϓϥʔχϯά࢖͏ͱ΋ͬͱਫ਼౓͕͋Δͷ͔ͳ

Slide 25

Slide 25 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά ̎ʣmecabͰ୯ޠʹ෼ׂ͠ɺܗ༰ࢺͱ෭ࢺ͚ͩऔΓग़͢ ̏ʣग़ݱͨ͠୯ޠΛ·ͱΊɺTFIDFܭࢉͰಛ௃తͳޠΛಛఆ ̐ʣ୯ޠΛ࢖ͬͯࣅ͍ͯΔ໏ฑΛΫϥελϦϯά

Slide 26

Slide 26 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά beautiful soupΛ࢖༻ ɹɹᶃHTMLऔಘ ɹɹᶄ΄͍͠৘ใͷ෦෼ͷλάΛݟ͚ͭΔ ɹɹᶅߏ଄ղੳͯ͠ಛఆ෦෼Λநग़ ɹɹᶆσʔλϑϨʔϜʹม׵͢Δ

Slide 27

Slide 27 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά beautiful soupΛ࢖༻ ɹɹᶃHTMLऔಘ ɹɹᶄ΄͍͠৘ใͷ෦෼ͷλάΛݟ͚ͭΔ ɹɹᶅߏ଄ղੳͯ͠ಛఆ෦෼Λநग़ ɹɹᶆσʔλϑϨʔϜʹม׵͢Δ ্ख͍͔ͣ͘ ࣌ؒΛ࿘අ

Slide 28

Slide 28 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά

Slide 29

Slide 29 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά

Slide 30

Slide 30 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̍ʣWebαΠτ͔Β֤໏ฑͷઆ໌΍ίϝϯτΛεΫϨΠϐϯά ໏ฑͷղઆจ ޱίϛจ ͳΜͱ͔εΫϨΠϐϯά׬ྃ ख࡞ۀͰCSV࡞੒

Slide 31

Slide 31 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̎ʣmecabͰ୯ޠʹ෼ׂ͠ɺܗ༰ࢺͱ෭ࢺ͚ͩऔΓग़͢ ߳Γ͸ڧ͍Ͱ͕͢ɺຯ͸͖ͬ͢Γ͍ͯͯ͠ɺඒຯ͍͠Ͱ͢ɻ ߳Γ/͸/ڧ͍/Ͱ͢/͕/ɺ/ຯ/͸/͖ͬ͢Γ/ͯ͠/͍ͯ/ɺ /ඒຯ͍͠/Ͱ͢/ɻ

Slide 32

Slide 32 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̏ʣग़ݱͨ͠୯ޠΛ·ͱΊɺTFIDFܭࢉͰಛ௃తͳޠΛಛఆ BoW(Bag-of-Words) ܗࣜʹม׵ จॻ ߦྻԽ TFIDF ܭࢉ

Slide 33

Slide 33 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̏ʣग़ݱͨ͠ܗ༰ࢺΛ·ͱΊɺTFIDFܭࢉͰಛ௃తͳޠΛಛఆ TFIDF=TF×IDF TF→Ұ࿈ͷจॻ಺ͷͦͷ୯ޠͷग़ݱස౓ IDF→ʢͦͷ୯ޠ͕͋Δจॻͷ਺ʗશจॻ਺ʣͷٯ਺ ʲͦͷจॻΒ͠͞ʳ ɹͦͷจॻͰଟ͘Ͱͯ͘ΔͷʹɺଞͷจॻͰ͸͋·ΓͰͯ͜ͳ͍୯ޠ BoW(Bag-of-Words)ܗࣜʹม׵ จॻߦྻԽ TFIDFܭࢉ BoWܗࣜ=จॻΛ਺஋ͱͯ͠ѻ͏ʢϕΫτϧԽ͢Δʣ ※ࠓճ͸TFʢ୯ޠͷग़ݱස౓ʣΛ࢖༻

Slide 34

Slide 34 text

WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ΢ΟεΩʔͰػցֶशʹ௅ઓ ̐ʣ୯ޠΛ࢖ͬͯࣅ͍ͯΔ໏ฑΛΫϥελϦϯά ֤໏ฑͷಛ௃తͳ୯ޠTOP5Λ࢖ͬͯ5ͭʹΫϥελϦϯά …͠Α͏ͱࢥͬͨΒ ˎ൱ఆʮͳ͍ʯͷߟྀ ˎআ֎ͨ͠΄͕͍͍୯ޠ ɹɹɹɹɹɹɹɹɹ౳ ߟྀෆ଍Ͱɺ ੾ͳ͍ΫϥελϦϯάʹ

Slide 35

Slide 35 text

޷͖ͳ໏ฑ͔ΒͨͿΜ͓ޱʹ߹͏΋ͷΛਪન Ϩίϝϯυ ΢ΟεΩʔͰػցֶशʹ௅ઓ ຊ೔·Ͱʹ౸ୡͰ͖ͣ…ɻ ڧௐϑΟϧλϦϯάͱ͔Ͱ΍Γ͔͚ͨͬͨͲɺ ·ͣσʔλΛूΊΔͱ͍͏࠷େͷน͕଴ͬͯΔɻ

Slide 36

Slide 36 text

΢ΟεΩʔͰػցֶशʹ௅ઓͷཱྀ͸ଓ͘… Ϙτϧͷϥϕϧ͔Β໏ฑΛ൑ผ ը૾ೝࣝ WEBͷ৘ใ͔Β֤໏ฑͷಛ௃Λநग़ ςΩετղੳ ޷͖ͳ໏ฑ͔ΒͨͿΜ͓ޱʹ߹͏΋ͷΛਪન Ϩίϝϯυ ˎਫ਼౓޲্ʂ90%͸ਖ਼ղ͍ͨ͠ɻOpenCV࢖ͬͯΈ͍ͨ ˎσʔλ૿ྔͱ൱ఆޠ΍আ֎બఆɺϊΠζͷѻ͍ͷߟྀ ˎ͜Ε͔ΒؤுΔʂϢʔβෳ਺ධՁͰڧௐϑΟϧλϦϯά WebΞϓϦέʔγϣϯ

Slide 37

Slide 37 text

·ͱΊ ˎPytonistaʹಌΕͨҰհͷ෼ੳ԰͸ͨͿΜPyLv1.5͘Β͍ʹͳΕͨ ˎ࠷ॳͷӈ΋ࠨ΋Θ͔Βͳ͍࣌͸ɺ஥ؒͱҰॹ͕͍͍ ˎࣗ෼ͷڵຯͱֻ͚߹ΘͤΔͷͬͯؤுΓ͕࣋ଓ͢Δ ˎσʔλूΊΔͷେมͬͯᷚ͸ຊ౰ͩͬͨ ˎ·͡ͰwebΞϓϦέʔγϣϯΘ͔Γ·ͤΜ ɹಘҙͳਓɺͪΐͬͱ஌ͬͯΔਓɺ͓༑ୡʹͳ͍ͬͯͩ͘͞

Slide 38

Slide 38 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ