私は星を持つデータセットに予測を行うスパークミリリットルで線形回帰を使用して1-5の範囲:Sparkの予測範囲を制限する方法は?
val lr = new LinearRegression()
.setMaxIter(10)
.setRegParam(0.3)
.setElasticNetParam(0.8)
.setFeaturesCol(featureCol).setLabelCol(labelCol)
// Fit the model
val lrModel = lr.fit(dataFrame)
val result = lrModel.transform(data)
result.show()
しかし、> 5、いくつかの予測:
私は範囲で予測を制限するにはどうすればよい+--------------------+-------+-----------+---+------------------+
| topicDistribution|user_id|business_id| s| prediction|
+--------------------+-------+-----------+---+------------------+
|[1.0,2.0,3.0,4.0,...| user| item| 0| 0.0|
|[0.01514119038647...| 2| 1| 4|4.3475413742362665|
|[0.03940825720524...| 2| 4| 3| 6.916754074011433|
|[0.01514116632977...| 2| 1| 4| 4.245671097612515|
|[0.01786143737009...| 2| 5| 5| 4.753807934900515|
|[0.03943774853904...| 2| 4| 3| 6.973022108753978|
|[0.04868600587994...| 3| 2| 4| 3.648043391726578|
|[0.01515983372328...| 2| 2| 4| 4.246801262511743|
|[0.01786135762750...| 2| 1| 5| 4.753905610858851|
|[0.03940799263407...| 2| 4| 3| 6.970579591530296|
|[0.04868653016151...| 3| 2| 4|3.6480609281936154|
+--------------------+-------+-----------+---+------------------+
[1,5]? または予測を[1,5]に変換する方法。
は、自然、線形回帰常に無限の予測を提供しています。基本的に、2つの選択肢が残っています。 2番目の方法は、回帰の代わりに分類を使用し、結果を目的の範囲に再スケーリングすることです。しかし、第3の選択肢として、意思決定ツリーの回帰フォレストを使用しようとすることもできます。それらはトレーニング中に見られなかった範囲を超える値を予測できません。しかし、この解決法はこの共通の問題に取り組む一般的な方法ではありません。 – Quickbeam2k1
希望する範囲に値を切り捨てる良い方法はありますか? –
しかし、私はSparkでいくつかの解決策を探しています。 –