Sha256: 4d8a5dbfcc7ac9858427762f6546aa9cf409b26d675bd0b93ac36a78c6bc5e10

Contents?: true

Size: 1.37 KB

Versions: 6

Compression:

Stored size: 1.37 KB

Contents

require File.dirname(__FILE__) + '/../../lib/ai4r/classifiers/naive_bayes'
require File.dirname(__FILE__) + '/../../lib/ai4r/data/data_set'
require 'test/unit'

include Ai4r::Classifiers
include Ai4r::Data

class NaiveBayesTest < Test::Unit::TestCase

  @@data_labels = [ "Color","Type","Origin","Stolen?" ]

  @@data_items = [
              ["Red",   "Sports", "Domestic", "Yes"],
              ["Red",   "Sports", "Domestic", "No"],
              ["Red",   "Sports", "Domestic", "Yes"],
              ["Yellow","Sports", "Domestic", "No"],
              ["Yellow","Sports", "Imported", "Yes"],
              ["Yellow","SUV",    "Imported", "No"],
              ["Yellow","SUV",    "Imported", "Yes"],
              ["Yellow","Sports", "Domestic", "No"],
              ["Red",   "SUV",    "Imported", "No"],
              ["Red",   "Sports", "Imported", "Yes"]
            ]

  def setup
    @data_set = DataSet.new
    @data_set = DataSet.new(:data_items => @@data_items, :data_labels => @@data_labels)
    @b = NaiveBayes.new.set_parameters({:m=>3}).build @data_set
  end

  def test_eval
    result = @b.eval(["Red", "SUV", "Domestic"])
    assert_equal "No", result
  end

  def test_get_probability_map
    map = @b.get_probability_map(["Red", "SUV", "Domestic"])
    assert_equal 2, map.keys.length
    assert_in_delta 0.42, map["Yes"], 0.1
    assert_in_delta 0.58, map["No"], 0.1
  end

end

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
nirvdrum-ai4r-1.9.1 test/classifiers/naive_bayes_test.rb
ai4ruby-1.14 test/classifiers/naive_bayes_test.rb
ai4ruby-1.13 test/classifiers/naive_bayes_test.rb
ai4ruby-1.12 test/classifiers/naive_bayes_test.rb
ai4ruby-1.11 test/classifiers/naive_bayes_test.rb
ai4r-1.9 test/classifiers/naive_bayes_test.rb