2017-05-23 5 views
0

logistische Regression auf Python zu tun, das ist mein Code unten:Valueerror: kann nicht Zeichenfolge konvertieren zu schweben: 'Status'

Imported Datensatz: Facebook Metrics

# Load dataset 
url = "dataset_Facebook.csv" 
dataset1 = pandas.read_csv(url, sep = ";", header = 0) 


# Split-out validation dataset 
array = dataset1.values 
X = array[:,0:4] 
Y = array[:,4] 
validation_size = 0.20 
seed = 7 
X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed) 


# Test options and evaluation metric 
seed = 7 
scoring = 'accuracy' 


# Spot Check Algorithms 
models = [] 
models.append(('LR', LogisticRegression())) 
models.append(('LDA', LinearDiscriminantAnalysis())) 
models.append(('KNN', KNeighborsClassifier())) 
models.append(('CART', DecisionTreeClassifier())) 
models.append(('NB', GaussianNB())) 
models.append(('SVM', SVC())) 
# evaluate each model in turn 
results = [] 
names = [] 
for name, model in models: 
    kfold = model_selection.KFold(n_splits=10, random_state=seed) 
    cv_results = np.log10(model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)) 
    results.append(cv_results) 
    names.append(name) 
    msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std()) 
    print(msg) 

Wenn das Programm kompilieren, erhalte ich diese Sätze von Fehlern:

Traceback (most recent call last): 
    File "/Users/ernestsoo/Desktop/WESTWORLD (Season 01) DUB 720/Assignment2.JackyTen.ErnestSoo/assignment2.py", line 93, in <module> 
    cv_results = np.log10(model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring)) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/model_selection/_validation.py", line 140, in cross_val_score 
    for train, test in cv_iter) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 758, in __call__ 
    while self.dispatch_one_batch(iterator): 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 608, in dispatch_one_batch 
    self._dispatch(tasks) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 571, in _dispatch 
    job = self._backend.apply_async(batch, callback=cb) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 109, in apply_async 
    result = ImmediateResult(func) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/_parallel_backends.py", line 326, in __init__ 
    self.results = batch() 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 131, in __call__ 
    return [func(*args, **kwargs) for func, args, kwargs in self.items] 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/externals/joblib/parallel.py", line 131, in <listcomp> 
    return [func(*args, **kwargs) for func, args, kwargs in self.items] 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/model_selection/_validation.py", line 238, in _fit_and_score 
    estimator.fit(X_train, y_train, **fit_params) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/linear_model/logistic.py", line 1173, in fit 
    order="C") 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/utils/validation.py", line 521, in check_X_y 
    ensure_min_features, warn_on_dtype, estimator) 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/sklearn/utils/validation.py", line 382, in check_array 
    array = np.array(array, dtype=dtype, order=order, copy=copy) 
ValueError: could not convert string to float: 'Status' 

Weil es wie ein Datentyp Problem scheint, habe ich versucht, den Wert aus dem Datensatz Parsen zu schweben:

array = float(dataset1.values) 

Aber das funktioniert nicht.

Wie kann ich dieses Problem lösen?

+0

Welchen Teil von Python debuggen helfen müssten regredieren, für Sie auf Python logistische Regression messen zu können? Arbeiten Sie mit dem (C) Quellcode? – Anthon

Antwort

2

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

Dieser Fehler bedeutet, dass irgendwann Ihr Code versucht, die Zeichenfolge ‚Status‘ zu konvertieren zu schweben. Wenn Sie Ihre Daten in Float umwandeln, wird das Problem nicht gelöst. Das Problem ist, dass Ihr Code versucht, etwas zu konvertieren, das nicht sollte.

Wenn Sie den folgenden Code ausführen: float("Hello") erhöht es ValueError: could not convert string to float: 'Hello'. Verwenden Sie die Fehlerinformationen, um den Code zu debuggen. Versuchen Sie herauszufinden, wo der "Status" String gegeben ist, wo ein Float erwartet wird.

Hoffe, dass es Sie Ihren Code

Verwandte Themen