機械学習-AndrewNg-問題のプログラミング割り当てfmin_cg3
Machine Learning Andrew Ng Programming Assignments Fmin_cg 3 Problem
目次
最初にlr_cost_function()
with lr_gradient()
問題の2つの関数変数、つまり変数名エラーかどうかを確認します。
2番目のステップは、チェックopt_theta = opt.fmin_cg(lr_cost_function,initial_theta,lr_gradient,args=(X,y,lamda))
問題があるかどうか関数呼び出しをチェックし、変数を調べますinitial_theta,X,y,lamda
、問題を見つけます。 y
の問題。
y
これはトレーニングサンプルのラベルであり、その値はy∈1、2、3、4、5、6、7、8、9、10 y in {1,2,3,4,5,6,7,8,9,10}それぞれ、入力サンプル番号1、2、...、9,0を表します。ただし、ラベルはモデル入力Y
である必要があり、その値はY∈0、1 Y in {0,1}、画像が番号8であるかどうかを分類するためにモデルが使用されると仮定すると、Y = 1 Y = 1図8は、サンプルがデジタルであることを示しています。Y = 0 Y = 0サンプルが他のデジタル8に追加されていることを示しています。
別の問題はY[y==8] == 1
、設定する元の計画y==8
サンプルラベル1
、しかしステートメントは文を決定することです、結果Y
は0の値です完全なベクトル。
次のようにコードを変更します(変更セクションのみを表示します)。
print('Training ...') Y = np.zeros(m) Y[y==8] = 1 initial_theta = np.zeros(n+1) opt_theta = opt.fmin_cg(lr_cost_function,initial_theta,lr_gradient, args=(X,Y,lamda))
結果は次のとおりです。
Training one-vs-all classification ... Shape of lables: (5000,) Before add x_0,x's shape: (5000, 400) After add x_0,x's shape: (5000, 401) Training ... (401,) Optimization terminated successfully. Current function value: 0.078452 Iterations: 371 Function evaluations: 1017 Gradient evaluations: 1017
この時点で、トレーニングプロセス全体が完了します-