import
numpy as np
import
pandas as pd
from
sklearn.svm
import
OneClassSVM
from
sklearn.metrics
import
accuracy_score, precision_score, recall_score, f1_score
data
=
pd.read_csv(
'captcha_dataset.csv'
)
train_data
=
data[:
800
]
val_data
=
data[
800
:
900
]
test_data
=
data[
900
:]
X_train
=
train_data.drop(columns
=
[
'label'
]).values
X_val
=
val_data.drop(columns
=
[
'label'
]).values
X_test
=
test_data.drop(columns
=
[
'label'
]).values
clf
=
OneClassSVM(kernel
=
'rbf'
, gamma
=
0.1
, nu
=
0.1
)
clf.fit(X_train)
y_pred_train
=
clf.predict(X_train)
y_pred_val
=
clf.predict(X_val)
y_pred_test
=
clf.predict(X_test)
print
(
'Training set performance:'
)
print
(
'Accuracy: {:.2f}'
.
format
(accuracy_score(np.ones(
len
(X_train)), y_pred_train)))
print
(
'Precision: {:.2f}'
.
format
(precision_score(np.ones(
len
(X_train)), y_pred_train)))
print
(
'Recall: {:.2f}'
.
format
(recall_score(np.ones(
len
(X_train)), y_pred_train)))
print
(
'F1 score: {:.2f}'
.
format
(f1_score(np