私は、座標降下を使って、ラッセル回帰を実行する関数を書いています。次のようにPythonのIf-conditionで再帰呼び出しを使用する
コードは次のとおりです。とき、私ここに
def lasso_cyclical_coordinate_descent(feature_matrix, output, weights, l1_penalty, tolerance):
for i in range(len(weights)):
old_weights_i = weights[i]
weights[i] = lasso_coordinate_descent_step(i, feature_matrix, output, weights, l1_penalty)
diff = []
diff.append(abs(old_weights_i - weights[i]))
if max(diff) > tolerance:
weights = lasso_cyclical_coordinate_descent(feature_matrix, output, weights, l1_penalty, tolerance)
return weights
私の思考は、If条件内部再帰呼び出しを実行すると、条件を満たさない場合にのみ返される重みをもたらすことだった、それはあります私の望む結果を得てください。それまでは、関数は再帰的に呼び出され続けます。
私の論理は正しいですか?私はこれを他の誰かと話しました。彼はそうではないと言いましたが、それ以上説明しませんでした。
'return'ステートメントは、関数の一部になるように字下げする必要があります。 – Barmar
オハイオ州申し訳ありませんが、コードでは、ここでインデントするのを忘れていました。 – Sabhijiit
このコードについて私に尋ねる理由がわかりません。なぜそれを実行し、どのようにそれを参照してくださいなぜですか?私たちはそれをテストすることはできません。(それは[mcve]ではないので)私たちが貢献することはたくさんありません。 – Blckknght