Python人工智慧經典演算法之決策樹

2021-10-24 01:40:54 字數 3528 閱讀 1562

4.2 決策樹分類原理【*****】

1.資訊增益

資訊增益 = entroy(前) - entroy(後)

注意:資訊增益越大,我們優先選擇這個屬性進行計算

資訊增益優先選擇屬性總類別比較多的進行劃分

2.資訊增益率

維持了乙個分離資訊度量,通過這個分離資訊度量當分母,進行限制

3.基尼增益

1.基尼值:

從資料集d中隨機抽取兩個樣本,其類別標記不一致的概率

gini(d)值越小,資料集d的純度越高。

2.基尼指數:

選擇使劃分後基尼係數最小的屬性作為最優化分屬性

3.基尼增益:

選擇基尼增益最大的點,進行優化劃分

4.基尼增益構造過程:

1.開始將所有記錄看作乙個節點

2.遍歷每個變數的每一種分割方式,找到最好的分割點

3.分割成兩個節點n1和n2

4.對n1和n2分別繼續執行2-3步,直到每個節點足夠「純」為止。

5.決策樹的變數可以有兩種,分別對應的劃分方式:

1.數字型

通過對資料取兩個數字之間的中間值,進行劃分

2.名稱型

通過對屬性的類別進行劃分

6.如何評估分割點的好壞?

主要看分割的是否純

4.三種演算法對比:【****】

id3 演算法

採用資訊增益作為評價標準

只能對描述屬性為離散型屬性的資料集構造決策樹

缺點是傾向於選擇取值較多的屬性

c4.5演算法

用資訊增益率來選擇屬性

可以處理連續數值型屬性

採用了一種後剪枝方法

對於缺失值的處理

缺點是:c4.5只適合於能夠駐留於記憶體的資料集

cart演算法

c4.5不一定是二叉樹,但cart一定是二叉樹

是資訊增益的簡化版本

4.3 cart剪枝

1.剪枝原因

雜訊、樣本衝突,即錯誤的樣本資料

特徵即屬性不能完全作為分類標準

巧合的規律性,資料量不夠大。

2.常用剪枝方法

預剪枝在構建樹的過程中,同時剪枝

eg:限制節點最小樣本數

指定資料高度

指定熵值的最小值

後剪枝把一棵樹,構建完成之後,再進行從下往上的剪枝

4.4 特徵工程-特徵提取【***】

1.特徵提取

將任意資料(如文字或影象)轉換為可用於機器學習的數字特徵

2.特徵提取分類:

字典特徵提取(特徵離散化)

文字特徵提取

影象特徵提取(深度學習將介紹)

3.api

sklearn.feature_extraction

4.字典特徵提取

字典特徵提取就是對類別型資料進行轉換

api:

sklearn.feature_extraction.dictvectorizer(sparse=true,…)

aparse矩陣

1.節省內容

2.提高讀取效率

屬性:dictvectorizer.get_feature_names() 返回類別名稱

注意:對於特徵當中存在類別資訊的我們都會做one-hot編碼處理

5.文字特徵提取(英文)

api:

sklearn.feature_extraction.text.countvectorizer(stop_words=)

stop_words -- 停用詞

注意:沒有sparse這個引數

單個字母,標點符號不做統計

6.文字特徵提取(中文)

注意:1.在中文文字特徵提取之前,需要對句子(文章)進行分詞(jieba)

2.裡面依舊可以使用停用詞,進行詞語的限制

7.tfidf

1.主要思想:

如果某個詞或短語在一篇文章**現的概率高,並且在其他文章中很少出現,則認為此詞或者短語具有很好的類別區分能力,適合用來分類

2.tfidf

tf -- 詞頻

idf -- 逆向文件頻率

3.api

sklearn.feature_extraction.text.tfidfvectorizer

注意:分類機器學習演算法進行文章分類中前期資料處理方式

4.5 決策樹演算法api【*】

sklearn.tree.decisiontreeclassifier(criterion=』gini』, max_depth=none,random_state=none)

引數:criterion

特徵選擇標準

min_samples_split

內部節點再劃分所需最小樣本數

min_samples_leaf

葉子節點最少樣本數

max_depth

決策樹最大深度

4.6 案例:鐵達尼號乘客生存**【***】

1.流程分析

1.獲取資料

2.資料基本處理

2.1 確定特徵值,目標值

2.2 缺失值處理

2.3 資料集劃分

3.特徵工程(字典特徵抽取)

4.機器學習(決策樹)

5.模型評估

2.視覺化

sklearn.tree.export_graphviz()

3.小結

優點:簡單的理解和解釋,樹木視覺化。

缺點:決策樹學習者可以建立不能很好地推廣資料的過於複雜的樹,容易發生過擬合。

改進:減枝cart演算法

隨機森林(整合學習的一種)

5. 整合學習

5.1 整合學習演算法簡介

1.什麼是整合學習

超級個體和弱者聯盟對比,後者更優

2.複習:機器學習兩個核心任務

1.解決欠擬合問題

弱弱組合變強

boosting

2.解決過擬合問題

互相遏制變壯

bagging

5.2 bagging【**】

1.bagging整合過程

1.取樣

從所有樣本裡面,取樣一部分

2.學習

訓練弱學習器

3.整合

使用平權投票

2.隨機森林介紹

1.隨機森林定義

隨機森林 = bagging + 決策樹

2.流程:

1.隨機選取m條資料

2.隨機選取k個特徵

3.訓練決策樹

4.重複1-3

5.對上面的若決策樹進行平權投票

3.注意:

1.隨機選取樣本,且是有放回的抽取

2.選取特徵的時候嗎,選擇m

4.api

sklearn.ensemble.randomforestclassifier()

3.bagging的優點

bagging + 決策樹/線性回歸/邏輯回歸/深度學習… = bagging整合學習方法

1.均可在原有演算法上提高約2%左右的泛化正確率

2.簡單, 方便, 通用

人工智慧 A演算法

在狀態空間搜尋中,如果每一步都利用估價函式f n g n h n 對open表中的結點進行排序,則稱a演算法。它是一種為啟發式搜尋演算法。演算法型別 把初始結點s0放入open表中,f s0 g s0 h s0 如果open表為空,則問題無解 失敗退出 把open表的第乙個結點取出放入closed表...

人工智慧AI 之搜尋 A 演算法

1.概述 這是一種經典的尋路演算法 簡而言之,重點在於估算距離。問題描述 假設起點a,終點b,當前結點為n f n g n h n g n 表示起點到n實際距離 h n 表示n到終點預估距離 在所有結點中選擇f值最小的可行節點走下去即可。缺陷 顯然,a 演算法的效率很大程度取決於h n 的計算,即對...

Python人工智慧之資料遷移

將模型對映到資料庫中 使用flask migrate庫 安裝,使用 pip install flask migratedb sqlalchemy migrate migrate 配置flask script的命令 manager.add command db migratecommand 指令使用 ...