import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import cross_val_score

train = pd.read_csv("../input/train_info.csv")


train['date_new'] = train['date'].str.extract('(\d+)')
#print(train[['date','date_new']])
median = train['date_new'].dropna().median()
train.loc[train['date_new'].isnull(),['date_new']] = median

train['style'] = pd.Categorical(train['style']).codes
train['genre'] = pd.Categorical(train['genre']).codes

train = train.drop(['title','date'], axis = 1)

train_data = train.values

print(train.columns)
#print(train_data[:, 2:])
print(train_data[:, 1])

recognizer = RandomForestClassifier(n_estimators = 10)
recognizer.fit(train_data[:, 2:],train_data[:, 1])
print("in-sample score")
print(recognizer.score(train_data[:, 2:],train_data[:, 1]))
print("feature importance")
print(recognizer.feature_importances_)
#print(recognizer.coef_)
print("cross validation score")
score = cross_val_score(recognizer, train_data[:, 1:],train_data[:, 0])
score = np.mean(score)
print(score)