Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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]))
Ejemplo n.º 3
0
 def test_select_sample_4(self):
     sample_x = select_sample(self.x, n=300)
     self.assertEqual(len(sample_x), len(self.x))
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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]))
Ejemplo n.º 6
0
 def test_select_sample_2(self):
     sample = select_sample(self.x, n=1)
     self.assertIn(sample[0], self.x)
Ejemplo n.º 7
0
 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],
Ejemplo n.º 9
0
                                                  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)