@@ -2360,7 +2360,7 @@ def explainedVariance(self):
2360
2360
2361
2361
2362
2362
@inherit_doc
2363
- class RFormula (JavaEstimator , HasFeaturesCol , HasLabelCol ):
2363
+ class RFormula (JavaEstimator , HasFeaturesCol , HasLabelCol , MLReadable , MLWritable ):
2364
2364
"""
2365
2365
.. note:: Experimental
2366
2366
@@ -2385,7 +2385,31 @@ class RFormula(JavaEstimator, HasFeaturesCol, HasLabelCol):
2385
2385
|0.0|0.0| a|[0.0,1.0]| 0.0|
2386
2386
+---+---+---+---------+-----+
2387
2387
...
2388
- >>> rf.fit(df, {rf.formula: "y ~ . - s"}).transform(df).show()
2388
+ >>> model = rf.fit(df, {rf.formula: "y ~ . - s"})
2389
+ >>> model.transform(df).show()
2390
+ +---+---+---+--------+-----+
2391
+ | y| x| s|features|label|
2392
+ +---+---+---+--------+-----+
2393
+ |1.0|1.0| a| [1.0]| 1.0|
2394
+ |0.0|2.0| b| [2.0]| 0.0|
2395
+ |0.0|0.0| a| [0.0]| 0.0|
2396
+ +---+---+---+--------+-----+
2397
+ ...
2398
+ >>> rFormulaPath = temp_path + "/rFormula"
2399
+ >>> rf.save(rFormulaPath)
2400
+ >>> loadedRF = RFormula.load(rFormulaPath)
2401
+ >>> loadedRF.getFormula() == rf.getFormula()
2402
+ True
2403
+ >>> loadedRF.getFeaturesCol() == rf.getFeaturesCol()
2404
+ True
2405
+ >>> loadedRF.getLabelCol() == rf.getLabelCol()
2406
+ True
2407
+ >>> modelPath = temp_path + "/rFormula-model"
2408
+ >>> model.save(modelPath)
2409
+ >>> loadedModel = RFormulaModel.load(modelPath)
2410
+ >>> loadedModel.uid == model.uid
2411
+ True
2412
+ >>> loadedModel.transform(df).show()
2389
2413
+---+---+---+--------+-----+
2390
2414
| y| x| s|features|label|
2391
2415
+---+---+---+--------+-----+
@@ -2439,7 +2463,7 @@ def _create_model(self, java_model):
2439
2463
return RFormulaModel (java_model )
2440
2464
2441
2465
2442
- class RFormulaModel (JavaModel ):
2466
+ class RFormulaModel (JavaModel , MLReadable , MLWritable ):
2443
2467
"""
2444
2468
.. note:: Experimental
2445
2469
0 commit comments