J'écris un script très simple. Tout ce que j'ai à faire est de lire les données en utilisant panda et ensuite former un arbre de décision sur les données. Les données que j'utilise est:ValueError: impossible de convertir la chaîne en float: med
https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data
Et suivant est mon script
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
from sklearn import tree
from sklearn import preprocessing
import pandas as pd
balance_data=pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data",
sep= ',', header= None)
#print "Dataset:: "
#df1.head()
X = balance_data.values[:, 0:5]
Y = balance_data.values[:,6]
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.2, random_state = 100)
clf_gini = DecisionTreeClassifier(criterion = "gini", random_state = 100,
max_depth=3, min_samples_leaf=5)
clf_gini.fit(X_train, y_train)
De l'erreur je suppose qu'il n'a pas pu convertir « med » valeur d'attribut à flotter. Et en regardant les données, ma supposition aléatoire est que le bas a un espace avant lui et med ne le fait pas. C'est pourquoi cela devient confus. Mais je ne suis pas sûr de cela. S'il vous plaît dites ce qui pourrait être mauvais avec cela. PS: erreur se produit à la dernière ligne et le retraçage
ValueError Traceback (most recent call last)
<ipython-input-26-b495e5f26174> in <module>()
18 max_depth=3, min_samples_leaf=5)
19 X_train[X_train != '']
---> 20 clf_gini.fit(X_train, y_train)
/home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
788 sample_weight=sample_weight,
789 check_input=check_input,
--> 790 X_idx_sorted=X_idx_sorted)
791 return self
792
/home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/tree/tree.pyc in fit(self, X, y, sample_weight, check_input, X_idx_sorted)
114 random_state = check_random_state(self.random_state)
115 if check_input:
--> 116 X = check_array(X, dtype=DTYPE, accept_sparse="csc")
117 y = check_array(y, ensure_2d=False, dtype=None)
118 if issparse(X):
/home/fatima/anaconda2/lib/python2.7/site-packages/sklearn/utils/validation.pyc 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)
400 force_all_finite)
401 else:
--> 402 array = np.array(array, dtype=dtype, order=order, copy=copy)
403
404 if ensure_2d:
ValueError: could not convert string to float: med
Merci un groupe :) Je tentais d'utiliser LabelEncoder() mais didn ne sais pas comment l'utiliser –
@HannahMontanna vous êtes les bienvenus :), recherchez le tutoriel auquel je suis lié, pour acquérir une certaine expérience autour du prétraitement des données .. – MedAli