scikit-learnï¼ãµã¤ãããã»ã©ã¼ã³ï¼ã¯æ©æ¢°å¦ç¿ãè¡ãããã®ããã°ã©ã ãç°¡åã«å®è£ ã§ããã©ã¤ãã©ãªã§ãããã®è¨äºã§ã¯ãscikit-learnã®ç¹å¾´ãä½¿ãæ¹ãæ³¨æç¹ãªã©ãç´¹ä»ãã¾ããæ©æ¢°å¦ç¿ã«ã¤ãã¦ã®æ¦è¦ã解説ãã¦ããã®ã§ãèå³ãããæ¹ã¯ãã²åèã«ãã¦ãã ããã
ï¼¼æåããåç»ã§å¦ã³ããããªãã¸ï¼
Udemyã§è¬åº§ãæ¢ã ï¼INDEX
scikit-learnã¯Pythonç¨ã®æ©æ¢°å¦ç¿ã©ã¤ãã©ãª
scikit-learnï¼ãµã¤ãããã»ã©ã¼ã³ï¼ã¨ã¯ãPythonã§ä½¿ããæ©æ¢°å¦ç¿ç¨ã®ã©ã¤ãã©ãªã§ãããªã¼ãã³ã½ã¼ã¹ã§æä¾ããã¦ãã¦ãå人å©ç¨ã»åç¨å©ç¨ãåããã誰ã§ãç¡æã§ä½¿ãããããæ°è»½ã«ä½¿ãå§ãããã¾ãã
æ§ã ãªãã¼ã¿ãè§£æãããçµ±è¨çæ©æ¢°å¦ç¿ããPythonã§ããã°ã©ãã³ã°ããæ¹æ³ã¨ãã¦ãscikit-learnã¯äººæ°ãå¾ã¦ãã¾ãã2007å¹´ã®ãGoogle Summer of Code projectï¼Googleãå¦çåãã«è¡ã£ã¦ããããã¸ã§ã¯ã課é¡ã¤ãã³ãï¼ãã§David Cournapeauï¼ãã¤ãããã»ã¯ã¼ã«ããã¼ï¼æ°ã«ãã£ã¦éçºããã¦ä»¥æ¥ãä¸çä¸ã®ã¦ã¼ã¶ã¼ã注ç®ããæ©æ¢°å¦ç¿ã©ã¤ãã©ãªã§ãã
ï¼¼æåããåç»ã§å¦ã³ããããªãã¸ï¼
Udemyã§è¬åº§ãæ¢ã ï¼ããããæ©æ¢°å¦ç¿ã¨ã¯ï¼
æ©æ¢°å¦ç¿ã¨ã¯ãã³ã³ãã¥ã¼ã¿ã«ãã¼ã¿ãå¦ç¿ãããåæãäºæ¸¬ãè¡ãã¢ãã«ãä½ãããã®æè¡ã§ããå¦ç¿ãããã¼ã¿ã®æç¡ãªã©ã«ãã£ã¦ã次ã®3ã¤ã«åé¡ããã¾ãã
æå¸«ããå¦ç¿
å ¥åãã¼ã¿ã¨ãæ£è§£ã¨ãªãæå¸«ãã¼ã¿ãç¨æããæ©æ¢°å¦ç¿ã¢ãã«ã使ããææ³ã§ããæå¸«ããå¦ç¿ã®ä¾ã¨ãã¦ãå帰ãããåé¡ããªã©ã®æ©æ¢°å¦ç¿ãæãããã¾ãã
æå¸«ãªãå¦ç¿
æ£è§£ã¨ãªããã¼ã¿ããªãç¶æ ã§æ©æ¢°å¦ç¿ã¢ãã«ã使ããææ³ã§ããå ¥åãããã¼ã¿èªä½ã®ä¸ããæ³åæ§ãé¡ä¼¼æ§ãè¦ã¤ãåºããæ©æ¢°å¦ç¿ãè¡ãã¾ãããã¯ã©ã¹ã¿ãªã³ã°ãããæ¬¡å 忏ããã主æååæããããã¥ã¼ã©ã«ãããã¯ã¼ã¯ã¢ãã«ããªã©ãæå¸«ãªãå¦ç¿ã®ä¾ã§ãã
å¼·åå¦ç¿
éçãªå¦ç¿ãã¼ã¿ãç¨æãããæ©æ¢°èªä½ãè¡åããçµæããã¨ã«å¦ç¿ãè¡ãææ³ã§ããäºãå ±é ¬æ¡ä»¶ãè¨å®ããå ±é ¬ãæå¤§ã«ãªããããªå½¢ã§æ©æ¢°å¦ç¿ãè¡ããã¾ãããã£ã¼ãã©ã¼ãã³ã°ã¨å¼ã°ããææ³ã¨ã®çµã¿åãããæ³¨ç®ããã¦ãããã¨ãå¼·åå¦ç¿ã®ç¹å¾´ã§ãã
ãããã®å ´åããæ©æ¢°å¦ç¿ã®å¤§ã¾ããªæµãã¯åæ§ã§ãã
ã¾ãããã¼ã¿ãå¦ç¿ããæ®µéã§ã¯ãæºåã¨ãã¦ãã¼ã¿åéãåå¦çãè¡ãã¾ãã
ç¨æãããã¼ã¿ã»ãããå¦ç¿ãããã¨ã§ç¹å¾´ãæ½åºããæ©æ¢°å¦ç¿ã¢ãã«ã使ãããã¨ãå¯è½ã§ãã使ããã¢ãã«ãæ£ããæ©è½ãããã¯ããã¹ããã¼ã¿ã«ãã£ã¦è©ä¾¡ã§ãã¾ãããã¹ããã¼ã¿ãå
¥åããæå¾
ãããçµæãåºåãããã°ãæ©æ¢°å¦ç¿ã¢ãã«ã®äºæ¸¬ãªã©ã«æ´»ç¨ã§ãã¾ãã
scikit-learnã§å¤æ°ã®ã¢ã«ã´ãªãºã ã®ä½¿ç¨ãå¯è½ï¼
ä¸å£ã«æ©æ¢°å¦ç¿ã¨è¨ã£ã¦ããã¢ãã«ã使ããã¾ã§ã®ã¢ã«ã´ãªãºã ã¯æ§ã ã§ããã¢ã«ã´ãªãºã ã¨ã¯ãè¨ç®æ¹æ³ãå¦çæé ãæãã¾ãã

scikit-learnã«ã¯ãæ©æ¢°å¦ç¿ããã®ã¢ã«ã´ãªãºã ãè±å¯ã«åãã£ã¦ãã¾ãã主ãªã¢ã«ã´ãªãºã ã¯æ¬¡ã®éãã§ãã
- ç·å½¢ã¢ãã«
- ãµãã¼ããã¯ã¿ã¼ãã·ã³
- æ±ºå®æ¨
- ãã¥ã¼ã©ã«ãããã¯ã¼ã¯
ãããã®ã¢ã«ã´ãªãºã ã«ããããã¼ã¿ã»ããã®å¦ç¿çµæããæ°ããªå ¥åã«å¯¾ããæ°å¤ãäºæ¸¬ãããå帰ãããã©ãã«ãäºæ¸¬ãããåé¡ããªã©ã®ä»çµã¿ãå®ç¾ã§ãã¾ãããã ããäºæ¸¬ã®ç²¾åº¦ãé«ããã«ã¯ãååãªéã®æå¸«ãã¼ã¿ããã¹ããå¿ è¦ã§ãã
scikit-learnã®ç¹å¾´
scikit-learnã«ã¯ãåå¿è ããä¸ç´è ã¾ã§ä¾¿å©ã«æ©æ¢°å¦ç¿ãå©ç¨ã§ããããã¤ãã®ç¹å¾´ãããã¾ãã主ãªç¹å¾´ã¯æ¬¡ã®éãã§ãã
使ç¨ã§ããã¢ã«ã´ãªãºã ã®æ°ãå¤ã
scikit-learnã«ã¯å帰ãåé¡ã®ã»ããã¯ã©ã¹ã¿ãªã³ã°ã次å 忏ãã¢ãã«ã®è©ä¾¡ã¨é¸æãªã©ãå¹ åºãåéã®ã¢ã«ã´ãªãºã ãåãã£ã¦ãã¾ããã¾ããåå¦çã®ããã®ãã¼ã¿å¤å½¢ãscikit-learnã®æ©è½ã§è¡ããã¨ãå¯è½ã§ããåãåéã®ã¢ã«ã´ãªãºã ã¯ã³ã¼ãã®å ±éç¹ãå¤ããå®è£ ãããããªã£ã¦ãã¾ãã
ãã¼ãã·ã¼ãã§é©åãªææ³ãæ¡å ããã
ã©ã®ã¢ã«ã´ãªãºã ã使ãã°è¯ããããã¼ãã·ã¼ãï¼æ©è¦è¡¨ï¼ã§ç°¡åã«åãããã¨ããscikit-learnã®ç¹å¾´ã§ãã対象ã¨ãªããã¼ã¿ã®ç¹å¾´ã«ã¤ãã¦ããµã³ãã«æ°ã50ä»¶æªæºããããããã¹ãå½¢å¼ã®ãã¼ã¿ãããªã©ã®äºæã«çãã¦ããã¨ããã¼ã¿ã«é©ããã¢ã«ã´ãªãºã ãåããã¾ãã
å ¬å¼ãµã¤ãã®è§£èª¬ãåããããã
scikit-learnã®å ¬å¼ãµã¤ãã§ã¯ãscikit-learnã®æ¦è¦ãã¢ã«ã´ãªãºã ã®ä»çµã¿ãªã©ãåããããã解説ããã¦ãã¾ãã弿°ã®è§£èª¬ãå®è£ ä¾ãªã©ãè±å¯ãªãããåå¿è ã§ãã¹ã ã¼ãºã«çè§£ã§ãã¾ãã
ãµã³ãã«ã®ãã¼ã¿ã»ãããç¨æããã¦ãã
æ©æ¢°å¦ç¿ã®ã»ã¨ãã©ã®ã¢ã«ã´ãªãºã ã§ã¯ãå¦ç¿ããããã®ãã¼ã¿ã»ãããå¿ è¦ã§ãããã®ç¹ãscikit-learnã«ã¯ã使ããããããã«æ´å½¢ããããµã³ãã«ã®ãã¼ã¿ã»ãããç¨æããã¦ãããããããã«å®è£ ãå¯è½ã§ãã
scikit-learnã®ä½¿ãæ¹
ããã§ã¯ãscikit-learnã§æ©æ¢°å¦ç¿ãå®è£ ããæ¹æ³ã解説ãã¾ããscikit-learnã®ä½¿ãæ¹ã¯æ¬¡ã®éãã§ãã
scikit-learnã®ã¤ã³ã¹ãã¼ã«
scikit-learnã®ã¤ã³ã¹ãã¼ã«æ¹æ³ã¯ãPythonã®éçºç°å¢ã§ãããAnacondaãã®æç¡ã«ãã£ã¦ç°ãªãã¾ããAnacondaããã§ã«ããå ´åã¯ãscikit-learnãæåããå«ã¾ãã¦ãã¾ãã
䏿¹ãAnacondaã使ããªãå ´åã¯ãããã±ã¼ã¸ããã¼ã¸ã£ã¼ã®pipã³ãã³ãã«ããæä½ãå¿ è¦ã§ããã¾ããPythonã®å ¬å¼ãµã¤ãã«ã¢ã¯ã»ã¹ããPythonãã¤ã³ã¹ãã¼ã«ãã¾ãããããã®å¾ãMac OSã§ã¯ãã¿ã¼ããã«ããWindowsã§ã¯ãPowerShellããªã©ããã以ä¸ã®ã³ãã³ããå®è¡ãããã¨ã§scikit-learnãã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
|
1 |
pip install scikit-learn |
èªèº«ã®éçºç°å¢ã確èªãã¦ãscikit-learnã®ã¤ã³ã¹ãã¼ã«æ¹æ³ãé¸ã³ã¾ãããã
ã©ã¤ãã©ãªã®ã¤ã³ãã¼ã
scikit-learnã®æ©è½ãããã°ã©ã ã§ä½¿ãå ´åãã©ã¤ãã©ãªã®ã¤ã³ãã¼ããå¿ è¦ã§ããä¾ãã°ã以ä¸ã®ã³ã¼ããå®è¡ããã¨ããµãã¼ããã¯ã¿ã¼ãã·ã³ï¼æå¸«ããå¦ç¿ã®ãã¿ã¼ã³ã®1ã¤ï¼ã®ã©ã¤ãã©ãªã¨ã精度ãåºåããããã®ã©ã¤ãã©ãªãã¤ã³ãã¼ãã§ãã¾ãã
|
1 2 |
from sklearn import svm from sklearn.metrics import accuracy_score |
ãã¼ã¿ã®ç¨æ
ã©ã¤ãã©ãªã®ã¤ã³ãã¼ãå¾ãæ©æ¢°å¦ç¿ã®å®è£ ã«ç¨ãããã¼ã¿ã»ãããç¨æãã¾ããããè¨ç·´ãã¼ã¿ã¨ã©ãã«ããã¹ããã¼ã¿ãåãã¦è¨è¿°ããå ´åã®ã³ã¼ãä¾ã¯æ¬¡ã®éãã§ãã
|
1 2 3 |
training_data = [[0,0], [0,1], [1,1]] training_label = [0, 0, 1] test_data = [[0,0], [0,1], [1,1]] |
ãã®ã³ã¼ãã§ã¯ã2ã¤ã®ãã©ã¡ã¼ã¿ãæã¤ãã¼ã¿ã3ã¤å«ãè¨ç·´ãã¼ã¿ã¨ãããããã«å¯¾ããã©ãã«ãç¨æãã¦ãã¾ãããã¹ããã¼ã¿ã¯çµæãåãããããããã«ãè¨ç·´ãã¼ã¿ã¨å
¨ãåãå
容ã§ãã
ä¸è¨ã¯ããã¾ã§ãä¸ä¾ã®ããããã¼ã¿ã®å
容ã¯å¿
è¦ã«å¿ãã¦å¤æ´ãã¦ã大ä¸å¤«ã§ããã¾ããå
ã«ãã¼ã¿ãã¤ã³ãã¼ããã¦ãå¾ããè¨ç·´ãã¼ã¿ã¨ãã¹ããã¼ã¿ã«åããã¨ããæ¹æ³ãããã¾ãã
ã¢ã«ã´ãªãºã ã®æå®ã¨å¦ç¿å®è¡
次ã«ããã¼ã¿ã®ç¨®é¡ã«å¿ãã¦ãã¼ãã·ã¼ãããé©åãªã¢ã«ã´ãªãºã ã鏿ãã¾ããããããã¦ã以ä¸ã®ãããªã³ã¼ãã§ã¢ã«ã´ãªãºã ã®æå®ãè¡ã£ã¦ãã ããã
|
1 |
clf = svm.SVC(C = 5, gamma = 0.2) |
ä¸è¨ã¯ããµãã¼ããã¯ã¿ã¼ãã·ã³ã®ã¢ã«ã´ãªãºã ãå©ç¨ããå ´åã®ã³ã¼ãä¾ã§ãããCãããgammaããªã©ã®å¤ã¯ãã¢ã«ã´ãªãºã ã®ã³ã¹ãã精度ã表ãã¾ããã¢ã«ã´ãªãºã ã§æå®ã§ãããã©ã¡ã¼ã¿ã®æå³ããä»ã®ã¢ã«ã´ãªãºã ã®æå®æ¹æ³ãªã©ã«ã¤ãã¦ã¯ãå ¬å¼ãµã¤ãããåç §ãã ããã
æå®ããã¢ã«ã´ãªãºã ã§ãè¨ç·´ãã¼ã¿ã¨ã©ãã«ãå¦ç¿ããã³ã¼ãä¾ã¯æ¬¡ã®éãã§ãã
|
1 |
clf.fit(training_data,training_label) |
ãã®ã³ã¼ããå®è¡ããã¨ãå ã»ã©ç¨æããè¨ç·´ãã¼ã¿ã¨ã©ãã«ãå¦ç¿ããã¾ãã
ãã¹ããã¼ã¿ã§ãã¹ã
å¦ç¿ãå®äºãããããã¹ããã¼ã¿ã§æ£ããäºæ¸¬ãè¡ããã¦ãããããã§ãã¯ãã¾ãããã
|
1 |
check_label = clf.predict(test_data) |
ä¸è¨ã®ã³ã¼ãä¾ã®ããã«ããã¹ãçµæãåºåããããã®å¤æ°ãç¨æããã.predictã颿°ãå®è¡ãããã¨ã§ãã§ãã¯ãå¯è½ã§ããä»åã¯ãè¨ç·´ãã¼ã¿ã¨ãã¹ããã¼ã¿ãåãå 容ã®ãããã©ãã«ãåããã®ãåºåããã¦ããã°ãå¦ç¿ãæ£ããè¡ããã¦ããã¨å¤æã§ãã¾ãã
scikit-learnã使ãä¸ã§ã®ã³ãã»æ³¨æç¹
scikit-learnã使ã£ã¦æ©æ¢°å¦ç¿ãå®è£ ããéã¯ã次ã®ãããªãã¤ã³ãã«æ³¨æãå¿ è¦ã§ãã
ããã¤ãã®ææ³ã使ã£ã¦ã¿ã¦æé©ãªãã®ã鏿ãã
ãã¼ãã·ã¼ãã§é¸æããææ³ä»¥å¤ã«ããããã¤ãã®ç¨®é¡ã試ãã¦ã¢ãã«ã®ç²¾åº¦ãè©ä¾¡ãã¦ã¿ã¾ããããã¢ãã«ã®ç²¾åº¦ãè©ä¾¡ããææ¨ã«ã¯ã次ã®ãããªãã®ãããã¾ãã
ã»æ£è§£ç
ã»é©åç
ã»åç¾ç
ã»Få¤ï¼é©åçã¨åç¾çã調åå¹³åããæ°å¤ï¼
ã¢ã«ã´ãªãºã ã®ç¨®é¡ã«å¿ãã¦ãé©åãªææ¨ãç¨ãã¦ç²¾åº¦ãè©ä¾¡ãããã¨ã大åã§ãã
ã¢ã«ã´ãªãºã ã«ãã£ã¦ã¯ãã¼ã¿ã®åå¦çãå¿ è¦
ã¢ã«ã´ãªãºã ã«ãã£ã¦ã¯ããã¼ã¿ã®åå¦çãå¿ è¦ã§ããä¾ãã°ããã¼ã¿å ã«æ¬ æå¤ï¼å ¨ã¦ãããã¯ä¸é¨ã®ç¹å¾´ã®å¤ãç¡ããã¨ï¼ãããå ´åã¯ããã¼ã¿ã»ãããè£å®ããä¸ã§å¦ç¿ãè¡ãã¾ãã

ã¾ããä»ã®ãã¼ã¿ã¨æ¯ã¹ã¦ç°å¸¸ãªå¤ã示ããå¤ãå¤ãã®é¤å»ããæé©ãªç¹å¾´éã®é¸æãæ£è¦åãªã©ã®å¦çãè¡ã£ã¦ãããã¨ãéè¦ã§ããæ©æ¢°å¦ç¿ã®ææ³ããã¼ã¿ã®å 容ã«å¿ãã¦ãé©åãªåå¦çãè¡ãã¾ãããã
颿°ãè¤æ°åå¼ã³åºããå ´åãã¼ã¿ã䏿¸ãããã
scikit-learnã§æ©æ¢°å¦ç¿ãè¡ãããã®ãfit颿°ããè¤æ°åå¼ã³åºãã¨ãããã¾ã§ã«å¦ç¿ãã¦ãããã¼ã¿ã»ããã¯ä¸æ¸ãããã¾ãããã®ãããåãããã°ã©ã å ã§è¤æ°åfit颿°ãå¼ã³åºãå ´åãè¨ç·´ãã¼ã¿ããªã»ããããããã¨ãçæãã¾ãããã
Pythonã®ã©ã¤ãã©ãªã§ããscikit-learnã使ãã¨ãæ§ã ãªã¢ã«ã´ãªãºã ãç¨ããæ©æ¢°å¦ç¿ãç°¡åã«å®è£ ãããã¨ãå¯è½ã§ããåé¡ãå帰ãã¯ã©ã¹ã¿ãªã³ã°ãªã©ã®ä»çµã¿ãããã°ã©ãã³ã°ã«åãå ¥ãããæ¹ã¯ããã²scikit-learnãæ´»ç¨ãã¾ãããã










ææ°æ å ±ã»ãã£ã³ãã¼ã³æ å ±çºä¿¡ä¸