sklearn
1行でさまざまなモデルをすばやく探索するために使用できるほとんどのモデルを実行するために、1つのジェネリック関数を作成しようとしています。以下のコードleaf_size=30, n_neighbors=6
は、数字に置き換えると機能します。最初の引数はであるn_neighbors
と予想されているようで、数値が必要です。関数に2つの情報を渡すことができるようにしたい:a)モデル名b)モデルに渡したいすべてのパラメーターを含む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')
パラメータとしてcsv文字列を渡したくない場合は、を使用できます**kwargs
。
パラメータ名と値を使用してdictを作成し、それを**
。を前に付けた関数に渡します。
例えば:
params = {'leaf_size': 30, 'n_neighbors': 6}
sklearn_mod(KNeighborsClassifier, **params)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加