0

10 個の入力特徴を含む入力特徴ベクトルがあるとします。それぞれの大きさは約1E-7です。

logこれらの入力フィーチャを使用して線形回帰を実行するとR^2、約 の値が得られ0.98ます。

ただし、1E-2上記の適合を実行する前に入力フィーチャのそれぞれに追加すると、 のR^2値が得られます0.5616

問題は、入力フィーチャに追加された定数が であることを先験的に知ることが1E-2できないため、毎回その量を単純に差し引くことができないことです。

入力機能セットに追加された大きな未知の定数を修正する一般的な方法はありますか?

サンプルの入力ファイルは次のとおりです: http://stanford.edu/~hq6/13

対応する出力ファイルは次のとおりです: http://stanford.edu/~hq6/15

トレーニングに使用されるコードを次に示します。

input_features = read.csv('InputFeatures.csv', header=F)

# Adding constant error term to all input features
input_features = input_features + 1E-2
# How can we correct for this constant if we do not know what the constant is beforehand?

input_features[input_features <= 0] = 1E-10
input_features = log(input_features)
output = read.csv('Output.csv', header=F)

full_data = data.frame(input_features,  output)
summary(lm(V1.1 ~ ., data=full_data))

このコードを行なしで実行すると、出力からおおよそinput_features = input_features + 1E-2の が得られます。R-squared0.98summary

この行を入れると、R-squared未満の0.5.

4

2 に答える 2

0

R^10 の線形回帰により、10 次元超平面の係数である 11 個の実数が得られます。あなたの投稿から、まだ間違っているように見える1つ(「...の値」)または最大2つ(「R ^ 2」)があるようです。

それとも、R^2 とは、残差エラーを意味していたのでしょうか?

線形回帰自体は、数値の不正確さにつながらず、すべての機能に追加する限り、定数を追加しても不変です。1つだけに追加すると、結果が変わることは明らかです-この次元は(定数の符号に応じて)重要性が高くなったり低くなったりする可能性があるためです。そのような操作に対して不変にするために、データを正規化できます(間隔に線形にスケーリングするか、平均= 0および標準= 1に正規化することにより)

于 2013-10-31T06:40:22.227 に答える