23/benchmarks

/README.md
# benchmarks
Benchmarks of machine learning models

/README.md
# benchmarks
Benchmarks of machine learning models

/models/iris/model.py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import lightgbm as lgb
import xgboost as xgb
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import accuracy_score, recall_score, f1_score, roc_auc_score, precision_score, confusion_matrix, classification_report
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.feature_selection import RFECV
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import make_scorer, mean_absolute_error

class Model():
def __init__(self, dataset, target, model):
self.dataset = dataset
self.target = target
self.model = model

def load_data(self):
# Load data
# self.dataset = pd.read_csv(self.dataset_path)
self.dataset = self.dataset[self.target]
self.dataset = self.dataset.astype('float64')
self.dataset = self.dataset.dropna()
print(self.dataset)
# self.dataset = self.dataset[self.target]
# self.dataset = self.dataset.astype('float64')
# self.dataset = self.dataset.dropna()

def train(self):
# Separate features and target
X = self.dataset.drop([self.target], axis=1)
y = self.dataset[self.target]

# Standardize features
scaler = StandardScaler()
X = scaler.fit_transform(X)
print(X)
y = LabelEncoder().fit_transform(y)

# Split the dataset
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Create a grid search object
grid_search = GridSearchCV(self.model, param_grid={'max_depth': [3, 5, 7, 9], 'min_child_weight': [1, 3, 5, 7]}, cv=5, scoring='neg_mean_squared_error')

# Train the model
grid_search.fit(X_train, y_train)

# Predict the target
y_pred = grid_search.predict(X_test)

# Evaluate the model
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)
auc = roc_auc_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.4f}")
print(f"Precision: {precision:.4f}")
print(f"Recall: {recall:.4f}")
print(f"F1 score: {f1:.4f}")
print(f"AUC: {auc:.4f}")
print(classification_report(y_test, y_pred))
print(confusion_matrix(y_test, y_pred))

# Cross Validation
# cv_results = grid_search.cv_results_
# print(cv_results)

# Print the best parameters
print(f"Best parameters: {grid_search.best_params_}")
print(f"Best score: {grid_search.best_score_}")

# Plot the ROC curve
fpr, tpr, _ = roc_curve(y_test, y_pred)
plt.plot(fpr, tpr, label=f'{self.model} (AUC = {auc:.4f})')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title(f'ROC Curve - {self.model}')
plt.legend()
plt.show()

if __name__ == '__main__':
# Load the dataset
# dataset_path = 'dataset/iris/iris.csv'
# target = 'target'
# model = lgb.LGBMClassifier()
# model = xgb.XGBClassifier()
# model = SVC()
# model = RandomForestClassifier()
# model = GradientBoostingClassifier()
# model = LogisticRegression()
# model = KNeighborsClassifier()
# model = DecisionTreeClassifier()
# model = SVC(probability=True)
# model = SVC(probability=True)
# model = RandomForestClassifier()

dataset_path = 'dataset/iris/iris.csv'
target = 'target'
model = DecisionTreeClassifier()

model = Model(dataset_path, target, model)
model.load_data()
model.train()

/README.md
# benchmarks
Benchmarks of machine learning models

/models/iris/iris_model.py
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import lightgbm as lgb
import xgboost as xgb
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import accuracy_score, recall_score, f1_score, roc_auc_score, precision_score, confusion_matrix, classification_report
from sklearn.preprocessing import StandardScaler, LabelEncoder
from sklearn.feature_selection import RFECV
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import make_scorer, mean_absolute_error

class Model():
def __init__(self, dataset, target, model):
self.dataset = dataset
self.target = target
self.model = model

def load_data(self):