簡體   English   中英

最適合這個問題的機器學習算法?

[英]Most suitable Machine Learning algorithm for this problem?

我有一個數據集,我想決定將哪種 ML 算法應用於我給定的問題。

客戶將填寫一份包含 50 個問題的評估問卷。 問題的例子是,你的工作是什么,以前的工作經歷,你的收入是多少,你是否被拒絕貸款等,最終目標是決定他們是否應該被拒絕。

我有大約 500 個條目供我的算法學習和預處理我的數據集並將輸入轉換為 numpy 數組,想知道最好的算法是什么? 我應該在 tensorflow 中使用分類算法還是神經網絡,如果是后者,我應該使用哪些層?

謝謝

xgboostrandom forest開始怎么樣? - 如此普通的“老”ML? 優點是您可以在訓練后可視化 model 的決策樹。

如果在 tensorflow(或什至更簡單:keras 和 tensorflow 后端)中使用 NN,您可以使用 MLP(多層感知器)go,因為問題答案在輸入中固定為 position。 你不需要很多層。

重要的是您按列對輸入數據進行歸一化,以便輸入數字不會分別比 +1/-1 大/小很多。 介紹性書籍經常忽略這一點,盡管這一點很重要。

由於您的目標標簽是“接受”或“拒絕”,因此二元分類器將執行此操作(也在機器學習方法中)。 (您使用 0 和 1 作為標簽)。

對於 NN,您不需要許多層或神經元的分類。 首先嘗試 smallest.network。 假設第一層有 10 個神經元,然后下一層有 7 個神經元(可能更少),然后 1 個 output 神經元用於二元決策。

對於 Keras 這將是:

from keras.models import Sequential
from keras.layers import Dense

def create_mlp(n_input = 500): # number of columns of input data 500 here
    model = Sequential()
    model.add(Dense(10, input_dim=n_input, kernel_initializer='normal', activation='relu')) # init = kernel_initializer
    model.add(Dense(7, kernel_initializer='normal', activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(optimizer='adam',
                  loss='binary_crossentropy',
                  metrics=['acc'])
    return model

model = create_mlp(500) # this will generate the correct NN compiled.

您的數據框(或 Numpy 輸入數組必須具有樣本作為行,列用於問題 1 列的每個答案。您必須以數字形式編碼的答案。數字應該很小 - 最好在 -1 和 1 之間. NN 不喜歡大數字。因此,按列歸一化會有所幫助。)

而已。 我去年學到了所有這些東西。 祝你學習順利。 這將是無窮無盡的樂趣!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM