Այս գրառումը կբացատրի Գծային ռեգրեսիան բազմաթիվ փոփոխականներով և դրա իրականացումը Python-ում:
Նախքան բազմակի գծային ռեգրեսիայի մեջ ավելի խորանալը, այս պոստում շրջադարձ կատարեք պարզ գծային ռեգրեսիայի վրա:
Մենք կօգտագործենք որոշ հավասարումներ և կոդեր այդ գրառման մեջ:
Բազմակի գծային ռեգրեսիա
Հիշեք պարզ գծային ռեգրեսիայի հավասարումը
Կանխատեսված պիտակները (y գլխարկ) կախված են միայն x հատկանիշից: Ի՞նչ անել, եթե մենք ունենք տվյալների հավաքածու մի քանի անկախ հատկանիշներով: Եթե դա այդպես է, ապա մեզ անհրաժեշտ է բազմակի գծային ռեգրեսիա: Հավասարումը հետևյալն է.
որտեղ:
Yi=i-ի նմուշի կանխատեսված պիտակը
Xij = j-րդ հատկանիշները ith-պիտակի համար
W0 = ռեգրեսիայի ընդհատումը կամ քաշը
Wj= j-րդ հատկանիշի ռեգրեսիայի կշիռը
Ուշադրություն դարձրեք, որ երբ y պիտակները կախված են միայն մեկ x փոփոխականից, հավասարումը դառնում է պարզ գծային հավասարում y=w1x + w0:
Մենք կարող ենք գրել բազմակի գծային ռեգրեսիա մատրիցային նշումով
Գրադիենտ վայրէջք
Արժեքի ֆունկցիան, որը պետք է նվազագույնի հասցվի բազմակի գծային ռեգրեսիայում, միջին քառակուսի սխալն է.
մատրիցային ձևով ծախսերի ֆունկցիայի մասնակի ածանցյալը կարելի է գրել այսպես
Թարմացված կշիռները k+1 կրկնության վրա դառնում են
որտեղ ալֆա սովորելու արագությունն է:
Իրականացում
Հիշեք այն մոդելը, որը մենք գրել ենք Պարզ գծային ռեգրեսիայի համար
Մենք պատրաստվում ենք թարմացնել կոդը, այնպես որ այն կաշխատի նաև բազմակի գծային ռեգրեսիայի դեպքերի համար:
Թարմացրեք կոնստրուկտորը
Կոնստրուկտորում մենք պարզապես ավելացրել ենք սկզբնավորման կշիռների մատրիցը որպես մոդելի հատկություն:
Թարմացրեք համապատասխանության մեթոդը՝ հետևելով հետևյալ քայլերին.
- փոփոխել հատկանիշների մատրիցը` ավելացնելով 1 սյունակ, որի արժեքը հավասար է 1-ի որպես ընդհատում (w0)
- Նախաձեռնեք կշիռների մատրիցայի արժեքը զրոյի:
- 1-ից մինչև n կրկնությունների համար (iters դասի հատկություն)
- Հաշվեք կանխատեսման պիտակների մատրիցը՝ օգտագործելով նկար 3-ը:
- Հաշվեք սխալը հայտնի պիտակների մատրիցայի և 3-րդ քայլի կանխատեսված պիտակների միջև:
- Հաշվեք ծախսերի ֆունկցիայի մասնակի ածանցյալը՝ օգտագործելով նկարը: 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
Սանդղակավորեք տվյալները, որպեսզի դրանք օգտագործվեն արագ
որտեղ μ-ը հատկանիշների միջինն է, իսկ σ՝ ստանդարտ շեղումը
Եվ հիմա մենք կարող ենք տեղավորել մեր տվյալների հավաքածուները
Եզրակացություն
Այս հոդվածում մենք սովորեցինք.
- Պարզ գծային հավասարման ընդհանրացում բազմակի գծային հավասարման
- Ստացվել է բազմակի գծային ռեգրեսիայի հավասարումները՝ և՛ հանրահաշվի, և՛ մատրիցային նշումների վրա:
- Գրադիենտ անկման իրականացում բազմակի գծային ռեգրեսիայի վրա
Խնդրում եմ, տարածեք այս գրառումը և ծափ տվեք, եթե ձեզ դուր եկավ: