Neuronske mreže¶

In [1]:
import pandas as pd

Podaci¶

In [2]:
df = pd.read_csv("../data/iris.csv")
In [3]:
df.head()
Out[3]:
Sepal_Length Sepal_Width Petal_Length Petal_Width Species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
In [4]:
features = df.columns[:-1]
features
Out[4]:
Index(['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'], dtype='object')
In [5]:
X = df[features]
y = df["Species"]

Preprocesiranje¶

In [6]:
from sklearn.model_selection import train_test_split
In [7]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42, stratify=y)
print(X_train.shape)
print(y_train.shape)
print(X_test.shape)
print(y_test.shape)
(105, 4)
(105,)
(45, 4)
(45,)

Treniranje modela¶

In [8]:
from sklearn.neural_network import MLPClassifier
In [9]:
model = MLPClassifier(hidden_layer_sizes=(50,30), max_iter=60, random_state=42)
model.fit(X_train, y_train)
/home/ppc/.local/lib/python3.10/site-packages/sklearn/neural_network/_multilayer_perceptron.py:692: ConvergenceWarning: Stochastic Optimizer: Maximum iterations (60) reached and the optimization hasn't converged yet.
  warnings.warn(
Out[9]:
MLPClassifier(hidden_layer_sizes=(50, 30), max_iter=60, random_state=42)

Evaluacija modela¶

In [10]:
from sklearn.metrics import accuracy_score
In [11]:
y_predict = model.predict(X_test)
In [12]:
accuracy_score(y_test, y_predict)
Out[12]:
0.8888888888888888