Տվյալների մայնինգ

Տվյալների մայնինգը կամ տվյալների հետազոտումը օրինաչափությունների հայտնաբերման գործընթացն է մեծ տվյալների ամբողջության մեջ, որը ներառում է մեքենայական ուսուցման, տվյալների բազայի համակարգերի և վիճակագրության մեթոդներ։  Տվյալների հետազոտումը համակարգչային գիտության և վիճակագրության միջդիսցիպլինար ենթաճյուղ է, որի նպատակն է ՙՙխելացի՚՚ մեթոդներով տվյալների ամբողջությունից տեղեկատվության ստացումն ու վերափոխումը հասկանալի կառուցվածքի՝ հետագա օգտագործման համար ։ Տվյալների հետազոտումը «տվյալների բազայում գիտելիքների հայտնաբերման» գործընթացի՝ KDD-ի վերլուծության քայլն է ։ Բացի վերլուծությունից, այն ներառում է նաև տվյալների բազայի և տվյալների կառավարման ասպեկտներ, տվյալների նախնական վերամշակում, մոդելի և եզրակացության նկատառումներ, հետաքրքրության չափումներ, բարդությունների նկատառումներ, կառուցվածքի հետագա վերամշակում, վիզուալացում և առցանց թարմացում։
Տվյալների հետազոտման նպատակը մեծ քանակությամբ տվյալներից օրինաչափությունների և տեղեկատվության դուրսբերումն է։ Այն նաև կիրառվում է լայնածավալ տվյալների կամ տեղեկատվության մշակման տարբեր ձևերի (հավաքում, արտահանում, պահպանում, վերլուծություն և վիճակագրություն), ինչպես նաև համակարգչային որոշումների աջակցման համակարգի (computer decision support system) կիրառման մեջ, ներառյալ արհեստական բանականության (օրինակ՝ մեքենայական ուսուցում) և բիզնեսի ռազմավարության և տեխնոլոգիաների (business intelligence) մեջ։ «Տվյալների հետազոտում. մեքենայական ուսուցման գործիքներ և տեխնիկա Java-ով»  գիրքը, որն ընդգրկում է հիմնականում մեքենայական ուսուցման մասին նյութեր, սկզբնապես պետք է անվանվեր պարզապես «Գործնական մեքենայական ուսուցում», և տվյալների հետազոտում տերմինը ավելացվել է միայն մարքեթինգային նպատակներով ։
Տվյալների հետազոտման իրական խնդիրը մեծ քանակությամբ տվյալների մասնակիորեն կամ ամբողջությամբ ավտոմատացված վերլուծությունն է, որպեսզի գտնենք նախկինում անհայտ, հետաքրքիր օրինաչափություններ, ինչպիսիք են տվյալների խմբերը ( կլաստներերի վերլուծություն ), անսովոր գրանցումները (անոմալիաների հայտնաբերում) և կախվածությունը։ Այս նմուշները այնուհետև կարող են դիտվել որպես մուտքային տվյալների ամփոփում և կարող են օգտագործվել հետագա վերլուծության կամ, օրինակ, մեքենայական ուսուցման և կանխատեսման վերլուծության մեջ։ Օրինակ, տվյալների հետազոտության մի քայլը կարող է տվյալները բաժանել մի քանի խմբերի, որոնք այնուհետև կարող են օգտագործվել որոշումների աջակցության համակարգի միջոցով ավելի ճշգրիտ կանխատեսումներ կատարելու համար։ Տվյալների հավաքագրումը, տվյալների նախապատրաստումը, արդյունքների մեկնաբանումը և հաշվետվությունը չեն հանդիսանում տվյալների հետազոտման մաս, բայց պատկանում են ընդհանուր KDD գործընթացին՝ որպես լրացուցիչ քայլեր։
Տվյալների վերլուծության և տվյալների հետազոտման միջև տարբերությունն այն է, որ տվյալների վերլուծությունն օգտագործվում է տվյալների բազայում մոդելների և վարկածների փորձարկման համար, օրինակ՝ շուկայավարման արշավի արդյունավետությունը վերլուծելու համար՝ անկախ տվյալների քանակությունից։ Տվյալների հետազոտումն իրականացվում է մեքենայական ուսուցման և վիճակագրական մոդելների միջոցով՝ մեծ ծավալի տվյալների թաքնված օրինաչափությունները բացահայտելու համար ։
Տվյալների աղավաղում, տվյալների ֆիշինգ և տվյալների զննում տերմինները վերաբերում են տվյալների հետազոտման մեթոդների օգտագործմանը` ավելի մեծ թվով տվյալների ընտրանքներ կազմելու համար, որոնք կարող են շատ փոքր լինել վավերության վերաբերյալ հուսալի վիճակագրական եզրակացություններ կատարելու համար։ Այնուամենայնիվ, այս մեթոդները կարող են օգտագործվել նոր վարկածներ ստեղծելու համար՝ տվյալների ավելի մեծ քանակների ստուգման համար։


== Էթիմոլոգիա ==
1960-ական թվականներին վիճակագիրներն ու տնտեսագետները օգտագործում էին տվյալների ֆիշինգ կամ տվյալների աղավաղում տերմինները բնութագրելու համար տվյալների վերլուծությունը առանց առաջնային վարկածի, ինչը տվյալների վերլուծության վատ ձև էր համարվում։ «Տվյալների հետազոտում» տերմինը օգտագործվել է նաև տնտեսագետ Մայքլ Լոուելի կողմից 1983-ին«Տնտեսագիտական ուսումնասիրությունների ակնարկ» ամսագրում տպագրված հոդվածում ։
Տվյալների հետազոտում տերմինը ի հայտ է եկել 1990 թ.-ին։ 1980-ականներին կարճ ժամանակով օգտագործվել է «տվյալների բազաների հետազոտում»  արտահայտությունը, բայց, քանի որ այն ապրանքային նշան է ստացել Սան Դիեգոյի կենտրոնում գործող HNC ընկերության կողմից՝ հիմնելու իրենց տվյալների բազայի հետազոտման կայանը, մասնագետները տերմինը վերանվանեցին տվյալների հետազոտում: Օգտագործվում են նաև այլ տերմիններ՝ տեղեկատվության հավաքում և պահպանում, տեղեկատվության բացահայտում և այլն։ Գրեգորի Պիացեցկի-Շապիրոն առաջարկել է «գիտելիքներ տվյալների բազաների վերաբերյալ» տերմինը նույն թեմայով առաջին սեմինարի համար (KDD-1989), և այս տերմինը ավելի տարածված դարձավ AI և մեքենայական ուսուցման ոլորտներում։ Ներկայումս, տվյալների հետազոտում տերմինը ավելի տարածված է բիզնեսի ոլորտներում ։
Ակադեմիական ոլորտում հետազոտությունները սկսվել են 1995 թվականից, երբ Մոնրեալում կայացավ տվյալների հետազոտման և գիտելիքների բացահայտման առաջին միջազգային համաժողովը ( KDD-95 ) ՝ AAAI-ի հովանավորությամբ։ Այն համանախագահում էին Ուսամա Ֆայադը և Ռամասամի Ութուրուսամին։ KDD միջազգային կոնֆերանսը դարձավ տվյալների հետազոտման առաջին խորհրդաժողովը, որին ներկացված հետազոտական փաստաթղթերից ընդունվել է 18%-ից քիչը։ Data Mining and Knowledge Discovery ամսագիրը ոլորտի առաջնահերթ հետազոտական ամսագիր է։


== Նախապատմություն ==
Տվյալներից ընտրանքներ կազմելը դարեր շարունակ կատարվել է ձեռքով։ Տվյալներում օրինաչափությունների հայտնաբերման սկզբնական մեթոդներից են Բայեսի թեորեմը (1700-ականներ) և ռեգրեսիոն վերլուծությունը (1800-ականներ)։ Համակարգչային տեխնոլոգիաների տարածումը փոփոխել են տվյալների հավաքագրման, պահպանման և մանիպուլյացիայի ձևերը։ Տվյալների ծավալներն աճել են իրենց չափերով և բարդությամբ, ինչը տվյալների մշակման ավտոմատացման անհրաժեշտություն է առաջացրել, որի համար սկսել են օգտագործել նաև համակարգչային գիտության հայտնագործությունները, մասնավորապես՝ մեքենայական ուսուցման ոլորտում, ինչպիսիք են նեյրոնային ցանցերը, կլաստերի վերլուծությունը, գենետիկական ալգորիթմները (1950-ականներ), որոշման ծառերը և որոշումների կանոնները (1960-ականներ) և օժանդակ վեկտորային մեքենաները (1990-ականներ)։ Տվյալների հետազոտումը այս մեթոդների կիրառման միջոցով թաքնված օրինաչափությունների բացահայտումն է։ Այն կապ է ստեղծում կիրառական վիճակագրության, արհեստական բանականության (որոնք սովորաբար ապահովում են մաթեմատիկական հիմքը) և տվյալների բազաների կառավարման միջև` մշակելով այն եղանակները, որոնց միջոցով տվյալները պահպանվում և ինդեքսավորվում են տվյալների բազաներում, ինչը հնարավորություն է տալիս ավելի արդյունավետ կիրառել սովորելու և հայտնագործելու ալգորիթմները, վերջինս էլ թույլ է տալիս այդպիսի մեթոդները կիրառվել ավելի մեծ թվով տվյալների վրա։


== Ընթացքը ==
KDD գործընթացի հիմնական փուլերն են.

Ընտրություն
Նախնական վերամշակում
Վերափոխում
Տվյալների հետազոտում կամ մայնինգ
Մեկնաբանում/գնահատում։Գոյություն ունեն նաև այլ բաժանումներ, օրինակ՝ CRISP-DM, որը սահմանում է վեց փուլ.

Բիզնեսի ընկալում
Տվյալների ընկալում
Տվյալների նախապատրաստում
Մոդելավորում
Գնահատում
ՏեղակայումԿա նաև ավելի պարզեցված տարբերակը՝  (1) նախնական վերամշակում, (2) տվյալների հետազոտում և (3) արդյունքների վավերացումը։
2002, 2004, 2007 և 2014 թվականներին անցկացված հարցումները ցույց են տվել, որ CRISP-DM մեթոդաբանությունը ամենաշատ օգտագործվողն է։ Այս հարցումներում նշված տարբերակներից մեկը SEMMA- ն էր։ Այնուամենայնիվ, CRISP-DM օգտագործողների թիվը 3-4 անգամ ավելի շատ է։ Հետազոտողների մի քանի թիմեր հրապարակել են տվյալների հետազոտման գործընթացների մոդելների մասին ակնարկներ, իսկ Ազևեդոն և Սանտոսը 2008թ.-ին կատարել են CRISP-DM-ի և SEMMA-ի համեմատությունը։


=== Նախնական վերամշակում ===
Նախքան տվյալների հետազոտման ալգորիթմների օգտագործումը անհրաժեշտ է հավաքել նպատակային օգտագործման տվյալներ։ Քանի որ տվյալների հետազոտումը կարող է բացահայտել միայն տվյալներում առկա օրինաչափությունները, նպատակային օգտագործման տվյալները պետք է լինեն բավականաչափ մեծ, որպեսզի պարունակեն այդ օրինաչափությունները, և միևնույն ժամանակ հակիրճ, որպեսզի հետազոտումը կատարվի խելամիտ ժամկետներում։ Տվյալների հիմնական աղբյուրը  տվյալների պահեստն է։ Տվյալների հետազոտումից առաջ դրանց նախամշակումը անհրաժեշտ է բազմափոփոխական տվյալների վերլուծության համար։ Նպատակային տվյալներն այնուհետև մաքրվում են։ Տվյալների մաքրումը հեռացնում է աղմուկ և/կամ բացակայող տվյալներ պարունակող դիտարկումները։


=== Տվյալների հետազոտում/մայնինգ ===
Տվյալների հետազոտումը ներառում է վեց հիմնական քայլ.

Անոմալիայի հայտնաբերում (հեռավորության / փոփոխության / շեղման հայտնաբերում) - Անսովոր տվյալների նույնականացում, որոնք կարող են հետաքրքրել, կամ տվյալների սխալներ, որոնք պահանջում են հետագա հետազոտություն։
Ասոցիացիայի կանոնների ուսուցում (կախվածության մոդելավորում) - փոփոխականների միջև փոխհարաբերությունների որոնում։ Օրինակ, սուպերմարկետը կարող է հավաքել տվյալներ հաճախորդի գնման սովորությունների վերաբերյալ։ Օգտագործելով ասոցիացիայի կանոնների ուսուցումը՝ սուպերմարկետը կարող է որոշել, թե որ ապրանքատեսակներն են հաճախ միասին ձեռք բերվում, և օգտագործել այս տեղեկատվությունը մարքեթինգային նպատակներով։ Սա երբեմն կոչվում է շուկայական զամբյուղի վերլուծություն։
Կլաստերի վերլուծություն - տվյալների մեջ խմբերի/կլաստերների հայտնաբերման խնդիրն է, որոնց ներսում գտնվող տվյալները ինչ-որ կերպ նման են միմյանց և տարբեր՝ մյուս խմբերին պատկանող տվյալներից։ Այդ խմբերը նախապես հայտնի չեն։
Դասակարգում/կլասիֆիկացիա - այս դեպքում տվյալների կառուցվածքը արդեն իսկ հայտնի է և խնդիրը այդ կառուցվածքը նոր տվյալների վրա կիրառելն է։ Օրինակ, էլեկտրոնային նամակները կարելի է որևէ ծրագրի միջոցով դասակարգել որպես սովորական նամակ կամ որպես սպամ։
Ռեգրեսիա - փորձում է գտնել այնպիսի ֆունկցիա, որը, գնահատելով տվյալների միջև կապը, տվյալները մոդելավորում է նվազագույն սխալով։
Ամփոփում - տվյալների հակիրճ նկարագրություն՝ ներառյալ դրանց պատկերում/վիզուալացում և զեկույցների ստեղծման ավելի կոմպակտ ներկայացում։


=== Արդյունքների վավերացում ===

Տվյալների հետազոտումը կարող է ակամայից չարաշահվել, և այնուհետև կարող է հանգեցնել այնպիսի արդյունքների, որոնք թվում են նշանակալի, բայց իրականում չեն կանխատեսում ապագա պահվածքը և չեն կարող վերարտադրվել տվյալների նոր նմուշի վրա և դժվար թե օգտագործման համար պիտանի լինեն։ Սա հաճախ հանգեցնում է չափազանց շատ վարկածներ ուսումնասիրելուն և ոչ թե վիճակագրական վարկածների պատշաճ ստուգում կատարելուն։ Այս խնդրի պարզ տարբերակը մեքենայական ուսուցման մեջ հայտնի է որպես գերակատարում/օվերֆիթինգ, բայց նույն խնդիրը կարող է առաջանալ գործընթացի տարբեր փուլերում, ուստի վերապատրաստման/թեստավորման մոդելը միշտ չէ, որ կարող է կանխարգելել գերակատարումը։
KDD-ի վերջին քայլը հաստատումն է, որ տվյալների հետազոտման ալգորիթմների միջոցով ստացված օրինաչափությունները տեղի ունեն նաև ավելի մեծ տվյալների համար։ Տվյալների հետազոտման ալգորիթմների կողմից հայտնաբերված ոչ բոլոր օրինաչափությունները կարող են լինել վավեր։ Երբեմն տվյալների հետազոտման ալգորիթմները կարող են վերապատրաստման տվյալների (training set) համար գտնել այնպիսի օրինաչափություններ, որոնք ընդհանուր տվյալներում առկա չեն։ Սա կոչվում է գերակատարում։ Դա հաղթահարելու համար օգտագործվում են տվյալների թեստային տվյալներ, որոնց վրա տվյալների հետազոտման ալգորիթմը նախկինում չի կիրառվել։ Գտնված օրինաչափությունները կիրառվում են այս տվյալների վրա, և արդյունքում ստացված արդյունքը համեմատվում է ցանկալի արդյունքի հետ։ Օրինակ, տվյալների հետազոտման ալգորիթմը, որը փորձում է տարբերակել սպամը սովորական էլեկտրոնային նամակից, սովորում է ընտրանքային էլեկտրոնային հասցեների վերապատրաստման նմուշի վրա։ Ստացված օրինաչափությունները կիրառվում են էլեկտրոնային փոստի թեստային նմուշի վրա, որի վրա այն չի սովորել։ Սրա ճշգրտությունը այնուհետև կարելի է չափել ճիշտ դասակարգված էլեկտրոնային նամակերի քանակով։ Ալգորիթմի գնահատման համար կարող են օգտագործվել մի քանի վիճակագրական մեթոդներ, ինչպիսիք են օրինակ ROC կորերը։
Եթե սովորված օրինաչափությունները չեն համապատասխանում ցանկալի չափանիշներին, ապա անհրաժեշտ է վերագնահատել և փոխել նախամշակման և տվյալների հետազոտման քայլերը։ Եթե սովորած օրինաչափությունները բավարարում են ցանկալի չափանիշներին, ապա վերջնական քայլը սովորած օրինաչափությունները մեկնաբանելն ու գիտելիքի վերածելն է։


== Հատկանշական օգտագործումներ ==
Տվյալների հետազոտումն օգտագործվում է այն ոլորտներում, որտեղ այսօր առկա են թվային տվյալներ։ Տվյալների հետազոտման ուշագրավ օրինակներ կարելի է գտնել բիզնեսի, բժշկության, գիտության և վերահսկողության ոլորտներում։


== Գաղտնիության հետ կապված մտահոգություններ և էթիկա ==
Տվյալների հետազոտումը հաճախ կապված է մարդկանց վարքի վերաբերյալ տեղեկատվության հետ (էթիկական և այլ)։
Տվյալների հետազոտումը որոշ դեպքերում կարող է առաջացնել խնդիրներ գաղտնիության, օրինականության և էթիկայի հետ կապված։ Մասնավորապես, երկրի անվտանգության կամ իրավապահ մարմինների համար տվյալների հետազոտությունները կարող են մտահոգությունների տեղիք տալ ։
Տվյալների հավաքագրումից առաջ անհրաժեշտ է հաշվի առնել ներքոնշյալ կետերը.

տվյալների հավաքագրման և հետազոտման նպատակը;
ինչպես են օգտագործվելու տվյալները;
ով հասանելիություն կունենա տվյալներին և օգտագործել դրանք;
անվտանգության կարգավիճակը՝ կապված տվյալներին հասանելիության հետ;
ինչպես կարող են հավաքագրված տվյալները թարմացվել։Տվյալները կարող են փոփոխվել այնպես, որ պարունակեն անանուն ինֆորմացիա, որպեսզի անհատները չնույնականացվեն։ Այնուամենայնիվ, նույնիսկ «անանունացված» տվյալները կարող են պարունակել բավականաչափ տեղեկատվություն անձանց նույնականացման համար։


=== Տվյալների հետազոտման անվճար ծրագիր և հավելվածներ ===
Հետևյալ ծրագրերը հասանելի են անվճար / բաց աղբյուրի լիցենզիայի ներքո։ Հավելվածի աղբյուրի կոդը ևս հասանելի է հանրությանը։

Carrot2 . Տեքստի և որոնման արդյունքների կլաստերավորման շրջանակ։
Chemicalize.org . Քիմիական կառուցվածքի հետազոտման և վեբ որոնման համակարգ։
ELKI . Համալսարանական հետազոտական նախագիծ` կլաստերի խորը վերլուծությամբ և տարբերվող կետերի հայտնաբերման մեթոդներով, որոնք գրված են Java լեզվով։
GATE . Բնական լեզվի մշակման  գործիք։
KNIME . Konstanz Information Miner՝ օգտագործողի համար հարմար և տվյալների համապարփակ վերլուծության շրջանակ։
Զանգվածային առցանց վերլուծություն (MOA) . Իրական ժամանակի մեծ տվյալների հոսքի հետազոտում՝ Java ծրագրավորման լեզվով։
MEPX - ռեգրեսիայի և դասակարգման խնդիրների խաչաձև պլատֆորմային գործիք ՝ գենետիկ ծրագրավորման տարբերակի հիման վրա։
ML-Flex. Ծրագրային փաթեթ, որն օգտագործողներին հնարավորություն է տալիս ինտեգրվել երրորդ կողմից ծրագրավորման ցանկացած լեզվով գրված մեքենաշինական փաթեթների հետ, կատարել կլաստերային վերլուծություններ և պատրաստել դասակարգման ստացված արդյունքների վերաբերյալ զեկույցներ HTML ֆորմատով։
mlpack . պատրաստի օգտագործման մեքենայական ալգորիթմների հավաքածու, որը գրված է C ++ լեզվով։
NLTK ( Բնական լեզվի գործիքակազմ ). Սիմվոլների և վիճակագրական բնական լեզվի մշակման համար Python ծրագրավորման լեզվով գրված գրադարանների և ծրագրերի հավաքակազմ։
OpenNN . Նեյրոնային ցանցերի բաց գրադարան։
Orange . Բաղադրիչների վրա հիմնված տվյալների հետազոտման և մեքենայական ուսուցման ծրագրային հավաքակազմ, որը գրված է Python լեզվով։
R. Ծրագրավորման լեզու և ծրագրաային միջավայր վիճակագրական հաշվարկների, տվյալների հետազոտման և գրաֆիկայի համար։ Այն GNU ծրագրի մի մասն է։
scikit-Learn- ը Python ծրագրավորման լեզվի համար բաց գրադարան է։
Torch . Խորը ուսուցման համար նախատեսված բաց գրադարան՝ Lua ծրագրավորման լեզվի և գիտական հաշվարկների շրջանակի համար՝ մեքենայական ուսուցման ալգորիթմների լայն աջակցությամբ։
UIMA . UIMA- ն (Չկառուցված տեղեկատվության կառավարման համակարգ) չկառուցված բովանդակության վերլուծության համար բաղկացուցիչ հիմք է, ինչպիսիք են տեքստը, աուդիոն և վիդեոն, որոնք ի սկզբանե մշակվել են IBM-ի կողմից։
Weka . Java- ի ծրագրավորման լեզվով գրված մեքենայական ուսուցման ծրագրերի խումբ է։


== Ծանոթագրություններ ==