2017-06-01 161 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)