GridSearchCVで推定値としてSupport Vector Regressionを使用しています。しかし、私はエラー関数を変更したい:デフォルト(R-二乗:決定の係数)を使用する代わりに、自分のカスタムエラー関数を定義したいと思う。scikit-learnで独自のスコアラー機能を作成/カスタマイズする方法は?
make_scorer
で作成しようとしましたが、機能しませんでした。
私はドキュメントを読んでcustom estimatorsを作成することができますが、エスカレータ全体を再作成する必要はなく、エラー/スコアリング機能のみを再作成する必要はありません。
私はそれがdocsのように、スコアリング担当者としてコール可能を定義することによってそれを行うことができると思います。
しかし、推測子の使用方法はわかりません。私の場合はSVRです。分類器(SVCなど)に切り替える必要がありますか?そして私はそれをどのように使用しますか?次のように
マイカスタムエラー機能は次のとおりです。
def my_custom_loss_func(X_train_scaled, Y_train_scaled):
error, M = 0, 0
for i in range(0, len(Y_train_scaled)):
z = (Y_train_scaled[i] - M)
if X_train_scaled[i] > M and Y_train_scaled[i] > M and (X_train_scaled[i] - Y_train_scaled[i]) > 0:
error_i = (abs(Y_train_scaled[i] - X_train_scaled[i]))**(2*np.exp(z))
if X_train_scaled[i] > M and Y_train_scaled[i] > M and (X_train_scaled[i] - Y_train_scaled[i]) < 0:
error_i = -(abs((Y_train_scaled[i] - X_train_scaled[i]))**(2*np.exp(z)))
if X_train_scaled[i] > M and Y_train_scaled[i] < M:
error_i = -(abs(Y_train_scaled[i] - X_train_scaled[i]))**(2*np.exp(-z))
error += error_i
return error
変数M
は/ゼロnullではありません。単純化のためにゼロに設定しました。
このカスタムスコアリング関数のサンプルアプリケーションは誰でも表示できますか?ご協力いただきありがとうございます!
例:(estimator、X、y) – daniel2014
回答のうちの1つを良いものとしてマークすることを忘れないでください。ありがとう:) – astrojuanlu