svm classifier

svm

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

df = pd.read_csv("./data.csv", delimiter=";")
df["High_G3"] = df["G3"].apply(lambda x: "High" if x > 10 else "Moderate")
df = df.drop("G3", axis=1)
y = df["High_G3"]
X = df.drop("High_G3", axis=1)
X = pd.get_dummies(X, dtype=np.uint8)
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

svm_rbf = SVC(kernel="rbf", gamma="scale", C=1.0)

svm_rbf_w = SVC(kernel="rbf", gamma="scale", C=1.0, class_weight="balanced")


svm_rbf.fit(X_train, y_train)
svm_rbf_w.fit(X_train, y_train)

y_pred = svm_rbf.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)

y_pred_w = svm_rbf_w.predict(X_test)
accuracy_w = accuracy_score(y_test, y_pred_w)


print(f"accuracy : {accuracy}")
print(f"accuracy_w : {accuracy_w}")