AuntK
AuntK

Reputation: 39

Logistic Regression get Value error could not convert string to float: '?'

I am very new at this stuff. This is from a course I am taking; I need to fit the Logistic Regression classifier

I enter

from sklearn.linear_model import LogisticRegression
C=1.0
classifier = LogisticRegression(C=C, penalty='l1')

classifier.fit(x, y)

and get a Value Error

ValueError                                Traceback (most recent call last) <ipython-input-33-9d4de811daf9> in <module>()
----> 1 classifier.fit(x, y)

~\Anaconda3\lib\site-packages\sklearn\linear_model\logistic.py in fit(self,  X, y, sample_weight)    1214     1215         X, y = check_X_y(X, y, accept_sparse='csr', dtype=_dtype,
-> 1216                          order="C")    1217         check_classification_targets(y)    1218         self.classes_ = np.unique(y)

~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_X_y(X, y,  accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd,  multi_output, ensure_min_samples, ensure_min_features, y_numeric,  warn_on_dtype, estimator)
    571     X = check_array(X, accept_sparse, dtype, order, copy,  force_all_finite,
    572                     ensure_2d, allow_nd, ensure_min_samples,
--> 573                     ensure_min_features, warn_on_dtype, estimator)
    574     if multi_output:
    575         y = check_array(y, 'csr', force_all_finite=True,  ensure_2d=False,

~\Anaconda3\lib\site-packages\sklearn\utils\validation.py in  check_array(array, accept_sparse, dtype, order, copy, force_all_finite,  ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype,  estimator)
    431                                       force_all_finite)
    432     else:
--> 433         array = np.array(array, dtype=dtype, order=order, copy=copy)
    434 
    435         if ensure_2d:

ValueError: could not convert string to float: '?'

Please help

Upvotes: 3

Views: 22279

Answers (1)

Jagadeep Sai
Jagadeep Sai

Reputation: 106

The training input x and output y must be of type np.float64. If you want to use strings, you need to encode them before fitting .

Check this post out for it :

Link

Upvotes: 3

Related Questions