94 lines
2.3 KiB
Python
94 lines
2.3 KiB
Python
from models.S3VM_constrained import S3VM_Constrained
|
|
from models.S3VM_unconstrained import S3VM_Unconstrained
|
|
from models.NewtonUTSVM import NewtonUTSVM
|
|
from models.TSVM import TSVM
|
|
from models.LSTSVM import LSTSVM
|
|
from models.utils import load_dataset
|
|
|
|
|
|
MODELS = [
|
|
"Semi-Supervised_SVM",
|
|
"Semi-Supervised_SVM_Unconstrained",
|
|
"Newton_Universum_Twin_SVM",
|
|
"Least-Square_Twin_SVM",
|
|
"Twin_SVM"
|
|
]
|
|
|
|
|
|
def runner(model, dataset, params):
|
|
|
|
csv_file = f"datasets/{dataset}.csv"
|
|
x_train, y_train, x_test, y_test, U = load_dataset(csv_file)
|
|
accuracy = 0
|
|
|
|
print('model: ', model)
|
|
|
|
match model:
|
|
|
|
case "Semi-Supervised_SVM":
|
|
|
|
C = params['C'] or 1.0
|
|
max_iter = params.get('max_iter') or 100
|
|
|
|
modelObj = S3VM_Constrained(C, max_iter)
|
|
modelObj.fit(x_train, y_train, U)
|
|
modelObj.predict(x_test)
|
|
accuracy = modelObj.score(y_test)
|
|
params = {"C": C, "max_iter": max_iter}
|
|
|
|
case "Semi-Supervised_SVM_Unconstrained":
|
|
|
|
C = params['C'] or 1.0
|
|
|
|
modelObj = S3VM_Unconstrained(C)
|
|
modelObj.fit(x_train, y_train, U)
|
|
modelObj.predict(x_test)
|
|
accuracy = modelObj.score(y_test)
|
|
params = {"C": C}
|
|
|
|
case "Newton_Universum_Twin_SVM":
|
|
|
|
C = params['C'] or [1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
|
|
|
|
modelObj = NewtonUTSVM(x_train, y_train, U, C)
|
|
modelObj.fit()
|
|
modelObj.predict(x_test)
|
|
accuracy = modelObj.score(y_test)
|
|
params = {"C": C}
|
|
|
|
case "Least-Square_Twin_SVM":
|
|
|
|
C = params['C'] or [1.0, 1.0]
|
|
|
|
modelObj = LSTSVM(x_train, y_train, C[0], C[1])
|
|
modelObj.fit()
|
|
modelObj.predict(x_test, y_test)
|
|
accuracy = modelObj.score(y_test)
|
|
params = {"C": C}
|
|
|
|
case "Twin_SVM":
|
|
|
|
C = params['C'] or [1.0, 1.0]
|
|
|
|
modelObj = TSVM(x_train, y_train, C[0], C[1])
|
|
modelObj.fit()
|
|
modelObj.predict(x_test)
|
|
accuracy = modelObj.score(y_test)
|
|
params = {"C": C}
|
|
|
|
|
|
accuracy = round(accuracy, 4)
|
|
|
|
return {
|
|
"model":model,
|
|
"dataset":dataset,
|
|
"params": params,
|
|
"accuracy": accuracy
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|