Partial Dependence Plots

0

Cześć,

chcę stworzyć Partial Dependence Plot dla danej cechy z mojego zestawu danych. Poniżej wklejam kod

from pdpbox import pdp, get_dataset, info_plots

feature = X.columns
feat_name = 'Zmiana'

pdp_dist = pdp.pdp_isolate(model=classifier, dataset=pd.DataFrame(X_test), model_features=feature, feature= feat_name)

pdp.pdp_plot(pdp_dist, feat_name)
plt.show()

Po uruchomieniu otrzymuję następujący błąd:

ValueError: feature does not exist: Zmiana

Gdzie leży przyczyna błędu?

0

Opisz problem poprawnie. Skąd mamy wiedzieć, jaką postać ma X? Nie wkleiłeś całego kodu, a komunikat sam Ci mówi, co jest nie tak...

0

Poniżej lista wszystkich zmiennych w zbiorze:

screenshot-20190804195922.png

Zmienne objaśniana i objaśniające zostały zdefiniowane w następujący sposób

X = corpus_sentyment.drop(['Spolka', 'Dzien', 'Godzina', 'Tresc', 'Kierunek'], axis = 1)
y = corpus_sentyment['Kierunek']

Podział na zbiór treningowy i testowy

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20, random_state = 0)
0

Daj cały kod wraz z plikiem, który ładujesz do DataFrame. Nie chcę mi się mockować tych danych na ślepo.

0
Pyxis napisał(a):

Daj cały kod wraz z plikiem, który ładujesz do DataFrame. Nie chcę mi się mockować tych danych na ślepo.

Dodałem jako załączniki

1

Kod był niekompletny, brakowało rozbicia danych, które wkleiłeś w poprzednim poście jako ostatni listing. Następnym razem formułuj problem precyzyjniej, będzie Ci łatwiej pomóc.

Przechodząc do sedna, znalazłem błąd po wklejeniu do 5. komórki listingu, który usunąłeś:

from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20, random_state = 0) # Tego nie było!
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

W ostatniej linii nadpisujesz zmienną X_test, której używasz w 9. komórce jako parametr dataset.

pdp_dist = pdp.pdp_isolate(model=classifier, dataset=pd.DataFrame(X_test), model_features=feature, feature= feat_name)

Żeby to naprawić, wystarczy zrobić tak:

from sklearn.preprocessing import StandardScaler
X_train, X_test_org, y_train, y_test = train_test_split(X, y, test_size = 0.20, random_state = 0) # Tego nie było!
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test_org)
pdp_dist = pdp.pdp_isolate(model=classifier, dataset=X_test_org, model_features=feature, feature= feat_name)

zmiana.png

1 użytkowników online, w tym zalogowanych: 0, gości: 1