python做演算法 決策樹演算法 Python實現

2021-10-10 10:51:30 字數 2016 閱讀 8905

決策樹比較常用的演算法模型,可以做分類也可以回歸

決策樹演算法重點

對特徵的選擇,可以使用熵,也可以使用基尼係數,通過資訊增益或者資訊增益率選擇最好的特徵

決策樹的剪枝,有兩種策略,一種是預剪枝,一種是後剪枝,預剪枝可以通過限制樹的高度,葉子節點個數,資訊增益等進行,使得樹邊建立邊剪枝,後剪枝通過增加損失項,使得樹建立後,然後對不符合的葉子節點進行合併。達到減小樹的要求,避免過擬合

整合演算法

bagging 主要通過並行建立多個決策模型,然後通過投票或者平均輸出最後的值

boosting 主要是通過序列的思想,通過弱分類器開始加強,然後通過加權來進行訓練,比如先訓練一棵樹,然後在增加一棵樹,達到提高模型的效果

stacking 聚合多個分類或者 回歸模型來提高模型的效果、

import matplotlib.pyplot as plt

import pandas as pd

from sklearn.datasets import fetch_california_housing

housing = fetch_california_housing()

# print(housing.descr)

print(housing.data.shape)

print(housing.data[0])

from sklearn import tree

dtr = tree.decisiontreeregressor(max_depth=2)

dtr.fit(housing.data[:, [6, 7]], housing.target)

# 樹模型引數

# 1.criterion gini or entroy

# 2.splitter best or random 前者是在所有特徵最終找到最好的切分點,後者實在部分特徵中

# 3.max_features none, log2, sqrt, n特徵小於50一般使用所有的

# 4.mini_depth 資料少或者特徵少的情況下,可以不管這個值,如果模型資料樣本量多或者特徵多的情況下,可以嘗試限制

# 5.mini_samples_split 如果節點數量少,不用管,如果樣本數非常大,則推薦增加這個值

# 6.mini_samples_leaf 限制了葉子節點的樣本權重和最小值,如果小於這個值,樣本量不大,不需要管這個值,大些如果10w,可以設定5

from sklearn.model_selection import train_test_split

data_train, data_test, target_train, target_test = train_test_split(housing.data, housing.target, test_size=0.1, random_state=42)

# dtr = tree.decisiontreeregressor(random_state= 42)

# dtr.fit(data_train, target_train)

# print(dtr.score(data_test, target_test))

from sklearn.ensemble import randomforestregressor

# rfr = randomforestregressor(random_state=42)

# rfr.fit(data_train, target_train)

# print(rfr.score(data_test, target_test))

from sklearn.model_selection import gridsearchcv

tree_param_grid =

grid = gridsearchcv(randomforestregressor(), param_grid=tree_param_grid, cv=5)

grid.fit(data_train, target_train)

print(grid.error_score, grid.best_params_, grid.best_score_)

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...

決策樹演算法

引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...