0
我試圖編寫一個通用函數來運行大多數sklearn
模型,我可以使用這些模型快速瀏覽一行中的不同模型。如果我用一個數字替換leaf_size=30, n_neighbors=6
,以下代碼有效。它似乎期望第一個參數是n_neighbors
並且需要一個數字。我希望能夠傳遞函數兩條信息:a)模型名稱b)一個包含我想傳遞給模型的所有參數的字符串。將參數列表作爲一個字符串傳遞給python函數
有沒有簡單的我很想念或者這是不可能的?
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