Converti o exemplo do segundo capítulo para Ruby. Espero que ajude :)
Gemfile:
source 'https://rubygems.org'
gem 'lurn'
accesses.rb:
require 'csv'
def carregar_acessos
x = []
y = []
CSV.read('./acesso.csv').each_with_index do |row, index|
next if index == 0
home, como_funciona, contato, comprou = row
x << [ home.to_i, como_funciona.to_i, contato.to_i ]
y << comprou.to_i
end
return x, y
end
classifies_access.rb:
require 'lurn'
require_relative 'accesses'
x, y = carregar_acessos
treino_dados = x[0..89]
treino_marcacoes = y[0..89]
teste_dados = x[90..99]
teste_marcacoes = y[90..99]
model = Lurn::NaiveBayes::MultinomialNaiveBayes.new
model.fit(treino_dados, treino_marcacoes)
resultado = teste_dados.map { |dados| model.max_class(dados) }
diferencas = resultado.zip(teste_marcacoes).map { |x| x[0] - x[1] }
acertos = diferencas.select{ |diferenca| diferenca == 0 }
total_de_acertos = acertos.count
total_de_elementos = teste_dados.count
taxa_de_acerto = 100.0 * total_de_acertos / total_de_elementos
puts taxa_de_acerto
puts total_de_elementos
Bons estudos pessoal.
Valeu!