Cum să normalizați o probă pentru problema de clasificare a depășirii stivei în limba rusă

Sunt pe cursul cursei.

Pentru a finaliza sarcina, trebuie să normalizați eșantionul pentru problema de clasificare, de la două caracteristici și o variabilă țintă. Când încărc doar proba:

Și ajung la următorul cod:

De asemenea, este afișat un avertisment:

Dar remodelarea (1, -1) transformă vectorul meu caracteristic din forma (300, 2) într-un vector cu formă (1, 600).

Va rămâne problema după astfel de transformări sarcina de clasificare? (Judecând după excepție, consilierul ar trebui să folosească metoda de estimare pentru regresia liniară - nu)

Cum pot să normalizez semnele pentru această sarcină?

remodează - modifică dimensiunea matricei, dar nu modifică datele în sine. Normalizarea datelor (sau a caracteristicilor) - aducerea lor la aceeași scară. De exemplu, vârsta și salariul - vârsta de la 0 la 100, salariul de la 0 la <много> - Valorile normalizate se vor afla în [0; 1]. Ce doriți să faceți - să modificați dimensiunea matricei sau să normalizați semnele? Operațiile între ele nu sunt conectate în nici un fel - datele normalizate vor avea aceeași dimensiune. - m9_psy pe 3 aprilie la 2:42

@ m9_psy Acest lucru este valabil. Dar pentru a normaliza eșantionul cu sclearn, urmând avertismentul, trebuie să faceți o remodelare a vectorului, creând din 300 de obiecte cu două atribute de 600 obiecte cu unul. Exact asta mă deranjează. De asemenea, este necesar să se furnizeze aceleași vectori, iar în vectorul țintă sunt de asemenea neclare doar 300 de valori - câte unul pentru fiecare obiect și cum se obțin 600 dintre ele. În orice caz, mulțumesc. - justpainm8 3 Apr la ora 3:00 pm

Am nevoie de StandardScaler doar pentru normalizare. În sarcină este instruit sklearn.linear_model.Perceptron. Problema principală este că scaler.transform () impune remodeleze face în cazul în care numărul de caracteristici care nu se potrivește cu numărul variabilelor țintă (300x2 vs 300 în cazul meu), iar apoi proba este distrusă - se dovedește că 300 de obiecte cu două semne sunt convertite la 600 unul. - justpainm8 4 aprilie, la 7:51

@ justpainm8, atunci nu înțeleg ce este întrebarea - x_train_scaled = scaler.fit_transform (x_train) vă oferă un "set de date" normalizat - lucrați doar cu el și asta este. y_train - nu este nevoie să se normalizeze. - MaxU pe 4 aprilie la 20:05