Spaces:
No application file
No application file
| # Importing libraries. | |
| import pandas as pd | |
| from sklearn.datasets import load_iris, load_breast_cancer, load_wine, load_digits, load_boston, load_diabetes | |
| from sklearn.linear_model import LinearRegression, LogisticRegression | |
| from sklearn.neighbors import KNeighborsClassifier | |
| from sklearn.naive_bayes import GaussianNB | |
| from sklearn.tree import DecisionTreeClassifier | |
| from sklearn.svm import SVC | |
| from sklearn.ensemble import RandomForestClassifier | |
| # Defining ML models class. | |
| class MLModels: | |
| def linear_regression(self): | |
| ''' | |
| Description: | |
| Method for creating a linear regression classifier. | |
| Parameters: | |
| None | |
| Returns: | |
| clf - A linear regression classifier. | |
| ''' | |
| clf = LinearRegression() | |
| return clf | |
| def logistic_regression(self, C): | |
| ''' | |
| Description: | |
| Method for creating a logistic regression classifier. | |
| Parameters: | |
| C - Inverse of regularization strength. | |
| Returns: | |
| clf - A logistic regression classifier. | |
| ''' | |
| clf = LogisticRegression(C=C) | |
| return clf | |
| def k_nearest_neighbors(self, n_neighbors): | |
| ''' | |
| Description: | |
| Method for creating a knn classifier. | |
| Parameters: | |
| n_neighbors - Number of neighbors to use. | |
| Returns: | |
| clf - A knn classifier. | |
| ''' | |
| clf = KNeighborsClassifier(n_neighbors=n_neighbors) | |
| return clf | |
| def naive_bayes(self): | |
| ''' | |
| Description: | |
| Method for creating a naive-bayes classifier. | |
| Parameters: | |
| None | |
| Returns: | |
| clf - A naive-bayes classifier. | |
| ''' | |
| clf = GaussianNB() | |
| return clf | |
| def svm(self, C, kernel): | |
| ''' | |
| Description: | |
| Method for creating a svm classifier. | |
| Parameters: | |
| C - Regularization parameter. | |
| kernel - Specifies the kernel type to be used in the algorithm. | |
| Returns: | |
| clf - A svm classifier. | |
| ''' | |
| clf = SVC(C=C, kernel=kernel) | |
| return clf | |
| def decision_tree(self, max_depth): | |
| ''' | |
| Description: | |
| Method for creating a decision tree classifier. | |
| Parameters: | |
| max_depth - The maximum depth of the tree. | |
| Returns: | |
| clf - A decision tree classifier. | |
| ''' | |
| clf = DecisionTreeClassifier(max_depth=max_depth) | |
| return clf | |
| def random_forest(self, n_estimators, max_depth): | |
| ''' | |
| Description: | |
| Method for creating a decision tree classifier. | |
| Parameters: | |
| n_estimatos - The number of trees in the forest. | |
| max_depth - The maximum depth of the tree. | |
| Returns: | |
| clf - A random forest classifier. | |
| ''' | |
| clf = RandomForestClassifier(n_estimators=n_estimators, max_depth=max_depth) | |
| return clf | |
| # Defining dataset class. | |
| class MLDataset: | |
| def __init__(self, dataset_name=None): | |
| ''' | |
| Description: | |
| Method that initializes the dataset name. | |
| Parameters: | |
| dataset_name - The name of the dataset. | |
| Returns: | |
| Nothing | |
| ''' | |
| self.dataset_name = dataset_name | |
| def get_dataframe(self): | |
| ''' | |
| Description: | |
| Method to get a pandas dataframe based on the dataset name initialized in __init__(). | |
| Parameters: | |
| None | |
| Returns: | |
| df - A pandas dataframe. | |
| ''' | |
| df = None | |
| if self.dataset_name == "Iris": | |
| iris = load_iris() | |
| df = pd.DataFrame(iris.data, columns=iris.feature_names) | |
| df['target'] = iris.target | |
| elif self.dataset_name == "Breast Cancer": | |
| bc = load_breast_cancer() | |
| df = pd.DataFrame(bc.data, columns=bc.feature_names) | |
| df['target'] = bc.target | |
| elif self.dataset_name == 'Wine Quality': | |
| wq = load_wine() | |
| df = pd.DataFrame(wq.data, columns=wq.feature_names) | |
| df['target'] = wq.target | |
| elif self.dataset_name == 'Mnist Digits': | |
| dig = load_digits() | |
| df = pd.DataFrame(dig.data, columns=dig.feature_names) | |
| df['target'] = dig.target | |
| elif self.dataset_name == 'Boston Houses': | |
| bh = load_boston() | |
| df = pd.DataFrame(bh.data, columns=bh.feature_names) | |
| df['target'] = bh.target | |
| elif self.dataset_name == 'Diabetes': | |
| db = load_diabetes() | |
| df = pd.DataFrame(db.data, columns=db.feature_names) | |
| df['target'] = db.target | |
| return df |