Surf StudioïŒ Certified Google Developer Agency ïŒããã®ã²ã¹ãæçš¿ã®çŽ¹ä»ãããã«ã¡ã¯ãHabrã ç§ã®ååã¯Alexander OlferukïŒ
@olferuk ïŒã§ã
ãSurfã§æ©æ¢°åŠç¿ãããŠããŸãã 2011幎以æ¥ãç§ãã¡ã¯å€§äŒæ¥åãã®ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãéçºããŠããŸããããçŸåšãTensorFlowã§B2B補åããªãªãŒã¹ããæºåãããŠããŸãã ç§ãã¡ã®çµéšã«ã€ããŠå°ã話ãæ©äŒãäžããŠãããGoogleã®ååã«æè¬ããŸãã
çŸä»£ã®æ©æ¢°åŠç¿ã«ã¯å€ãã®æ奜家ãããŸãããå°é家ãéåžžã«äžè¶³ããŠããŸãã ç§ãã¡ã®ããŒã ã§ã¯ããã®ãããªæ奜家ãæŠéçµéšã®ããã¹ãã·ã£ãªã¹ãã«å€èº«ããã®ãèŠãŸããã æ©æ¢°åŠç¿ã«é¢é£ããæåã®åçšè£œåãéçºããããŒã ã¯ãå€ãã®ãã¥ã¢ã³ã¹ã«çŽé¢ããŸããã Kaggleã§èª°ãã奜ã競äºã¯ãå®éã®ããžãã¹äžã®åé¡ã解決ããããšãšã¯ã»ã©é ãããšãããããŸããã ä»ãç§ã¯çµéšãå
±æããäŸã瀺ããç§ãã¡ãçµéšããããšã«ã€ããŠå°ã話ãããã§ãã
ææŠãã
ãã®ã·ã¹ãã ã®ç®çã¯ã3幎ã®è²©å£²å®çžŸãæã€å°å£²ãããã¯ãŒã¯ã®ååã®æé©ãªããŒã¯ã¢ãããäºæž¬ããããšã§ãã ãã¡ãããã¯ã©ã€ã¢ã³ãã®ããžãã¹ãããåçæ§ã®é«ããã®ã«ããããšãç®æšã§ãã ããŒã¿ã¯é±ããšã«éèšãããŸããååã®æè¡çç¹æ§ãååã®è²©å£²æ°ãååã®åšåº«æ°ã賌å
¥ããã³å°å£²äŸ¡æ Œãããã³çµæãšããŠåŸãããå©çãããã£ãŠããŸãã ããã¯çããŒã¿ã§ãããããå€ãã®èŠå ã販売ã«åœ±é¿ããŸãã ã€ã³ãã¬ãšåæäŸ¡æ Œããå§ãŸãã倩æ°ã§çµããä»ã®ãã¹ãŠã®å
åã¯ãç§ãã¡èªèº«ã§éããŸããã ç§ãã¡ã®åã«ã¯ã20,000ãè¶
ãã補åã®ã«ã¿ãã°ããããŸããã ãããã®ã¿ã€ãã®éãã«ããã1ã€ã ãã§ãªããããã«äžé£ã®ã¢ãã«ãæ§ç¯ããããšã«ãªããŸããã ãããã¯ãããããåãããã«æ¯ãèã販売ã®èŠ³ç¹ãããååã®æŽå²ã«ã€ããŠèšç·ŽããŸãã
æ©æ¢°åŠç¿ç«¶æã§ã¯ãäºæž¬ã®èŠæš¡ã¯éåžžäºåã«æ±ºå®ãããŠããŸãã å®éã®ããžãã¹ãããžã§ã¯ãã§ã¯ãèªåã§éžæããæš©å©ããããŸãã ã©ã¡ããè¯ããïŒå©çãããŒãžã³ããŸãã¯ããããååã®è²©å£²éãäºæž¬ããããšããŠããŸããïŒ å¹æçã«äºæž¬ã§ãããã®ã«åºã¥ããŠãããããã«ããã¯ã©ã€ã¢ã³ãã¯ããå€ãã®ãéã皌ãããšãã§ããŸãã
ããã®X軞ã¯ãé±ããšã®æéã§ãã Yã¯ãå©çïŒéãç·ïŒãšå£²ãäžãïŒãªã¬ã³ãžè²ã®ç·ïŒãå«ãæ£èŠåãããå€ã§ãã
å¥ã®éèŠãªéãããããŸãã çŸå®ã®äžçã¯ã人工ã¢ãã«ã»ã©å®ç§ã§ã¯ãããŸããã 競æã§æ£ç¢ºããå¯äžã®éèŠãªåºæºã§ããå Žåãå®éã®ããžãã¹ãããžã§ã¯ãã§ã¯ãæ£ç¢ºããšåžžèã®åŸ®åŠãªãã©ã³ã¹ãç¶æããããšãéèŠã§ãã
ãããžã§ã¯ããéå§ããã«ã¯ïŒ
ãŸããé©åãªã¡ããªãã¯ãéžæããå¿
èŠããããŸãã ãœãªã¥ãŒã·ã§ã³ã®ç²ŸåºŠãåæ ããã ãã§ãªãããµããžã§ã¯ãé åã®ããžãã¯ã«ãæºæ ããå¿
èŠããããŸãã æããã«ãå©çãæ倧åããããã«è£œåã®ããŒãžã³ãéžæãããšãããŒããŸãã¯æ¥µç«¯ã«å€§ããå€ãéžæããæå³ã¯ãããŸããã ããã¯ãè²·ãæã«ãšã£ãŠãåºã«ãšã£ãŠãäžå©ã§ãã ãã®ãããç¹å®ã®è£œåã®åççãªäŸ¡æ Œå¶éãšå€ãäŸ¡æ Œã«åºã¥ããŠãä¿¡é Œåºéã§è§£æ±ºçãæ¢ãå¿
èŠããããŸãã
çžäºæ€èšŒã«ã€ããŠã¯
å€ãã®ããšã
è¿°ã¹ãããŠããã
å€ãã®ææ³ã
説æã
ããŠããŸãã ç§ãã¡ã®ã¿ã¹ã¯ã¯ãå±¥æŽããŒã¿ãã€ãŸãæéã®çµéãšãšãã«å€åããŸãã ãããã£ãŠããµã³ãã«ãã©ã³ãã ã«åå²ããããšã¯äžå¯èœã§ããéå»ããåŠç¿ããŠãå©çã¬ãã«ã®å°æ¥ã®å€ã®ã¿ãäºæž¬ã§ããŸãã
ãã ãããã¹ãŠã®ããŒã¿ãåãããã«åœ¹ç«ã€ããã§ã¯ãããŸããã ç§ãèšã£ãããã«ãã¢ãã«ãæ§ç¯ãããšããå®éã®ç掻ãèæ
®ããŸãã ç°åžžãªããŒã¿ã¯ãå
šäœåãæªããã¢ãã«ã®æå¹æ§ã«å€§ãã圱é¿ããŸãã ãããã£ãŠã2015幎åŸåãã2016幎åé ã®å±æ©ã®éã«åéãããããŒã¿ã¯èæ
®ã«å
¥ããªãããšã«ããŸããã
ãã€ãã©ã€ã³
ã¡ããªãã¯ãšçžäºæ€èšŒãéžæããåŸãããŒã ã®åªåã¯ã§ããã ãæ©ããšã³ãããŒãšã³ãã®æ§é ãå®è£
ããããšã«å°å¿µããå¿
èŠããããŸãã
ãã€ã¢ã°ã©ã ã®æ§é ã¯äžå®ã§ããããããžã§ã¯ãã®éçºã«äŒŽã£ãŠå€æŽãããã¹ãã§ã¯ãããŸããã æåã¯ãããŒã¿ã¯ã¬ã³ãžã³ã°ãå°ãªããšãæ¬ æå€ãšæŠãããšãå¶éããæ¹ãé©åã§ããã»ãšãã©ã®åé¡åã§ã¯ãããŒã¿ã«NaNå€ãååšããªãããšãéèŠã§ãã æ©èœã®å€æãšæ°ããæ©èœã®è¿œå ã延æããå¿
èŠããããŸãã
ãã®åŸãããšãã°æ±ºå®çãªãã©ã¬ã¹ããªã©ã®ããŒã¹ã©ã€ã³ã¢ãã«ãéžæããå¿
èŠããããŸãã æåã®ã¬ããŒãã«äœ¿çšããŸãã 2ã€ã®è³ªåã«çããŸãïŒã顧客ã¯äœãèŠããã§ããïŒããããã¡ã€ã³ã®å°é家ã«ãšã£ãŠã©ã®ãããªçµæãæ確ã§åœ¹ç«ã€ã§ããããïŒãã ãããã®è³ªåã«å¯Ÿããåçã«åºã¥ããŠãã¬ããŒããšå¿
èŠãªã¹ã±ãžã¥ãŒã«ãäœæããŸãã ãããªãéçºã®éçšã§ããã®ã¹ãããã«æ»ã£ãŠãããäžåºŠçããçããä¿åããé²è¡ç¶æ³ãåæãã䟡å€ããããŸãã
å®éã«ã¯ãããªãé
ããŠã¬ããŒããçæããã·ã¹ãã ãæã«å
¥ããŸããã ãããã£ãŠãã¢ãã«ã®éçºã«ãããŠããžãã£ããªãã€ããã¯ã¹ãæ確ã«èŠãããšã¯éåžžã«å°é£ã§ãã
ãã€ãã©ã€ã³-äžé£ã®å€æãŸãã¯æ©èœã®æ§æãè¡šãæœè±¡å-ã¯ããã®ãããªåé¡ã解決ããããã®ã¢ãŒããã¯ãã£ã®åœ¹å²ã§èšŒæãããŠããŸãã
åæå®è£
ã§ã¯ããã®ãã§ãŒã³ã®åã¹ããŒãžã¯ã
ndarrayã¯ã©ã¹ã®ãªããžã§ã¯ãã
å
¥åãšããŠåãåããã©ã³ã¹ãã©ãŒããŒã§ãïŒnumpyãªããžã§ã¯ãã§ãïŒã
ãã®ãœãªã¥ãŒã·ã§ã³ãæ¹åããããšã«ããŸããã å段éã§ãæ°ããPandasããŒã¿ãã¬ãŒã ãååŸãããã£ãã ãã®å Žåãåé¡åã¯æçµããŒãã«ãããã¬ãŒãã³ã°ã«å¿
èŠãªãã¹ãŠã®ãµã€ã³ãåãåãããã¹ãŠã®èª¬æããŒã¯ãæå
ã«ãããããèŠèŠåãç°¡çŽ åãããŸãã
sklearn-pandasã
luigiãªã©ã®ã©ã€ãã©ãªãæåŠããŸããã å®éãç§ãã¡ã¯èªåã®èªè»¢è»ãæžããŸããã ããã¯ãç§ãã¡ãèªåå°çšã«äœæããå°ãããŠéåžžã«çã®ãã«ããŒã§ãã è¿ãå°æ¥ãç§ãã¡ã¯ã³ãŒã ããŸãããããªãã¯
ä»ããã䜿çšããããšãã§ããŸãã äžèšã®æ©èœãèæ
®ããŠãéæã§å®¹éã®ããã€ã³ã¿ãŒãã§ã€ã¹ãäœæããããšããŸããã
ãã€ãã©ã€ã³ããã®ããã€ãã®ãµã³ãã«ã¹ãããã次ã«ç€ºããŸãã
éå±äŸ¡æ Œã«å ããŠã1ãæãš2ãæã®é
ãã®ããäŸ¡æ Œãè¿œå ããŸãã
('add_metal', DFFeatureUnion([ ('metal', DFPipeline([ ('load_metal', MetalAppender()), ('metal_lag', Lagger([4, 8])) ])) ]))
ãããŠããäžã€ïŒ
('lags', Lagger(columns_strategies={ 'Z': { 'lags': [1, 2], 'groupby': 'name' }, 'X': { 'lags': [1], 'groupby': 'name' }, 'Y': { 'lags': [1], 'groupby': 'name' }, 'markup': { 'lags': [1], 'groupby': 'name' } }))
ããã§ã®ããžãã¯ã¯ã
shiftã¹ããŒãã¡ã³ãã䜿çšããŠåãPandasããã¯ã¹ã®å€ã«ç§»åãããããå°ãè€éã§ãã è¡šå
šäœã§ã¯ãªããç¹å®ã®è£œåã«å¯ŸããŠã®ã¿åèšå·ãã·ãããããããšãèæ
®ããå¿
èŠããããŸãã ãã®åé¡ã解決ããããã«ã
Laggerã¯ã©ã¹ãäœæãããŸããã
éçºã¢ãã«
ãããžã§ã¯ãã®ãããªãéçºã¯ãã¹ãã€ã©ã«éçºã¢ãã«ã«åŸããŸãã æ°ããã¢ã€ãã¢ãããå ŽåïŒæ°ããæ©èœãæ¥ç¶ããããæ¢åã®æ©èœãåŠçããå¥ã®æ¹æ³-ãã§ãã¯ããŠãã ããã ãã«ãã€ã³ã¢ãŒããã¯ãã£ã§ã¯ã仮説ã®ãã¹ãã¯æ¬¡ã®ããã«ãªããŸãã
- ããŒã¿åŠçãã€ãã©ã€ã³ãå€æŽããå¿
èŠãªå€æŽãå ããŸãã
- æšå®åšãåèšç·Žããæé©ãªãã€ããŒãã©ã¡ãŒã¿ãŒãéžæããŸãã
- çµæã®åé¡åã®æ°ããã¹ã³ã¢ãèšç®ããŸãã
- çµæãèŠèŠåããã¬ããŒããçæããæ¯èŒããçµè«ãå°ãåºããŸãã
3çªç®ã®ç¹ã«é¢ããå°ããªèª¬æã ã¡ããªãã¯ã®çµ¶å¯Ÿå€ã§ã¯ãªãããã®å€åã®ã¿ã«æ³šæãã䟡å€ããããŸãã ããã ãã§ãªãããµã³ãã«ã®èŠæš¡ã§ãã¹ãŠãã©ã³ãã åå·®ã®æ çµã¿ã«åãŸãå Žåããã®éããä¿¡é Œããããšã¯ã§ããŸããã
ãããžã§ã¯ããæŽçããããã®è¯ãã¬ã€ãã©ã€ã³ããããŸãã ããšãã°ã
ãããš
thisã«æ
£ããããšãã§ããŸãã
ãããžã§ã¯ããã©ã«ããéããšã次ã®ããã«ãªããŸãã
project/ âââ data/ <- âââ cache/ <- pickle- âââ notebooks/ <- âââ scripts/ <- *.py- âââ logs/ <- âââ out/ <- , : ââ reports/ <- , xls- ââ plots/ <- , plotly âââ requirements <- âââ README.md
äºãã«å¹²æžããããšãªãäœæ¥ããããã«ãããŒã ã¡ã³ããŒéã§ã¿ã¹ã¯ãå
±æããæ¹æ³ ãã®ã¹ããŒã ã«å°éããŸããïŒäœæ¥ãã£ã¬ã¯ããªã«ã¯ãJupyterããŒãããã¯ãPythonã¹ã¯ãªãããããã³ããŒã¿èªäœã®ã»ããïŒãã£ãã·ã¥ãã¬ããŒããã°ã©ãïŒããããŸãã ãããããå¥ã
ã®ããŒãããã¯ã§åäœããŸãã ããŒãããã¯ã«ååãªã³ã¡ã³ããä»ããå¿
èŠãããããã®äžã®ãã¹ãŠã®èšç®ãåçŸå¯èœã§ãããšèšãå¿
èŠã¯ãªããšæããŸãã
ãã®ãããªããŒãããã¯ã¯ããã€å¿
èŠã§ãã©ããããã®å€§ãããå¿
èŠã§ããïŒ ç§ãã¡ã®çµéšãã-å®éšããšã«å¥ã
ã®ããŒãããã¯ã äŸïŒãäºæž¬ã®ããã®ä¿¡é Œåºéã®å¿
èŠæ§ã®æ€èšŒãã ããã«ã¯ãå¿
èŠãªããžãã¯ã³ãŒããšèŠèŠåã®äž¡æ¹ãå«ãŸããŸãã ç¹°ãè¿ããŸããã
ä»ã®äººãäœ
ãã¢ããã€ã¹ããŠããããèŠãã®ã¯è¯ãããšã§ãã
å®éšãå®äºãã仮説ãæ€èšŒããããšããã«ãå¿
èŠãªãã¹ãŠã®æ©èœããã¹ããããPythonã¹ã¯ãªããã«éä¿¡ãããŸãã ãã¡ãããå®éšãå ±ããããªãã
èŠèŠåãã
åé¡åšã®å
¥åã«ããŒã¿ãéä¿¡ããŠçµæãè©äŸ¡ããåã«ãäœãæ±ã£ãŠããããç解ããå¿
èŠããããŸãã äœæ¥ã«åœ¹ç«ã£ãããŒã«ã¯æ¬¡ã®ãšããã§ãã
â¢
MissingNoã©ã€ãã©ãªã䜿çšããŠã
æ¬ æå€ã
èŠèŠåããŸãã ã
â¢
ç¹åŸŽã®ååžã®æ§è³ªã
è©äŸ¡ããããã«
ããã¹ãã°ã©ã ã䜿çšããŸããïŒãã€ãªãªã³ããããïŒããšãã°ãã·ãŒããŒã³ã©ã€ãã©ãªã«ãã£ãŠæäŸãããŸãïŒãããã¯ã¹ããããã ãªããããå¿
èŠãªã®ã§ããïŒ
- ååžã®æ§è³ªãããæ¬ æå€ã®åŠçæ¹æ³ãããããŸããé¢åããããå€ã®å Žåã¯ãã¢ãŒãã®å
¥åãéåžžã«é©åã§ãããæ£èŠååžã®å Žåã¯æåŸ
å€ã䜿çšããå¿
èŠããããŸãã
- åŸæããŒã¿dataã¯ãããã«å¿ããŠåŠçããå¿
èŠããããŸãã ããšãã°ã察æ°ã䜿çšããããN次ã®æ ¹ãèŠã€ããããããšãç¹æ§ã®ååžãããæ£åžžã«ãªããŸãã ããã¯éåžžã粟床ãé«ããã®ã«åœ¹ç«ã¡ãŸãã
â¢
圢質ã®éèŠæ§ã
è©äŸ¡ããããã« ãå åããããã䜿çšãããŸããã
â¢çžé¢è¡åãšæ£åžå³è¡åã䜿çšããŠ
ãæåã®
ãã¢ã¯ã€ãºçžé¢ã
è©äŸ¡ããŸãã ã ç®æšã¯ãçžé¢æ§ã®é«ããã£ã©ã¯ã¿ãŒãèŠã€ããŠãé¡äŒŒãããã£ã©ã¯ã¿ãŒãåé€ããããšã§ãã ãããã¯åé¡åšã«ãšã£ãŠæãããªææãªå©ç¹ãããããããäºæž¬ã®åæ£ãå¢å ãããã ãã§ãã
ã€ã³ãã¬ã®åœ±é¿ããã¹ãããæ¹æ³ã¯æ¬¡ã®ãšããã§ãã éè²ã®ã°ã©ãã¯ãååã®å°å£²äŸ¡æ Œã®ã¬ãã«ã®çµæçãªå€åã瀺ããŠããŸãã ãã ããã€ã³ãã¬ïŒãªã¬ã³ãžã®ç¹ïŒãå·®ãåŒãã ãã§ãå°å£²äŸ¡æ Œãç¹å®ã®ã¬ãã«ã§å€åããããšãæããã«ãªããŸãïŒ2014幎1æã®äŸ¡æ Œãã€ãŸã0é±éã§ãã¹ãŠãèæ
®ãããšïŒã ãã®ãããå€éšã®çµæžçèŠå ã®åœ±é¿ãæ£ããèæ
®ããŸããã
Googleã§ã¯ã©ãŠãã«ç§»è¡
ãã®ãããããŒã¿ã®ããŒããšåŠçããæçµçãªäºæž¬ã®åœ¢æãŸã§ãå¿
èŠãªãã¹ãŠãå®è¡ãããã€ãã©ã€ã³ãæ§ç¯ããŸããã ããã§ãã¢ãã«ãããæ£ç¢ºã«ããæ¹æ³ã«ã€ããŠèããå¿
èŠããããŸãã
ãã®ããã«æ¬¡ã®ããšãã§ããŸãã
- æé«ã®å
åãéžæããŠãã ããã
- æ°ãããã®ãè¿œå ããŸãã
- æé©ãªã¢ãã«ãã€ããŒãã©ã¡ãŒã¿ãŒãæ¢ããŸãã
å®æãããã€ãã©ã€ã³ãå€æŽããå Žåãããšãã°MinMaxScalerãStandardScalerã«å€æŽããå Žåã¯ãããŒã¿ãåŠçããã¢ãã«ãã©ã¡ãŒã¿ãŒãå床調æŽããå¿
èŠããããŸãã 倧éã®ããŒã¿ãããå Žåã§ããå°ãã§ãããå Žåã§ããèªå®
ãè·å Žã®ã³ã³ãã¥ãŒã¿ãŒã§å€æ°ã®ã°ãªããæ€çŽ¢ãµã€ã¯ã«ãå®è¡ããŠãæé©ãªãã€ããŒãã©ã¡ãŒã¿ãŒãèŠã€ããã®ã¯ãæ£è
ã®å€ãã§ãã ããã¯éåžžã«é·ãæéã§ãã ãšãŠãã
ç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ã¯ããã«æçããŸãããGoogleCloudã«ç§»è¡ããŠã
ãŸã ã ãã ãã
DataLabãæŸæ£ããå¿
èŠããããŸãã
ãPythonããŒãžã§ã³2.7ã®ã¿ããµããŒããããŠããŸãã ã¿ã¹ã¯ã®äžéšãšããŠããªããã€ã³ãã©ã¹ãã©ã¯ãã£ã¯å¿
èŠãªããéåžžã«åŒ·åãªä»®æ³ãã·ã³ãå¿
èŠã§ãã
ãJupyterHubãèªåã§å±éã§ããŸãã
è€æ°ã®ãã£ã¬ã¯ããªããªã¢ãŒããã·ã³äžã«äœæãããŸããïŒããŒã ã¡ã³ããŒããšã«å
±æãããå¥ã
ã«ãªã£ãŠããŸãã ããã«ãããå
šå¡ãå
±éã®ç°å¢ã§äœæ¥ã§ããã ãã§ãªããå¿
èŠã«å¿ããŠãç¬èªã®gitãããŒãå¥ã®ã»ã¯ã·ã§ã³ã«æŽçããããšãã§ããŸããã ã»ãã¥ãªãã£ã®ããã«ãå
šå¡ãhttpsã®ã¿ã䜿çšããssh蚌ææžãäœæããŸããã
ãããããïŒä»®æ³ãã·ã³ãèµ·åããããã®Googleã¹ã¯ãªããã¯Python 3.5ã§æžãããŠãããPython 3.6ãšåéã«ãªããããããŸããã§ããã 幞ããªããšã«ããã¹ãŠã解決ãããŸããã
ã²ãŒã ã¯ããããã®äŸ¡å€ããããŸãããïŒ ãã¡ããïŒ ãã€ãã©ã€ã³ã®ãã¹ãŠã®ãã€ããŒãã©ã¡ãŒã¿ãŒã䞊ã¹æ¿ããã®ã«ãç°¡åã«åäœããã³ã³ãã¥ãŒã¿ãŒãæ°æ¥ããããŸããã Googleã¯ã©ãŠãã§ã¯ãã¹ãŠãé«éã«ãªã£ãŠããŸãã ããªãã¯ä»äºãã家ãåºãŠããŸããïŒ æã«æ¥ãŠããã¹ãŠãæºåãã§ããŠããŸãã
çµæã¯äœã§ããïŒ
ã¯ã©ã€ã¢ã³ãã®ERPã·ã¹ãã ïŒ1CãSAPãOracleãªã©ïŒããããªã³ããã³ãã§ãéå»ã®è²©å£²ããŒã¿ãããŠã³ããŒãã§ããŸãã äºæž¬ãçæããå¿
èŠããã補åã°ã«ãŒãã¯åå¥ã«ç€ºãããŸãã ãªãŒãã³ãœãŒã¹ããåéããè¿œå ããŒã¿ãè¿œå ããŸãã
ã¢ãã«ã®æé©ãªãã©ã¡ãŒã¿ãŒãæ€åºãããŠãã£ãã·ã¥ããããããæ®ãã¯ã»ãšãã©ãããŸãããã¢ãã«ããã¬ãŒãã³ã°ãããã®å©ããåããŠæ°ããã¬ããŒããçæããŸãã ã¯ã©ã€ã¢ã³ãã®ã¬ããŒãã¯ãå©çšå¯èœãªããŒã¿ãšäºæž¬ã«é¢ããéèšçµ±èšãåéããŸããäŒç€Ÿããšã補åã«ããŽãªããšãåã
ã®è£œåããšã§ãã
ã¯ã©ã€ã¢ã³ãã¯ãåãåã£ãäºæž¬ã«åºã¥ããŠäŸ¡æ Œèšå®ããªã·ãŒã調æŽã§ããŸãã
ããŒãã³ã¢A / Bãã¹ã
ã¹ããŒãã«ãŒãã¹ã€ã«ã®åçãèªèããŠé¢çœãè©©ãæžãããšãã§ããã ãã§ã¯ãªãããšãããžãã¹ã«ç€ºãã«ã¯ãçµæãå¿
èŠã§ãã æ¥çã§ã¯åºãç¥ãããŠããçµæã¯ãããŸãããã誰ãããã®ãããªãœãªã¥ãŒã·ã§ã³ãèŠãããšã«éåžžã«äžå®ãæããã§ãããã
ç§ãã¡ã¯ã¯ã©ã€ã¢ã³ãã«ãšãŠã幞éã§ããã 圌ãã¯åœŒãã®ããã«æ°ããæè¡ãä¿¡ããŠãããéèŠãªãã£ã³ã¹ãäžããŠãããŸãã-ããŒãã³ã¢ãªA / Bãã¹ããå®æœããããã«ã ç§ãã¡ã®ã³ãŒãã¯ãå°åå
šäœã®ãããã¯ãŒã¯å
ã®ãã¹ãŠã®ååã®äŸ¡æ Œã«é¢ããæšå¥šäºé
ã®åœ¢æãå§ããããŸããã åèšããŒã¿ã¯ãæ§åŒã®æ¹æ³ã§äŸ¡æ Œã圢æãããå°åã®ããŒã¿ã«å¹æµããŸãã ãã¹ãŠãããŸãããã°ãäžçããããã«å€ããæ¥çãšæ©æ¢°åŠç¿ã®ããžãã¹ãžã®æµžéã«ããããªè²¢ç®ãããããšãèªãã«æããŸãã ç§ãã¡ã®ããã«ããªãã®æãã¯ãã¹ããŸããïŒ
æåŸã«
å€ãã®å Žåãã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ãæé©ã§ãããæé©ãªã³ãŒãã¯ã¯ãªãŒã³ã§ããããšãå¿ããªãã§ãã ããã
1æ¥2åæ¯ã磚ããŸãã
McConellãèªã¿çŽããŠãã ããã
CrossFitãšã¹ããŒããããã£ã³ã°ã¯æéã®äŸ¡å€ããããŸããã
家æãšãã£ãšæéãéãããŸãããã
幞éã幞çŠãå¥åº·ïŒ