Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

Жок, албетте, мен олуттуу эмесмин. Предметти канчалык жөнөкөйлөштүрүү мүмкүн болсо, анын чеги болушу керек. Бирок, биринчи этаптар үчүн, негизги түшүнүктөрдү түшүнүү жана тез темага "кирүү", алгылыктуу болушу мүмкүн. Биз бул материалды кантип туура атоо керек экенин талкуулайбыз (варианттар: “Муляждар үчүн машина үйрөнүү”, “Жаяяктан алынган маалыматтарды талдоо”, “Кичинекейлер үчүн алгоритмдер”).

пунктка. Маалыматтарды талдоодо ар кандай машина үйрөнүү ыкмаларында пайда болгон процесстерди визуалдаштыруу жана визуалдык көрсөтүү үчүн MS Excelде бир нече колдонмо программаларын жазган. Көрүү – бул, маданият алып жүрүүчүлөр айткандай, бул ыкмалардын көбүн иштеп чыккан (баары эле, баары эмес. Эң күчтүү “колдоочу вектордук машина”, же SVM, колдоочу вектордук машина – бул ойлоп табуу. биздин жердешибиз Владимир Вапник, 1963-ж.

Карап чыгуу үчүн үч файл

1. К- кластерлик дегенди билдирет

Бул типтеги көйгөйлөр "көзөмөлсүз окутууга" тиешелүү, качан биз алдын ала белгилүү категориялардын белгилүү бир санына бөлүү керек, бирок бизде "туура жооптор" жок, аларды маалыматтардын өзүнөн алуу керек; . Бул билим тармагынын биринчи белгиси деп эсептелген ирис гүлдөрүнүн түрчөлөрүн (Роналд Фишер, 1936!) табуунун фундаменталдуу классикалык маселеси дал ушундай мүнөздө.

ыкмасы абдан жөнөкөй. Бизде векторлор катары берилген объекттердин жыйындысы бар (N сандардын топтому). Иристерде бул гүлдү мүнөздөгөн 4 сандан турган топтомдор: тиешелүүлүгүнө жараша перианттын сырткы жана ички бөлүктөрүнүн узундугу жана туурасы (Фишердин ириси - Wikipedia). Кадимки декарттык метрика объекттердин ортосундагы аралык же жакындык өлчөмү катары тандалат.

Андан кийин, кластердик борборлор туш келди тандалып алынат (же туш келди эмес, төмөндө караңыз) жана ар бир объекттен кластердик борборлорго чейинки аралыктар эсептелет. Берилген итерация кадамындагы ар бир объект эң жакын борборго таандык деп белгиленет. Андан кийин ар бир кластердин борбору анын мүчөлөрүнүн координаталарынын орточо арифметикалык маанисине которулат (физикага окшош, ал “массанын борбору” деп да аталат) жана процедура кайталанат.

Процесс абдан тез биригет. Эки өлчөмдүү сүрөттөрдө мындай көрүнөт:

1. Тегиздиктеги чекиттердин алгачкы туш келди бөлүштүрүлүшү жана кластерлердин саны

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

2. Кластердик борборлорду көрсөтүү жана алардын кластерлерине пункттарды берүү

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

3. Кластердик борборлордун координаталарын өткөрүп берүү, борборлор турукташканга чейин пункттардын тиешелүүлүгүн кайра эсептөө. Кластердик борбордун акыркы абалына өтүү траекториясы көрүнүп турат.

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

Каалаган убакта, сиз жаңы кластердик борборлорду орното аласыз (упайлардын жаңы бөлүштүрүлүшүн түзбөстөн!) жана бөлүү процесси дайыма эле ачык-айкын эмес экенин көрө аласыз. Математикалык жактан бул оптималдаштырылып жаткан функция үчүн (пункттардан алардын кластерлеринин борборлоруна чейинки квадраттык аралыктардын суммасы) биз глобалдык эмес, локалдык минимумду табабыз дегенди билдирет. Бул көйгөйдү же кокусунан эмес баштапкы кластердик борборлорду тандоо менен, же мүмкүн болгон борборлорду санап чыгуу менен жеңүүгө болот (кээде аларды так пункттардын бирине жайгаштыруу пайдалуу, анда жок дегенде биз бош калбайбыз деген кепилдик бар. кластерлер). Кандай болгон күндө да, чектүү көптүктөр ар дайым инфимумга ээ.

Бул шилтеме боюнча бул файл менен ойной аласыз (макро колдоону иштетүүнү унутпаңыз. Файлдар вирустарга сканерден өткөрүлдү)

Уикипедиядагы ыкманын сүрөттөлүшү - к- ыкмасы

2. Көп мүчөлөр боюнча жакындоо жана маалыматтардын бөлүнүшү. Кайра даярдоо

Көрүнүктүү окумуштуу жана маалымат илиминин популяризатору К.В. Воронцов кыскача машина үйрөнүү ыкмаларын "чекиттер аркылуу ийри сызыктарды тартуу илими" катары сүрөттөйт. Бул мисалда биз эң кичине квадраттар ыкмасын колдонуу менен маалыматтардан үлгү табабыз.

Булактан алынган маалыматтарды “окутуу” жана “контролдоо” деп бөлүү методикасы, ошондой эле кайра даярдоо, же “кайра тууралоо” сыяктуу көрүнүш көрсөтүлгөн. Туура жакындоо менен биз машыгуу маалыматтарында белгилүү бир катага жана башкаруу маалыматтарында бир аз чоңураак катага ээ болобуз. Эгер туура эмес болсо, бул окуу маалыматтарына так тууралоо жана сыноо маалыматтарында чоң катага алып келет.

(N чекиттер аркылуу N-1-даражадагы бир ийри сызыкты тартууга боло тургандыгы белгилүү факт жана бул ыкма жалпы учурда каалаган натыйжаны бербейт. Википедиядагы Лагранж интерполяциялык полиномиясы)

1. Баштапкы бөлүштүрүүнү коюңуз

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

2. Упайларды 70тен 30га чейинки катышта "машыгуу" жана "контроль" деп бөлөбүз.

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

3. Окуу чекиттери боюнча жакындоо ийри сызыгын сызабыз, анын башкаруу маалыматтарында берген катасын көрөбүз.

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

4. Биз машыгуу чекиттери аркылуу так ийри сызыктуу сызабыз жана контролдоо маалыматтарында коркунучтуу катаны көрөбүз (жана машыгуу маалыматтарында нөл, бирок мунун мааниси эмнеде?).

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

Көрсөтүлгөн, албетте, "окутуу" жана "контролдук" бөлүмдөрүнө бир бөлүү менен эң жөнөкөй вариант, бул коэффициенттерди эң ​​жакшы тууралоо үчүн көп жолу жасалат;

Файл антивирус тарабынан сканерленген бул жерде жеткиликтүү. Туура иштеши үчүн макросторду иштетиңиз

3. Градиенттин түшүүсү жана катанын өзгөрүү динамикасы

4 өлчөмдүү жагдай жана сызыктуу регрессия болот. Сызыктуу регрессия коэффициенттери этап-этабы менен градиенттик түшүү ыкмасын колдонуу менен аныкталат, адегенде бардык коэффициенттер нөлгө барабар. Өзүнчө график каталарды азайтуунун динамикасын көрсөтөт, анткени коэффициенттер барган сайын такталган. Бардык төрт 2 өлчөмдүү проекцияларды көрүүгө болот.

Эгер сиз градиенттин түшүү кадамын өтө чоң кылып койсоңуз, анда биз ар бир жолу минимумду өткөрүп жиберип, натыйжага көбүрөөк кадамдар менен жетээрибизди көрө аласыз, бирок акырында дагы эле жетебиз (эгер биз түшүү кадамын да кечеңдетпесе. көп - анда алгоритм барат " күрөктө"). Жана ката графиги итерация кадамына жараша жылмакай эмес, “кыйырсыз” болот.

1. Дайындарды жаратыңыз, градиенттин түшүү кадамын орнотуңуз

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

2. Градиенттин түшүү кадамын туура тандоо менен биз минималдуу жана тез жетебиз

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

3. Эгерде градиенттин түшүү кадамы туура эмес тандалган болсо, биз максимумдан ашып кетебиз, ката графиги "чапкыч", конвергенция кадамдардын көбүрөөк санын алат

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү
и

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

4. Эгерде биз градиенттин түшүү кадамын такыр туура эмес тандасак, минимумдан алыстап кетебиз.

Python, Anaconda жана башка сойлоочуларсыз машинаны үйрөнүү

(Сүрөттө көрсөтүлгөн градиенттин түшүү кадамынын маанилерин колдонуу менен процессти кайра чыгаруу үчүн "маалыматтар" кутучасын белгилеңиз).

Файл бул шилтемеде, сиз макросторду иштетишиңиз керек, вирустар жок.

Урматтуу коомчулуктун пикиринде, материалды берүүнүн мындай жөнөкөйлөштүрүлүшү жана ыкмасы алгылыктуубу? Макаланы англис тилине которуунун кереги барбы?

Source: www.habr.com

Комментарий кошуу