本文直譯自《hands on ml》課後題。(有改動的以【】表示)。
一棵勻稱(well-balanced)的二叉樹,如果共有m個葉子,則它的深度為log2(m)(取整)。一棵二元決策樹(binary decision tree)訓練結束時,或多或少平衡,每個葉子代表乙個樣本(訓練時沒有限制的情況下)。因此如果包含一百萬個樣本,那麼輸的深度會是log2(1000000)≈20(實際中會略多,因為樹一般不會如此平衡)。
乙個節點的gini不純度一般比它的父節點的小。這是由cart訓練演算法的損失函式來保證的——在進行**的時候,最小化它的子節點的不純度的和。
然而,它仍然可能比它的父節點有更高的gini不純度 。例如,假設乙個節點包含四個a類樣本,1個b類樣本。它的gin不純度為1-(1/5)2-(4/5)2=0.32。現在假設資料集是一維資料集,樣本按以下順序排列:a,b,a,a,a。可以驗證,演算法在第二個樣本之後進行**,產生包含a、b的子節點和包含a、a、a的子節點。第乙個子節點的gini不純度為1-(1/2)2-(1/2)2=0.5,比它的父節點大。因為另乙個節點是純節點,所以(這個增長)被補償了,總的gini不純度為 (2/5)*0.32+(3/5)*0=0.2,這比它的父節點的gini不純度小。
會,因為這會限制模型,regularizing it。
決策樹不關係訓練資料是否 scaled 或 centered;這是決策樹的乙個優點。因此此時scale輸入是浪費時間。
訓練決策樹的計算複雜度為o(n×mlog(m)),其中m為樣本數,n為特徵數。訓練集的資料是原來的十倍,訓練時間應該乘以k = (n × 10m × log(10m)) / (n × m × log(m)) = 10 × log(10m) / log(m)。當m=1000000時,代入得 k ≈ 11.7,因此訓練時間大概為11.7小時。
只有當訓練集不超過幾千的時候(smaller than a few thousand)預排序才會加速訓練。如果有100,000個樣本,設定presort=true會considerably減緩訓練。
機器學習思考題目 04基礎演算法
本文直譯自 hands on ml 課後題。有改動的以 表示 可以用隨機梯度下降法 sgd 或者小批量梯度下降 mini batch gradient descent 如果訓練集能否放入記憶體的話也可以用批量梯度下降演算法 batch gradient descent 但是不宜用標準方程 norma...
機器學習 決策樹
一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...
機器學習 決策樹
我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...