Mridul2003's picture
Upload 25 files
7a4db40
# 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