【入門】 機械学習を行うための Python導入講座

0dbafc17e04503dfef253274853b2c8a?s=47 Manabu TERADA
February 24, 2018

【入門】 機械学習を行うための Python導入講座

OSC2018東京 春での入門セッション

0dbafc17e04503dfef253274853b2c8a?s=128

Manabu TERADA

February 24, 2018
Tweet

Transcript

  1.  ʲೖ໳ʳ ػցֶशΛߦ͏ͨΊͷ 1ZUIPOಋೖߨ࠲ ࣉాɹֶ .BOBCV5&3"%"   04$4QSJOH5PLZP ໌੕େֶ

  2. .BOBCV5&3"%" !UFSBQZPO  ג $.4ίϛϡχέʔγϣϯζ୅ද Ұൠࣾஂ๏ਓ1Z$PO+1୅දཧࣄ 14'$POUSJCVUJOHNFNCFS Ұൠࣾஂ๏ਓ1ZUIPOΤϯδχΞҭ੒ਪਐڠձࢼݧ໰୊؂मٴͼίϛϡχςΟࢧԉ 1MPOF'PVOEBUJPO"NCBTTBEPS 1ZUIPOΤϯδχΞ݉ΞʔΩςΫτ

    "CPVUNF .BOBCV5&3"%"  ࣉాɹֶ
  3.  ೥݄ൃച 1ZUIPOॳ৺ऀ޲͚

  4. "CPVUPVSPSHBOJ[BUJPO ೥ʹճ࣮ࢪ͍ͯ͠Δ1ZUIPOͷΠϕϯτ ೥ʹҰൠࣾஂ๏ਓԽͨ͠ Ұൠࣾஂ๏ਓ1Z$PO+1͸ ຖ೥࣮ࢪͷ1Z$PO+1ͷ࠲௕Λબग़ ஌ࡒ؅ཧ ܖ໿౳Λ࣮ࢪ 1ZUIPO#PPU$BNQΛશࠃʹల։ 1Z$PO+1 

  5. 1ZUIPOͱ͸ ϓϩάϥϛϯάݴޠ Θ͔Γ΍ͯ͘͢शಘ͕༰қ ߴ౓ͳϓϩάϥϛϯά΋Ͱ͖Δ ଟ͘ͷϢʔβ͕͍Δ ػցֶशͳͲσʔλܥॲཧͰඪ४తݴޠ Φʔϓϯιʔε 

  6.  1Z$PO+1  ݄೔͔Β೔ ౦ژ౎಺Ͱ࣮ࢪ ໿໊

  7.  1Z$PONJOJ̋̋ ֤஍Ͱͷ։࠵ࢧԉ

  8.  1ZUIPO#PPU$BNQ શࠃπΞʔ ։࠵஍ืूத

  9.  1ZUIPO ࢖͍ͬͯΔਓʁ

  10.  ػցֶश ࢖ͬͨΓɾษڧͯ͠Δ

  11. ηογϣϯͷ಺༰ લ൒ ػցֶश֓ཁ ػցֶशͷεςοϓ ͳͥ1ZUIPOΛ༻͍Δ͔ɾඞཁͳ஌ࣝ ޙ൒ 1ZUIPOͱ͸ Πϯετʔϧ؀ڥઃఆ +VQZUFS/PUFCPPLͷઆ໌ +VQZUFS/PUFCPPLΛ࢖ͬͨػցֶशσϞ

    
  12.  લ൒

  13. ػցֶशͱ͸  σʔλαΠΤϯεͷ෼໺ ਓؒͱಉ༷ʹίϯϐϡʔλֶ͕श͠ɺֶश݁Ռ Λ༻͍ͯ༧ଌͳͲΛߦ͏ɻ

  14. ػցֶशͷछྨ  ڭࢣ͋Γ ڭࢣͳ͠ ڧԽֶश

  15. σʔλղੳͷΞϓϩʔν ػցֶश͕࠷ߴʹ͍͍ํ๏͔ʁ σΟʔϓϥʔχϯά͸ඞཁ͔ʁ ౷ܭతΞϓϩʔν͸ʁ σʔλ͔Βಋ͖ग़͞ΕΔ΋ͷ͸Կ͔ʁ 

  16.  ػցֶशͷ εςοϓ ڭࢣ͋Γ

  17.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  18.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  19.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ σʔλΛ୳͢ σʔλͷೖखɾμ΢ϯϩʔυ σʔλͷ֓ཁΛଊ͑Δ

    ΠϯσοΫε໊΍ΧϥϜ໊Λ෇͚Δ
  20.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  21.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ σʔλͷॳظՃ޻ σʔλͷ࿈݁ ܽଛ஋ॲཧ

    Ճ޻ࡁΈσʔλͷ֬ೝ Ճ޻ࡁΈσʔλͷอଘ
  22.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  23.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ՄࢹԽ؀ڥઃఆ σʔλͷಡࠐΈ άϥϑԽ

    ਺஋Ͱ֓ཁΛݟΔ ૬ؔΛ֬ೝ ඞཁʹͳΔσʔλΛ࡞Δ ଟมྔม਺ΛݟΔ
  24.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  25.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ΞϧΰϦζϜͷީิΛ্͛Δ ৔߹ʹΑͬͯ͸σʔλ࠶Ճ޻ ৔߹ʹΑͬͯ͸ओ੒෼෼ੳ

    આ໌ม਺ͱ໨తม਺ΛܾΊΔ
  26.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  27.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ֶशσʔλͱςετσʔλΛ෼ׂ ΞϧΰϦζϜͷॳظԽ ύϥϝʔλઃఆ

    ֶश
  28.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  29.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ ༧ଌ ༧ଌ݁ՌΛධՁ ࠞಉߦྻͰ֬ೝ

    ద߹཰ɾ࠶ݱ཰ɾ'஋ ଞͷϞσϧɾύϥϝʔλΛࢼ͢ ަࠩݕূ ΫϩεόϦσʔγϣϯʣ άϦουαʔν ύϥϝʔλௐ੔ʣ
  30.  σʔλબͼɾσʔλೖख σʔλՃ޻ɾσʔλ࿈݁ ՄࢹԽ ػցֶशΞϧΰϦζϜબఆ ػցֶशϞσϧֶश ػցֶशϞσϧධՁ

  31. 1ZUIPOͰͳͯ͘΋Ͱ͖Δ σʔλͷલॲཧʹQBOEBT &YDFMͰ΋Ͱ͖Δ͚Ͳɻ ՄࢹԽ &YDFMͰ΋Ͱ͖Δ͚ͲͶɻ ػցֶश ϞσϧΛࣗ෼Ͱϓϩάϥϛϯάͯ͠΋͍͍͚ ͲͶɻ σʔλ෼ׂ΍ධՁΛϓϩάϥϛϯάͯ͠΋͍ ͍͚ͲͶɻ

    
  32. ֤छπʔϧͷղઆ  &YDFM (6*Ͱ؆୯ʹ࢖͑Δ جຊతͳ౷ܭ৘ใɺάϥϑԽ͕Մೳ 1ZUIPO ศརͳϥΠϒϥϦͱͷ૊߹ͤΛ͢Δ ߴ౓ͳ͜ͱ΋ରԠՄೳ ෯޿͍෼໺΁ͷద༻͕Մೳ 3

    ౷ܭղੳઐ༻ͷݴޠ खݩͰσʔλղੳؔ܎Λ࣮ߦՄೳ ͦͷଞ ֤छϓϩάϥϛϯάݴޠͰ΋औΓ૊ΊΔ
  33. 1ZUIPOπʔϧͷղઆ  1ZUIPO ෯޿͍෼໺ʹར༻͞ΕΔϓϩάϥϛϯάݴޠ /VN1Z ਺஋ܭࢉ༻ϥΠϒϥϦ 4DJ1Z ౷ܭ౳ͷՊֶٕज़ܭࢉ༻ϥΠϒϥϦ QBOEBT σʔλϋϯυϦϯάϥΠϒϥϦ

    NBUQMPUMJC άϥϑԽπʔϧ TDJLJUMFBSO ػցֶशϥΠϒϥϦ +VQZUFS/PUFCPPL 8FCϒϥ΢βͰ࣮ߦՄೳͳπʔϧ
  34. ࢖༻͢Δπʔϧ 1ZUIPOIUUQTEPDTQZUIPOKQ /VN1ZIUUQTEPDTTDJQZPSHEPD  4DJ1ZIUUQTEPDTTDJQZPSHEPD  QBOEBTIUUQQBOEBTQZEBUBPSHQBOEBTEPDTTUBCMF  NBUQMPUMJCIUUQTNBUQMPUMJCPSHDPOUFOUTIUNM TDJLJUMFBSOIUUQTDJLJUMFBSOPSHTUBCMF

    EPDVNFOUBUJPOIUNM +VQZUFSIUUQKVQZUFSOPUFCPPLSFBEUIFEPDTJPFOMBUFTU 
  35. 1ZUIPOܥπʔϧͷศརͳϙΠϯτ +VQZUFS/PUFCPPL QBOEBT NBUQMPUMJC ܁Γฦ࣮͠ߦ͕༰қ ࠶ར༻Մೳ HJUIVCͰ௚઀ՄࢹԽՄೳ ࠶ࢼ΋༰қ TDJLJUMFBSO ػցֶश͕༰қ

    ศརͳπʔϧ͕ͦΖ͍ͬͯΔ 
  36. ඞཁͳΤϯδχΞϦϯάͱ͸ʁ υϝΠϯ஌ࣝɾϏδωε஌ࣝ σʔλαΠΤϯςΟετ σʔλ෼ੳऀ  σʔλؔ࿈ΤϯδχΞ 

  37.  ޙ൒

  38. ޙ൒ηογϣϯͷ಺༰ 1ZUIPOͱ͸ 1ZUIPOͷΠϯετʔϧɾ؀ڥઃఆ +VQZUFS/PUFCPPLͷઆ໌ +VQZUFS/PUFCPPLΛ࢖ͬͨػցֶशͷσϞ 

  39. 1ZUIPOͬͯͳʹ  ϓϩάϥϛϯάݴޠ Θ͔Γ΍ͯ͘͢शಘ͕༰қ ߴ౓ͳϓϩάϥϛϯά΋Ͱ͖Δ ଟ͘ͷϢʔβ͕͍Δ ػցֶशͳͲσʔλܥॲཧͰඪ४తݴޠ Φʔϓϯιʔε

  40. 1ZUIPOͷಛ௃  ίϯύΠϧෆཁ ߏ଄ΛΠϯσϯτͰදݱ όοςϦʔΠϯΫϧʔυ ଟ͘ͷαʔυύʔςΟϥΠϒϥϦ ࢓༷ͷ໌จԽ όʔδϣϯΞοϓαΠΫϧͷެද

  41. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  04΍Πϯϑϥ 8FCؔ܎ Պֶٕज़ܭࢉ΍ػցֶश %άϥϑΟοΫ *P5 ࢖ΘΕ͍ͯΔྖҬ

  42. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  3FE)BUܥ-JOVYΠϯετʔϥ ZVNύοέʔδϚʔδϟ "OTJCMFύοέʔδͷߏ੒؅ཧπʔϧ 0QFO4UBDLΫϥ΢υγεςϜߏஙπʔϧ 04΍Πϯϑϥ

  43. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  8FCϑϨʔϜϫʔΫ %KBOHP 'MBTL 1ZSBNJE 3%#.403Ϛούʔ %KBOHP಺ଂ 42-"MDIFNZ 8FCؔ܎

    ςϯϓϨʔτ +JOKB .BLP $IBNFMFPO ͦͷଞπʔϧ 4DSBQZ
  44. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  σʔλܕ /VN1Z QBOEBT Պֶٕज़ܭࢉ 4DJ1Z άϥϑπʔϧ NBUQMPUMJC Պֶٕज़ܭࢉ΍ػցֶश

    ػցֶशϑϨʔϜϫʔΫ TDJLJUMFBSO σΟʔϓϥʔχϯά 5FOTPS'MPX $IBJOFS
  45. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  .BZB #MFOEFS %άϥϑΟοΫ

  46. 1ZUIPOͰͳʹ͕Ͱ͖Δ͔  3BTQCFSSZ1J .JDSP1ZUIPO *P5

  47. 1ZUIPO೥ද 1ZUIPO 1ZUIPO &WFOU 3FE)BU   ʜ  

    14'  &VSP1ZUIPO 3)&-   1Z$PO 64 3)&-    3)&-   1ZUIPO  3)&-        1Z$PO"1"$ 4( 3)&-   1Z$PO+1    1Z$PO"1"$ +1   3)&-        ʜ  &OEPG-JGF 
  48. όʔδϣϯ  1ZUIPOͰ͸େ͖ͳมߋ 1ZUIPO͸Ͱαϙʔτऴྃ ͜Ε͔Β΍ΔͳΒ1ZUIPO ͨͩ͠ɺ1ZUIPOͷαϯϓϧ͕ଟ͘ݟ͔ͭΔ 1ZUIPOWT

  49. ࢲͷΦεεϝ؀ڥ  ߲໨ Φεεϝ ࣮૷ $1ZUIPO όʔδϣϯ  Πϯετʔϧ ެࣜ൛Πϯετʔϥ

    Ծ૝؀ڥ WFOW ύοέʔδΠϯετʔϧ QJQ ΤσΟλ 1Z$IBSN ͙࢝͢ΊΒΕΔɺ1ZUIPOͷ؀ڥߏஙCZ.BOBCV5&3"%" 1VCMJTIFE"QSJM  IUUQTTQFBLFSEFDLDPNUFSBQZPOTVHVTIJNFSBSFSVQZUIPOGBMTFIVBOKJOHHPV[IV
  50. Πϯετʔϧํ๏ $1ZUIPO  ໊শ ֓ཁ ެࣜ൛Πϯετʔϥ FYFQLHͰΠϯετʔϧ ެࣜ൛ΛιʔείϯύΠϧ UH[UBSY[͔ΒίϯύΠϧ 04ύοέʔδϚωʔδϟ

    ZVNBQUHFUͰΠϯετʔϧ "OBDPOEB Պֶٕज़ܭࢉ༻ΛύοέʔδԽ
  51. ެࣜ൛Πϯετʔϥ  ಛผͳཧ༝͕ͳ͚Ε͹ ެࣜ൛Πϯετʔϥ -JOVY؀ڥͷ৔߹͸ ެࣜ൛Πϯετʔϥ͕ఏڙ͞Εͯͳ͍ ެࣜ൛ιʔεΛίϯύΠϧͯ͠࢖༻

  52. ެࣜ൛1ZUIPOIUUQTXXXQZUIPOPSHEPXOMPBET 

  53. "OBDPOEB Պֶٕज़ܭࢉܥͷύοέʔδ͕ಉࠝ Πϯετʔϧ͕ख͕ܰͩɺ ͸·ΓϙΠϯτ΋͋ΔͷͰ஫ҙ 8JOEPXT؀ڥͰՊֶٕज़ܭࢉܥͷ৔߹͸ "OBDPOEBΛબ୒͢Δ৔߹΋͋Δ 

  54. Ծ૝؀ڥ Ұͭͷ04্ʹɺෳ਺ͷ1ZUIPO؀ڥΛ࡞ΕΔ ར༻͢Δ1ZUIPOϥΠϒϥϦΛ۠෼͚Ͱ͖Δ άϩʔόϧͳ1ZUIPO؀ڥΛΫϦʔϯʹอͯΔ 1ZUIPOϨΠϠʔͷԾ૝؀ڥʹݶఆ 04ΛԾ૝ԽɺίϯςφԽ %PDLFSͷΑ͏ͳ ͱ͸ผ෺ 

  55. Ծ૝؀ڥͷछྨͳͲ  ໊শ ֓ཁ WFOWϞδϡʔϧ ެࣜ൛ʹಉࠝ Ҏ߱ඪ४ WJSUVBMFOW 1ZUIPOͰ͸ඞཁ QZFOW

    1ZUIPOࣗମͷόʔδϣϯ੾ସ΋Մೳ DPOEBίϚϯυ όʔδϣϯ੾ସՄೳ "OBDPOEBͰ࢖༻Մೳ QZWFOWίϚϯυ WFOWϞδϡʔϧͱಉ͡ ݱࡏඇਪ঑
  56. WFOWϞδϡʔϧͷ࢖͍ํ WFOWϞδϡʔϧͱ͸ ެࣜ൛1ZUIPOʹಉࠝ͞Ε͍ͯΔ Ծ૝؀ڥΛ࡞Δඪ४Ϟδϡʔϧ  $ python -m venv env

    FOWͱ͍͏Ծ૝؀ڥΛ࡞੒ $ source env/bin/activate Ծ૝؀ڥ༗ޮԽ (env) $ ϓϩϯϓτ͕มԽ (env) $ deactivate Ծ૝؀ڥͷແޮԽ $ rm -r env FOWͱ͍͏Ծ૝؀ڥϑΥϧμΛ࡟আ
  57. ύοέʔδΠϯετʔϧ 1ZUIPOʹ͸ଟ͘ͷ αʔυύʔςΟʔύοέʔδ͕͋Δ 1Z1* ύΠϐʔΞΠͱಡΉ  IUUQTQZQJQZUIPOPSHQZQJ 

  58. 1Z1*IUUQTQZQJQZUIPOPSHQZQJ 

  59. ύοέʔδΠϯετʔϧ QJQίϚϯυ 1ZUIPOʹಉࠝ͞Ε͍ͯΔίϚϯυ QJQίϚϯυΛ࢖͍ύοέʔδΠϯετʔϧ  $ source env/bin/activate Ծ૝؀ڥ༗ޮԽ (env)

    $ pip install pandas QBOEBTΠϯετʔϧ (env) $ pip freeze > requirement.txt ύοέʔδϦετ࡞੒ (env) $ pip install -r requirement.txt ύοέʔδϦετΛݩʹΠϯετʔϧ (env) $ pip install -u pandas QBOEBTΛ࠷৽൛ʹ
  60. +VQZUFS/PUFCPPL δϡϐλʔɹϊʔτϒοΫͱಡΉ IUUQKVQZUFSPSH 

  61. +VQZUFS/PUFCPPLΠϯετʔϧ ҎԼͷίϚϯυͰϒϥ΢β͕ىಈ͢Δ  $ source env/bin/activate Ծ૝؀ڥ༗ޮԽ (env) $ pip

    install jupyter (env) $ jupyter notebook
  62. +VQZUFS/PUFCPPL࢖͍ํ +VQZUFS/PUFCPPLͷىಈ /FX͔ΒɺΧʔωϧͰ1ZUIPOΛબ୒ ηϧʹίʔυΛهड़ ηϧͷछྨ $PEF .BSLEPXO ೖྗޙ &OUFSͰηϧ಺վߦ $USM

    &OUFSͰ࣮ߦ 4IJGU &OUFSͰ࣮ߦͯ͠ɺ࣍ͷηϧ΁ 
  63. +VQZUFS/PUFCPPL࠶ར༻ ໊લΛ෇͚Δ 4BWFBOE$IFDLQPJOU HJUIVCʹͯJQZOCϑΝΠϧΛQVTI͢Δͱɺ͖ Ε͍ʹදࣔ͞ΕΔ 

  64.  +VQZUFS/PUFCPPL σϞ

  65. ػցֶशͷσϞ ΞΠεΫϦʔϜച্૬ؔΛٻΊΔ +VQZUFS/PUFCPPLΛ࢖༻ ࣮ߦՄೳͳ಺༰͸(JTUͰެ։ IUUQTHJTUHJUIVCDPNUFSBQZPOCEEDDED 

  66.  ػցֶशͷ σϞ

  67.  ͓קΊຊ

  68.  ೥݄ൃച 1ZUIPOॳ৺ऀ޲͚

  69.  1ZUIPOॳ৺ऀ޲͚ ϥΠόϧຊ

  70.  1ZUIPOॳ৺ऀ޲͚ ϥΠόϧຊ

  71.  1ZUIPOνϡʔτϦΞϧ ୈ൛

  72.  ॳ৺ऀʹ͸ ޲͔ͳ͍

  73.  Ұาઌʹ

  74.  σʔλॲཧ લॲཧ  QBOEBT ՄࢹԽ

  75.  1ZUIPOػցֶश

  76.  1ZUIPOσʔλղੳ ӳޠ

  77.  σΟʔϓϥʔχϯά

  78.  தڃऀ޲͚

  79.  ্ڃऀ޲͚

  80.  ࠷ޙʹ΋͏ճ

  81.  ೥݄ൃച 1ZUIPOॳ৺ऀ޲͚ ࡭ϓϨθϯτ

  82. 5IBOLZPV $.4 1MPOF  $POUBDUUPUFSBEB!QZDPOKQ

  83.  ࣭ٙԠ౴

  84. 5IBOLZPV $.4 1MPOF  $POUBDUUPUFSBEB!QZDPOKQ