Այս գրառումը կբացատրի Գծային ռեգրեսիան բազմաթիվ փոփոխականներով և դրա իրականացումը Python-ում:

Նախքան բազմակի գծային ռեգրեսիայի մեջ ավելի խորանալը, այս պոստում շրջադարձ կատարեք պարզ գծային ռեգրեսիայի վրա:



Մենք կօգտագործենք որոշ հավասարումներ և կոդեր այդ գրառման մեջ:

Բազմակի գծային ռեգրեսիա

Հիշեք պարզ գծային ռեգրեսիայի հավասարումը

Կանխատեսված պիտակները (y գլխարկ) կախված են միայն x հատկանիշից: Ի՞նչ անել, եթե մենք ունենք տվյալների հավաքածու մի քանի անկախ հատկանիշներով: Եթե ​​դա այդպես է, ապա մեզ անհրաժեշտ է բազմակի գծային ռեգրեսիա: Հավասարումը հետևյալն է.

որտեղ:

Yi=i-ի նմուշի կանխատեսված պիտակը

Xij = j-րդ հատկանիշները ith-պիտակի համար

W0 = ռեգրեսիայի ընդհատումը կամ քաշը

Wj= j-րդ հատկանիշի ռեգրեսիայի կշիռը

Ուշադրություն դարձրեք, որ երբ y պիտակները կախված են միայն մեկ x փոփոխականից, հավասարումը դառնում է պարզ գծային հավասարում y=w1x + w0:

Մենք կարող ենք գրել բազմակի գծային ռեգրեսիա մատրիցային նշումով

Գրադիենտ վայրէջք

Արժեքի ֆունկցիան, որը պետք է նվազագույնի հասցվի բազմակի գծային ռեգրեսիայում, միջին քառակուսի սխալն է.

մատրիցային ձևով ծախսերի ֆունկցիայի մասնակի ածանցյալը կարելի է գրել այսպես

Թարմացված կշիռները k+1 կրկնության վրա դառնում են

որտեղ ալֆա սովորելու արագությունն է:

Իրականացում

Հիշեք այն մոդելը, որը մենք գրել ենք Պարզ գծային ռեգրեսիայի համար

Մենք պատրաստվում ենք թարմացնել կոդը, այնպես որ այն կաշխատի նաև բազմակի գծային ռեգրեսիայի դեպքերի համար:

Թարմացրեք կոնստրուկտորը

Կոնստրուկտորում մենք պարզապես ավելացրել ենք սկզբնավորման կշիռների մատրիցը որպես մոդելի հատկություն:

Թարմացրեք համապատասխանության մեթոդը՝ հետևելով հետևյալ քայլերին.

  1. փոփոխել հատկանիշների մատրիցը` ավելացնելով 1 սյունակ, որի արժեքը հավասար է 1-ի որպես ընդհատում (w0)
  2. Նախաձեռնեք կշիռների մատրիցայի արժեքը զրոյի:
  3. 1-ից մինչև n կրկնությունների համար (iters դասի հատկություն)
  4. Հաշվեք կանխատեսման պիտակների մատրիցը՝ օգտագործելով նկար 3-ը:
  5. Հաշվեք սխալը հայտնի պիտակների մատրիցայի և 3-րդ քայլի կանխատեսված պիտակների միջև:
  6. Հաշվեք ծախսերի ֆունկցիայի մասնակի ածանցյալը՝ օգտագործելով նկարը: 6

7. Թարմացրեք քաշի մատրիցը` օգտագործելով 7-րդ նկարի հավասարումը:

Վերջապես կանխատեսման մեթոդի համար.

Եկեք ամփոփենք մեր նորացված մոդելը.

Նախքան մոդելը փորձարկելը մի քանի փոփոխական տվյալների հավաքածուների վրա, եկեք փորձարկենք մոդելը պարզ գծային ռեգրեսիայի դեպքի համար, մենք նորից կօգտագործենք նախորդ գրառման թեստային միավորների հավաքածուն:

MSE-ի ելքը մոտ 3.30 է, ինչը նույնն է, ինչ նախորդ մոդելը:

Եկեք փորձարկենք այս մոդելը բազմաչափ ռեգրեսիայի համար: Մենք պատրաստվում ենք օգտագործել Kaggle-ի բնակարանների գների տվյալների հավաքածուները: Ներբեռնեք և պահեք տվյալների հավաքածուների թղթապանակում:

Մենք պատրաստվում ենք կանխատեսել SalePrice, եկեք մի փոքր ուսումնասիրենք տվյալների հավաքածուները

df["SalePrice"].describe()
count      1460.000000
mean     180921.195890
std       79442.502883
min       34900.000000
25%      129975.000000
50%      163000.000000
75%      214000.000000
max      755000.000000
Name: SalePrice, dtype: float64

Եկեք տեսնենք SalePrice-ի բաշխման գրաֆիկը

Գների մեծ մասը գտնվում է 100K-200K միջակայքում, բայց, ըստ երևույթին, ավելի թանկ է:

Ինչ վերաբերում է այս պահին, մենք չենք ցանկանում ստանալ որևէ բացակայող արժեք մեր տվյալների հավաքածուներում: Այսպիսով, եկեք ստուգենք, թե որ սյունակներն են պարունակում բացակայող արժեքը

PoolQC          1453
MiscFeature     1406
Alley           1369
Fence           1179
FireplaceQu      690
LotFrontage      259
GarageYrBlt       81
GarageType        81
GarageFinish      81
GarageQual        81
GarageCond        81
BsmtFinType2      38
BsmtExposure      38
BsmtFinType1      37
BsmtCond          37
BsmtQual          37
MasVnrArea         8
MasVnrType         8
Electrical         1
Columns with missing values: 19

Այսպիսով, կան 19 սյունակներ, որոնց արժեքը բացակայում է, մենք բաց կթողնենք դրանք և կօգտագործենք մեկ այլ սյունակ ռեգրեսիաների համար: Մենք կօգտագործենք համեմատաբար բարձր հարաբերակցության սյունակներ, սա դրանցից մի քանիսն է.

               OverallQual  GrLivArea  GarageArea  SalePrice
OverallQual     1.000000   0.593007    0.562022   0.790982
GrLivArea       0.593007   1.000000    0.468997   0.708624
GarageArea      0.562022   0.468997    1.000000   0.623431
SalePrice       0.790982   0.708624    0.623431   1.000000

Սանդղակավորեք տվյալները, որպեսզի դրանք օգտագործվեն արագ

որտեղ μ-ը հատկանիշների միջինն է, իսկ σ՝ ստանդարտ շեղումը

Եվ հիմա մենք կարող ենք տեղավորել մեր տվյալների հավաքածուները

Եզրակացություն

Այս հոդվածում մենք սովորեցինք.

  1. Պարզ գծային հավասարման ընդհանրացում բազմակի գծային հավասարման
  2. Ստացվել է բազմակի գծային ռեգրեսիայի հավասարումները՝ և՛ հանրահաշվի, և՛ մատրիցային նշումների վրա:
  3. Գրադիենտ անկման իրականացում բազմակի գծային ռեգրեսիայի վրա

Խնդրում եմ, տարածեք այս գրառումը և ծափ տվեք, եթե ձեզ դուր եկավ: