Глава 6 Как да научите специалността?

Серия за машинно обучение!

Здравейте хора, това е най-невероятната статия, която променя вашата гледна точка към машинното обучение. Нека започнем да обсъждаме Защо инженерната функция е толкова важна за машинното обучение. След завършването на тази статия ще можете да научите как да правите технически характеристики от набора от данни.

очертание

1.Какво е характерното инженерство?
2.Data предварителна обработка
 2.1 Недименционализация
 2.1.1 Нормализиране
 2.1.2 Метод на интервално мащабиране
 2.1.3 Разлика между нормализиране и нормализиране
 2.2 Обвързване на количествени характеристики
 2.3 Двойка качествени характеристики Кодиране на Мат
 2.4 Изчисляване на липсващи стойности
 2.5 Преобразуване на данни
3 Избор на характеристики
 3.1 Филтър
 3.1.1 Метод за избор на вариация
 3.1.2 Метод на коефициента на корелация
 3.1.3 Тест за чи-квадрат
 3.1.4 Метод на взаимна информация
 3.2 Уплътнител
 3.2.1 Метод за премахване на рекурсивни характеристики
 3.3 Вградена
 3.3.1 Метод за избор на функции на базата на наказания
 3.3. 2 Метод за избор на функция на дърво
4 Намаляване на размерите
 4.1 Анализ на основните компоненти (PCA)
 4.2 Линеен дискриминационен анализ (LDA)

1. Какво е характерното инженерство?

Има поговорка, която е широко разпространена в индустрията: данните и характеристиките определят горната граница на машинното обучение, а моделите и алгоритмите просто се доближават до тази горна граница. Какъв е характерният проект? Както подсказва името му, същността му е инженерна дейност, предназначена да увеличи максимално извличането на функции от сурови данни за използване от алгоритми и модели. Обобщавайки и обобщавайки, хората мислят, че конструирането на функции включва следните аспекти:

Функционалната обработка е основната част от конструктивните функции. Sklearn предоставя по-пълен метод за обработка на функции, включително предварителна обработка на данни, избор на функции и намаляване на размерите. Първият контакт със sklearn често е привлечен от неговата богата и удобна библиотека с модели на алгоритми, но библиотеката за работа с функции, описана тук, също е много мощна!

В този документ, IRIS (Iris) наборът от данни в sklearn се използва за илюстриране на функциите за обработка на функции. Наборът данни IRIS е съставен от Фишър през 1936 г. и съдържа четири функции (Sepal.Length, Sepal.Width, Petal.Length, Petal.Width), собствени стойности И двете са положителни числа с плаваща запетая в сантиметри. Целевата стойност е класификацията на Iris (Iris Setosa), Iris Versicolour (Iris Virginica), Iris Virginica (Virginia Iris). Кодът за импортиране на набора от данни IRIS е както следва:

2. Предварителна обработка на данни

Чрез извличане на функции можем да получим непреработени функции и функциите в този момент може да имат следните проблеми:

  • Не принадлежи към едно и също измерение: тоест спецификациите на функциите са различни и не могат да се сравняват заедно. Недименционализацията може да реши този проблем.
  • Излишък на информация: За някои количествени характеристики ефективната информация, която се съдържа, е интервалното разделение, като например академични постижения. Ако ви интересува само „преминаване“ или не „преминаване“, трябва да преобразувате количествения тестов резултат в „1“ и „0“. „” Показва преминаване и провал. Бинаризацията може да реши този проблем.
  • Качествените характеристики не могат да се използват директно: някои алгоритми и модели за машинно обучение могат да приемат само принос от количествени характеристики, така че качествените характеристики трябва да бъдат преобразувани в количествени характеристики. Най-лесният начин е да се определи количествена стойност за всяка качествена стойност, но този метод е твърде гъвкав и увеличава работата на настройката. Качествената характеристика обикновено се преобразува в количествена характеристика с помощта на фиктивно кодиране: ако има N качествени стойности, тогава тази функция се разширява до N характеристики. Когато оригиналната стойност на характеристиката е i-тата качествена стойност, i-тата разширена характеристика се назначава. Е 1, други функции за разширение се присвояват стойност 0. В сравнение с директно посочения метод, методът на кодиране на тъпо не трябва да увеличава работата на настройката на параметъра. За линейния модел използването на кодираната тъпа функция може да постигне нелинеен ефект.
  • Има липсващи стойности: липсващи стойности трябва да се добавят.
  • Ниско използване на информация: Различните алгоритми и модели за машинно обучение използват различна информация в данните. Както бе споменато по-рано, при линейни модели използването на качествени характеристики тъпото кодиране може да постигне нелинейни ефекти. По подобен начин полиномиализацията на количествените променливи или други трансформации могат да постигнат нелинейни ефекти.

Използваме библиотеката за предварително обработване в sklearn за предварителна обработка на данни, за да покрием решението на горния проблем.

2.1 Без измерения

Безразмерно преобразува данни от различни спецификации в същата спецификация. Обичайните методи за не-дименсиализация са стандартизация и интервално мащабиране. Предполагането на стандартизацията е, че собствените стойности следват нормално разпределение и след нормализиране те се превръщат в стандартно нормално разпределение. Интервалният метод на мащабиране използва информацията за граничната стойност, за да мащабира обхвата на характеристиките до диапазон от характеристики, като например [0, 1].

2.1.1 Стандартизация

Стандартизацията изисква изчисляване на средното и стандартното отклонение на характеристиката, изразено като:

Кодът, който нормализира данните, използвайки класа StandardScaler на библиотеката за предварително обработване, е следният:

2.1.2 Метод на интервално мащабиране

Има много идеи за интервално мащабиране. Общото е да се използват две максимални стойности за мащабиране. Формулата се изразява като:

Кодът за интервално мащабиране на данни с помощта на клас MinMaxScaler на библиотеката за предварително обработване е както следва:

2.1.3 Разликата между стандартизация и нормализация

Казано по-просто, стандартизацията е да се обработват данни според колоните на матрицата на характеристиките, която преобразува стойностите на характеристиките на пробите в едно и също измерение чрез метода на z-score. Нормализирането е обработка на данни според редовете на матрицата на характеристиките. Целта е векторът на извадката да има еднакъв стандарт, когато операцията за умножение на точката или друга функция на ядрото изчислява сходството, тоест се преобразува в „единичен вектор“. Формулата за нормализиране с правило l2 е следната:

Кодът, който нормализира данните, използвайки класа Normalizer на библиотеката за предварително обработване, е следният:

2.2 Двоични количествени характеристики

Ядрото на количествената бинаризация на характеристиките е да се определи праг. Стойността, по-голяма от прага, е 1, а стойността по-малка или равна на прага е 0. Формулата е следната:

Кодът за бинаризиране на данни с помощта на клас Binarizer на библиотеката за предварително обработване е както следва:

2.3 За качествени характеристики тъпо кодиране

Тъй като характеристиките на набора от IRIS са всички количествени характеристики, техните целеви стойности се използват за кодиране на манекени (всъщност не се изискват). Кодът за тъпи кодиращи данни с помощта на клас OneHotEncoder на библиотеката за предварително обработване е както следва:

2.4 Изчисляване на липсваща стойност

Тъй като наборът от данни на IRIS няма липсващи стойности, към избора на данни се добавя нова извадка и на четирите функции се присвоява стойност NaN, което показва, че данните липсват. Кодът за изчисления на липсващи данни с помощта на клас Импултър на библиотеката за предварително обработване е както следва:

2.5 Трансформация на данни

Общите трансформации на данни са базирани на полиноми, експоненциално базирани функции, базирани на лога. Четирите характеристики на формулата за преобразуване на полином със степен 2 са следните:

Кодът за преобразуване на полиноми на данни чрез клас PolynomialFeatures на библиотеката за предварително обработване е както следва:

Преобразуването на данни въз основа на функция на един аргумент може да се извърши по унифициран начин. Кодът за преобразуване на логаритмична функция с помощта на FunctionTransformer на библиотеката за предварително обработване е както следва:

3. Избор на функция

Когато предварителната обработка на данните приключи, трябва да подберем значими алгоритми и машинни модели за машинно обучение за обучение. Като цяло изберете функции от две перспективи:

  • Независимо дали характеристиката се различава: Ако характеристиката не се разминава, например, дисперсията е близка до нула, тоест извадката по същество няма разлика в тази функция, тази функция не е полезна за разграничаване на проби.
  • Корелация между функции и цели: Това е по-очевидно и трябва да се предпочитат характеристики, които са силно свързани с целта. В допълнение към метода на дисперсия, другите методи, описани в този документ, се вземат предвид от корелацията.

Според формата на избор на функция методът за избор на функция може да бъде разделен на три вида:

  • Филтър: Метод на филтриране, който оценява всяка характеристика според различията или корелацията, задава прага или броя прагове, които ще бъдат избрани, и избира функции.
  • Уплътнител: метод за обвиване, който избира няколко функции наведнъж или изключва няколко функции въз основа на обективна функция (обикновено резултат от прогнозен ефект).
  • Вграден: Методът на интегриране, който първо използва някои алгоритми и модели за машинно обучение, за да тренира, получава коефициентите на тегло на всяка функция и избира функции според коефициентите от големи до малки. Подобно на метода Filter, но той е обучен да определя плюсовете и минусите на функцията.

Използваме библиотеката с характеристики_избиране в sklearn за избор на функция.

3.1 Филтър
3.1.1 Метод за избор на вариация

Използвайки метода за избор на дисперсия, първо се изчислява дисперсията на всяка характеристика и след това характеристиката, чиято дисперсия е по-голяма от прага, се избира според прага. Кодът за избор на функции, използващи класа на прага на отклонение в библиотеката на функция_избор, е следният:

3.1.2 Метод на коефициента на корелация

Използвайки метода на коефициента на корелация, първо се изчислява коефициентът на корелация на всяка характеристика към целевата стойност и P стойността на коефициента на корелация. Използвайте класа SelectKBest на библиотеката на функция_избиране, за да комбинирате коефициентите на корелация, за да изберете кода на характеристиките, както следва:

3.1.3 Тест за чи-квадрат

Класическият тест-квадрат-тест е да се тества връзката на качествени независими променливи с качествено зависими променливи. Да предположим, че независимата променлива има N вида стойности, а зависимата променлива има M видове стойности. Помислете разликата между наблюдаваната стойност и очакваната стойност на честотата на извадката, чиято независима променлива е равна на i, а зависимата променлива е равна на j, и постройте статистиката:

Не е трудно да се намери, че смисълът на тази статистика е просто съотношението на независимата променлива с зависимата променлива. Използвайте класа SelectKBest на библиотеката на функция_избор във връзка с теста на квадрат-чи, за да изберете кода на функцията, както следва:

3.1.4 Метод на взаимна информация

Класическата взаимна информация също се използва за оценка на връзката на качествени независими променливи с качествено зависими променливи. Формулата за взаимно изчисляване на информацията е следната:

За да се обработят количествени данни, се предлага методът на максималния информационен коефициент. Кодът, използващ класа SelectKBest на библиотеката с функции на избор, комбиниран с метода за максимален информационен коефициент за избор на функции, е както следва:

3.2 Уплътнител
3.2.1 Рекурсивно премахване на функции

Методът за рекурсивен елиминиране използва базов модел за извършване на няколко кръга от тренировки. След всеки кръг от тренировките се премахват характеристиките на няколко коефициента на тегло и следващият кръг на тренировка се извършва въз основа на новия набор от функции. Кодът, който използва класата RFE на библиотеката с функции за избор на функции, е както следва:

3.3 Вградена
3.3.1 Избор на функция на наказанието

Използвайки базовия модел с наказателни срокове, в допълнение към филтрирането на характеристиките, се извършва и намаляване на размерите. Използвайте класа SelectFromModel на библиотеката на функция_избор във връзка с логистичния регресионен модел с наказание L1, за да изберете кода на функцията, както следва:

Всъщност принципът за намаляване на измерението на наказателния срок L1 е да запази една от характеристиките, които имат еднакво значение за целевата стойност, така че неизбраната характеристика не представлява маловажна. Следователно, той може да бъде оптимизиран в комбинация с наказателния срок L2. Специфичната операция е следната: ако характеристиката има тегло 1 в L1, характеристика, която има малка разлика в теглата в L2 и тегло 0 в L1, представлява хомогенен набор, а характеристиките в множеството са разделени еднакво в L1. Тегло, така че трябва да изградите нов модел на логистична регресия:

Използвайте класа SelectFromModel на библиотеката на функция_избор във връзка с логистичния регресионен модел с наказателни термини L1 и L2, за да изберете кода на функцията, както следва:

3.3.2 Избор на функции въз основа на модела на дървото

В дървесния модел GBDT може да се използва и като основен модел за избор на функции. Кодът на функцията се избира чрез използване на класа SelectFromModel на библиотеката на функция_избор във връзка с модела GBDT.

4. Намаляване на размерите

Когато селекцията на функции завърши, моделът може да бъде директно обучен, но матрицата на характеристиките е твърде голяма, което води до голямо количество изчисления и дълго време за обучение. Следователно е необходимо също да се намали размерът на матрицата на характеристиките. Общи методи за намаляване на размерите В допълнение към споменатия по-горе модел на базата на наказания L1 има анализ на основните компоненти (PCA) и линеен дискриминационен анализ (LDA). Самият линеен дискриминационен анализ също е модел на класификация. PCA и LDA имат много сходства, същността на които е да се ориентира оригиналната проба към пространството на пробата с по-малък размер, но целта за картографиране на PCA и LDA е различна: PCA е да направи така, че картографираната проба да има най-голямо разминаване. LDA е проектиран да даде на картографираната извадка най-доброто класифициране. Така че PCA е метод за намаляване на измерението без надзор, а LDA е метод за намаляване на измереността.

4.1 Анализ на основните компоненти (PCA)

Кодът за избор на функции, използващи PCA класа на библиотеката за разлагане, е следният:

4.2 Линеен дискриминационен анализ (LDA)

Кодът за избор на функции, използващи клас LDA на библиотеката lda, е следният:

Препратки:

  1. https://www.quora.com/topic/Data-Cleansing
  2. https://www.quora.com/What-is-the-real-meaning-of-data-cleaning-for-a-Data-Scientist
  3. https://www.quora.com/What-is-your-best-description-of-data-cleaning-in-data-analysis-and-machine-learninghttps://www.quora.com/What-is- си-най-добре описание-на-данни-почистване-в-анализ на данни-и-машинно обучение