В 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)
Обмен первоначальными наблюдениями набора данных здесь:
Данные
Пожалуйста, помогите мне, ребята. Здесь немного новичка.