2

r にいくつかの NA 値を持つデータフレームがあります。pmmlTransformations を使用して、これらのフィールドに欠損値の処理を設定するにはどうすればよいですか。データを変換するとき (正規化、フィールド マッピングなど) に missingValue 処理を設定できることを見てきましたが、データを正規化することなく欠損値を設定する方法を知りたいです。

    library(pmml)
    library(pmmlTransformations)

    df <- data.frame(id=1:5, y=1:5, x=c(2,4,3,NA,8))
    dataBox <- WrapData(df)

    # update the wrapped data to set x=1 when it its NA

    fit <- glm(formula=y~x, data = dataBox$data)

    pmml(fit, transforms=dataBox)

よろしくお願いします

アンドリュー

4

2 に答える 2

0

PMML ドキュメント内のmissingValueReplacement=1すべての要素に属性を追加するだけの場合は、関数呼び出しに追加します。MiningFieldunknownValue = 1pmml::pmml.glm

library(pmml)
df <- data.frame(id=1:5, y=1:5, x=c(2,4,3,NA,8))
# Set missing values to 1 before training a GLM model
df$x[is.na(df$x)] = 1
fit <- glm(formula=y~x, data = df)
# Encode information about the missing value transformation into the PMML document
pmml = pmml.glm(fit, unknownValue = 1)
saveXML(pmml, "glm.pmml")

確かに、このunknownValueパラメーターは廃止されたように見えますが、複雑な一連の変換を起動することなく、必要なことを正確に実行します。

于 2015-05-11T14:10:51.950 に答える
0

unknownValue パラメータを使用できます pmml.glm(glm, transforms = dataBox, unknownValue = 0) が、これはターゲット変数を含むすべての変数に適用されます。

各変数の置換値を指定できるようにする修正を書きました: https://github.com/guleatoma/pmml

このバージョンのパッケージを使用すると、次のことができます。

pmml.glm(glm, transforms = dataBox, unknownValue = list("x1" = 0, "x2" = 100))

于 2017-09-20T16:38:38.557 に答える