2017-06-10 6 views
0

私はこれに従うことを試みるMLlib tutorial。私はEstimatorsのコンセプトを理解しました。それは入力としてデータフレームを受け取り、それを使用して、MLlib用語のトランスフォーマ(データフレームを入力として受け取り、別のデータフレームを返す)である予測モデルを訓練して返します。MLlib Estimatorは、フィーチャとターゲットカラムが何であるかをどのように知っていますか?

私には分かりませんが、Estimatorは、データフレームのどの列をフィーチャとして扱い、どの列をターゲットとして使用するかをどのように知っていますか?

はのは、この例を見てみましょう:

from pyspark.ml.classification import LogisticRegression 

# Prepare training data from a list of (label, features) tuples. 
training = spark.createDataFrame([ 
    (1.0, Vectors.dense([0.0, 1.1, 0.1])), 
    (0.0, Vectors.dense([2.0, 1.0, -1.0])), 
    (0.0, Vectors.dense([2.0, 1.3, 1.0])), 
    (1.0, Vectors.dense([0.0, 1.2, -0.5]))], ["label", "features"]) 

# Create a LogisticRegression instance. This instance is an Estimator. 
lr = LogisticRegression(maxIter=10, regParam=0.01) 
# Print out the parameters, documentation, and any default values. 
print("LogisticRegression parameters:\n" + lr.explainParams() + "\n") 

# Learn a LogisticRegression model. This uses the parameters stored in lr. 
model1 = lr.fit(training) 

私はモデルが機能としてfeatures列を取り、ターゲットとしてlabel列を扱うことを推測します。それが正しいか?そのような場合は、このデフォルトの動作を変更できますか?

答えて

2

LogisticRegressionはデフォルトでlablelfeaturesありlabelColfeaturesColParamsを持っていました。両方のコンストラクタ

LogisticRegression(maxIter=10, regParam=0.01, labelCol="foo", featuresCol="bar") 

または対応するセッターメソッドを使用して設定することができる。

lr.setLabelCol("foo").setFeaturesCol("bar") 

は同一Paramsml分類および予測アルゴリズムの大部分で使用されています。

関連する問題