資訊增益
資訊熵的計算
隨機森林
決策樹是基於資訊理論提出的概念,劃分原則是將原本無序的資料變得更加有序。
資訊熵是指資訊的不確定性,是對資訊不確定性的度量。
資訊增益表示的是原來的資料在沒有按照任何屬性劃分時的熵與按照某一屬性a進行劃分後的資訊熵的差值。
# 判斷賬號是否真實:3 no(0.3)7 yes(0.7)
# 不進行劃分,計算資訊熵
info_d=
0.3*np.log2(1/
0.3)
+0.7
*np.log2(1/
0.7)
(info_d)
# 建立決策樹,對目標值進行劃分
# 三個屬性:日誌密度、好友密度、是否真實頭像
# 使用日誌密度進行決策樹的構建
# 3s 0.3 ----->2 no 1 yes
# 4m 0.4 ----->1 no 3 yes
# 3l 0.3 ----->3 yes
info_l_d=
0.3*(2
/3*np.log2(3/
2)+1
/3*np.log2(3)
)+0.4*
(0.25
*np.log2(4)
+0.75
*np.log2(4/
3))+
0.3*(1
*np.log2(1)
(info_l_d)
(info_d-info_l_d)
0.8812908992306926
0.5999999999999999
0.2812908992306927
import numpy as np
from sklearn.tree import decisiontreeclassifier
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn import tree
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
iris=load_iris(
)x=iris[
'data'
]y=iris[
'target'
]feature_names=iris.feature_names
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=
0.2,random_state=
1024
)# 連續的資料,選擇屬性需要用閾值選擇,優先選擇屬性波動較大的,利於區分
print
(x_train.std(axis=0)
)clf=decisiontreeclassifier(criterion=
'entropy'
)clf.fit(x_train,y_train)
y_=clf.predict(x_test)
accuracy=accuracy_score(y_test,y_)
# plt.figure(figsize=(18,12))
# # sklearn 的版本為0.21.3
# _=tree.plot_tree(clf,filled=true,feature_names=feature_names)
# 獲得不屬於類別0的資料,並進行劃分
x_train2=x_train[y_train!=0]
y_train2=y_train[y_train!=0]
index=np.argsort(x_train2[:,
3])print
(x_train2[:,
3][index]
)print
(y_train2[index]
)
[
0.82300095
0.42470578
1.74587112
0.75016619][
1.1.
1.1.
1.1.
1.11.1
1.21.2
1.21.2
1.21.3
1.31.3
1.31.3
1.31.3
1.31.3
1.31.4
1.41.4
1.41.4
1.41.5
1.51.5
1.51.5
1.51.5
1.51.5
1.51.6
1.61.6
1.61.7
1.71.8
1.81.8
1.81.8
1.81.8
1.81.8
1.91.9
1.91.9
1.92.2
.2.2
.2.2.1
2.12.1
2.12.2
2.22.3
2.32.3
2.32.3
2.32.3
2.32.4
2.52.5][
1111
1111
1111
1111
1111
1111
1111
1111
1211
1122
1112
1222
2221
2222
2222
2222
2222
2222
2222
2222
2]
gini係數
# 隨機森林:多顆決策樹構建而成,每一顆決策樹都是基於決策樹原理
# 多顆決策樹一起運算------>整合演算法
wine=datasets.load_wine(
)x=wine[
'data'
]y=wine[
'target'
]x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=
0.2)
clf=randomforestclassifier(n_estimators=
100)
clf.fit(x_train,y_train)
y_=clf.predict(x_test)
from sklearn.metrics import accuracy_score
(accuracy_score(y_test,y_)
)
1.0
機器學習工具包鏈結
1.sklearn 2.lightgbm 3.keras backend庫 用來進行low level的庫,目前主要有tensorflow,theano,cntk 等三類.fit 中的 verbose verbose 日誌顯示 verbose 0 為不在標準輸出流輸出日誌資訊 verbose 1 為...
Python之爬蟲工具包
requests包 是乙個實用的python的http客戶端庫,編寫爬蟲從web上爬取資料時經常用到 簡單實用,介面簡單 requests.get url lxml包 主要用來解析通過requests抓取的html內容,從中提取出我們需要的資料,在對html文字內容進行提取 篩選時用到的是xpath...
ipkg工具包的學習
ipkg 詳細說明 http handhelds.org moin moin.cgi ipkg ipkg update 進行可用程式庫的更新 ipkg upgrade 已安裝了的程式進行版本更新 ipkg list install 檢視本機安裝了那些程式 ipkg的安裝和使用說明 1.ipkg是在嵌...