4-amaliy ish Bir o’zgaruvchili va ko’p o’zgaruvchili chiziqli regressiya masalalari va ularni dasturlash
Download 293.76 Kb. Pdf ko'rish
|
4-amaliy ish
- Bu sahifa navigatsiya:
- SCIKIT-LEARN-DA KO’P OZGARUVCHILI CHIZIQLI REGRESSIYA
import
numpy as np import numpy as np d = data [ data.price > 0 ] x = d.number_of_reviews y = np. log ( d.price ) a, b = get_params ( x, y ) Natijada qabul qilindi: >>> a -0.04213862786693919 >>> b 125.40308200933784 Nolinchi narx qiymatlarini filtrladik, chunki logaritmi noldan mavjud emas. Shunday qilib, chiziqli regressiya quyidagi kabi yoziladi: Keling, matplotlib Python kutubxonasida grafik tuzamiz, natijada olingan chiziqli regressiya va haqiqiy narx qiymatlari paydo bo'ladi. Grafiklarni qanday qurish haqida bilamiz. Buning uchun biz scatter va plot funktsiyalaridan foydalanamiz: import matplotlib.pyplot as plt plt. xlabel ( 'Количество отзывов' ) plt. ylabel ( 'Цена в логарифмическом масштабе' ) plt. scatter ( x, y ) plt. plot ( x, lin_reg, color= 'red' ) Natijada, bu grafik olingan: Chiziqli regressiya (qizil chiziq) Ko'rib turganingizdek, bir mustaqil o'zgaruvchining chiziqli regressiyasi muvaffaqiyatsiz natijalarni ko'rsatadi,chunki u abscissa o'qiga deyarli parallel. Shuning uchun prognoz bir xil bo'ladi, taxminan 4.6 ga teng. Oddiy masshtabga tarjima qilganda, $100 ga teng bo’ladi. SCIKIT-LEARN-DA KO’P O'ZGARUVCHILI CHIZIQLI REGRESSIYA Aslida, ML-modellar kamdan-kam hollarda faqat bitta belgi bo'yicha o'qitiladi, bu esa tuzilgan grafikalar tomonidan tasdiqlanadi. Shuning uchun chiziqli regressiya uchun tenglama o'zgaruvchilar (belgilar) ga umumlashtirilishi mumkin): vazifa koeffitcentlarni topish uchun kamayadi. Ularni topish tafsilotlariga kirmasdan, Python-Kutubxona Scikit-o'rganish tayyor interfeysi uchun taqdim etadi, deb unutmang. Python da bir misol ko'rib chiqaylik. Mustaqil o'zgaruvchilar sifatida belgilarni tanlang: number_of_reviews, reviews_per_month, calculated_host_listings_count. Xususiyat reviews_per_month Nan -qiymatiga ega, shuning uchun kelajakda ularni nol bilan to'ldiring. Bundan tashqari, biz nol narxga ega bo'lgan ma'lumotlarni filtrladik: d = data [ data.price > 0 ] d [ 'reviews_per_month' ] . fillna ( 0 , inplace= True ) x = d.loc [ :, ( 'reviews_per_month' , 'calculated_host_listings_count' , 'number_of_reviews' )] y = d.loc [ :, 'price' ] Bu erda loc usuli qo'llaniladi, bu hujjatlarga ko'ra, ustunlarni chaqirishdan ko'ra tezroq va samaraliroq. Bundan tashqari, ba'zi ma'lumotlarga modelni o'rgatish uchun olingan ma'lumotlarni o'quv va test namunalariga ajratishimiz kerak, boshqalari esa uning to'g'riligini tekshirishlari kerak. Scikit-learnda train_test_split funkciyasi mavjud bo'lib, u ikki juft massivni qaytaradi-mashq va test: Download 293.76 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling