2017-10-10 28 views
0

因此,目前我正在嘗試許多不同的機器學習模型(KNN,Kmeans,神經網絡,決策樹等),以找出哪種模型最適合我的情況。 「M被陷在是,我立足我的意見算法下面是對X功能一個條目:Python機器學習準確性評分與意見

X-array([ 96255., 114452., 177551., 141049., 170292., 8155., 
       502.,  683.]) 

下面是一個樣本集的期待所輸入的功能Y值如上圖所示:

Y-array([ 70., 60., 70., 70., 70., 65., 50., 40., 60., 80., 70., 
     50., 90., 70., 70., 70., 60., 30., 50., 80., 70., 75., 
     80., 70., 80., 70., 80., 60., 70., 70., 60., 70., 60., 
     60., 70., 60., 65., 70., 70., 50., 60., 40., 60., 80., 
     75., 70.]) 

現在棘手的部分,預期的Y值是相同的輸入功能。例如,所描述的X陣列可以具有與其匹配的以下分數:70,60,50,70,65。由於這些都是人們的意見,所以現在還沒有對錯,我希望這個模型能夠找到。然而,當試圖預測所有模型的準確性時(看哪個是最好的模型)。我得到的結果很低(顯然),因爲它無法將單個值與多個期望值相匹配。有沒有一種好的方法來處理意見和預測意見?提示和建議,歡迎。

只是爲了過關,通常我轉換數據提供:

scaler = StandardScaler() 
x = scaler.fit_transform(x) 

目前與我測試的準確性:

clf_NeuralNetwork.score(X_test, y_test) 

而且我爲了分裂測試使用K-折算法訓練數據以便不過度擬合數據。提前致謝!

小更新:我目前傾向於去同一個模型,如:

i = 0 
j = 0 
score = 0 
for prediction in neigh1.predict(X_test): 
    print(prediction) 
    for predictedScore in neigh1.classes_: 
     if predictedScore == y_train[i]: 
      print(predictionMatrix[i][j]) 
      score = score + (predictionMatrix[i][j] * 100) 
      print(score) 
     j = j + 1; 
    j=0 
    i = i + 1 

print(score/i) 

這需要一個正確答案的概率計算的模型是關閉多遠精度(製作50/50次分割仍然是50%準確的情況)。

回答

0

這很大程度上取決於您試圖解決的問題和您的數據。嘗試深入挖掘數據點,繪製一些直方圖和相關圖。
整體樹對於可以分解成若干離散塊的數據很有用,其中迴歸模型(和NN)更適合查找連續關係。
您不必爲決策樹使用縮放功能,但我建議使用正常縮放功能截斷迴歸模型。
基本上,我強烈建議以XGBoost作爲基線,然後嘗試用更簡單的解釋模型來擊敗它。

+0

感謝您的提示,我會研究XGBoost。我確實更新了自己目前正在嘗試使用的主題。基本上我試圖根據許多功能預測1-10分(目前的設置僅僅是開始)。所以我相信樹木運作良好,我只想保持其他選擇。 – Soldexio