Python yordamida oddiy chiziqli regressiya


Download 278.85 Kb.
Sana20.12.2022
Hajmi278.85 Kb.
#1037825
Bog'liq
7-8 mustaqil ish


Python yordamida oddiy chiziqli regressiya.
Regressiya tahlili bashorat qilishning eng keng tarqalgan usuli hisoblanadi. Chiziqli regressiya ma'lumotlar to'plami chiziqli korrelyatsiyaga ega bo'lsa va nomidan ko'rinib turibdiki, oddiy chiziqli regressiya bitta mustaqil o'zgaruvchiga (bashoratchi) va bitta qaram o'zgaruvchiga (javob) ega bo'lsa ishlatiladi.
Oddiy chiziqli regressiya tenglamasi y = a+bx ko'rinishida ifodalanadi, bunda x - izohli o'zgaruvchi, y - qaram o'zgaruvchi, b - koeffitsient va a - kesma.
Chiziqli regressiyada eng yaxshi mos chiziq ma'lumotlar nuqtalari bilan minimal vertikal masofaga ega bo'lgan chiziq bo'ladi. Mashhur usullardan biri eng kichik kvadrat usuli bo'lib, bu erda qoldiq kvadratlari yig'indisini minimallashtirish orqali eng yaxshi chiziq o'rnatiladi. Bu erda qoldiq kuzatuv(y) va hisoblangan yoki o'rnatilgan ŷ(y-hat) chizig'i o'rtasidagi farqdir.
Chiziqli regressiya tahlili uchun men Kaggle-dan ish haqi ma'lumotlar to'plamini oldim. Ushbu ma'lumotlar to'plami Tajriba va ish haqi yili bilan chiziqli korrelyatsiyaga ega.
Regressiya tahlili uchun avvalo kutubxonalarni import qilishimiz kerak.

Kutubxonalar import qilingandan so'ng, ma'lumotlar to'plami import qilinadi. Ma'lumotlar to'plamining dastlabki besh qatorini ko'rish uchun biz dataset.head() dan foydalanishimiz mumkin . Pythonda, R dan farqli o'laroq, indekslash 0 dan boshlanadi.

Ma'lumotlar to'plami haqidagi ma'lumotlar, masalan, ustun nomlari, no: null bo'lmagan va agar mavjud bo'lsa, null soni va ma'lumotlar turini dataset.info() yordamida tekshirish mumkin .

O'zgaruvchilar orasidagi munosabatni sns.pairplot() yordamida ko'rish mumkin . Ko'p chiziqli regressiya uchun bu juda foydali bo'ladi, chunki u har bir xususiyatning javob bilan aloqasini ko'rsatadi.







Ma'lumotlar to'plami o'quv to'plamiga va test to'plami tahliliga bo'linishi kerak. Buni Scikit-learn kutubxonasining Model_selection modulidagi train_test_split funksiyasi yordamida amalga oshirish mumkin .
Quyidagi skrinshotda ta'kidlanganidek, train_test_split sintaksisi Jupyter daftarida berilgan .


Bu erda ma'lumotlar to'plamida 30 ta kuzatuv mavjud va test_size umumiy kuzatishning 33% sifatida qabul qilinadi. Bu shuni ko'rsatadiki, test to'plami 33% * 30 =9,9 ~ 10 kuzatuvga ega bo'lishi kerak va o'quv majmuasi 20 ta kuzatuvga ega bo'lishi kerak. Random_state ma'lumotlar to'plami tasodifiy bo'linishi uchun ba'zi bir qiymatga tayinlangan.

Chiziqli regressiyani amalga oshirish uchun LinearRegression klassi Scikit-learn kutubxonasining linear_model modulidan import qilinadi. O'rnatilgan oddiy regressiya modeli LinearRegression sinfining namunasi bo'ladi.

O'zgaruvchiga l r.fit (X_train, y_train) ni belgilashning hojati yo'q, chunki fitting misolning o'zida amalga oshiriladi. Shuningdek, bu erda biz faqat o'quv to'plamini o'rnatamiz, chunki test to'plami biz modelni tasdiqlash uchun ishlatiladi.

Bizning test majmuamizda 10 ta kuzatuv mavjud va har bir kuzatish uchun biz ish haqini taxmin qilishimiz kerak. Shunday qilib, bashorat qilish usuli uchun kirish test to'plamining tajribasi yili bo'ladi va biz taxmin qilingan ish haqini uning haqiqiy ish haqi bilan solishtirishimiz kerak.



Trening ma'lumotlari X_train va y_train bilan tasvirlangan, qizil belgi ma'lumotlar nuqtasini va ko'k chiziq regressiya chizig'ini yoki eng mos chiziqni ko'rsatadi

Sinov to'plami qora belgi bilan tasvirlangan va bu erda ma'lumotlar nuqtasi regressiya chizig'iga yaqin bo'lishi mumkin. Regressiya modeli o'quv to'plami ma'lumotlari bilan o'qitiladi va modelni test to'plami bilan tasdiqlashi kerak.

Chiziqli regressiya tenglamasini topish uchun quyidagi tenglama yordamida koeffitsient va kesmani hisoblash kerak.

Ushbu model uchun chiziqli regressiya tenglamasi bo'ladi
Bashoratli ish haqi=9426.03876907×(yillik tajriba)+25324.33537924433
Tajriba yili 11 uchun taxmin qilingan ish haqini quyidagicha hisoblash mumkin:
9426.03876907×(11)+25324.33537924433 = 129010.76183907
y(11) ni quyidagi model yordamida bashorat qilish mumkin..

O'rtacha kvadrat xato (MSE) regressiyani baholash ko'rsatkichlaridan biridir. U taxmin qilingan qiymatlar va haqiqiy qiymat o'rtasidagi o'rtacha kvadratchalar farqi sifatida hisoblanadi. MSE uchun matematik tenglama quyidagicha:

MSE ni Scikit-learn kutubxonasining metrikalar modulidan hisoblash mumkin.

Oddiy eng kichik kvadratlarni ( OLS ) baholash moduli regressiya xulosasini olish uchun statsmodels.api dan chaqirilishi mumkin.


R-Square yoki Adj-R-Square qiymatini quyidagi tarzda olish mumkin..

Agar faqat R-kvadrat qiymatini topish qiziqtirsa , r2_score Scikit-learn kutubxonasining metrik modulidan import qilinishi mumkin.

Download 278.85 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling