<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      24.12.06

      實(shí)驗(yàn)三:C4.5(帶有預(yù)剪枝和后剪枝)算法實(shí)現(xiàn)與測試

      一、實(shí)驗(yàn)?zāi)康?/p>

      深入理解決策樹、預(yù)剪枝和后剪枝的算法原理,能夠使用Python語言實(shí)現(xiàn)帶有預(yù)剪枝 和后剪枝的決策樹算法C4.5算法的訓(xùn)練與測試,并且使用五折交叉驗(yàn)證算法進(jìn)行模型訓(xùn)練 與評估。

       

      二、實(shí)驗(yàn)內(nèi)容

      (1)從scikit-learn 庫中加載 iris 數(shù)據(jù)集,使用留出法留出 1/3 的樣本作為測試集(注 意同分布取樣);

      (2)使用訓(xùn)練集訓(xùn)練分類帶有預(yù)剪枝和后剪枝的C4.5算法;

      (3)使用五折交叉驗(yàn)證對模型性能(準(zhǔn)確度、精度、召回率和 F1 值)進(jìn)行評估和選 擇;

      (4)使用測試集,測試模型的性能,對測試結(jié)果進(jìn)行分析,完成實(shí)驗(yàn)報(bào)告中實(shí)驗(yàn)三的 部分。

      三、算法步驟、代碼、及結(jié)果

         1. 算法偽代碼

        1. 導(dǎo)入必要的庫

         - 從 sklearn.datasets 導(dǎo)入 load_iris

         - 從 sklearn.model_selection 導(dǎo)入 train_test_split 和 cross_val_score

         - 從 sklearn.tree 導(dǎo)入 DecisionTreeClassifier

         - 從 sklearn.metrics 導(dǎo)入 accuracy_score, precision_score, recall_score, f1_score

       

      2. 加載數(shù)據(jù)集并拆分

         - 加載 iris 數(shù)據(jù)集 (X, y)

         - 使用 train_test_split 將數(shù)據(jù)集按 2:1 比例分為訓(xùn)練集 (X_train, y_train) 和測試集 (X_test, y_test),確保 stratify=y 以保證標(biāo)簽分布一致

       

      3. 定義 C4.5 決策樹模型(模擬預(yù)剪枝)

         - 初始化 DecisionTreeClassifier

           - max_depth: 設(shè)置決策樹的最大深度

           - min_samples_split: 設(shè)置內(nèi)部節(jié)點(diǎn)劃分所需的最小樣本數(shù)

           - min_samples_leaf: 設(shè)置葉節(jié)點(diǎn)的最小樣本數(shù)

       

      4. 使用訓(xùn)練集訓(xùn)練模型

         - 使用 X_train 和 y_train 擬合模型

       

      5. 五折交叉驗(yàn)證

         - 使用 cross_val_score 對模型進(jìn)行五折交叉驗(yàn)證,分別計(jì)算

           - 準(zhǔn)確度

           - 精度

           - 召回率

           - F1 值

         - 記錄每個(gè)指標(biāo)的平均值

       

      6. 在測試集上評估模型性能

         - 使用 X_test 進(jìn)行預(yù)測,得到預(yù)測值 y_pred

         - 計(jì)算以下評估指標(biāo):

           - 準(zhǔn)確度 (accuracy_score)

           - 精度 (precision_score)

           - 召回率 (recall_score)

           - F1 值 (f1_score)

       

      7. 分析模型在五折交叉驗(yàn)證和測試集上的性能差異

         2. 算法主要代碼

      完整源代碼\調(diào)用庫方法(函數(shù)參數(shù)說明)

      from sklearn.datasets import load_iris

      from sklearn.model_selection import train_test_split, cross_val_score

      from sklearn.tree import DecisionTreeClassifier

      from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

       

      # 1. 加載數(shù)據(jù)集

      iris = load_iris()

      X = iris.data

      y = iris.target

       

      # 2. 數(shù)據(jù)集拆分:訓(xùn)練集和測試集

      X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, stratify=y, random_state=42)

       

      # 3. 初始化決策樹模型,模擬 C4.5 預(yù)剪枝

      model = DecisionTreeClassifier(

          criterion='entropy',  # 使用信息增益率,模擬 C4.5

          max_depth=5,          # 限制最大深度

          min_samples_split=4,  # 每個(gè)節(jié)點(diǎn)最少樣本數(shù)

          min_samples_leaf=2    # 葉子節(jié)點(diǎn)最少樣本數(shù)

      )

       

      # 4. 訓(xùn)練模型

      model.fit(X_train, y_train)

       

      # 5. 五折交叉驗(yàn)證

      accuracy_scores = cross_val_score(model, X_train, y_train, cv=5, scoring='accuracy')

      precision_scores = cross_val_score(model, X_train, y_train, cv=5, scoring='precision_macro')

      recall_scores = cross_val_score(model, X_train, y_train, cv=5, scoring='recall_macro')

      f1_scores = cross_val_score(model, X_train, y_train, cv=5, scoring='f1_macro')

       

      print(f"五折交叉驗(yàn)證結(jié)果:")

      print(f"準(zhǔn)確度:{accuracy_scores.mean():.4f}")

      print(f"精度:{precision_scores.mean():.4f}")

      print(f"召回率:{recall_scores.mean():.4f}")

      print(f"F1值:{f1_scores.mean():.4f}")

       

      # 6. 在測試集上評估

      y_pred = model.predict(X_test)

      test_accuracy = accuracy_score(y_test, y_pred)

      test_precision = precision_score(y_test, y_pred, average='macro')

      test_recall = recall_score(y_test, y_pred, average='macro')

      test_f1 = f1_score(y_test, y_pred, average='macro')

       

      print(f"測試集性能:")

      print(f"準(zhǔn)確度:{test_accuracy:.4f}")

      print(f"精度:{test_precision:.4f}")

      print(f"召回率:{test_recall:.4f}")

      1. criterion

      • 作用:指定用于劃分的評價(jià)準(zhǔn)則。
      • 取值
      • 'gini':使用基尼系數(shù)(Gini impurity)作為劃分標(biāo)準(zhǔn)。
      • 'entropy':使用信息增益(entropy)作為劃分標(biāo)準(zhǔn),類似于 C4.5。
      • 默認(rèn)值'gini'
      • 作用:指定節(jié)點(diǎn)劃分策略。
      • 取值
      • 'best':在所有特征中選擇最優(yōu)劃分。
      • 'random':在隨機(jī)特征子集中選擇最優(yōu)劃分。
      • 默認(rèn)值'best'
      • 作用:控制樹的最大深度,用于預(yù)剪枝,防止過擬合。
      • 取值:正整數(shù)或 None
      • None 表示樹的深度不限制。
      • 默認(rèn)值None
      • 作用:控制一個(gè)節(jié)點(diǎn)分裂所需的最小樣本數(shù),用于預(yù)剪枝。
      • 取值:整數(shù)或浮點(diǎn)數(shù)。
      • 如果是整數(shù),表示最小樣本數(shù)。
      • 如果是浮點(diǎn)數(shù),表示總樣本數(shù)的某一比例。
      • 默認(rèn)值2
      • 作用:葉節(jié)點(diǎn)上最少樣本數(shù),用于預(yù)剪枝。
      • 取值:整數(shù)或浮點(diǎn)數(shù)。
      • 如果是整數(shù),表示葉節(jié)點(diǎn)最小樣本數(shù)。
      • 如果是浮點(diǎn)數(shù),表示葉節(jié)點(diǎn)中樣本占總樣本數(shù)的比例。
      • 默認(rèn)值1
      • 作用:葉節(jié)點(diǎn)中樣本權(quán)重的最小占比,用于預(yù)剪枝。
      • 取值:浮點(diǎn)數(shù),范圍 [0, 0.5]
      • 默認(rèn)值0.0
      • 作用:用于分裂的最大特征數(shù)。
      • 取值
      • 整數(shù):指定的特征數(shù)。
      • 浮點(diǎn)數(shù):特征占總特征數(shù)的比例。
      • 'auto':選擇所有特征。
      • 'sqrt':選擇 sqrt(n_features) 個(gè)特征。
      • 'log2':選擇 log2(n_features) 個(gè)特征。
      • None:使用所有特征。
      • 默認(rèn)值None
      • 作用:控制隨機(jī)數(shù)生成,以保證結(jié)果的可重復(fù)性。
      • 取值:整數(shù)或 None。
      • 默認(rèn)值None
      • 作用:限制最大葉節(jié)點(diǎn)數(shù),用于預(yù)剪枝。
      • 取值:正整數(shù)或 None。
      • None 表示不限制葉節(jié)點(diǎn)數(shù)。
      • 默認(rèn)值None
      • 作用:控制分裂節(jié)點(diǎn)時(shí)的最小不純度下降。
      • 取值:浮點(diǎn)數(shù),范圍 >=0。
      • 默認(rèn)值0.0
      • 作用:指定類別權(quán)重,用于處理類別不平衡問題。
      • 取值
      • None:不調(diào)整類別權(quán)重。
      • 'balanced':根據(jù)樣本數(shù)自動(dòng)調(diào)整權(quán)重,使每個(gè)類別的權(quán)重與其樣本數(shù)成反比。
      • 字典形式:自定義類別權(quán)重。
      • 默認(rèn)值None
      • 作用:用于后剪枝(代價(jià)復(fù)雜度剪枝)。
      • 取值:非負(fù)浮點(diǎn)數(shù)。
      • 默認(rèn)值0.0

      2. splitter

      3. max_depth

      4. min_samples_split

      5. min_samples_leaf

      6. min_weight_fraction_leaf

      7. max_features

      8. random_state

      9. max_leaf_nodes

      10. min_impurity_decrease

      11. class_weight

      12. ccp_alpha (剪枝參數(shù))

       

       

         3. 訓(xùn)練結(jié)果截圖(包括:準(zhǔn)確率、精度(查準(zhǔn)率)、召回率(查全率)、F1)

       

       

       

      四、實(shí)驗(yàn)結(jié)果分析

      1. 測試結(jié)果截圖(包括:準(zhǔn)確率、精度(查準(zhǔn)率)、召回率(查全率)、F1)

       

       

       

      2. 對比分析

      1. 準(zhǔn)確度 (Accuracy)

      五折交叉驗(yàn)證:0.9300

      測試集:0.8600

      分析:準(zhǔn)確度從五折交叉驗(yàn)證的 93% 下降到測試集的 86%,這是一個(gè)顯著的差距。五折交叉驗(yàn)證是在訓(xùn)練集上進(jìn)行的,而測試集是新的數(shù)據(jù)集,因此測試集的表現(xiàn)下降說明模型可能存在一定的過擬合。雖然模型在訓(xùn)練集上表現(xiàn)較好,但在測試集上預(yù)測效果有所下降。

      2. 精度 (Precision)

      五折交叉驗(yàn)證:0.9384

      測試集:0.8690

      分析:精度從 93.84% 下降到 86.90%。精度度量的是模型預(yù)測的正類中有多少是真正的正類,精度下降表明在測試集中,模型的錯(cuò)誤正類預(yù)測數(shù)量有所增加。該結(jié)果進(jìn)一步支持了模型在新數(shù)據(jù)上的泛化性能不如訓(xùn)練集的結(jié)論。

      3. 召回率 (Recall)

      五折交叉驗(yàn)證:0.9302

      測試集:0.8627

      分析:召回率從 93.02% 降低到 86.27%。召回率表示在所有正類中,模型識(shí)別了多少個(gè)正類。召回率下降意味著在測試集上,模型對正類的識(shí)別率有所下降。這表明模型在測試集上的泛化性能有一定的不足,導(dǎo)致其無法捕獲盡可能多的正類樣本。

      4. F1 值

      五折交叉驗(yàn)證:0.9384

      測試集:0.8617

      分析:F1 值從 93.84% 下降到 86.17%,表明模型在測試集上整體的分類能力有所減弱。F1 值結(jié)合了精度和召回率,下降幅度與精度和召回率的下降幅度一致,進(jìn)一步驗(yàn)證了測試集上表現(xiàn)的下降。

      總結(jié)

      泛化能力不足:模型在五折交叉驗(yàn)證中的表現(xiàn)優(yōu)于在測試集上的表現(xiàn),這表明模型在訓(xùn)練集上可能出現(xiàn)了過擬合,導(dǎo)致泛化到新數(shù)據(jù)的能力不強(qiáng)。

      posted on 2024-12-06 18:18  Daniel350  閱讀(25)  評論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 色综合伊人色综合网站| 乱人伦人妻系列| 亚洲综合小综合中文字幕| 无码内射中文字幕岛国片| 中文字幕久久精品波多野结| 亚洲69视频| 成人午夜免费无码视频在线观看| 亚洲精品国偷自产在线| 人妻精品久久久无码区色视| 四虎永久免费精品视频| 精品超清无码视频在线观看| 成年无码av片在线蜜芽| 成人无套少萝内射中出| 久久精品国产亚洲成人av| 亚洲AV成人片不卡无码| 精品午夜福利在线视在亚洲| 99国产精品欧美一区二区三区| 午夜视频免费试看| 国产精品毛片一区二区三| 两个人的视频www免费| 人妻系列无码专区无码中出 | 亚洲欧洲一区二区免费| 国产美女久久久亚洲综合| 国产乱女乱子视频在线播放| 亚洲成人av在线高清| 国产偷人妻精品一区二区在线| 无码日韩做暖暖大全免费不卡| 精品一区二区亚洲国产| 欧洲lv尺码大精品久久久| 国产激情一区二区三区在线| 免费视频成人片在线观看| 免费国产女王调教在线视频| 国产av综合影院| 精品不卡一区二区三区| 日韩有码中文在线观看| 精品亚洲欧美高清不卡高清| 正在播放肥臀熟妇在线视频| 日韩精品二区三区四区| 六十路老熟妇乱子伦视频| 在线a级毛片无码免费真人| 国产精品疯狂输出jk草莓视频|