私は、一行で異なるモデルをすばやく探索するために使用できるほとんどのsklearn
モデルを実行するための汎用関数を作成しようとしています。 leaf_size=30, n_neighbors=6
を番号に置き換えると、次のコードが機能します。最初の引数はn_neighbors
であり、数値が必要です。関数に2つの情報を渡すことができます:a)モデル名b)モデルに渡すすべてのパラメータを含む1つの文字列。Python関数の1つの文字列としてパラメータのリストを渡す
シンプルなものがありますか?
def sklearn_mod(mod_name,param_list):
mod = mod_name(param_list)
mod.fit(features_train, target_train)
print(mod)
expected = target_test
predicted_mod = mod.predict(features_test)
print('-----')
print "Accuracy of Model:", accuracy_score(target_test, predicted_mod)
print('-----')
print(classification_report(target_test, predicted_mod))
y_pred = predicted_mod
y_true = expected
print(confusion_matrix(y_true, y_pred))
print('-----')
print('Cross Validation:')
scores = cross_val_score(mod, features_train, target_train, cv=10)
print(scores)
print"Mean CV Accuracy:",scores.mean()
print('-----');
sklearn_mod(KNeighborsClassifier,'leaf_size=30, n_neighbors=6')
私は、これはあまりにも難しい作っていたと思います。私はこれが私の定義された関数のただ一つのパラメータ値でうまくいくと思います。 sklearn_mod(KNeighborsClassifier(n_neighbors = 6、leaf_size = 30)) – mizzou541