Teknologian jakaminen

Johdatus päätöspuun algoritmiin, periaatteisiin ja tapauksen toteutukseen

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Päätöspuualgoritmi on erittäin suosittu koneoppimisalgoritmi, jota voidaan käyttää luokittelu- ja regressiotehtäviin. Seuraavassa on yksityiskohtainen johdatus päätöspuualgoritmiin, mukaan lukien periaatteet ja tapausten toteutukset sekä vastaava Python-koodi.

Johdatus päätöspuun algoritmiin

peruskonsepti

Päätöspuu on puurakenne, jota käytetään tietojen luokitukseen tai regressioon. Se koostuu solmuista ja reunoista, joissa jokainen sisäinen solmu edustaa ominaisuuden testiä, jokainen haara edustaa testin tulosta ja jokainen lehtisolmu edustaa luokkaa tai regressioarvoa.

Rakennusprosessi

Päätöspuun rakennusprosessi sisältää yleensä seuraavat vaiheet:

  1. Valitse parhaat ominaisuudet: Valitse parhaat ominaisuudet jakaaksesi tietojoukon tietyn kriteerin mukaan (kuten tiedon vahvistus, Gini-indeksi jne.).
  2. Luo solmu: Jaa tietojoukko parhailla ominaisuuksilla ja luo uusia solmuja jokaiselle haaralle.
  3. Rakenna rekursiivisesti alipuita: Parhaiden ominaisuuksien valinta ja tietojoukon jakaminen toistetaan jokaiselle lapsisolmulle, kunnes pysäytysehto täyttyy (kuten solmun puhtaus saavuttaa tietyn tason tai puun syvyys saavuttaa esiasetetun arvon).
  4. Rakenna lehtisolmuja: Lehtisolmut luodaan, kun jakamista ei enää tarvita, tyypillisesti enemmistön luokkatunniste luokituspuille tai kaikkien alijoukon datapisteiden keskiarvo regressiopuille.
jaettu kriteeri
  • tiedon saaminen: Mittaa ominaisuuden tietojoukon luokittelun epävarmuuden vähenemistä.
  • Gini-indeksi: Mittaa tietojoukon puhtautta, mitä pienempi Gini-indeksi on, sitä korkeampi on tietojoukon puhtaus.
  • Pienin keskineliövirhe (MSE): Jakokriteeri regressiopuille.

Tapauksen toteutus

Seuraavassa on päätöspuun luokittelutapaus, joka on toteutettu Pythonilla ja scikit-learn-kirjastolla. Käytämme kuuluisaa Iris-tietoaineistoa, joka sisältää kolmen iiriskukan (Setosa, Versicolour, Virginica) ominaisuuksia ja luokkia.

1. Tietojen valmistelu
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Harjoittele päätöspuumalli
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Arviointimalli
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Visuaalinen päätöspuu
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Yhteenveto:

Yllä oleva koodi näyttää, kuinka scikit-learn-kirjastoa käytetään Iris-tietojoukon lataamiseen, päätöspuuluokittajan kouluttamiseen, mallin suorituskyvyn arvioimiseen ja päätöspuun visualisointiin. Tämän tapauksen kautta näet, miten päätöspuu toimii ja miten sitä käytetään käytännön sovelluksissa.

Toivottavasti pidät siitä, jos pidät siitä, tykätkää ja tallenna se.