Files
fenago f3b24b4b7f added
2021-02-07 15:16:01 +05:00

85 lines
2.9 KiB
Python

import unittest
import import_ipynb
import pandas as pd
import pandas.testing as pd_testing
import numpy.testing as np_testing
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
class Test(unittest.TestCase):
def setUp(self):
import Exercise4_04
self.exercises = Exercise4_04
self.file_url = '../Dataset/openml_phpZNNasq.csv'
self.df = pd.read_csv(self.file_url)
self.y = self.df.pop('type')
self.df.drop(columns='animal', inplace=True)
self.X_train, self.X_test, self.y_train, self.y_test = train_test_split(self.df, self.y, test_size=0.4, random_state=188)
self.rf_model = RandomForestClassifier(random_state=42, n_estimators=30, max_depth=2, min_samples_leaf=3)
self.rf_model.fit(self.X_train, self.y_train)
self.train_preds = self.rf_model.predict(self.X_train)
self.test_preds = self.rf_model.predict(self.X_test)
self.train_acc = accuracy_score(self.y_train, self.train_preds)
self.test_acc = accuracy_score(self.y_test, self.test_preds)
self.rf_model2 = RandomForestClassifier(random_state=42, n_estimators=30, max_depth=2, min_samples_leaf=7)
self.rf_model2.fit(self.X_train, self.y_train)
self.train_preds2 = self.rf_model2.predict(self.X_train)
self.test_preds2 = self.rf_model2.predict(self.X_test)
self.train_acc2 = accuracy_score(self.y_train, self.train_preds2)
self.test_acc2 = accuracy_score(self.y_test, self.test_preds2)
def test_file_url(self):
self.assertEqual(self.exercises.file_url, self.file_url)
def test_df(self):
pd_testing.assert_frame_equal(self.exercises.df, self.df)
def test_y(self):
np_testing.assert_array_equal(self.exercises.y , self.y)
def test_X_train(self):
np_testing.assert_array_equal(self.exercises.X_train , self.X_train)
def test_X_test(self):
np_testing.assert_array_equal(self.exercises.X_test, self.X_test)
def test_y_train(self):
np_testing.assert_array_equal(self.exercises.y_train , self.y_train)
def test_y_test(self):
np_testing.assert_array_equal(self.exercises.y_test , self.y_test)
def test_train_preds(self):
np_testing.assert_array_equal(self.exercises.train_preds , self.train_preds)
def test_test_preds(self):
np_testing.assert_array_equal(self.exercises.test_preds, self.test_preds)
def test_train_preds2(self):
np_testing.assert_array_equal(self.exercises.train_preds2 , self.train_preds2)
def test_test_preds2(self):
np_testing.assert_array_equal(self.exercises.test_preds2 , self.test_preds2)
def test_train_acc(self):
self.assertEqual(self.exercises.train_acc, self.train_acc)
def test_test_acc(self):
self.assertEqual(self.exercises.test_acc, self.test_acc)
def test_train_acc2(self):
self.assertEqual(self.exercises.train_acc2, self.train_acc2)
def test_test_acc2(self):
self.assertEqual(self.exercises.test_acc2, self.test_acc2)
if __name__ == '__main__':
unittest.main()