English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ce document d'exemple partage avec vous le code source du决策树écrit en python, à titre de référence, voici le contenu détaillé
因为最近实习的需要,所以用python里的sklearn包重新写了一次决策树。
工具:sklearn,将dot文件转化为pdf格式(是为了将形成的决策树可视化)graphviz-2.38,下载解压之后将其中的bin文件的目录添加进环境变量
源代码如下:
from sklearn.feature_extraction import DictVectorizer import csv from sklearn import tree from sklearn import preprocessing from sklearn.externals.six import StringIO from xml.sax.handler import feature_external_ges from numpy.distutils.fcompiler import dummy_fortran_file # Read in the csv file and put features into list of dict and list of class label allElectronicsData = open(r'E:/DeepLearning/resources/AllElectronics.csv', 'rt') reader = csv.reader(allElectronicsData) headers = next(reader) featureList = [] lableList = [] for row in reader: lableList.append(row[len(row)-1]) rowDict = {} # 不包括len(row)-1 for i in range(1,len(row)-1) : rowDict[headers[i]] = row[i] featureList.append(rowDict) print(featureList) vec = DictVectorizer() dummX = vec.fit_transform(featureList).toarray() print(str(dummX)) lb = preprocessing.LabelBinarizer() dummY = lb.fit_transform(lableList) print(str(dummY)) #entropy=>ID3 clf = tree.DecisionTreeClassifier(criterion='entropy') clf = clf.fit(dummX, dummY) print("clf : ")+str(clf) #Visualiser l'arbre with open("resultTree.dot",'w')as f: f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(), out_file = f) #Comment voir la classification d'une nouvelle donnée oneRowX = dummX[0,:] print("oneRowX : ")+str(oneRowX) newRowX = oneRowX newRowX[0] = 1 newRowX[2] = 0 predictedY = clf.predict(newRowX) print("predictedY : ")+ str(predictedY)
Le fichier AllElectronics.csv ici a la forme comme montrée ci-dessous :
Ce matin, après bien des efforts, j'ai réussi à installer jdk, eclipse et pydev sur linux, mais, mais, mais, quand j'ai voulu installer numpy, il y avait toujours des erreurs. J'ai découvert qu'il manquait gcc, alors j'ai décidé d'installer gcc, ce qui est vraiment irritant. Jusqu'à présent, gcc n'a pas été installé avec succès, et je dois réfléchir à d'autres méthodes.
Déclaration : le contenu de cet article est hébergé sur Internet, et les droits d'auteur appartiennent à leurs propriétaires respectifs. Le contenu est contribué et téléchargé par les utilisateurs d'Internet, ce site n'en possède pas la propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique. Si vous trouvez du contenu suspect de droits d'auteur, vous êtes invités à envoyer un e-mail à notice#w.3Pour signaler un contenu litigieux, veuillez envoyer un e-mail à notice#w en remplaçant le # par @ et fournir des preuves pertinentes. Une fois confirmé, le site supprimera immédiatement le contenu litigieux.