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.
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.
Päätöspuun rakennusprosessi sisältää yleensä seuraavat vaiheet:
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.
- from sklearn.datasets import load_iris
- from sklearn.model_selection import train_test_split
-
- # 加载数据集
- iris = load_iris()
- X, y = iris.data, iris.target
-
- # 拆分数据集为训练集和测试集
- X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
- from sklearn.tree import DecisionTreeClassifier
-
- # 初始化决策树分类器
- clf = DecisionTreeClassifier()
-
- # 训练模型
- clf.fit(X_train, y_train)
- from sklearn.metrics import accuracy_score
-
- # 预测测试集
- y_pred = clf.predict(X_test)
-
- # 计算准确率
- accuracy = accuracy_score(y_test, y_pred)
- print(f"Accuracy: {accuracy:.2f}")
- import matplotlib.pyplot as plt
- from sklearn.tree import plot_tree
-
- # 可视化决策树
- plt.figure(figsize=(12, 12))
- plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
- plt.show()
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.