2016-07-20 8 views
0

Ich versuche, Preis für 5 Tage in der Zukunft vorherzusagen. Ich folgte this Tutorial. In diesem Lernprogramm wird die kategoriale Variable vorhergesagt und verwendet daher RandomForest Classifier. Ich verwende den gleichen Ansatz wie in diesem Tutorial, aber mit RandomForest Regressor, da ich den letzten Preis für 5 Tage in der Zukunft vorhersagen muss. Ich bin verwirrt, dass wie sage ich voraus,RandomForest Regressor: Vorhersagen und überprüfen Sie die Leistung

Hier ist mein Code:

import pandas as pd 
import numpy as np 
from sklearn.ensemble import RandomForestRegressor 
from sklearn.ensemble import GradientBoostingRegressor 
from sklearn.metrics.ranking import roc_curve, auc, roc_auc_score 

priceTrainData = pd.read_csv('trainPriceData.csv') 

#read test data set 
priceTestData = pd.read_csv('testPriceData.csv') 
priceTrainData['Type'] = 'Train' 
priceTestData['Type'] = 'Test' 


    target_col = "last" 


    features = ['low', 'high', 'open', 'last', 'annualized_volatility', 'weekly_return', 
       'daily_average_volume_10',# try to use log in 10, 30, 
       'daily_average_volume_30', 'market_cap'] 

priceTrainData['is_train'] = np.random.uniform(0, 1, len(priceTrainData)) <= .75 
    Train, Validate = priceTrainData[priceTrainData['is_train']==True], priceTrainData[priceTrainData['is_train']==False] 

    x_train = Train[list(features)].values 
    y_train = Train[target_col].values 
    x_validate = Validate[list(features)].values 
    y_validate = Validate[target_col].values 
    x_test = priceTestData[list(features)].values 



    random.seed(100) 

    rf = RandomForestRegressor(n_estimators = 1000) 
    rf.fit(x_train, y_train) 
    status = rf.predict(x_validate) 

Meine erste Frage ist, wie ich für die Vorhersage 5 Werte erhalten spezifiziere und zweite Frage ist, wie kann ich überprüfen, um die Leistung von RandomForest Regressor? Bitte hilf mir.

Antwort

1

Ihre x_validate ist 'pandas.core.series.Series' in der Natur. So können Sie dies ausführen: x_validate [0: 5]

Dies wird Ihre zweite Frage lösen, indem Sie den R-Quadrat-Wert berechnen. rf.score (x_train, y_train)