Davronbek Boltayev
Barcha postlar

Linear Regression va Machine Learning

Bu maqolada chiziqli regressiya asoslari va uning dasturlashdagi qo'llanilishi haqida gaplashamiz.

QisqachaDvigatel o‘lchamidan CO₂ chiqindisini qanday bashorat qilish mumkin?
Muammo
Dvigatel o‘lchamidan CO₂ chiqindisini qanday bashorat qilish mumkin?
Yechim
Linear Regression: oddiy formula va Python'dagi model
Stack
  • Python
  • NumPy
  • scikit-learn
  • matplotlib
Daraja
Boshlang‘ich
Chiziqli regressiya

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.

car-reg 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:

kod
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:#

  1. Mashina misoli
    • Kiruvchi: dvigatel o‘lchami (ENGINESIZE)
    • Chiqish: karbonat angidrid gazi chiqindisi (CO2)
    • Maqsad: dvigatelni bilib, chiqindini oldindan aytish.
  2. Uy misoli
    • Kiruvchi: kvadrat metr (SIZE)
    • Chiqish: uy narxi (PRICE)
    • Maqsad: maydonni bilib, narxni aytish.
  3. 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:

kod
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 ($)
5015000
6018000
8024000
10030000
12036000

Python'da model#

python
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):#

python
# 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.

meme 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#

Post foydali bo‘ldimi?