2

Ich bin völlig neu zu maschinellen Lernen, ich spiele derzeit mit MNIST Machine Learning, RandomForestClassifier verwenden.Erhalten Panda-Serie von csv

Ich benutze Sklearn und Panda. Ich habe einen Schulungs-CSV-Datensatz.

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) 

Ich habe den aktuellen Code, der gut funktioniert. Er nimmt den Trainingssatz, teilt und nimmt ein Element zum Testen und macht die Vorhersage.

Was ich jetzt will, ist die Testdaten von einer Eingabe zu verwenden, ich habe eine neue CSV namens "input.csv", und ich möchte den Wert in diesem csv voraussagen.

Wie kann ich die model_selection.train_test_split durch meine Eingabedaten ersetzen? Ich bin sicher, dass die Antwort sehr offensichtlich ist, und ich habe nichts gefunden.

+0

Haben Sie das Modell neu trainieren wollen .csv als Ihre Testdaten? –

Antwort

2

Der folgende Teil des Codes ist nicht verwendeten

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

Wenn input.csv die gleiche Struktur von train.csv hat Sie wünschen können: auf sie

  • Zug ein Klassifikator und testen eine Spaltung des input.csv Datensatz: (siehe dazu http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html zu wissen, wie die Testgröße einzustellen)

    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) 
    
  • Test der zuvor trainierten Klassifizierer auf die gesamte input.csv Datei die input.csv Daten verwenden, oder einfach nur, um die angepasste Modell und es auf Eingangs

    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)