Yuqori aniqlik/past eslab qolish: Biz noto'g'ri negativlar sonini kamaytirmasdan, noto'g'ri musbatlar sonini kamaytirmoqchi bo'lgan ilovalarda biz Aniqlikning yuqori qiymati yoki eslab olishning past qiymatiga ega bo'lgan qaror qiymatini tanlaymiz. Misol uchun, agar biz mijozlarni shaxsiylashtirilgan reklamaga ijobiy yoki salbiy munosabatda bo'lishini tasniflayotgan bo'lsak, mijoz reklamaga ijobiy munosabatda bo'lishiga to'liq ishonch hosil qilishni xohlaymiz, chunki aks holda, salbiy reaktsiya potentsial sotuvlarning yo'qolishiga olib kelishi mumkin. mijoz.
Xulosa
Xulosa qilib aytganda Logistik regressiya - bu ikkilik va ko'p toifali tasniflash vazifalari uchun foydalaniladigan boshqariladigan mashinani o'rganish algoritmi. Nomiga qaramay, u regressiya emas, balki tasniflash uchun ishlatiladi. Model logistik (sigmoid) funksiyadan foydalangan holda ma'lum bir sinfga tegishli bo'lish ehtimolini bashorat qiladi, natijani 0 va 1 oralig'ida xaritalashtiradi. Keyinchalik bu ehtimollik tanlangan chegara asosida ikkilik qaror qabul qilish uchun ishlatiladi.
Algoritm mustaqil o'zgaruvchilar va qaram o'zgaruvchining log-kodlari o'rtasidagi munosabatlar chiziqli deb qabul qilinadigan stsenariylar uchun juda mos keladi. Trening maksimal ehtimollikni baholash kabi usullar orqali optimal parametrlarni (koeffitsientlarni) topishni o'z ichiga oladi. Logistik regressiya oddiy, hisoblash jihatidan samarali va talqin qilinishi mumkin bo'lib, uni tibbiy diagnostika, spamni filtrlash va kredit reytingi kabi ilovalar uchun mashhur tanlovga aylantiradi. U mashinani o'rganishda asosiy kontseptsiya bo'lib xizmat qiladi va ko'pincha murakkabroq modellarni taqqoslash uchun asos sifatida ishlatiladi.
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_classification
from sklearn.preprocessing import StandardScaler
# Sintetik ma'lumotlarni yaratish
X, y = make_classification(n_samples=1000, n_features=20, n_classes=2, random_state=42)
# Ma'lumotlarni o'quv va sinov to'plamlariga bo'lish
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Xususiyatlarni standartlashtirish (tartibga solish uchun muhim)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# L2 tartibga solish bilan logistik regressiya modelini yarating (Ridge)
model = LogisticRegression(penalty='l2', C=1.0, solver='liblinear', random_state=42)
# Modelni o'rgatish
model.fit(X_train, y_train)
# Sinov to'plamidagi modelni baholash
accuracy = model.score(X_test, y_test)
print(f"Sinov to'plamidagi aniqlik: {accuracy:.2f}")
# Xususiyatlarning koeffitsientlarini ko'rsatish
print("Koeffitsientlar:", model.coef_)
# Regulyatsiya yo'lini chizish
alphas = np.logspace(-6, 6, 13)
coefficients = []
for alpha in alphas:
model = LogisticRegression(penalty='l2', C=1/alpha, solver='liblinear', random_state=42)
model.fit(X_train, y_train)
coefficients.append(model.coef_.ravel())
coefficients = np.array(coefficients)
plt.figure(figsize=(12, 8))
for i in range(X.shape[1]):
plt.plot(alphas, coefficients[:, i], label=f"Xususiyat {i + 1}")
plt.xscale('log')
plt.xlabel('Alfa (tartibga solish kuchi)')
plt.ylabel('Koeffitsient qiymati')
plt.title('Logistik regressiya koeffitsientlari va tartibga solish kuchi')
plt.legend()
plt.show()
Foydalanilgan adabiyotlar:
1 ) https://www.w3schools.com
2 ) 100 days of Machine learning Siraj Raval
3 ) Data-science engineer software Tim Menzin
4 ) Technical Strategy for Al Engineer Andrew NG
5 ) Artificial intelegence Kurzveil -- 2017 yil
Dostları ilə paylaş: |