ΠŸΠ΅Ρ€Π΅Ρ‚ΡΠΆΠΊΠ°, ΠŸΡ€Π΅ΠΌΠΈΡ Π’ΠŸΡ€ΠΎΠ³Π΅Ρ€, 13.11
ΠŸΠ΅Ρ€Π΅Ρ‚ΡΠΆΠΊΠ°, ΠŸΡ€Π΅ΠΌΠΈΡ Π’ΠŸΡ€ΠΎΠ³Π΅Ρ€, 13.11
ΠŸΠ΅Ρ€Π΅Ρ‚ΡΠΆΠΊΠ°, ΠŸΡ€Π΅ΠΌΠΈΡ Π’ΠŸΡ€ΠΎΠ³Π΅Ρ€, 13.11

ΠžΠ±Π·ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классификации Π² машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Scikit-Learn

ОблоТка: ΠžΠ±Π·ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классификации Π² машинном ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Scikit-Learn

Для машинного обучСния Π½Π° Python написано ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. БСгодня ΠΌΡ‹ рассмотрим ΠΎΠ΄Π½Ρƒ ΠΈΠ· самых популярных β€” Scikit-Learn.

Scikit-Learn ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ процСсс создания классификатора ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‘Ρ‚ΠΊΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ машинного обучСния, рСализуя ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ понятной, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Scikit-Learn?

Β 

Scikit-Learn β€” это Python-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ разработанная David Cournapeau Π² 2007 Π³ΠΎΠ΄Ρƒ. Π’ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ находится большоС количСство Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Π·Π°Π΄Π°Ρ‡, связанных с классификациСй ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ†Π΅Π»ΠΎΠΌ.

Scikit-Learn базируСтся Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ SciPy, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

Π’ систСмах машинного обучСния ΠΈΠ»ΠΈ ΠΆΠ΅ систСмах нСйросСтСй ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Ρ…ΠΎΠ΄Ρ‹ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹. Π’ΠΎ, Ρ‡Ρ‚ΠΎ подаётся Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹, принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ (Π°Π½Π³Π». features).

ΠŸΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΏΠΎ сущСству ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² Π½Π°ΡƒΡ‡Π½ΠΎΠΌ экспСримСнтС β€” ΠΎΠ½ΠΈ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π΅Π½ΠΎΠΌΠ΅Π½ ΠΈ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ-Ρ‚ΠΎ количСствСнно ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚ΡŒ.

Когда ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ систСмы машинного обучСния, эта систСма пытаСтся Π½Π°ΠΉΡ‚ΠΈ совпадСния, Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ. На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ гСнСрируСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π­Ρ‚ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ (Π°Π½Π³Π». label), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² Π΅ΡΡ‚ΡŒ нСкая ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠ°, выданная ΠΈΠΌ систСмой, Ρ‚. Π΅. ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·) ΠΎ Ρ‚ΠΎΠΌ, Π² ΠΊΠ°ΠΊΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ послС классификации.

Π’ контСкстС машинного обучСния классификация относится ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’Π°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ обучСния ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ систСмы, ΡƒΠΆΠ΅ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹, Π° ваТная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² ΡƒΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈΠ»ΠΈ классы. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡΠ΅Ρ‚ΡŒ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚, какая Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ΠΎΠ² Π²Π°ΠΆΠ½Π°, Π° ΠΊΠ°ΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ классификации β€” сортировка Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… растСний Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«ΠΏΠ°ΠΏΠΎΡ€ΠΎΡ‚Π½ΠΈΠΊΠΈΒ» ΠΈ «покрытосСмСнныС». Подобная Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π”Π΅Ρ€Π΅Π²Π° РСшСний β€” ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Ρ‚ΠΈΠΏΠΎΠ² классификатора Π² Scikit-Learn.

ΠŸΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π±Π΅Π· учитСля Π² систСму ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ сама Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ классификация относится ΠΊ Ρ‚ΠΈΠΏΡƒ обучСния с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ, способ обучСния Π±Π΅Π· учитСля Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ β€” это ΠΏΠΎΠ΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… для нСйросСти, которая Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° вывСсти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для Π΄Π°Π½Π½Ρ‹Ρ…. Π’ процСссС обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ Π½Π° Π²Ρ…ΠΎΠ΄ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ классификатора ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ.

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Π΅ ΡΠ΅Ρ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Π΅ дСлятся Π½Π° Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для обучСния ΠΈ Π½Π°Π±ΠΎΡ€ для тСстирования. НС стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½Π° ΠΎΠ±ΡƒΡ‡Π°Π»Π°ΡΡŒ, Ρ‚. ΠΊ. модСль ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Β«Π·Π°Ρ‚ΠΎΡ‡Π΅Π½Π°Β» ΠΏΠΎΠ΄ этот Π½Π°Π±ΠΎΡ€.

Π’ΠΈΠΏΡ‹ классификаторов

Scikit-Learn Π΄Π°Ρ‘Ρ‚ доступ ΠΊΠΎ мноТСству Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² классификации. Π’ΠΎΡ‚ основныС ΠΈΠ· Π½ΠΈΡ…:

На сайтС Scikit-Learn Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π° Ρ‚Π΅ΠΌΡƒ этих Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² с ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΌ пояснСниСм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….

ΠœΠ΅Ρ‚ΠΎΠ΄ k-Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… сосСдСй (K-Nearest Neighbors)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ поиска ΠΊΡ€Π°Ρ‚Ρ‡Π°ΠΉΡˆΠ΅ΠΉ дистанции ΠΌΠ΅ΠΆΠ΄Ρƒ тСстируСмым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ блиТайшими ΠΊ Π½Π΅ΠΌΡƒ классифицированным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΠ· ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π±ΠΎΡ€Π°. ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ относится ΠΊ Ρ‚ΠΎΠΌΡƒ классу, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ блиТайший ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π°Π±ΠΎΡ€Π°.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π΄Π΅Ρ€Π΅Π²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (Decision Tree Classifier)

Π­Ρ‚ΠΎΡ‚ классификатор Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° всё мСньшиС ΠΈ мСньшиС подмноТСства Π½Π° основС Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π², Ρ‚. Π΅. Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ подмноТСства своя ΡΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ катСгория. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ количСство ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ критСрия ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅Ρ‚ΡŒ Π΄ΠΎΠΉΠ΄Ρ‘Ρ‚ Π΄ΠΎ подмноТСства Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Если ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Ρ‚ΠΎ получится Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΉ ЛСс (Π°Π½Π³Π». Random Forest).

Наивный байСсовский классификатор (Naive Bayes)

Π’Π°ΠΊΠΎΠΉ классификатор вычисляСт Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ принадлСТности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ классу. Π­Ρ‚Π° Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ вычисляСтся ΠΈΠ· шанса, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ событиС ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, с ΠΎΠΏΠΎΡ€ΠΎΠΉ Π½Π° ΡƒΠΆΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ события.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ классифицируСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° считаСтся нСзависимым ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ дискриминантный Π°Π½Π°Π»ΠΈΠ· (Linear Discriminant Analysis)

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡƒΡ‚Ρ‘ΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ размСрности Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, проСцируя всС Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° линию. ΠŸΠΎΡ‚ΠΎΠΌ ΠΎΠ½ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ эти Ρ‚ΠΎΡ‡ΠΊΠΈ Π² классы, Π±Π°Π·ΠΈΡ€ΡƒΡΡΡŒ Π½Π° ΠΈΡ… расстоянии ΠΎΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, относится ΠΊ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ классификации, Ρ‚. Π΅. ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π΄Π°Π½Π½Ρ‹Ρ… с Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² (Support Vector Machines)

Π Π°Π±ΠΎΡ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² рисовании Π»ΠΈΠ½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ кластСрами Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² классы. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны Π»ΠΈΠ½ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ классу, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны β€” ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ классу.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ рисуСмыми линиями ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сторонах, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ свою Β«ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΒ» опрСдСлСния класса. Когда всС Ρ‚ΠΎΡ‡ΠΊΠΈ построСны, сторона, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ ΠΏΠ°Π΄Π°ΡŽΡ‚ β€” это класс, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ эти Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚.

ЛогистичСская рСгрСссия (Logistic Regression)

ЛогистичСская рСгрСссия Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ ΠΎ Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ β€” Π½ΡƒΠ»Π΅Π²ΠΎΠΌ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΌ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Ρ€Π°Π²Π½ΠΎ Π»ΠΈΠ±ΠΎ большС 0.5, Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ классифицируСтся Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ сторону (ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅). Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС 0.5 β€” Π² ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ (ΠΊ Π½ΡƒΠ»ΡŽ).

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° Π΅ΡΡ‚ΡŒ своя ΠΌΠ΅Ρ‚ΠΊΠ°, равная Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 0 ΠΈΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1. ЛогистичСская рСгрСссия являСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ классификатором ΠΈ поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΊΠΎΠ³Π΄Π° Π² Π΄Π°Π½Π½Ρ‹Ρ… прослСТиваСтся какая-Ρ‚ΠΎ линСйная Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°Ρ‡ классификации

Π—Π°Π΄Π°Ρ‡Π° классификации β€” эта любая Π·Π°Π΄Π°Ρ‡Π°, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΠ· Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классов. Π’Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ: ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅, кошка Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ собака, ΠΈΠ»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ качСства Π²ΠΈΠ½Π° Π½Π° основС Π΅Π³ΠΎ кислотности ΠΈ содСрТания алкоголя.

Π’ зависимости ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ классификации Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ классификаторов. НапримСр, Ссли классификация содСрТит ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π±ΠΈΠ½Π°Ρ€Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Ρ‚ΠΎ ΠΊ Π½Π΅ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚ логистичСская рСгрСссия.

По ΠΌΠ΅Ρ€Π΅ накоплСния ΠΎΠΏΡ‹Ρ‚Π° Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ подходящий Ρ‚ΠΈΠΏ классификатора. Однако Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся рСализация Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… подходящих классификаторов ΠΈ Π²Ρ‹Π±ΠΎΡ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ.

РСализация классификатора

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ классификатора β€” Π΅Π³ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π² Python. Π’ΠΎΡ‚ ΠΊΠ°ΠΊ это выглядит для логистичСской рСгрСссии:

			from sklearn.linear_model import LogisticRegression
		

Π’ΠΎΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… классификаторов, рассмотрСнных Π²Ρ‹ΡˆΠ΅:

			from sklearn.discriminant_analysis import LinearDiscriminantAnalysis  
from sklearn.neighbors import KNeighborsClassifier  
from sklearn.naive_bayes import GaussianNB  
from sklearn.tree import DecisionTreeClassifier  
from sklearn.svm import SVC
		

Однако, это Π½Π΅ всС классификаторы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² Scikit-Learn. ΠŸΡ€ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ страницС Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ПослС этого Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр классификатора. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ создав ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ Π²Ρ‹Π·Π²Π°Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с классификатором.

			logreg_clf = LogisticRegression()
		

Π’Π΅ΠΏΠ΅Ρ€ΡŒ классификатор Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅Π΄ этим Π½ΡƒΠΆΠ½ΠΎ Β«ΠΏΠΎΠ΄ΠΎΠ³Π½Π°Ρ‚ΡŒΒ» Π΅Π³ΠΎ ΠΏΠΎΠ΄ Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ΠžΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² классификатор Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ fit:

			logreg_clf.fit(features, labels)
		

ПослС обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Π² классификатор. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ классификатора predict, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ) для прогнозирования:

			logreg_clf.predict(test_features)
		

Π­Ρ‚ΠΈ этапы (созданиС экзСмпляра, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈ классификация) ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с классификаторами Π² Scikit-Learn. Но эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ классификаторами, Π½ΠΎ ΠΈ самими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ классификатор Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ вмСстС Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ классификации, Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² процСссах машинного обучСния Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ машинного обучСния

ΠŸΡ€ΠΎΡ†Π΅ΡΡ содСрТит Π² сСбС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы: ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, созданиС ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ², созданиС классификатора, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ классификатора, составлСниС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ², ΠΎΡ†Π΅Π½ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ классификатора ΠΈ настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… для классификатора β€” ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ для классификации Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π² этих Π΄Π°Π½Π½Ρ‹Ρ…. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π΄Π°Π½Π½Ρ‹Ρ… Π»ΠΈΠ±ΠΎ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ отклонСния β€” всС ΠΈΡ… Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ классификатора. Π­Ρ‚ΠΎΡ‚ этап называСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… (Π°Π½Π³Π». data preprocessing).

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ шагом Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΈ тСстовыС Π½Π°Π±ΠΎΡ€Ρ‹. Для этого Π² Scikit-Learn сущСствуСт отличная функция traintestsplit.

Как ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ сказано Π²Ρ‹ΡˆΠ΅, классификатор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ создан ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ Π½Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½ΠΎΠΌ Π½Π°Π±ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ПослС этих шагов модСль ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹. Бравнивая показания классификатора с фактичСски извСстными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΎ точности классификатора.

ВСроятнСС всСго, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Β«ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ» ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ классификатора, ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ достигнитС ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ точности (Ρ‚. ΠΊ. маловСроятно, Ρ‡Ρ‚ΠΎ классификатор Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ всСм вашим трСбованиям с ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΆΠ΅ запуска).

НиТС Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ машинного обучСния ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π΄ΠΎ ΠΎΡ†Π΅Π½ΠΊΠΈ.

РСализация ΠΎΠ±Ρ€Π°Π·Ρ†Π° классификации

			# Π˜ΠΌΠΏΠΎΡ€Ρ‚ всСх Π½ΡƒΠΆΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ
import pandas as pd  
from sklearn.metrics import classification_report  
from sklearn.metrics import confusion_matrix  
from sklearn.metrics import accuracy_score  
from sklearn.neighbors import KNeighborsClassifier  
from sklearn.svm import SVC
		

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… iris достаточно распространён, Π² Scikit-Learn ΠΎΠ½ ΡƒΠΆΠ΅ присутствуСт, достаточно лишь Π·Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

			sklearn.datasets.load_iris
		

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ‚ΡƒΡ‚ Π΅Ρ‰Ρ‘ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ CSV-Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь.

Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Ρ‚Ρƒ ΠΆΠ΅ ΠΏΠ°ΠΏΠΊΡƒ, Ρ‡Ρ‚ΠΎ ΠΈ Python-Ρ„Π°ΠΉΠ». Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas Π΅ΡΡ‚ΡŒ функция read_csv(), которая ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

			data = pd.read_csv('iris.csv')

# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, всё Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ»ΠΎΡΡŒ

print(data.head(5))
		

Благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹, Π΄ΠΎΠ»Π³ΠΎΠΉ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ½ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ β€” ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ столбцы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ID) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

			data.drop('Id', axis=1, inplace=True)
		

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ. Π‘ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Pandas ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Β«Π½Π°Ρ€Π΅Π·Π°Ρ‚ΡŒΒ» Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ строки/столбцы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ iloc():

			# ".iloc" ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ row_indexer, column_indexer  
X = data.iloc[:,:-1].values  
# Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π΄Π΅Π»ΠΈΠΌ Π½ΡƒΠΆΠ½Ρ‹ΠΉ столбСц
y = data['Species']
		

Код Π²Ρ‹ΡˆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ строку ΠΈ столбСц, ΠΎΠ±Ρ€Π΅Π·Π°Π² ΠΏΡ€ΠΈ этом послСдний столбСц.

Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅Π³ΠΎ вас Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π² Π² скобках Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ столбцов:

			# ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ Π²Ρ‹Π±ΠΎΡ€Π° Π½ΡƒΠΆΠ½Ρ‹Ρ… столбцов:
X = data.iloc['SepalLengthCm', 'SepalWidthCm', 'PetalLengthCm']
		

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ ΠΈ тСстовыС Π½Π°Π±ΠΎΡ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ train_test_split():

			# test_size ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ объСм Π΄Π°Π½Π½Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ для тСстового Π½Π°Π±ΠΎΡ€Π°
# Random_state β€” просто сид для случайной Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ
# Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для воссоздания ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, random_state=27)
		

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

			print(X_train)  
print(y_train)
		

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляр классификатора, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΠΎΡ€Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ k-Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… сосСдСй:

			SVC_model = svm.SVC()  
# Π’ KNN-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ n_neighbors
# Π­Ρ‚ΠΎ число Ρ‚ΠΎΡ‡Π΅ΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ 
# классификатор, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ классу ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ новая Ρ‚ΠΎΡ‡ΠΊΠ°
KNN_model = KNeighborsClassifier(n_neighbors=5)
		

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ эти Π΄Π²Π° классификатора:

			SVC_model.fit(X_train, y_train) 
KNN_model.fit(X_train, y_train)
		

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ±ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ классификаторы ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

			SVC_prediction = SVC_model.predict(X_test) 
KNN_prediction = KNN_model.predict(X_test)
		

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ точности классификатора. БущСствуСт нСсколько способов это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

НуТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ показания ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ фактичСски Π²Π΅Ρ€Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΈ сохранСны Ρ€Π°Π½Π΅Π΅.

			# ΠžΡ†Π΅Π½ΠΊΠ° точности β€” ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΡ†Π΅Π½ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ классификатора
print(accuracy_score(SVC_prediction, y_test))  
print(accuracy_score(KNN_prediction, y_test))  
# Но ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° нСточности ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ классификации Π΄Π°Π΄ΡƒΡ‚ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
print(confusion_matrix(SVC_prediction, y_test))  
print(classification_report(KNN_prediction, y_test))
		

Π’ΠΎΡ‚, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ:

			SVC accuracy: 0.9333333333333333  
KNN accuracy: 0.9666666666666667
		

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ каТСтся, Ρ‡Ρ‚ΠΎ KNN Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Π΅Π΅. Π’ΠΎΡ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° нСточностСй для SVC:

			[[ 7  0  0]
 [ 0 10  1]
 [ 0  1 11]]
		

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² ΠΈΠ΄Ρ‘Ρ‚ с Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ. Π’ΠΎΡ‚ для сравнСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ классификации для KNN:

			precision    recall  f1-score   support

Iris-setosa       1.00      1.00      1.00         7  
Iris-versicolor       0.91      0.91      0.91        11  
Iris-virginica       0.92      0.92      0.92        12

micro avg       0.93      0.93      0.93        30  
macro avg       0.94      0.94      0.94        30  
weighted avg       0.93      0.93      0.93        30
		

ΠžΡ†Π΅Π½ΠΊΠ° классификатора

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ ΠΎΡ†Π΅Π½ΠΊΠΈ точности классификатора, Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ².

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ всСго, ΠΈ поэтому этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ точности β€” это число ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ², Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ Π½Π° число всСх ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² ΠΈΠ»ΠΈ, ΠΏΡ€ΠΎΡ‰Π΅ говоря, ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² ΠΊΠΎ всСм.

Π₯ΠΎΡ‚ΡŒ этот ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ быстро Π΄Π°Ρ‚ΡŒ Π²Π°ΠΌ явноС прСдставлСниС ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ классификатора, Π΅Π³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс ΠΈΠΌΠ΅Π΅Ρ‚ хотя Π±Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠ΅ количСство ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»ΡƒΡ‡Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π΄ΠΊΠΎ, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ классификации.

ЛогарифмичСскиС ΠΏΠΎΡ‚Π΅Ρ€ΠΈ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ЛогарифмичСских ΠŸΠΎΡ‚Π΅Ρ€ΡŒ (Π°Π½Π³Π». Logarithmic Loss) β€” ΠΈΠ»ΠΈ просто логлосс β€” ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, насколько классификатор Β«ΡƒΠ²Π΅Ρ€Π΅Π½Β» Π² своём ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π΅. Логлосс Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ принадлСТности ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡƒ классу, суммируя ΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС ΠΎΠ± «увСрСнности» классификатора.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π»Π΅ΠΆΠΈΡ‚ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ΅ ΠΎΡ‚ 0 Π΄ΠΎ 1 β€” «совсСм Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Β» ΠΈ Β«ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΠ²Π΅Ρ€Π΅Π½Β» соотвСтствСнно. Логлосс сильно ΠΏΠ°Π΄Π°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° классификатор сильно Β«ΡƒΠ²Π΅Ρ€Π΅Π½Β» Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π΅.

ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ ROC-ΠΊΡ€ΠΈΠ²ΠΎΠΉ (AUC)

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ классификации. ΠŸΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΠΎΠ΄ ROC-ΠΊΡ€ΠΈΠ²ΠΎΠΉ прСдставляСт ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ классификатора Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ подходящиС ΠΈ Π½Π΅ подходящиС ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ классу ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1.0: вся ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‰Π°Ρ ΠΏΠΎΠ΄ ΠΊΡ€ΠΈΠ²ΡƒΡŽ, прСдставляСт собой ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ классификатор. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, 0.5 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификатора соотвСтствуСт случайности. ΠšΡ€ΠΈΠ²Π°Ρ рассчитываСтся с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ точности ΠΈ спСцифичности ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ расчётах ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° нСточностСй

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° нСточностСй (Π°Π½Π³Π». Confusion Matrix) β€” это Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ»ΠΈ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ прогнозирования классификатора Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΈ Π±ΠΎΠ»Π΅Π΅ классов. ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ классификатора находятся Π½Π° оси X, Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ (Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ) β€” Π½Π° оси Y.

Π―Ρ‡Π΅ΠΉΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ количСством ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² классификатора. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Ρ‹ ΠΈΠ΄ΡƒΡ‚ ΠΏΠΎ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΠΈ ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° Π² Π½ΠΈΠΆΠ½ΠΈΠΉ ΠΏΡ€Π°Π²Ρ‹ΠΉ. ΠŸΡ€ΠΎ это ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠžΡ‚Ρ‡Ρ‘Ρ‚ ΠΎ классификации

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Scikit-Learn ΡƒΠΆΠ΅ встроСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ классификатора. Π­Ρ‚ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚Ρ‹ Π΄Π°ΡŽΡ‚ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятноС прСдставлСниС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ с Scikit-Learn, Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классификации. ПослС этого стоит Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Π·Π°ΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ классификаторов. Однако ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… нюансов Π² классификации ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ