English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pythonで決定木のソースコードを書いた例を共有しました。ご参照ください。具体的な内容は以下の通りです
因为最近实习的需要,所以用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 # 读取csv文件并将特征放入字典列表和类标签列表中 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)) #treeの可視化 with open("resultTree.dot",'w')as f: f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f) #新しいデータの分類をどのように確認するか oneRowX = dummX[0,:] print("oneRowX: ")+str(oneRowX)) newRowX = oneRowX newRowX[0] = 1 newRowX[2] = 0 predictedY = clf.predict(newRowX) print("predictedY: ")+ str(predictedY))
ここに示すように、AllElectronics.csvの形式は以下の通りです:
今朝、jdk、eclipse、pydevをlinuxにインストールするのに苦労しましたが、numpyをインストールしようとすると、常にエラーが発生しました。gccがないことに気づき、gccをインストールしに行きましたが、gccがまだインストールされていません。もう少し考えてみましょう。
声明:このコンテンツはインターネットから取得しており、著作権者はすべて権利を保有しています。コンテンツはインターネットユーザーによって自発的に提供され、アップロードされました。このサイトは所有権を持ちませんし、人工的な編集を施していないため、関連する法的責任を負いません。著作権侵害の疑いがある場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メール送信時、#を@に置き換えてください)で報告し、関連する証拠を提供してください。一旦確認がつき、このサイトは侵害疑いのコンテンツをすぐに削除します。