カスタム費用関数にTensorflow(またはtheano)を使用できます。一般的な線形回帰の実装はhereです。
テンソルフローに実装されている雑音除去機能を見てカスタムコスト関数を実装する方法を知ることができます。
error = y_known - y_pred
condition = tf.less(error, 0)
overestimation_loss = 1 * tf.square(error)
underestimation_loss = 3 * tf.square(error)
cost = tf.reduce_mean(tf.where(condition, overestimation_loss, underestimation_loss))
条件が真のとき、エラーがより低くなっている。ここ:ここでは、その代わりに、あなたが持っているだろうにリンクされたコードで
cost = tf.reduce_sum(tf.pow(pred-Y, 2))/(2*n_samples)
のリンクされたコードに置き換える必要がありますカスタム費用関数が来ますこれはy_knownがy_predよりも小さいことを意味するので、あなたは過大評価を受けるので、tf.whereステートメントは過大評価_lossを選択します。そうでなければ過小評価損失を選択します。
秘密は、両方の損失を計算し、tf.whereと条件を使用してそれらを使用する場所を選択することです。
更新:あなたは他のライブラリを使用したい場合はhuber lossが実装されている場合フーバー損失はあなたに似た条件損失関数であるため、
、あなたのアイデアを得るために見てみることができます。
出典
2017-06-27 23:44:14
Ash