我試圖做出一個簡單的決策樹,但我一直在獲取相同的ValueError,並且沒有任何類似的威脅有任何幫助。我的變量都不是字符串,但仍然出現轉換錯誤。Python - ValueError:無法將字符串轉換爲浮點數:
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
import os
import matplotlib.pylab as plt
from sklearn.cross_validation import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import classification_report
import sklearn.metrics
os.chdir("C:\Mlearning")
"""
Data Engineering and Analysis
"""
#Load the dataset
AH_data = pd.read_csv("gapminder.csv")
data_clean = AH_data.dropna()
#data_clean.dtypes
#data_clean.describe()
"""
Modeling and Prediction
"""
#Split into training and testing sets
predictors = data_clean[['breastcancerper100th','alcconsumption']]
targets = data_clean.employrate
pred_train, pred_test, tar_train, tar_test = train_test_split(predictors, targets, test_size=.4)
pred_train.shape
pred_test.shape
tar_train.shape
tar_test.shape
#Build model on training data
classifier=DecisionTreeClassifier()
classifier=classifier.fit(pred_train,tar_train)
predictions=classifier.predict(pred_test)
sklearn.metrics.confusion_matrix(tar_test,predictions)
sklearn.metrics.accuracy_score(tar_test, predictions)
#Displaying the decision tree
from sklearn import tree
#from StringIO import StringIO
from io import StringIO
#from StringIO import StringIO
from IPython.display import Image
out = StringIO()
tree.export_graphviz(classifier, out_file=out)
import pydotplus
graph=pydotplus.graph_from_dot_data(out.getvalue())
graph.write_pdf("graph.pdf")
但是,我得到的結果是這樣的一個:
array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: could not convert string to float:
是否在您的'classifier.fit'中發生錯誤?或者別的地方? 你可以發佈你試圖分類的數據樣本嗎? – pekapa
你能編輯你的問題來顯示完整的回溯? 'data_clean.dtypes'的輸出也是有用的(如果你可以分享的話也可以使用'data_clean.head()')。 –
在我看來,你似乎在試圖預測一個浮點值(就業率)。這是一個迴歸問題,而不是分類問題。請嘗試使用'DecisionTreeRegressor'。如果您發佈回溯,我們將能夠提供更好的幫助,以便我們可以看到'ValueError'來自哪一行。 –