Seite 1 von 1

Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 14:26
von naheliegend
Hi,

ich probiere mich gerade ein bisschen aus und möchte auf einen kleinen Datensatz die LogisticRegression anwenden.
Es traten einige Probleme auf, von denen ich nicht alle beheben konnte.
Erst musste ich meine ndarrays reshapen und dann noch im clf.fit() eine encodierte Version reinpacken. Warum habe ich nicht ganz verstanden.

Zudem tritt weiterhin der Fehler:
DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
y = column_or_1d(y, warn=True)
auf.

Code: Alles auswählen

Examples = pandas.read_excel(io=path, sheet_name=0, header=None, skiprows=2)
Examples = Examples.values
train_x = Examples[0:13,0].reshape(-1,1)
train_y = Examples[0:13,1].reshape(-1,1)
test_x = Examples[13:16,0].reshape(-1,1)
test_y = Examples[13:16,1].reshape(-1,1)


#Encoden
lab_enc = preprocessing.LabelEncoder()
training_y_encoded = lab_enc.fit_transform(train_y)

#Model
clf = LogisticRegression()
clf.fit(train_x, training_y_encoded)

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 14:50
von __deets__
Na wie wuerdest du dir denn die erste Fehlermeldung uebersetzen? Und hast du mal nachgeschaut, was die vorgeschlagene Funktion macht?

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 15:56
von naheliegend
__deets__ hat geschrieben: Freitag 14. September 2018, 14:50 Na wie wuerdest du dir denn die erste Fehlermeldung uebersetzen? Und hast du mal nachgeschaut, was die vorgeschlagene Funktion macht?
Durch das Encoden packe ich als training_y_encoded einen 1D array rein. Aber wenn ich

Code: Alles auswählen

clf.fit(train_x, training_y_encoded.ravel())
schreibe, kommt der Fehler wieder.

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 15:58
von __deets__
Wie sehen denn die shapes von train_x und training_y_encoded aus?

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 16:06
von naheliegend

Code: Alles auswählen

train_x = 
[[ 2. ]
 [ 3. ]
 [ 4. ]
 [ 3.4]
 [ 5. ]
 [ 6.7]
 [55. ]
 [63. ]
 [65. ]
 [54. ]
 [42. ]
 [55. ]
 [38. ]]

Code: Alles auswählen

train_y = 
[[ 2.1]
 [ 4.9]
 [ 1.4]
 [ 2.1]
 [ 1.9]
 [ 2.8]
 [70. ]
 [64.3]
 [54.5]
 [80. ]
 [65. ]
 [65. ]
 [45. ]]

Code: Alles auswählen

 training_y_encoded =
 [ 2  4  0  2  1  3  9  7  6 10  8  8  5]

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 16:23
von __deets__
Na und was ist mit train_x? Das ist doch auch ein Spaltenvektor, und nicht eine flache Liste. Was passiert denn, wenn du den ebenfalls "ravelst"?

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 19:43
von naheliegend
__deets__ hat geschrieben: Freitag 14. September 2018, 16:23 Na und was ist mit train_x? Das ist doch auch ein Spaltenvektor, und nicht eine flache Liste. Was passiert denn, wenn du den ebenfalls "ravelst"?
Das selbe... der Fehler bleibt.

Re: Fehler, LogisticRegression, sklearn

Verfasst: Freitag 14. September 2018, 21:03
von naheliegend
Fehler behoben durch:

Code: Alles auswählen

training_y_encoded = lab_enc.fit_transform(train_y.ravel())
Die Errormessage wurde durch den Encoder ausgelöst und nicht durch die .fit() Funktion.