Data Science, най-добрите практики в областта на научните данни, разлика между AI, ML и DL и стека от технологии!

Какво е наука за данни?

Науката за данни е мултидисциплинарна комбинация от изводи на данни, разработка на алгоритми и технологии за решаване на аналитично сложни проблеми.

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

От склада на данни до намирането на Data Insight е възможно само след количествен анализ на данни, за да се помогне на стратегическото бизнес решение да се намери бизнес стойността. Намиране на продукт на продукта от вникване на данни с помощта на решенията на алгоритмите в производството.

Най-добри практики в областта на научните данни:

Разбиране на случая и бизнес цел:

Това е най-жизнената стъпка за целия проект за Data Science, т.е. определяне на бизнес целта, която трябва да бъде постигната от науката за данни. Изисква ясно разбиране на бизнеса и какъв е очакваният резултат от новия проект. Това помага на Data Scientist да се подготвят за възможните предизвикателства и да продължат напред с правилните методи и влагания, необходими за придобиване на представа, както се изисква от бизнес цели.

Идентифицирайте данните:

Около (60–70)% от времето на проекта Data Science се изразходва за подготовка и почистване на данни. Данните се предлагат в различни форми, широко класифицирани като структурирани, неструктурирани и полуструктурирани. Трябва да идентифицираме данните, които са уместни, или да идентифицираме наличните аномалии в данните и да разберем дали тези данни са достатъчни, за да направим полезна представа за необходимата бизнес цел.

Мозъчна атака:

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

Данните са стойност:

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

Намиране на правилните инструменти:

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

Вникване в доклада cum Action:

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

Проверявайте и валидирайте на редовни интервали:

Моделът е разработен върху набор от данни при различни параметри, но данни, различни за определен период от време. Ако използваме същия модел за нови данни, които са заснети след определен период от време, възможностите са този модел да се срине по отношение на прозрението, което е използвал за предоставяне. Винаги се препоръчва да се използва стратегия за тестване, за да се тества моделът върху новите данни и да се проверяват / валидират резултатите на редовни интервали и да се модифицира моделът, ако работата на модела се влоши.

Разлика между AI, ML и DL:

Как AI започна?

Алън Тюринг беше математик, криптограф, който дешифрира машината Enigma във Втората световна война, логик, философ, сътрудник от Кеймбридж (на 22 години) и бегач на свръхдълги разстояния. Той също така положи основите на съвременния компютър и изкуствен интелект.

Работата му прониква в по-широко обществено знание през 50-те години. Това породи идеята за „Общ AI“: могат ли компютрите да притежават същите характеристики на човешкия интелект, включително разсъждения, взаимодействие и мислене като нас? Отговорът беше силно "не" (поне още не).

Затова трябваше да се съсредоточим върху „Тесен AI“ - технологии, които могат да изпълняват специфични задачи като игра на шах, препоръчване на следващото ви телевизионно шоу в Netflix и идентифициране на спам имейли. Всички те показват части от човешкия разум. Но как работят? Това е машинно обучение.

AI се нуждае от ML:

На високо ниво ML обикновено означава алгоритми или модели, които

· Данни: получете много (почистени) данни с дефинирани от човека функции (напр. „Възраст“, ​​„височина“, „оценка FICO“, „това имейл спам?“ И т.н.)

· Обучение: използвайте данните, за да „настроите“ относителната важност на всяка функция.

· Извод: прогнозирайте нещо в новите данни.

Пример за това са прогнозирането на спам имейли: Google Gmail събира огромни количества данни за това какво е спам и какво не (това се нарича „етикетирани данни“). Тогава алгоритъмът идентифицира общи характеристики на спам съобщения спрямо неспам съобщения. След това алгоритъмът се изпълнява върху незабелязани данни (т.е. нови имейли), за да предскаже дали те са спам или не.

ML изисква много човешка намеса, като ръчно да казвате на спам филтъра какво да търсите в нежеланите съобщения срещу неспам съобщения (напр. Потърсете думите „Western Union“ / потърсете връзки към съмнителни уебсайтове и т.н.). Освен това не е много точно на изображенията

ML <= {NLP, DL}:

Дълбокото обучение (което включва периодични невронни мрежи, невронни мрежи Convolution и други) е вид подход за машинно обучение. Това е разширение на Невронните мрежи. Deep Learning се използва доста широко за класифициране въз основа на зрението (например за разграничаване на изображения на самолети от изображения на кучета). Дълбокото обучение може да се използва и за NLP задачи. Важно е обаче да се отбележи, че алгоритмите за дълбоко обучение не се занимават изключително с текст.

ML и NLP имат известно припокриване, тъй като машинното обучение често се използва за NLP задачи. LDA (Latent Dirichlet Allocation, който е алгоритъм за тематично моделиране) е един такъв пример за безконтролно машинно обучение.

НЛП обаче има силен лингвистичен компонент (не е представен в изображението), който изисква разбиране за това как използваме езика. Изкуството да разбираме езика включва разбиране на хумор, сарказъм, подсъзнателна пристрастност в текста и др. След като разберем, че означава да бъдем саркастични (да, правилно!), Можем да го кодираме в алгоритъм за машинно обучение, за да открием автоматично подобни модели за нас статистически.

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

Технологии и инструменти:

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

Нека да разгледаме някои от най-добрите налични рамки за машинно обучение с отворен код.

Apache Spark Mlib:

Това е библиотечно машинно обучение, чиято основна цел е да направи практическото машинно обучение мащабируемо и лесно. Той включва общи алгоритми за обучение и помощни програми, включително класификация, регресия, групиране, съвместно филтриране, намаляване на размерите, както и примитиви за оптимизация на по-ниско ниво и API на тръбопровод от по-високо ниво.

Spark MLlib се разглежда като разпределена рамка за машинно обучение на върха на Spark Core, която, главно благодарение на разпределената памет, базирана на архитектурата Spark, е почти девет пъти по-бърза от дисково-базираната реализация, използвана от Apache Mahout.

TensorFlow:

TensorFlow е софтуерна библиотека с отворен код за машинно обучение, разработена от екипа на Google Brain за различни видове възприятия и езикови разбирания и за провеждане на сложни изследвания на машинното обучение и дълбоките невронни мрежи. Това е второто поколение на системата за машинно обучение на Google Brain и може да работи на множество процесори и графични процесори. TensorFlow е внедрен в различни продукти на Google като разпознаване на реч, Gmail, Google Photos и дори Търсене.

Accord.NET

Accord.NET е .NET рамка за машинно обучение с отворен код за научни изчисления и се състои от множество библиотеки за различни приложения като статистическа обработка на данни, разпознаване на модели, линейна алгебра, изкуствени невронни мрежи, обработка на изображения и сигнали и др.

Амазонско машинно обучение (AML):

Amazon Machine Learning (AML) е услуга за машинно обучение за разработчици. Разполага с много инструменти за визуализация и съветници за създаване на сложни и интелигентни модели за машинно обучение от висок клас, без да е необходимо да се усвояват сложни ML алгоритми и технологии. Чрез AML прогнозите за приложенията могат да бъдат получени с помощта на прости API, без да се използва персонализиран код за генериране на прогнози или сложна инфраструктура.

Keras:

Keras е библиотека с невронни мрежи с отворен код, написана на Python. Той може да работи над TensorFlow, Microsoft Cognitive Toolkit, Theano или MXNet. Keras съдържа многобройни реализации на често използвани блокове за невронна мрежа като слоеве, цели, функции на активиране, оптимизатори и множество инструменти за улесняване на работата с изображения и текстови данни.

Има много други такива библиотеки както за машинно обучение, така и за дълбоко обучение, зависи от случая на използване кой да изберете.

Научаване на данни:

Има много източници, за да научите Data Science, но най-важното изискване е да научите език за програмиране, за да внедрите случай на използване на науката за данни.

Език на програмиране: Python, R, Java, SAS, MATLAB и т.н.

За начинаещи:

Силно препоръчителен курс за стартиране на машинно обучение е Udemy, Coursera, Edx и т.н.

Тъй като съм взел курсове от всички тези източници, препоръчвам следното с моя опит, т.е. ако някой просто се интересува от машинно обучение без интерес към курса по математика, може да поеме курсовете от udemy „Машинно обучение AZ ™: Hands-On Python & R In Data Science “обяснява кодирането на Python за всички алгоритми за основно машинно обучение заедно с основната интуиция за всички алгоритми.

Ако някой се интересува от познаването на математическите концепции зад алгоритмите, тогава силно бих препоръчал курса „Въведение в машинното обучение“ от Coursera. Защото авторът „Андрю Нг“ положи големи усилия да обясни математиките зад алгоритъма.

За предварително проучване:

За концепциите за предварително машинно обучение / задълбочено обучение можете да следвате учебниците и курсовете, за да научите основните машинно обучение и задълбочено обучение, споменати по-долу,

Курсът за задълбочено обучение от Coursera трябва да започне от Deep Learning и курсът обхваща и задачи, които са чисто случаи на използване в реално време. Ако кандидатът може да завърши този курс и всички случаи на използване без много помощ от външни източници, тогава той / тя ще бъде в състояние да изпълни повечето задачи в задълбоченото обучение.

И има много курсове, базирани извън определена тема в Udemy за много случаи на използване.

Необходимо е много четене, за да се овладеят Pratices Science Science и да се намерят връзките към препратките същите:

За статистика в машинното обучение - https://web.stanford.edu/~hastie/Papers/ESLII.pdf

За задълбочено обучение - https://github.com/janishar/mit-deep-learning-book-pdf

Coursera - https://www.coursera.org/

Удеми - https://www.udemy.com/

Оксфорд - https://github.com/oxford-cs-deepnlp-2017/lectures

Analytics Vidhya - https://www.analyticsvidhya.com/

MachineLearningMastery - https://machinelearningmastery.com/

Забележка :

Съдържанието е взето от различни публикации в блога и уикипедии, няколко са взети от старата ми публикация в блога. Тук се комбинира, за да се получи цялостният преглед на науката за данните.