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 zadatkaKoji deo šablona koristiš
Koliko ima uzoraka.shape, .dtypes
Koje su vrste podataka.dtypes, .describe()
KNN klasifikator6A
Linearna regresija6B
Regresija + standardizacija6C
Ridge regresija6D
Osetljivostrecall_score
Tačnostaccuracy_score

Scroll to Top