Logistic Regression With H2O Deep Learning in Scala [Code Snippet]
In this heavily code-based tutorial, learn how to perform logistic regression using feed-forward network-based deep learning algorithms and H2O.
Join the DZone community and get the full member experience.Join For Free
Here is some sample code that shows an example of using feed-forward network-based deep learning algorithms with H2O to perform logistic regression.
First, let's import key classes specific to H2O:
import org.apache.spark.h2o._ import water.Key import java.io.File
Now, we will create H2O context so that we can call key H2O functions specific to data ingest and deep learning algorithms:
val h2oContext = H2OContext.getOrCreate(sc) import h2oContext._ import h2oContext.implicits._
Let's import data from a local file system as an H2O DataFrame:
val prostateData = new H2OFrame(new File("/Users/avkashchauhan/src/github.com/h2oai/sparkling-water/examples/smalldata/prostate.csv"))
Next, let's import deep learning classes:
import root.hex.deeplearning.DeepLearning import root.hex.deeplearning.DeepLearningModel.DeepLearningParameters
Now, we will define all key parameters specific to the H2O deep learning algorithm:
val dlParams = new DeepLearningParameters() dlParams._epochs = 100 dlParams._train = prostateData dlParams._response_column = 'CAPSULE dlParams._variable_importances = true dlParams._nfolds = 5 dlParams._seed = 1111 dlParams._keep_cross_validation_predictions = true;
Now we will create the Deep Learning Algorithm key first and then start the deep learning algorithm in blocking mode:
val dl = new DeepLearning(dlParams, Key.make("dlProstateModel.hex")) val dlModel = dl.trainModel.get()
Let's learn more about our model with
Now, we can perform the prediction by passing an H2O DataFrame. Here, I am simply passing the original DataFrame. However, you can load your test DataFrame and pass it as an H2O frame to perform prediction:
val predictionH2OFrame = dlModel.score(prostateData)('predict) val predictionsFromModel = asRDD[DoubleHolder](predictionH2OFrame).collect.map(_.result.getOrElse(Double.NaN))
That's it — enjoy!
Published at DZone with permission of Avkash Chauhan, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.