官术网_书友最值得收藏!

  • Scala for Data Science
  • Pascal Bugnion
  • 310字
  • 2021-07-23 14:33:05

Diving into Breeze

Let's get started. We will work in the Scala console, but a program similar to this example is available in BreezeDemo.scala in the examples corresponding to this chapter. Create a build.sbt file with the following lines:

scalaVersion := "2.11.7"

libraryDependencies ++= Seq(
  "org.scalanlp" %% "breeze" % "0.11.2",
  "org.scalanlp" %% "breeze-viz" % "0.11.2",
  "org.scalanlp" %% "breeze-natives" % "0.11.2"
)

Start an sbt console:

$ sbt console

scala> import breeze.linalg._
import breeze.linalg._

scala> import breeze.plot._
import breeze.plot._

scala> import breeze.numerics._
import breeze.numerics._

Let's start by plotting a sigmoid curve, Diving into Breeze. We will first generate the data using Breeze. Recall that the linspace method creates a vector of doubles, uniformly distributed between two values:

scala> val x = linspace(-4.0, 4.0, 200)
x: DenseVector[Double] = DenseVector(-4.0, -3.959798...

scala> val fx = sigmoid(x)
fx: DenseVector[Double] = DenseVector(0.0179862099620915,...

We now have the data ready for plotting. The first step is to create a figure:

scala> val fig = Figure()
fig: breeze.plot.Figure = breeze.plot.Figure@37e36de9

This creates an empty Java Swing window (which may appear on your taskbar or equivalent). A figure can contain one or more plots. Let's add a plot to our figure:

scala> val plt = fig.subplot(0)
plt: breeze.plot.Plot = breeze.plot.Plot@171c2840

For now, let's ignore the 0 passed as argument to .subplot. We can add data points to our plot:

scala> plt += plot(x, fx)
breeze.plot.Plot = breeze.plot.Plot@63d6a0f8

The plot function takes two arguments, corresponding to the x and y values of the data series to be plotted. To view the changes, you need to refresh the figure:

scala> fig.refresh()

Look at the Swing window now. You should see a beautiful sigmoid, similar to the one below. Right-clicking on the window lets you interact with the plot and save the image as a PNG:

You can also save the image programmatically as follows:

scala> fig.saveas("sigmoid.png")

Breeze-viz currently only supports exporting to PNG.

主站蜘蛛池模板: 和静县| 永昌县| 寻甸| 贵定县| 云南省| 浦江县| 淮阳县| 始兴县| 宜章县| 甘南县| 贺兰县| 马关县| 辽阳县| 平乡县| 海阳市| 中卫市| 岐山县| 哈尔滨市| 安国市| 平利县| 额尔古纳市| 鄂托克旗| 米林县| 四平市| 临猗县| 黑山县| 吴桥县| 府谷县| 都匀市| 龙泉市| 班戈县| 郧西县| 大洼县| 谷城县| 原阳县| 班玛县| 襄城县| 永仁县| 台江县| 岐山县| 临澧县|