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 指令使用 ...