Hataları Ölçme
Coddy'nin Machine Learning Journey'sinin Denetimli Öğrenme bölümünün bir parçası. Ders 13 / 58.
Bir model, dolar cinsinden ne kadar yanılıyor? İşte modelin daha önce hiç görmediği beş test evinin fiyatlarını tahmin eden bir model:
sklearn.metrics senin için hataları ölçer:
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
y_test = np.array([290, 410, 235, 520, 330]) # bin dolar
pred = np.array([270, 450, 245, 430, 360])
print(mean_absolute_error(y_test, pred))
print(np.round(np.sqrt(mean_squared_error(y_test, pred)), 1))
print(np.round(r2_score(y_test, pred), 3))Bu, şunları yazdırır:
38.0
47.1
0.776MAE, ortalama mutlak hata, tipik sapmadır: 38 bin. RMSE sapmaların karelerini alır, ortalamasını hesaplar, ardından karekökünü alır: tek bir büyük sapma değeri 47'ye yükseltir.
İkisi de hedef değişkenin birimleriyle ifade edilir. r2_score senin R-kare değerindir: fiyatlardaki dağılımın %78'i açıklanır.
Görev
OrtaBir mağaza, ikinci el kameraları bir modelle fiyatlandırıyor. İkinci bir özellik yardımcı olur mu? Program shutter_k (çekilen fotoğraf sayısı, binlerle) veya megapixels değerini okur. Başlangıç kodu, yalnızca age_years ile ve ek özellik de kullanılarak iki model uyar; test tahminlerini preds içinde tutar.
- Her model için MAE, RMSE'yi (1 ondalık basamakla) ve R kare değerini (3 ondalık basamakla) yazdır.
- MAE değeri daha küçük olanı yazdır.
Başka bir mağaza ve shutter_k için:
age_years: MAE 212.4, RMSE 268.1, R squared 0.853
age_years + shutter_k: MAE 98.7, RMSE 121.0, R squared 0.97
Better: age_years + shutter_k, off by 98.7 dollars on a typical cameraKendin dene
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# Satılan her kamera için bir satır: yaş, bin cinsinden deklanşör sayısı, megapiksel, dolar cinsinden fiyat
cameras = pd.read_csv("cameras.csv")
extra = input()
names = ["age_years", "age_years + " + extra]
columns = [["age_years"], ["age_years", extra]]
# Satırları bütün olarak ayır; aşağıdaki her model kendi sütunlarını seçer
X_train, X_test, y_train, y_test = train_test_split(cameras, cameras["price"], test_size=0.25, random_state=0)
# Her sütun listesi için bir model ve bu modelin test kameraları için tahminleri
preds = []
for cols in columns:
model = LinearRegression()
model.fit(X_train[cols], y_train)
preds.append(model.predict(X_test[cols]))
# Kodunuzu aşağıya yazın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Denetimli Öğrenme bölümündeki tüm dersler
1İlk Modeliniz
Örneklerden ÖğrenmeEğitim ve Test KümeleriUydurma ve Tahmin EtmeBir Modeli PuanlamaÖzet: Tohum Sınıflandırıcı4Lojistik Regresyon
Evet-Hayır TahminleriKarar EşiğiKanıt Olarak AğırlıklarBirden Fazla SınıfÖzet: Spam Filtresi2En Yakın Komşular
k-NN Nasıl Karar Verirk'yi SeçmekKarar SınırlarıKomşular İçin ÖlçeklemeÖzet: Şarap Komşuları5Sınıflandırıcıları Değerlendirme
Karmaşıklık MatrisiKesinlik ve DuyarlılıkF1 SkoruDengesiz SınıflarROC EğrileriÖzet: Tarama Testi8Çapraz Doğrulama
K-Katlı DoğrulamaModelleri Adil Bir Şekilde KarşılaştırmaIzgara AramasıÖzet: Kaykay Tamiri11Proje: Penguen Türleri
Penguenlerle TanışınVerileri HazırlayınBir Model SeçinEn İyisini AyarlayınModeli Yayına Alın3Doğrusal Regresyon
Sayıları Tahmin EtmeBirden Fazla ÖzellikHataları ÖlçmeArtık GrafikleriÖzet: Bisiklet KiralamaKendi başına pratik yap: Online Python derleyicisi