🎨 Refactor Tree estimator specs
This commit is contained in:
parent
66251d76bc
commit
5749932e5d
|
@ -27,11 +27,13 @@ RSpec.describe Rumale::Tree::DecisionTreeClassifier do
|
|||
let(:dataset) { two_clusters_dataset }
|
||||
|
||||
it 'classifies two clusters data.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.classes.class).to eq(Numo::Int32)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.classes).to be_a(Numo::Int32)
|
||||
expect(estimator.classes).to be_contiguous
|
||||
expect(estimator.classes.ndim).to eq(1)
|
||||
expect(estimator.classes.shape[0]).to eq(n_classes)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(score).to eq(1.0)
|
||||
|
@ -42,18 +44,21 @@ RSpec.describe Rumale::Tree::DecisionTreeClassifier do
|
|||
let(:dataset) { three_clusters_dataset }
|
||||
|
||||
it 'classifies three clusters data.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.classes.class).to eq(Numo::Int32)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.classes).to be_a(Numo::Int32)
|
||||
expect(estimator.classes).to be_contiguous
|
||||
expect(estimator.classes.ndim).to eq(1)
|
||||
expect(estimator.classes.shape[0]).to eq(n_classes)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(score).to eq(1.0)
|
||||
end
|
||||
|
||||
it 'estimates class probabilities with three clusters dataset.', :aggregate_failures do
|
||||
expect(probs.class).to eq(Numo::DFloat)
|
||||
expect(probs).to be_a(Numo::DFloat)
|
||||
expect(probs).to be_contiguous
|
||||
expect(probs.ndim).to eq(2)
|
||||
expect(probs.shape[0]).to eq(n_samples)
|
||||
expect(probs.shape[1]).to eq(n_classes)
|
||||
|
|
|
@ -26,14 +26,17 @@ RSpec.describe Rumale::Tree::DecisionTreeRegressor do
|
|||
let(:y) { single_target }
|
||||
|
||||
it 'learns the model for single regression problem.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(estimator.leaf_values.class).to eq(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_a(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_contiguous
|
||||
expect(estimator.leaf_values.ndim).to eq(1)
|
||||
expect(estimator.leaf_values.shape[0]).not_to be_zero
|
||||
expect(predicted.class).to eq(Numo::DFloat)
|
||||
expect(predicted).to be_a(Numo::DFloat)
|
||||
expect(predicted).to be_contiguous
|
||||
expect(predicted.ndim).to eq(1)
|
||||
expect(predicted.shape[0]).to eq(n_samples)
|
||||
expect(score).to be_within(0.01).of(1.0)
|
||||
|
@ -112,15 +115,18 @@ RSpec.describe Rumale::Tree::DecisionTreeRegressor do
|
|||
let(:y) { multi_target }
|
||||
|
||||
it 'learns the model for multiple regression problem.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(estimator.leaf_values.class).to eq(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_a(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_contiguous
|
||||
expect(estimator.leaf_values.ndim).to eq(2)
|
||||
expect(estimator.leaf_values.shape[0]).not_to be_zero
|
||||
expect(estimator.leaf_values.shape[1]).to eq(n_outputs)
|
||||
expect(predicted.class).to eq(Numo::DFloat)
|
||||
expect(predicted).to be_a(Numo::DFloat)
|
||||
expect(predicted).to be_contiguous
|
||||
expect(predicted.ndim).to eq(2)
|
||||
expect(predicted.shape[0]).to eq(n_samples)
|
||||
expect(predicted.shape[1]).to eq(n_outputs)
|
||||
|
|
|
@ -27,11 +27,13 @@ RSpec.describe Rumale::Tree::ExtraTreeClassifier do
|
|||
let(:dataset) { two_clusters_dataset }
|
||||
|
||||
it 'classifies two clusters data.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.classes.class).to eq(Numo::Int32)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.classes).to be_a(Numo::Int32)
|
||||
expect(estimator.classes).to be_contiguous
|
||||
expect(estimator.classes.ndim).to eq(1)
|
||||
expect(estimator.classes.shape[0]).to eq(n_classes)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(score).to eq(1.0)
|
||||
|
@ -42,18 +44,21 @@ RSpec.describe Rumale::Tree::ExtraTreeClassifier do
|
|||
let(:dataset) { three_clusters_dataset }
|
||||
|
||||
it 'classifies three clusters data.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.classes.class).to eq(Numo::Int32)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.classes).to be_a(Numo::Int32)
|
||||
expect(estimator.classes).to be_contiguous
|
||||
expect(estimator.classes.ndim).to eq(1)
|
||||
expect(estimator.classes.shape[0]).to eq(n_classes)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(score).to eq(1.0)
|
||||
end
|
||||
|
||||
it 'estimates class probabilities with three clusters dataset.', :aggregate_failures do
|
||||
expect(probs.class).to eq(Numo::DFloat)
|
||||
expect(probs).to be_a(Numo::DFloat)
|
||||
expect(probs).to be_contiguous
|
||||
expect(probs.ndim).to eq(2)
|
||||
expect(probs.shape[0]).to eq(n_samples)
|
||||
expect(probs.shape[1]).to eq(n_classes)
|
||||
|
|
|
@ -26,14 +26,17 @@ RSpec.describe Rumale::Tree::ExtraTreeRegressor do
|
|||
let(:y) { single_target }
|
||||
|
||||
it 'learns the model for single regression problem.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(estimator.leaf_values.class).to eq(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_a(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_contiguous
|
||||
expect(estimator.leaf_values.ndim).to eq(1)
|
||||
expect(estimator.leaf_values.shape[0]).not_to be_zero
|
||||
expect(predicted.class).to eq(Numo::DFloat)
|
||||
expect(predicted).to be_a(Numo::DFloat)
|
||||
expect(predicted).to be_contiguous
|
||||
expect(predicted.ndim).to eq(1)
|
||||
expect(predicted.shape[0]).to eq(n_samples)
|
||||
expect(score).to be_within(0.01).of(1.0)
|
||||
|
@ -111,11 +114,13 @@ RSpec.describe Rumale::Tree::ExtraTreeRegressor do
|
|||
let(:y) { multi_target }
|
||||
|
||||
it 'learns the model for multiple regression problem.', :aggregate_failures do
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.ndim).to eq(1)
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(estimator.leaf_values.class).to eq(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_a(Numo::DFloat)
|
||||
expect(estimator.leaf_values).to be_contiguous
|
||||
expect(estimator.leaf_values.ndim).to eq(2)
|
||||
expect(estimator.leaf_values.shape[0]).not_to be_zero
|
||||
expect(estimator.leaf_values.shape[1]).to eq(n_outputs)
|
||||
|
|
|
@ -23,11 +23,13 @@ RSpec.describe Rumale::Tree::GradientTreeRegressor do
|
|||
|
||||
it 'classifies two clusters data.' do
|
||||
estimator.fit(x_bin, y_bin, grad, hess)
|
||||
expect(estimator.tree.class).to eq(Rumale::Tree::Node)
|
||||
expect(estimator.leaf_weights.class).to eq(Numo::DFloat)
|
||||
expect(estimator.tree).to be_a(Rumale::Tree::Node)
|
||||
expect(estimator.leaf_weights).to be_a(Numo::DFloat)
|
||||
expect(estimator.leaf_weights).to be_contiguous
|
||||
expect(estimator.leaf_weights.shape[0]).to eq(2)
|
||||
expect(estimator.leaf_weights.shape[1]).to be_nil
|
||||
expect(estimator.feature_importances.class).to eq(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_a(Numo::DFloat)
|
||||
expect(estimator.feature_importances).to be_contiguous
|
||||
expect(estimator.feature_importances.shape[0]).to eq(n_features)
|
||||
expect(estimator.feature_importances.shape[1]).to be_nil
|
||||
expect(estimator.score(x_bin, Numo::DFloat.cast(y_bin))).to be > 0.95
|
||||
|
|
Loading…
Reference in New Issue