Получение нулевых прогнозов - PullRequest
0 голосов
/ 17 марта 2020

В 2009 году я получил старый набор данных, связанный с избирательными предпочтениями publi c. Я строю для этого модель классификатора. Но пока я все делал правильно и ошибок при выполнении кода не было, мои прогнозы были далеко от истины. Я получал все нули, чтобы быть ясным. Я пытался использовать Neural Networks, Logisti c Regression, KNN, Random Forest, XGBoost, но без улучшений. Скорее я получил плохую форму ввода, когда попробовал Logisti c Regression и XGBoost, несмотря на использование One vs Rest Classifier. Ниже был мой код:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

import xgboost as xgb




data=pd.read_csv("/Users/jagdeepsingh/Downloads/Votedata.csv")





x=data.loc[:,['Gender', 'CASTE', 'Religion']]
y=data.loc[:,'If the elections are held, whom will you vote for?']

encoded_x=pd.get_dummies(x, drop_first=True)
encoded_y=pd.get_dummies(y, drop_first=True)

final_x=encoded_x.values
final_y=encoded_y.values

from sklearn.model_selection import train_test_split
X_train,X_test, Y_train, Y_test=train_test_split(final_x, final_y, test_size=0.25, random_state=0)


from sklearn.multiclass import OneVsRestClassifier
from sklearn.ensemble import RandomForestClassifier
rfc=RandomForestClassifier(n_estimators=500, criterion='entropy', random_state=0, class_weight='balanced')

OneVsRestClassifier(rfc.fit(X_train, Y_train).predict(X_test))


from xgboost import XGBClassifier
xgbc=XGBClassifier()
xgbc.fit(X_train, Y_train)

Y_pred2=xgbc.predict(X_test)

from sklearn.linear_model import LogisticRegression
logreg=LogisticRegression(class_weight='balanced', random_state=0)
OneVsRestClassifier(logreg.fit(X_train, Y_train).predict(X_test))



from keras.models import Sequential
from keras.layers import Dense
nn=Sequential()

nn.add(Dense(10, input_dim=10, init='uniform', activation='relu'))
nn.add(Dense(10, init='uniform', activation='relu'))
nn.add(Dense(6, init='uniform', activation='softmax'))
nn.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

nn.fit(X_train, Y_train, epochs=100, batch_size=64)

Y_pred3=nn.predict(X_test)

Обмен первоначальными наблюдениями набора данных здесь:

Данные

Пожалуйста, помогите мне, ребята. Здесь немного новичка.

...