I'm very new to ML and I'm trying to build a classifier for unbalanced binary class for a real life problem. I've tried various models like Logistic regression, Random Forest, ANN, etc but every time I'm getting very high precision and recall (around 94%) for train data and very poor (around 1%) for test or validation data. I've 53 features and 97094 data points. I tried tweaking hyper-parameters but as far as I understand, with current precision and recall for test and validation data, it will also not help significantly. Can anyone please help me understand what could have gone wrong. Thank you.
rf = RandomForestClassifier(bootstrap=True, class_weight={1:0.80,0:0.20}, criterion='entropy',
max_depth=2, max_features=4,
min_impurity_decrease=0.01, min_impurity_split=None,
min_weight_fraction_leaf=0.0, n_estimators=10,
n_jobs=-1, oob_score=False, random_state=41, verbose=0,
warm_start=False)
rf.fit(X_train, y_train)