homebrew-core/Formula/vowpal-wabbit.rb
2016-12-30 12:32:12 +01:00

84 lines
2.8 KiB
Ruby

class VowpalWabbit < Formula
desc "Online learning algorithm"
homepage "https://github.com/JohnLangford/vowpal_wabbit"
url "https://github.com/JohnLangford/vowpal_wabbit/archive/8.3.1.tar.gz"
sha256 "7455aa2093d8baa9035c0a79ac9cfbceda2982f83b668950c4e4dceb79f66a52"
bottle do
cellar :any
sha256 "209fc2410773ed60286666d789ed9d9258676b777cb0a388b6e906346c905dc2" => :sierra
sha256 "a88a01d31665c6a8e1d9c00c0f973af75fddf5a97cf98ff99fdd4fe413ee6b26" => :el_capitan
sha256 "89da02697894ea7a9a1c00cf7d5bb36f27c0a1c2d95a12612a03c45e805c834c" => :yosemite
end
if MacOS.version < :mavericks
depends_on "boost" => "c++11"
else
depends_on "boost"
end
depends_on "autoconf" => :build
depends_on "automake" => :build
depends_on "libtool" => :build
needs :cxx11
def install
ENV.cxx11
ENV["AC_PATH"] = "#{HOMEBREW_PREFIX}/share"
system "./autogen.sh", "--prefix=#{prefix}",
"--with-boost=#{Formula["boost"].opt_prefix}"
system "make"
system "make", "install"
bin.install Dir["utl/*"]
rm bin/"active_interactor.py"
rm bin/"new_version"
rm bin/"vw-validate.html"
rm bin/"release.ps1"
end
test do
(testpath/"house_dataset").write <<-EOS.undent
0 | price:.23 sqft:.25 age:.05 2006
1 2 'second_house | price:.18 sqft:.15 age:.35 1976
0 1 0.5 'third_house | price:.53 sqft:.32 age:.87 1924
EOS
system bin/"vw", "house_dataset", "-l", "10", "-c", "--passes", "25", "--holdout_off", "--audit", "-f", "house.model", "--nn", "5"
system bin/"vw", "-t", "-i", "house.model", "-d", "house_dataset", "-p", "house.predict"
(testpath/"csoaa.dat").write <<-EOS.undent
1:1.0 a1_expect_1| a
2:1.0 b1_expect_2| b
3:1.0 c1_expect_3| c
1:2.0 2:1.0 ab1_expect_2| a b
2:1.0 3:3.0 bc1_expect_2| b c
1:3.0 3:1.0 ac1_expect_3| a c
2:3.0 d1_expect_2| d
EOS
system bin/"vw", "--csoaa", "3", "csoaa.dat", "-f", "csoaa.model"
system bin/"vw", "-t", "-i", "csoaa.model", "-d", "csoaa.dat", "-p", "csoaa.predict"
(testpath/"ect.dat").write <<-EOS.undent
1 ex1| a
2 ex2| a b
3 ex3| c d e
2 ex4| b a
1 ex5| f g
EOS
system bin/"vw", "--ect", "3", "-d", "ect.dat", "-f", "ect.model"
system bin/"vw", "-t", "-i", "ect.model", "-d", "ect.dat", "-p", "ect.predict"
(testpath/"train.dat").write <<-EOS.undent
1:2:0.4 | a c
3:0.5:0.2 | b d
4:1.2:0.5 | a b c
2:1:0.3 | b c
3:1.5:0.7 | a d
EOS
(testpath/"test.dat").write <<-EOS.undent
1:2 3:5 4:1:0.6 | a c d
1:0.5 2:1:0.4 3:2 4:1.5 | c d
EOS
system bin/"vw", "-d", "train.dat", "--cb", "4", "-f", "cb.model"
system bin/"vw", "-t", "-i", "cb.model", "-d", "test.dat", "-p", "cb.predict"
end
end