機器學習之決策樹 進行時

2021-08-02 04:34:31 字數 2426 閱讀 2823

今天學了關於決策樹的相關知識點,以下是對學習過程中遇到問題所做的筆記。

1.關於csv

csv檔案格式是一種通用的電子**和資料庫匯入匯出格式。

讀取csv檔案

import csv 

file = open('c:\users\qaq\desktop\p.csv','rb')

reader = csv.reader(file)

for row in reader:

print row #其中我們也可以對row中的元素進行操作, 比如row, row....

寫入csv檔案

import csv 

wf = open('c:\users\qaq\desktop\p.csv','a+')

writer = csv.writer(wf)

writer.writerow(['15', 'youth', 'medium', 'no', 'excellent', 'yes'])

wf.flush()

wf.close()

2. 關於dictvectorizer() 參見

featurelist= #裡面儲存特徵值

lablelist= #儲存類別的值 yes/no

for row in reader:

rowdict={}#建立乙個字典

for i in range(1, len(row) - 1):

rowdict[headers[i]] = row[i]

#print featurelist

vec = dictvectorizer()#例項化dictvectorizer()

dummyx = vec.fit_transform(featurelist).toarray()#特徵值的提取

#參見#print str(dummyx)

# [[ 0. 0. 1. 0. 1. 1. 0. 0. 1. 0.]

# [ 0. 0. 1. 1. 0. 1. 0. 0. 1. 0.]

# [ 1. 0. 0. 0. 1. 1. 0. 0. 1. 0.]

# [ 0. 1. 0. 0. 1. 0. 0. 1. 1. 0.]

# [ 0. 1. 0. 0. 1. 0. 1. 0. 0. 1.]

# [ 0. 1. 0. 1. 0. 0. 1. 0. 0. 1.]

# [ 1. 0. 0. 1. 0. 0. 1. 0. 0. 1.]

# [ 0. 0. 1. 0. 1. 0. 0. 1. 1. 0.]

# [ 0. 0. 1. 0. 1. 0. 1. 0. 0. 1.]

# [ 0. 1. 0. 0. 1. 0. 0. 1. 0. 1.]

# [ 0. 0. 1. 1. 0. 0. 0. 1. 0. 1.]

# [ 1. 0. 0. 1. 0. 0. 0. 1. 1. 0.]

# [ 1. 0. 0. 0. 1. 0. 1. 0. 0. 1.]

# [ 0. 1. 0. 1. 0. 0. 0. 1. 1. 0.]]

3.tree.decisiontreeclassifier(裡面選擇分離的方法)  決策樹的演算法, 這裡我們選資訊熵的分離

突然感覺python啥都替我們幹好了,我們做的其實就是對前期資料的預處理。

#建立分離器

clf = tree.decisiontreeclassifier(criterion='entropy')#選取分離的方法, 我們使用的是資訊熵分離

clf = clf.fit(dummyx, dummyy)#建模 兩個引數

print "clf" + str(clf)

4. tree.export_graphviz

with open('c:\\users\\qaq\\desktop\\r.dot', 'w') as f:

f = tree.export_graphviz(clf, feature_names = vec.feature_names_, out_file = f)

# 這個引數 feature_names = vec.feature_names_ 將矩陣中的01特徵值重新變為 youth、middle_age...

5.將dot檔案轉化為pdf格式

1、首先安裝graphviz 

2、配置path環境變數

3.dot -tpdf r.dot -o outpu.pdf  (在cmd 下面輸入 可將dot檔案轉化為pdf格式)

機器學習之決策樹

在這裡,我想以更直觀的方式幫助各位理解 掌握並且運用 注意 是運用 決策樹,從而為機器學習作鋪墊。ps 但還是希望大家稍微知道決策樹大概是什麼樣子。1.根結點 root node 沒有入邊,但有零條或多條出邊 2.內部結點 internal node 恰有一條入邊和 兩條或多條出邊 3.葉結點 le...

機器學習之決策樹

決策樹是很常見的機器學習分類演算法,竟然叫決策樹,那麼它的模型其實就像樹一樣。通過對樣本集的學習,挖掘出有用的規則。對於程式設計師來說或許以條件語句來看就更好理解了,決策樹可以看成是多個if then條件語句的集合。這種模型等同於我們寫的條件語句,所以它的 分類速度是很快的。來個例子了解下決策樹分類...

機器學習之決策樹

簡介 決策樹是一種基本的分類方法,當然也可以用於回歸。我們一般只討論用於分類的決策樹。決策樹模型呈樹形結構。在分類問題中,表示基於特徵對例項進行分類的過程,它可以認為是if then規則的集合。在決策樹的結構中,每乙個例項都被一條路徑或者一條規則所覆蓋。通常決策樹學習包括三個步驟 特徵選擇 決策樹的...