熵是用來衡量乙個系統混論程度的物理量,代表乙個系統中蘊含多少資訊量,資訊量越大表明乙個系統不確定性就越大,就存在越多的可能性。
演算法支援模型
樹結構特徵選擇
連續值處理
缺失值處理
剪枝id3
分類多叉樹
資訊增益
不支援不支援
不支援c4.5
分類多叉樹
資訊增益比
支援支援
支援cart
分類/回歸
二叉樹基尼係數,均方差
支援支援
支援
import numpy as np
import pandas as pd
defcancshannonent
(dataset)
:'''
:param dataset: dataset
:return: shannonent
'''# 計算公式前,注意資料的格式(array)
numentries =
len(dataset)
# 獲取資料的行數
labelcounts =
# 設定字典資料格式,想要儲存的資料格式為:類別:頻數
for featvec in dataset:
# 獲取資料集每一行的資料
currentlabel = featvec[-1
]# 獲取特徵向量的最後一列
# 檢查字典中key是否存在
# 如果key不存在
if currentlabel not
in labelcounts.keys():
# 將當前的標籤存於字典中,並將頻數置為0
labelcounts[currentlabel]=0
# 如果key存在,在當前的鍵值上+1
labelcounts[currentlabel]+=1
# 資料已準備好,計算熵
shannonent =
0.0# 初始化資訊熵
for key in labelcounts:
# 遍歷出資料中所的類別
pro =
float
(labelcounts[key]
)/numentries
shannonent -= pro * np.log2(pro)
# 計算資訊熵
return shannonent # 返回資訊熵
dataset = pd.read_csv(
'watermelon_3a.csv'
)dataset = np.array(dataset.values)
shannon = cancshannonent(dataset)
print
(shannon)
《李巨集毅機器學習》task5
假定 lr邏輯回歸假設樣本服從泊松0 1分布,因此p y x 表示式 求最大似然估計 進而求最大對數似然估計 損失函式 損失函式表徵 值與真實值之間的差異程度,如果 值與真實值越接近則損失函式應該越小。在此損失函式可以取為最大似然估計函式的相反數,其次除以m這一因子並不改變最終求導極值結果,通過除以...
李巨集毅機器學習 Introduction
人工智慧是我們想要達到的目標,即讓機器和人一樣智慧型。而機器學習是方法,讓機器從資料中學習,從而得到智慧型的方法。智慧型是什麼呢?對於人類智慧型而言,根據霍華德 加德納的多元智慧型理論,人類的智慧型分為以下七種智慧型 這不僅涵蓋了現在人工智慧的研究領域,計算機視覺 語音識別 自然語言處理等。而且也指...
李巨集毅機器學習attack model 學習筆記
loss函式及限制條件 無目標攻擊 l 負的 y 與y true 交叉熵 輸入的x 使y 與y true越遠越好 有目標攻擊 輸入的x 使y 與y true越遠越好且y 與y false越近越好 限制條件 x與x0距離需要小於乙個值,不被發現,否則攻擊就無意義 攻擊的目標是x在乙個小的變化內使模型失...