1. Uvoz biblioteka
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score, recall_score, mean_squared_error, r2_score
from sklearn.linear_model import LinearRegression, Ridge
from sklearn.neighbors import KNeighborsClassifier
2. Učitavanje podataka
df = pd.read_csv("ime_datoteke.csv") # zameni imenom datoteke
df.head() # prikaz prvih 5 redova
3. Osnovna analiza podataka
print("Oblik:", df.shape) # broj uzoraka i obeležja
print("Tipovi:", df.dtypes) # tipovi kolona
print(df.describe()) # statistika
print(df.isnull().sum()) # provera nedostajućih vrednosti
4. Priprema podataka
Izdvajanje obeležja i ciljne promenljive (zavisi da li je klasifikacija ili regresija)
U zavisnosti od zadatka:
X = df.drop("ciljna_kolona", axis=1)
y = df["ciljna_kolona"]
5. Podela na trening i test skup
Koristi
stratify=y
ako je klasifikacija i to piše u zadatku:
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.1, random_state=42, stratify=y # izbaci stratify ako je regresija
)
6A. KNN KLASIFIKATOR (ako je klasifikacija)
Primer: 3 suseda, Hamming metrika
knn = KNeighborsClassifier(n_neighbors=3, metric='hamming')
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
# Evaluacija
print("Matrica konfuzije:")
print(confusion_matrix(y_test, y_pred))
print("Izveštaj:")
print(classification_report(y_test, y_pred))
# Osetljivost (recall) za pozitivnu klasu
print("Osetljivost:", recall_score(y_test, y_pred, pos_label=1))
6B. LINEARNA REGRESIJA (ako je regresija)
(Bez standardizacije)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# Evaluacija
print("R2 skor:", r2_score(y_test, y_pred))
print("MSE:", mean_squared_error(y_test, y_pred))
6C. LINEARNA REGRESIJA + STANDARDIZACIJA
Ako zadatak kaže da standardizuješ ulazne podatke:
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
model = LinearRegression()
model.fit(X_train_scaled, y_train)
y_pred = model.predict(X_test_scaled)
print("R2 skor:", r2_score(y_test, y_pred))
print("MSE:", mean_squared_error(y_test, y_pred))
6D. REGULARIZOVANA REGRESIJA (Ridge)
Ako zadatak kaže “Ridge” ili “Lasso”:
from sklearn.linear_model import Ridge
model = Ridge(alpha=1.0)
model.fit(X_train_scaled, y_train) # koristi standardizovane podatke
y_pred = model.predict(X_test_scaled)
print("R2:", r2_score(y_test, y_pred))
print("MSE:", mean_squared_error(y_test, y_pred))
Brza orijentacija:
Tip zadatka | Koji deo šablona koristiš |
---|---|
Koliko ima uzoraka | .shape , .dtypes |
Koje su vrste podataka | .dtypes , .describe() |
KNN klasifikator | 6A |
Linearna regresija | 6B |
Regresija + standardizacija | 6C |
Ridge regresija | 6D |
Osetljivost | recall_score |
Tačnost | accuracy_score |