Спарк МЛлиб - Библиотека машинског учења Апацхе Спарк



Овај Спарк МЛлиб блог упознаће вас са библиотеком машинског учења компаније Апацхе Спарк. Укључује пројекат система за препоруку филмова који користи Спарк МЛлиб.

Спарк МЛлиб је компонента машинског учења компаније Апацхе Спарк.Једна од главних атракција Спарка је способност масивног скалирања рачунара, а то је управо оно што вам треба за алгоритме машинског учења. Али ограничење је у томе што се сви алгоритми машинског учења не могу ефикасно паралелизовати. Сваки алгоритам има своје изазове за паралелизацију, било да се ради о паралелизму задатака или паралелизму података.

Рекавши то, Спарк постаје фактичка платформа за изградњу алгоритама и апликација машинског учења.Па, можете погледати које су припремили индустријски стручњаци пре него што наставе са блогом.Програмери који раде на Спарк МЛлиб имплементирају све више и више машинских алгоритама на скалабилан и сажет начин у оквиру Спарк-а. Кроз овај блог научићемо концепте машинског учења, Спарк МЛлиб, његове услужне програме, алгоритме и комплетан случај употребе система за препоруку филмова.





На овом блогу ће бити обрађене следеће теме:

  1. Шта је машинско учење?
  2. Преглед Спарк МЛлиб-а
  3. Спарк МЛлиб Тоолс
  4. МЛлиб алгоритми
  5. Случај употребе - систем препоруке за филмове

Шта је машинско учење?

Развијено из проучавања препознавања образаца и теорије рачунарског учења у вештачкој интелигенцији, машинско учење истражује проучавање и конструкцију алгоритама који могу да уче и израђују предвиђања на основу података - такви алгоритми превазилазе праћење строго статичних упутстава програма доношењем предвиђања или одлука заснованих на подацима. , кроз изградњу модела на основу узорака.



Машинско учење - Спарк МЛлиб - Едурека Фигура: Алати за машинско учење

Машинско учење је уско повезано са рачунарском статистиком, која се такође фокусира на предвиђање коришћењем рачунара. Има јаке везе са математичком оптимизацијом, која испоручује домене метода, теорије и примене на терену. У оквиру аналитике података, машинско учење је метода која се користи за осмишљавање сложених модела и алгоритама који се подвргавају предвиђању које је у комерцијалној употреби познато као предиктивна аналитика.

Постоје три категорије задатака машинског учења:



  1. Надгледано учење : Надгледано учење је место где имате улазне променљиве (к) и излазну променљиву (И) и користите алгоритам да бисте научили функцију мапирања од улаза до излаза.
  2. Учење без надзора : Учење без надзора је врста алгоритма машинског учења која се користи за извлачење закључака из скупова података који се састоје од улазних података без означених одговора.
  3. Учење ојачања : Рачунарски програм комуницира са динамичним окружењем у којем мора да постигне одређени циљ (на пример вожња возилом или играње игре против противника). Програм пружа повратне информације у смислу награда и казни док се креће кроз свој проблем простор.Овај концепт назива се учвршћивањем.

Преглед Спарк МЛлиб-а

Спарк МЛлиб се користи за извођење машинског учења у Апацхе Спарк-у. МЛлиб се састоји од популарних алгоритама и услужних програма.

МЛлиб Преглед:

  • искра.мллиб садржи оригинални АПИ изграђен на врху РДД-ова. Тренутно је у режиму одржавања.
  • искра.мл пружа АПИ вишег нивоа изграђен на врху ДатаФрамес-а заизградња МЛ цевовода. искра.мл је тренутно примарни АПИ за машинско учење за Спарк.

Спарк МЛлиб Тоолс

Спарк МЛлиб нуди следеће алате:

  • МЛ алгоритми: МЛ алгоритми чине језгро МЛлиб-а. Ту спадају уобичајени алгоритми учења као што су класификација, регресија, кластерисање и заједничко филтрирање.
  • Карактеристике: Карактеризација укључује издвајање, трансформацију, смањење димензија и избор карактеристика.
  • Цевоводи: Цевоводи пружају алате за конструкцију, процену и подешавање МЛ цевовода.
  • Упорност: Постојаност помаже у штедњи и учитавању алгоритама, модела и цевовода.
  • Комуналије: Комуналијеза линеарну алгебру, статистику и руковање подацима.

МЛлиб алгоритми

Популарни алгоритми и услужни програми у Спарк МЛлиб су:

  1. Основне статистике
  2. Регресија
  3. Класификација
  4. Систем препорука
  5. Груписање
  6. Смањење димензија
  7. Издвајање својстава
  8. Оптимизација

Погледајмо неке од њих детаљно.

Основне статистике

Основне статистике укључује најосновније технике машинског учења. Ови укључују:

  1. Резиме статистике : Примери укључују средњу вредност, варијансу, бројање, максимум, мин и нумНонЗерос.
  2. Корелације : Спеарман и Пеарсон су неки од начина за проналажење корелације.
  3. Слојевити узорковање : Ту спадају самплеБикеи и самплеБиКеиЕкацт.
  4. Хипотеза тестирање : Пеарсонов хи-квадрат тест пример је испитивања хипотеза.
  5. Стварање случајних података : РандомРДД, Нормал и Поиссон се користе за генерисање случајних података.

Регресија

Регресија анализа је статистички поступак за процену односа између променљивих. Укључује многе технике за моделирање и анализу неколико променљивих када је фокус на вези између зависне променљиве и једне или више независних променљивих. Прецизније, регресијска анализа помаже разумевању како се типична вредност зависне променљиве мења када се мења нека од независних променљивих, док се остале независне променљиве држе фиксно.

Регресијска анализа се широко користи за предвиђање и предвиђање, где се њена употреба значајно преклапа са областима машинског учења. Регресијска анализа се такође користи за разумевање које су од независних променљивих повезане са зависном променљивом и за истраживање облика ових односа. У ограниченим околностима, регресијска анализа може се користити за утврђивање узрочно-последичних веза између независних и зависних променљивих.

Класификација

Класификација је проблем идентификовања којој групи скупова (подпопулација) припада ново посматрање, на основу скупа података који садрже запажања (или случајеве) чије је чланство у категорији познато. То је пример препознавања образаца.

Овде би пример могао бити додељивање датог е-маил-а у класе „нежељене поште“ или „не-нежељене поште“ или додељивање дијагнозе датом пацијенту како је описано посматраним карактеристикама пацијента (пол, крвни притисак, присуство или одсуство одређених симптома, итд.).

Систем препорука

ДО систем препорука је подкласа система за филтрирање информација која покушава да предвиди „оцену“ или „преференцију“ коју би корисник дао ставци. Системи препоручивача постају све популарнији последњих година и користе се у разним областима, укључујући филмове, музику, вести, књиге, истраживачке чланке, упите за претрагу, друштвене ознаке и производе уопште.

Систем препорука обично даје листу препорука на један од два начина - кроз колаборативно филтрирање и филтрирање на основу садржаја или приступ заснован на личности.

  1. Сарадничко филтрирање приступа изградњи модела на основу корисниковог прошлог понашања (ставке које су претходно купљене или одабране и / или нумеричке оцене датој тим ставкама), као и сличних одлука које су донели други корисници. Овај модел се затим користи за предвиђање ставки (или оцена за ставке) које корисника могу занимати.
  2. Филтрирање засновано на садржају приступи користе низ дискретних карактеристика предмета како би се препоручили додатни елементи са сличним својствима.

Даље, ови приступи се често комбинују као системи хибридних препорука.

Груписање

Груписање је задатак груписања скупа објеката на такав начин да су објекти у истој групи (названи кластером) сличнији (у неком или другом смислу) једни другима него онима у другим групама (кластерима). Дакле, то је главни задатак истраживачког рударења података и уобичајена техника за статистичку анализу података, која се користи у многим пољима, укључујући машинско учење, препознавање образаца, анализу слика, проналажење информација, биоинформатику, компресију података и рачунарску графику.

Смањење димензија

Смањење димензија је процес смањења броја случајних променљивих које се разматрају, добијањем скупа главних променљивих. Може се поделити на избор карактеристика и издвајање карактеристика.

програм за сортирање спајања у јави
  1. Избор особина: Избор обележја проналази подскуп изворних променљивих (такође названих обележја или атрибути).
  2. Издвајање својстава: Ово трансформише податке у високодимензионалном простору у простор мање димензија. Трансформација података може бити линеарна, као у Анализи главних компонената (ПЦА), али такође постоје многе технике смањења нелинеарне димензионалности.

Издвајање својстава

Издвајање својстава полази од почетног скупа измерених података и гради изведене вредности (карактеристике) чија је намена да буду информативне и не-сувишне, олакшавајући наредне кораке учења и генерализације, а у неким случајевима водећи ка бољим људским интерпретацијама. Ово је повезано са смањењем димензионалности.

Оптимизација

Оптимизација је избор најбољегелемент (с обзиром на неки критеријум) из неког скупа доступних алтернатива.

У најједноставнијем случају, проблем оптимизације састоји се од максимизирања или минимизирања стварне функције систематским одабиром улазних вредности из дозвољеног скупа и израчунавањем вредности функције. Генерализација теорије и техника оптимизације на друге формулације обухвата велико подручје примењене математике. Уопштеније, оптимизација укључује проналажење „најбоље доступних“ вредности неке циљне функције која има задати домен (или улаз),укључујући низ различитих врста објективних функција и различитих типова домена.

Случај употребе - систем препоруке за филмове

Изјава о проблему: Да направимо систем за препоруку филмова који препоручује филмове на основу корисничких преференција помоћу Апацхе Спарк-а.

Наши захтеви:

Дакле, процијенимо захтјеве за изградњу нашег система за препоруку филмова:

  1. Обрадите огромну количину података
  2. Улаз из више извора
  3. Једноставан за коришћење
  4. Брза обрада

Као што можемо проценитиза наше захтеве потребан нам је најбољи алат за велике податке за обраду великих података у кратком времену. Стога, Апацхе Спарк је савршен алат за примену нашег система за препоруку филмова.

Погледајмо сада дијаграм тока за наш систем.

Као што видимо, следеће користи Стреаминг из Спарк Стреаминг-а. Можемо стримовати у реалном времену или читати податке са Хадооп ХДФС-а.

Добивање скупа података:

За наш систем за препоруку филмова можемо да добијемо оцене корисника са многих популарних веб локација као што су ИМДБ, Роттен Томатоес и Тимес Мовие Ратингс. Овај скуп података доступан је у многим форматима као што су ЦСВ датотеке, текстуалне датотеке анд базе података. Податке можемо уживо преносити са веб локација или их преузимати и чувати у њиманаш локални систем датотека или ХДФС.

Скуп података:

Доња слика показује како можемо прикупити скуп података са популарних веб локација.

Једном када податке усмеримо у Спарк, изгледа некако овако.

Машинско учење:

Читав систем препорука заснован је на алгоритму машинског учења Наизменично најмање квадрата . Овде је АЛС врста регресионе анализе где се регресија користи за цртање линије између тачака података на такав начин да је сума квадрата удаљености од сваке тачке података сведена на минимум. Дакле, овај ред се затим користи за предвиђање вредности функције тамо где задовољава вредност независне променљиве.

Плава линија на дијаграму је најприкладнија регресиона линија. За ову линију вредност димензије Д је минимална. Све остале црвене линије увек ће бити удаљене од скупа података у целини.

Примена Спарк МЛлиб:

  1. Користићемо колаборативно филтрирање (ЦФ) за предвиђање оцена корисника за одређене филмове на основу њихових оцена за друге филмове.
  2. Затим ово сарађујемо са оценом других корисника за тај филм.
  3. Да бисмо добили следеће резултате из нашег машинског учења, морамо да користимо Спарк СКЛ-ов ДатаФраме, Датасет и СКЛ Сервице.

Ево псеудо кода за наш програм:

импорт орг.апацхе.спарк.мллиб.рецоммендатион.АЛС импорт орг.апацхе.спарк.мллиб.рецоммендатион.Цатинг импорт орг.апацхе.спарк.СпаркЦонф // Увоз осталих потребних објеката пакета Филм {деф маин (аргс: Арраи [Стринг] ) {вал цонф = нев СпаркЦонф (). сетАппНаме ('Мовие'). сетМастер ('лоцал [2]') вал сц = нев СпаркЦонтект (цонф) вал равДата = сц.тектФиле ('* Читање података из ЦСВ датотеке филма * ') //равДата.фирст () вал равРатингс = равДата.мап (* Поделити равДата на граничнику картице *) вал ратингс = равРатингс.мап {* Мапа случаја низа Усер, Мовие анд Ратинг *} // Обука модела података вал = АЛС.траин (оцене, 50, 5, 0,01) модел.усерФеатурес модел.усерФеатурес.цоунт модел.продуцтФеатурес.цоунт вал предвитедРатинг = * Предвиђање за корисника 789 за филм 123 * вал усерИд = * Корисник 789 * вал К = 10 вал топКРецс = модел.рецоммендПродуцтс (* Препоручити за корисника за одређену вредност К *) принтлн (топКРецс.мкСтринг ('')) вал мовиес = сц.тектФиле ('* Читај податке са листе филмова *') вал титле = мовиес.мап (линија => лине.сплит ('|'). таке ( 2)). Мап (арраи => (арраи (0) .тоИнт, арраи (1))). ЦоллецтАсМап () вал титлеРДД = мовиес.мап (лине => лине.сплит ('|'). Таке (2) ) .мап (низ => (низ (0) .тоИнт, низ (1))). цацхе () наслови (123) вал филмовиФорУсер = оцене. * Потражите корисника 789 * вал склЦонтект = * Створите СКЛ контекст * вал филмовиПрепоручује се = склЦонтект. * Направите ДатаФраме од препоручених филмова * мовиесРецоммендед.регистерТемпТабле ('мовиесРе рецоммендТабле') склЦонтект.скл ('Изаберите број (*) из мовиесРецоммендедТабле'). фореацх (принтлн) филмови за корисника. * Сортирајте оцене за корисника 789 * .мап (* Повежите оцену са насловом филма *). * Одштампајте оцену * вал резултати = мовиесФорУсер.сортБи (-_. Оцена) .таке (30) .мап (оцена => (наслови (оцена.производ), оцена.рејтинг))}}

Једном када генеришемо предвиђања, можемо користити Спарк СКЛ за чување резултата у РДБМС систему. Даље, ово се може приказати на веб апликацији.

Резултати:

Фигура: Филмови препоручени за корисника 77

Ура! Стога смо успешно креирали систем за препоруку филмова користећи Апацхе Спарк. Овим смо покрили само један од многих популарних алгоритама које Спарк МЛлиб нуди. Сазнаћемо више о машинском учењу у предстојећим блоговима о алгоритмима науке о подацима.

Напредујући, можете да наставите да учите Апацхе Спарк помоћу Водича за Спарк, Водича за Спарк Стреаминг, и Спарк Интервју питања.Едурека је посвећена пружању најбољег могућег искуства учења на мрежи.

Погледајте наше и ако желите да научите Спарк и изградите каријеру у домену Спарк-а и изградите стручност за обављање велике обраде података користећи РДД, Спарк Стреаминг, СпаркСКЛ, МЛлиб, ГрапхКс и Сцала са стварним животним случајевима.