Մեքենայի ուսուցում – գծային ռեգրեսիա

Մեքենայի ուսուցում – գծային ռեգրեսիա

Ռեգրեսիա

Ռեգրեսիա տերմինն օգտագործվում է, երբ փորձում եք գտնել փոփոխականների միջև կապը:

Մեքենայի ուսուցման մեջ և վիճակագրական մոդելավորման մեջ այդ հարաբերությունն օգտագործվում է ապագա իրադարձությունների արդյունքը կանխատեսելու համար:


գծային Հետընթաց

Գծային ռեգրեսիան օգտագործում է տվյալների կետերի փոխհարաբերությունները բոլորի միջով ուղիղ գիծ քաշելու համար:

Այս տողը կարող է օգտագործվել ապագա արժեքները կանխատեսելու համար:

Մեքենայի ուսուցման մեջ ապագայի կանխատեսումը շատ կարևոր է:


Ինչպես է դա աշխատում?

Python-ն ունի տվյալների կետերի միջև կապ գտնելու և գծային ռեգրեսիայի գիծ գծելու մեթոդներ: Մենք ձեզ ցույց կտանք, թե ինչպես օգտագործել այս մեթոդները՝ մաթեմատիկական բանաձևով անցնելու փոխարեն:

Ստորև բերված օրինակում x առանցքը ներկայացնում է տարիքը, իսկ y առանցքը՝ արագությունը: Մենք գրանցել ենք 13 մեքենաների տարիքը և արագությունը, երբ նրանք անցնում էին վճարովի խցիկով։ Եկեք տեսնենք, թե արդյոք մեր հավաքած տվյալները կարող են օգտագործվել գծային ռեգրեսիայի մեջ.

Օրինակ

Սկսեք ցրման սյուժե նկարելով.

Արդյունքը:

Գործարկման օրինակ »

Օրինակ

Ներմուծում scipy և գծեք գծային ռեգրեսիայի գիծը.

Արդյունքը:

Գործարկման օրինակ »

Բացատրված օրինակ

Ներմուծեք ձեզ անհրաժեշտ մոդուլները:

Matplotlib մոդուլի մասին կարող եք ծանոթանալ մեր կայքում Matplotlib ձեռնարկ.

Դուք կարող եք իմանալ SciPy մոդուլի մասին մեր կայքում SciPy ձեռնարկ.

import matplotlib.pyplot as plt
from scipy import stats

Ստեղծեք զանգվածներ, որոնք ներկայացնում են x և y առանցքի արժեքները.

x = [5,7,8,7,2,17,2,9,4,11,12,9,6]
y = [99,86,87,88,111,86,103,87,94,78,77,85,86]

Կատարեք մի մեթոդ, որը վերադարձնում է Գծային ռեգրեսիայի որոշ կարևոր հիմնական արժեքներ.

slope, intercept, r, p, std_err = stats.linregress(x, y)

Ստեղծեք գործառույթ, որն օգտագործում է slope և intercept արժեքներ՝ նոր արժեք վերադարձնելու համար: Այս նոր արժեքը ցույց է տալիս, թե որտեղ y առանցքի վրա կտեղադրվի համապատասխան x արժեքը.

def myfunc(x):
return slope * x + intercept

Գործարկեք x զանգվածի յուրաքանչյուր արժեքը ֆունկցիայի միջոցով: Սա կհանգեցնի նոր զանգվածի նոր արժեքներով y առանցքի համար.

mymodel = list(map(myfunc, x))

Նկարեք սկզբնական ցրման սյուժեն.

plt.scatter(x, y)

Գծե՛ք գծային ռեգրեսիայի գիծը.

plt.plot(x, mymodel)

Ցուցադրել դիագրամը.

plt.show()


R հարաբերությունների համար

Կարևոր է իմանալ, թե ինչպիսին է հարաբերությունը x առանցքի արժեքների և y առանցքի արժեքների միջև, եթե հարաբերություններ չկան, գծային ռեգրեսիան չի կարող օգտագործվել որևէ բան կանխատեսելու համար:

Այս հարաբերությունը՝ հարաբերակցության գործակիցը, կոչվում է r.

The r արժեքը տատանվում է -1-ից մինչև 1, որտեղ 0-ը նշանակում է ոչ մի կապ, իսկ 1-ը (և -1) նշանակում է 100% կապված:

Python-ը և Scipy մոդուլը կհաշվարկեն այս արժեքը ձեզ համար, ընդամենը պետք է այն կերակրել x և y արժեքներով:

Օրինակ

Որքանո՞վ են իմ տվյալները տեղավորվում գծային ռեգրեսիայի մեջ:

Փորձեք ինքներդ »

Նշում: Արդյունքը -0.76 ցույց է տալիս, որ կա հարաբերություն, ոչ կատարյալ, բայց դա ցույց է տալիս, որ մենք կարող ենք օգտագործել գծային ռեգրեսիան ապագա կանխատեսումների մեջ:


Կանխատեսել ապագա արժեքները

Այժմ մենք կարող ենք օգտագործել մեր հավաքած տեղեկատվությունը ապագա արժեքները կանխատեսելու համար:

Օրինակ. Փորձենք գուշակել 10 տարեկան մեքենայի արագությունը:

Դա անելու համար մեզ նույնն է պետք myfunc() գործառույթը վերը նշված օրինակից.

def myfunc(x):
return slope * x + intercept

Օրինակ

Կանխատեսեք 10 տարեկան մեքենայի արագությունը.

Գործարկման օրինակ »

Օրինակը կանխատեսում էր 85.6 արագություն, որը մենք կարող էինք կարդալ նաև դիագրամից.


Վատ տեղավորվե՞լ:

Եկեք ստեղծենք օրինակ, որտեղ գծային ռեգրեսիան լավագույն մեթոդը չի լինի ապագա արժեքները կանխատեսելու համար:

Օրինակ

Այս արժեքները x- և y-առանցքների համար պետք է հանգեցնեն գծային ռեգրեսիայի շատ վատ համապատասխանության.

Գործարկման օրինակ »

Իսկ r հարաբերությունների համար?

Օրինակ

Դուք պետք է ստանաք շատ ցածր r արժեքը:

Փորձեք ինքներդ »

Արդյունքը. 0.013 ցույց է տալիս շատ վատ հարաբերություններ և մեզ ասում է, որ այս տվյալների հավաքածուն հարմար չէ գծային ռեգրեսիայի համար:

ArmenianEnglish