Linear Regression va Machine Learning

Bu maqolada chiziqli regressiya asoslari va uning dasturlashdagi qo'llanilishi haqida gaplashamiz.
6th Aug 2025
Kirish!
Assalomu alaykum.
Bugun siz bilan Machine Learning (ML) sohasiga kirishamiz. Bu maqolada Linear Regression (chiziqli regressiya) haqida gaplashamiz. Bu juda oddiy, lekin juda kuchli usul. Agar siz dasturlashni bilsangiz, bu maqola siz uchun juda foydali bo‘ladi.
Tasavvur qilaylik, bizda 2 million mashina ma’lumotlari bor va ularning dvigatel o'lchami (ENGINESIZE) va chiqindilari — ya’ni CO₂EMISSIONS (karbonat angidrid gazi) ma’lum.
Bizdan shunchaki savol: Dvigatel o‘lchami ma’lum bo‘lsa, karbon chiqindisini qanday topamiz?
🧠 Javob aslida oddiy matematikaga borib taqaladi:
CO₂ = β₀ + β₁ * ENGINESIZE
Bu oddiy chiziqli (linear) regressiya formulasi. Endi bu nima degani, qanday ishlaydi, va bu oddiy formula orqali qanday qilib mashina yoki uy narxlarini bashorat qilsa bo‘ladi — shularni tushuntirib beraman.
Linear Regression nima?
Linear Regression — bu bashorat qilish usuli. U sodda matematik model: biror kiruvchi qiymat (masalan: kvadrat metr, dvigatel o‘lchami) asosida chiqadigan natijani (masalan: uy narxi, CO2 (karbonat angidrid gazi) chiqindisi) oldindan taxmin qiladi.
Real hayotdagi misollar:
- Mashina misoli
- Kiruvchi: dvigatel o‘lchami (ENGINESIZE)
- Chiqish: karbonat angidrid gazi chiqindisi (CO2)
- Maqsad: dvigatelni bilib, chiqindini oldindan aytish.
- Uy misoli
- Kiruvchi: kvadrat metr (SIZE)
- Chiqish: uy narxi (PRICE)
- Maqsad: maydonni bilib, narxni aytish.
- Ish haqi misoli
- Kiruvchi: tajriba yili (EXPERIENCE)
- Chiqish: oylik maosh (SALARY)
- Maqsad: necha yil ishlaganini bilib, qancha oylik olishini bashorat qilish.
Bularning barchasida tenglama bir xil:
Natija = β₀ + β₁ * Kiruvchi
Model nima qiladi?
Model — bu oddiy matematik formulani o‘z ichiga olgan dastur. U kiruvchi qiymatlarni olib, chiqish qiymatini hisoblaydigan algoritmdir.
Model ikkita raqamni topishga harakat qiladi:
- β₀ (intercept): boshlang‘ich qiymat, ya’ni kiruvchi 0 bo‘lsa ham chiqish qanchaga teng.
- β₁ (slope): kiruvchi har bir birlikka oshganda, chiqish qanchaga o‘zgaradi.
Ushbu β₀ va β₁ ni ma’lumotlarga qarab avtomatik o‘rganadi.
Model bu raqamlarni qanday topadi?
Bunga "Loss function" yordam beradi. Ya'ni:
- Model taxmin qiladi (
y_hat
) - Haqiqiy natija (
y_true
) bilan solishtiradi - Farqni (xato) o‘lchaydi:
Loss = (y_true - y_hat)^2
- Maqsad: shu xatoni iloji boricha kichik qilish.
Bu jarayon "training" deyiladi. Aynan shu paytda model o‘rganadi: "Har safar x (kiruvchi) qancha o‘ssa, y qanday o‘zgaradi?"
Real misollar
Maqsad: oddiy uy narxi modelini qurish.
Faraz qilaylik:
Bizda uylar haqida kichik dataset bor:
Maydon (m²) | Narx ($) |
---|---|
50 | 15000 |
60 | 18000 |
80 | 24000 |
100 | 30000 |
120 | 36000 |
Python'da model
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Kiruvchi va chiqish qiymatlari
X = np.array([[50], [60], [80], [100], [120]])
y = np.array([15000, 18000, 24000, 30000, 36000])
# Modelni yaratish
model = LinearRegression()
# O'rgatish (training)
model.fit(X, y)
# Koefitsientlar
print("β₀ (intercept):", model.intercept_)
print("β₁ (slope):", model.coef_[0])
# Bashorat qilamiz
new_size = 90
predicted_price = model.predict([[new_size]])
print(f"{new_size} m² uyning bashorat qilingan narxi: ${int(predicted_price[0])}")
Vizualizatsiya (ixtiyoriy):
# Rasmda ko'rsatish
plt.scatter(X, y, color='blue', label="Real narxlar")
plt.plot(X, model.predict(X), color='red', label="Model chizig'i")
plt.xlabel("Maydon (m²)")
plt.ylabel("Narx ($)")
plt.legend()
plt.title("Uy narxlarini bashorat qilish")
plt.grid(True)
plt.show()
Natija
Biz juda oddiy formulani (y = β₀ + β₁x) real ma’lumotga qo‘lladik. Endi esa:
- Uy maydoni bo‘yicha narxni bashorat qila olamiz
- Shu prinsip orqali boshqa loyihalar qilamiz:
- 🚗 mashina narxi
- 🏠 uy narxi
- 📈 ish haqi
- 📚 o‘quvchining bahosi
Xulosa
Linear Regression — bu Machine Learning’ga kirish uchun eng zo‘r nuqta. Chunki:
- Oddiy
- Matematikaga asoslangan
- Hayotiy
- Tez natija beradi
Keyingi maqolada nasib etsa, 2+ omillik regressiya haqida gaplashamiz. Ya’ni, bir nechta kiruvchilar (masalan: dvigatel + yili + yoqilg‘i turi) bilan qanday bashorat qilishni o‘rganamiz.
Machine Learning — bu raketa fizikasi emas. Avval oddiy algebra, keyin kod. Har bir real muammo — matematik modelga aylantiriladi.
Agar siz bu maqolani tushungan bo‘lsangiz, siz allaqachon ML sohasiga ilk qadamingizni qo‘ydingiz!)
Qo‘shimcha resurslar

Telegram Kanalimizga Qo'shiling
Yangi postlarni o'tkazib yubormaslik uchun telegram kanaliga obuna bo'ling!
@DavronbekDev