2017-06-01 276 views
2

我對機器學習是全新的,我正在玩使用RandomForestClassifier的MNIST機器學習。獲取熊貓系列csv

我使用sklearn和熊貓。 我有一個培訓CSV數據集。

import pandas as pd 
import numpy as np 
from sklearn import model_selection 
from sklearn.ensemble import RandomForestClassifier 
from sklearn.svm import LinearSVC 
from sklearn.linear_model import SGDClassifier 
from sklearn.neighbors import KNeighborsClassifier 
from sklearn.metrics import accuracy_score 

train = pd.read_csv("train.csv") 
features = train.columns[1:] 
X = train[features] 
y = train['label'] 

user_train = pd.read_csv("input.csv") 
user_features = user_train.columns[1:] 
y_train = user_train[user_features] 
user_y = user_train['label'] 


X_train, X_test, y_train, y_test = model_selection.train_test_split(X/255.,y,test_size=1,random_state=0) 

clf_rf = RandomForestClassifier() 
clf_rf.fit(X_train, y_train) 
y_pred_rf = clf_rf.predict(X_test) 
acc_rf = accuracy_score(y_test, y_pred_rf) 

print("pred : ", y_pred_rf) 
print("random forest accuracy: ",acc_rf) 

我有當前的代碼,它運作良好。它需要訓練集,分割和取一個元素進行測試,並進行預測。

我現在想要的是使用來自輸入的測試數據,我有一個名爲「input.csv」的新csv,並且我想要預測此csv中的值。

如何用我的輸入數據替換model_selection.train_test_split? 我相信答案很明顯,而且我沒有找到任何東西。

+0

執行先前訓練的分類.csv作爲您的測試數據? –

回答

2

代碼的下面部分是未使用

user_train = pd.read_csv("input.csv") 
user_features = user_train.columns[1:] 
y_train = user_train[user_features] 
user_y = user_train['label'] 

如果input.csv有train.csv的相同的結構,你可能想:

  • 列車分類和測試在input.csv數據集的分割:(請參考http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html知道如何設置測試大小)

    input_train = pd.read_csv("input.csv")  
    input_features = user_train.columns[1:]  
    input_data = user_train[input_features]  
    input_labels = user_train['label'] 
    data_train, data_test, labels_train, labels_test = model_selection.train_test_split(input_data/255.,input_labels,test_size=1,random_state=0) 
    
    clf_rf = RandomForestClassifier() 
    clf_rf.fit(data_train, labels_train) 
    labels_pred_rf = clf_rf.predict(data_test) 
    acc_rf = accuracy_score(labels_test, labels_pred_rf) 
    
  • 測試對整個input.csv文件要使用input.csv數據來重新訓練模型,或只採取擬合模型,並將其應用於輸入

    input_train = pd.read_csv("input.csv")  
    input_features = user_train.columns[1:]  
    input_data = user_train[input_features]  
    input_labels = user_train['label'] 
    
    labels_pred_rf = clf_rf.predict(input_data) 
    acc_rf = accuracy_score(input_labels, labels_pred_rf)