def test_regression_2(self): n = 3 sample = select_sample(self.X_train, n=n) cp2 = individual_variable_profile(self.explainer_rf, sample, variables=['TAX', 'CRIM']) self.assertEqual(len(cp2.profile), cp2._grid_points * 2 * n)
def test_select_sample_6(self): sample_x, sample_y = select_sample(pd.DataFrame(self.x), pd.DataFrame(self.y), n=1) pos = list(self.y).index(sample_y[0]) self.assertSequenceEqual(list(sample_x.iloc[0]), list(self.x[pos]))
def test_select_sample_4(self): sample_x = select_sample(self.x, n=300) self.assertEqual(len(sample_x), len(self.x))
def test_select_sample_5(self): sample_x = select_sample(self.x, n=300) sample_x_2 = select_sample(pd.DataFrame(self.x), n=300) np.testing.assert_array_equal(sample_x, sample_x_2)
def test_select_sample_3(self): sample_x, sample_y = select_sample(self.x, self.y, n=1) pos = list(self.y).index(sample_y[0]) self.assertSequenceEqual(list(sample_x[0]), list(self.x[pos]))
def test_select_sample_2(self): sample = select_sample(self.x, n=1) self.assertIn(sample[0], self.x)
def test_select_sample(self): (_, m) = self.x.shape size = 2 sample = select_sample(self.x, n=size) self.assertEqual(sample.shape, (size, m))
# model, data, labels, variable_names return rf_model, X_train, y_train, list(boston['feature_names']) if __name__ == "__main__": (model, data, labels, variable_names) = random_forest_regression() explainer_rf = explain(model, variable_names, data, labels) cp_profile = individual_variable_profile(explainer_rf, X_train[0], y=y_train[0], variables=['TAX', 'CRIM']) plot(cp_profile) sample = select_sample(X_train, n=3) cp2 = individual_variable_profile(explainer_rf, sample, variables=['TAX', 'CRIM']) plot(cp2) neighbours = select_neighbours(X_train, X_train[0], variable_names=variable_names, selected_variables=variable_names, n=15) cp3 = individual_variable_profile(explainer_rf, neighbours, variables=['LSTAT', 'RM'], variable_splits={ 'LSTAT': [10, 20, 30],
random_state=42) gb_model.fit(x, y) return gb_model, x, y, var_names def supported_vector_machines_model(): svm_model = svm.SVR(C=0.01, gamma='scale') svm_model.fit(x, y) return svm_model, x, y, var_names if __name__ == "__main__": (linear_model, data, labels, variable_names) = linear_regression_model() (gb_model, _, _, _) = gradient_boosting_model() (svm_model, _, _, _) = supported_vector_machines_model() explainer_linear = explain(linear_model, variable_names, data, y) explainer_gb = explain(gb_model, variable_names, data, y) explainer_svm = explain(svm_model, variable_names, data, y) cp_profile = individual_variable_profile(explainer_linear, x[0], y[0]) plot(cp_profile, show_residuals=True) sample_x, sample_y = select_sample(x, y, n=10) cp2 = individual_variable_profile(explainer_gb, sample_x, y=sample_y) cp3 = individual_variable_profile(explainer_gb, x[0], y[0]) plot(cp3, show_residuals=True) plot(cp_profile, cp3, show_residuals=True)