import pandas as pd from sklearn.naive_bayes import GaussianNB, MultinomialNB from sklearn.model_selection import train_test_split import sklearn.metrics as met from termcolor import colored def class_info(clf, x_train, y_train, x_test, y_test): clf.fit(x_train, y_train) y_pred = clf.predict(x_test) cnf_matrix = met.confusion_matrix(y_test, y_pred) print("Matrica konfuzije", cnf_matrix, sep="\n") print("\n") accuracy = met.accuracy_score(y_test, y_pred) print("Preciznost", accuracy) print("\n") class_report = met.classification_report(y_test, y_pred, target_names=df["Species"].unique()) print("Izvestaj klasifikacije", class_report, sep="\n") df = pd.read_csv("iris_pandas.csv") featurs = df.columns[:4].tolist() x=df[featurs] y=df["Species"] #podela na trening i test skup x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.7, stratify=y) print(colored("GaussianNB", "blue")) """ GaussianNB parametar: priors : zadate verovatnoce klasa """ clf_gnb = GaussianNB() class_info(clf_gnb, x_train, y_train, x_test, y_test) print(colored("MultinomialNB", "blue")) """ MultinomialNB parametri: alpha : parametar ugladjivanja, vrednosti [0,1] default=1 fit_prior : da li da uci verovatnoce klasa default = True vrednosti: True False - uzima se uniforma raspodela klasa class_prior: zadate verovatnoce klasa """ clf_mnb = MultinomialNB() class_info(clf_mnb, x_train, y_train, x_test, y_test)