Python: объединение предсказанных меток y-переменных в фрейм данных - PullRequest
0 голосов
/ 04 октября 2018

У меня есть проблема с предсказанием метки мультикласса, чтобы определить, скажем, фрукты для примера.Я могу получить прогноз от модели, подгонки и прогнозирования функций.Я также обучил и протестировал модель.Ниже приведен код.Я пытаюсь объединить мои "прогнозы y" из переменной "forest_y_pred" с моим исходным набором данных, чтобы я мог сравнить исходную целевую переменную с прогнозируемой целевой переменной в кадре данных,У меня есть 2 вопроса:

1) Является ли y_test таким же, как forest_y_pred = forest.predict(X_test).Я получаю точно такие же результаты, когда сравниваю.Я правильно понял?Я немного растерялся, predict() предполагает, что предсказание X_test не дает точно таких же результатов, как y_test

2) Я пытаюсь объединить forest_y_pred = forest.predict(X_test) обратно в df.Вот что я попробовал из этого: Слияние результатов из model.predict () с оригинальным пандой DataFrame?

from sklearn.ensemble import RandomForestClassifier
import pandas as pd 

# Load Data
df = pd.read_excel('../data/file.xlsx',converters={'col1':str})
df = df.set_index('INDEX_ID') # Setting index id
df

# Doing this way because of setting index. INDEX_ID is a column in the df 
X_train, X_test, y_train, y_test = train_test_split(df.ix[:, ~df.columns.isin(['Target'])], df.Target,train_size=0.5)

print(y_test[:5])
type(y_test) #pandas.core.series.Series

ID
12      Apples
124     Oranges
345     Apples
123     Oranges
232     Kiwi

forest = RandomForestClassifier()

# Training
forest_model = forest.fit(X_train, y_train)
print(forest_model)

# Predictions
forest_y_pred = forest.predict(X_test) 
print("forest_y_pred:\n",forest_y_pred[:5])
['Apples','Oranges','Apples','Oranges','Kiwi']

y_test['preds'] = forest_y_pred
print(y_test['preds'][:5])
['Apples','Oranges','Apples','Oranges','Kiwi']

df_out = pd.merge(df,y_test[['preds']],how = 'left',left_index = True, right_index = True)
# ValueError: can not merge DataFrame with instance of type <class 'pandas.core.series.Series'>
# How do I fix this? I tried ton of ways to convert ndarray, serries, dataframe...nothing is working so far what I tried. Thanks a bunch!!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...