目次
上記の基礎知識を理解した後、応用ケースの実装を開始しましょう。この記事では、Scikit Learning ライブラリを使用して、Python でデシジョン ツリー分類モデルを実装します。
计算模型精度
真实世界中的决策树应用程序
如何改进决策树?
译者介绍
ホームページ テクノロジー周辺機器 AI 機械学習デシジョンツリー実践演習

機械学習デシジョンツリー実践演習

Apr 11, 2023 pm 07:16 PM
機械学習 デシジョンツリー 事件

翻訳者 | Zhu Xianzhong

##査読者 | Sun Shujuan

機械学習における意思決定木

現代の機械学習アルゴリズムは私たちの日常生活を変えています。たとえば、BERT のような大規模な言語モデルは Google 検索を強化しており、GPT-3 は多くの高級言語アプリケーションを強化しています。

一方で、複雑な機械学習アルゴリズムの構築は、今日ではかつてないほど簡単になっています。ただし、機械学習アルゴリズムがどれほど複雑であっても、それらはすべて次の学習カテゴリのいずれかに分類されます:

  • 教師あり学習
  • 教師なし学習
  • 半教師あり学習
  • 強化学習

実際、デシジョン ツリーは最も古い教師あり機械学習アルゴリズムの 1 つであり、現実世界のさまざまな問題を解決できます。研究によると、決定木アルゴリズムの最初の発明は 1963 年まで遡ることができます。

次に、このアルゴリズムの詳細を掘り下げて、このタイプのアルゴリズムが今日でも非常に人気がある理由を見てみましょう。

デシジョン ツリーとは何ですか?

デシジョン ツリー アルゴリズムは、複雑なデータ セットを処理する比較的単純な方法であるため、人気のある教師あり機械学習アルゴリズムです。デシジョン ツリーは、ツリーの構造に似ていることからその名前が付けられました。ツリー構造は、ノードとエッジの形をした根、枝、葉などのいくつかのコンポーネントで構成されます。これらは、if-else ベースの意思決定フローチャートと同様に、意思決定分析に使用され、意思決定によって望ましい予測が生成されます。デシジョン ツリーは、これらの if-else 決定ルールを学習してデータ セットを分割し、最終的にツリー状のデータ モデルを生成します。

デシジョン ツリーは、分類問題の離散結果の予測や回帰問題の連続数値結果の予測に使用されてきました。科学者は長年にわたり、CART、C4.5 などのさまざまなアルゴリズムや、ランダム フォレストや勾配ブースト ツリーなどのアンサンブル アルゴリズムを開発してきました。

機械学習デシジョンツリー実践演習# デシジョン ツリーのさまざまなコンポーネントの分析

デシジョン ツリー アルゴリズムの目標は、入力の結果を予測することです。データセット。ツリー データ セットは、属性、属性値、予測対象のタイプの 3 つの形式に分割されます。他の教師あり学習アルゴリズムと同様に、データ セットはトレーニング セットとテスト セットの 2 つのタイプに分類されます。その中で、トレーニング セットは、アルゴリズムが学習してテスト セットに適用する決定ルールを定義します。

デシジョン ツリー アルゴリズムのステップをまとめる前に、まずデシジョン ツリーのコンポーネントを理解しましょう:

    ルートノード: デシジョン ツリーの最上部にある開始ノードであり、すべての属性値が含まれます。ルート ノードは、アルゴリズムによって学習された決定ルールに基づいて決定ノードに分割されます。
  • ブランチ: ブランチは、属性値に対応するノード間のコネクタです。バイナリ分割では、分岐は真のパスと偽のパスを表します。
  • 意思決定ノード/内部ノード: 内部ノードは、ルート ノードとリーフ ノードの間の意思決定ノードであり、意思決定ルールとその回答パスに対応します。ノードは質問を表し、ブランチはそれらの質問に基づいて関連する回答へのパスを示します。
  • リーフ ノード: リーフ ノードは、ターゲット予測を表す終端ノードです。これらのノードはそれ以上分割されません。
  • #以下は、デシジョン ツリーとその上のコンポーネントを視覚的に表現したものです。デシジョン ツリー アルゴリズムは、次の手順を経て、目的の予測に到達します。

#アルゴリズムは、すべての属性値を持つルート ノードから開始されます。

  • ルート ノードは、トレーニング セットからアルゴリズムによって学習された決定ルールに基づいて決定ノードに分割されます。
  • 質問とその回答パスに基づいて、ブランチ/エッジを通じて内部意思決定ノードを渡します。
  • リーフ ノードに到達するか、すべての属性が使用されるまで、前の手順を続けます。
  • 各ノードで最適な属性を選択するために、次の 2 つの属性選択メトリックのいずれかが分割に使用されます。
    • ジニ係数 ジニ指数ジニ不純物の測定(##) #Gini Impurity) は、アルゴリズムがランダムなクラス ラベルを誤って分類する可能性を示します。
    • 情報利得 クラス 50/ 50 の予測を避けるために、セグメンテーション後のエントロピーの改善を測定します。スプリット。エントロピーは、特定のデータ サンプル内の 不純物 の数学的尺度です。デシジョン ツリー内の カオス状態 は、 50/50 に近い partition によって表されます。 決定木アルゴリズムを使用した花の分類ケース

    上記の基礎知識を理解した後、応用ケースの実装を開始しましょう。この記事では、Scikit Learning ライブラリを使用して、Python でデシジョン ツリー分類モデルを実装します。

    #データ セットについての簡単な説明

    このチュートリアルのデータ セットは、iris データ セットです。このデータセットはすでに Scikit オープン ソース ライブラリに組み込まれているため、開発者はそれを外部からロードする必要はありません。このデータセットには、合計 4 つのアヤメ属性と対応する属性値が含まれており、これらは 3 種類のアヤメの花のいずれかを予測するためにモデルに入力されます。

    データセット内の属性/特徴: がく片の長さ、がく片の幅、花弁の長さ、花弁の幅。

    • データセット内の予測ラベル/花の種類: Setosis、Versicolor、Virginica。
    • #次に、Python 言語に基づく決定木分類器のコードを段階的に説明します。

    ライブラリのインポート

    まず、次のコードを使用して、デシジョン ツリーの実装に必要なライブラリをインポートします。

    import pandas as pd
    import numpy as np
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.tree import DecisionTreeClassifier
    ログイン後にコピー

    虹彩データ セットのロード

    次のコードは、load_iris 関数を使用して、data_set 変数に格納されている sklearn.dataset ライブラリに虹彩データをロードする方法を示しています。セット。次の 2 行のコードは、虹彩のタイプと特性情報を出力します。

    data_set = load_iris()
    print('Iris plant classes to predict: ', data_set.target_names)
    print('Four features of iris plant: ', data_set.feature_names)
    ログイン後にコピー

    属性とタグの分離

    機械学習デシジョンツリー実践演習

    次のコード行は、花の特性とタイプ情報を分離し、保存します。対応する変数に。このうち、shape[0] 関数は、X_att 変数に格納される属性の数を決定する役割を果たします。データ セット内の属性値の合計数は 150 です。

    #提取花的特性和类型信息
    X_att = data_set.data
    y_label = data_set.target
    print('数据集中总的样本数:', X_att.shape[0])
    ログイン後にコピー

    実際、X_att 変数の値を DataFrame 関数に追加することで、データ セット内のいくつかの属性値を表示するビジュアル テーブルを作成することもできます。パンダ図書館です。

    data_view=pd.DataFrame({
    'sepal length':X_att[:,0],
    'sepal width':X_att[:,1],
    'petal length':X_att[:,2],
    'petal width':X_att[:,3],
    'species':y_label
    })
    data_view.head()
    ログイン後にコピー

    データ セットの分割

    次のコードは、train_test_split 関数を使用してデータ セットをトレーニング セットとテスト セットの 2 つの部分に分割する方法を示しています。その中で、この関数のrandom_stateパラメータは、関数が実行されるたびに指定されたデータセットに対して同じ結果を提供するためのランダムシードを提供するために使用されます;test_sizeはテストセットのサイズを示します;0.25はテストデータが分割後は 25%、トレーニング データが 75% を占めます。

    #数据集拆分为训练集和测试集两部分
    X_att_train, X_att_test, y_label_train, y_label_test = train_test_split(X_att, y_label, random_state = 42, test_size = 0.25)
    ログイン後にコピー

    デシジョン ツリー分類関数の適用

    次のコードは、

    を使用して

    を作成します。 DecisionTreeClassifier 関数 a デシジョン ツリーを実装するための分類モデルclassification 標準は「エントロピー」に設定されます ## #方法######。この標準 により、 は属性選択メトリックを (情報ゲイン) に設定できるようになります。次に、コードはモデルを属性とラベルのトレーニング セットと照合します。

    #应用决策树分类器
    clf_dt = DecisionTreeClassifier(criterion = 'entropy')
    clf_dt.fit(X_att_train, y_label_train)
    ログイン後にコピー

    计算模型精度

    下面的代码负责计算并打印决策树分类模型在训练集和测试集上的准确性。为了计算准确度分数,我们使用了predict函数。测试结果是:训练集和测试集的准确率分别为100%和94.7%。

    print('Training data accuracy: ', accuracy_score(y_true=y_label_train, y_pred=clf_dt.predict(X_att_train)))
    print('Test data accuracy: ', accuracy_score(y_true=y_label_test, y_pred=clf_dt.predict(X_att_test)))
    ログイン後にコピー

    真实世界中的决策树应用程序

    当今社会,机器学习决策树在许多行业的决策过程中都得到广泛应用。其中,决策树的最常见应用首先是在金融和营销部门,例如可用于如下一些子领域:

    • 贷款批准
    • 支出管理
    • 客户流失预测
    • 新产品的可行性分析,等等。

    如何改进决策树?

    作为本文决策树主题讨论的总结,我们有充分的理由安全地假设:决策树的可解释性仍然很受欢迎。决策树之所以容易理解,是因为它们可以被人类以可视化方式展现并便于解释。因此,它们是解决机器学习问题的直观方法,同时也能够确保结果是可解释的。机器学习中的可解释性是我们过去讨论过的一个小话题,它也与即将到来的人工智能伦理主题存在密切联系。

    与任何其他机器学习算法一样,决策树自然也可以加以改进,以避免过度拟合和出现过于偏向于优势预测类别。剪枝和ensembling技术是克服决策树算法缺点方案最常采用的方法。决策树尽管存在这些缺点,但仍然是决策分析算法的基础,并将在机器学习领域始终保持重要位置。

    译者介绍

    朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

    原文标题:An Introduction to Decision Trees for Machine Learning,作者:Stylianos Kampakis

以上が機械学習デシジョンツリー実践演習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

オープンソースの無料画像注釈ツールおすすめ 15 選 オープンソースの無料画像注釈ツールおすすめ 15 選 Mar 28, 2024 pm 01:21 PM

画像の注釈は、ラベルまたは説明情報を画像に関連付けて、画像の内容に深い意味と説明を与えるプロセスです。このプロセスは機械学習にとって重要であり、画像内の個々の要素をより正確に識別するために視覚モデルをトレーニングするのに役立ちます。画像に注釈を追加することで、コンピュータは画像の背後にあるセマンティクスとコンテキストを理解できるため、画像の内容を理解して分析する能力が向上します。画像アノテーションは、コンピュータ ビジョン、自然言語処理、グラフ ビジョン モデルなどの多くの分野をカバーする幅広い用途があり、車両が道路上の障害物を識別するのを支援したり、障害物の検出を支援したりするなど、幅広い用途があります。医用画像認識による病気の診断。この記事では主に、より優れたオープンソースおよび無料の画像注釈ツールをいくつか推奨します。 1.マケセンス

この記事では、SHAP: 機械学習のモデルの説明について説明します。 この記事では、SHAP: 機械学習のモデルの説明について説明します。 Jun 01, 2024 am 10:58 AM

機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

透明!主要な機械学習モデルの原理を徹底的に分析! 透明!主要な機械学習モデルの原理を徹底的に分析! Apr 12, 2024 pm 05:55 PM

平たく言えば、機械学習モデルは、入力データを予測された出力にマッピングする数学関数です。より具体的には、機械学習モデルは、予測出力と真のラベルの間の誤差を最小限に抑えるために、トレーニング データから学習することによってモデル パラメーターを調整する数学関数です。機械学習には、ロジスティック回帰モデル、デシジョン ツリー モデル、サポート ベクター マシン モデルなど、多くのモデルがあります。各モデルには、適用可能なデータ タイプと問題タイプがあります。同時に、異なるモデル間には多くの共通点があったり、モデル進化の隠れた道が存在したりすることがあります。コネクショニストのパーセプトロンを例にとると、パーセプトロンの隠れ層の数を増やすことで、それをディープ ニューラル ネットワークに変換できます。パーセプトロンにカーネル関数を追加すると、SVM に変換できます。これです

学習曲線を通じて過学習と過小学習を特定する 学習曲線を通じて過学習と過小学習を特定する Apr 29, 2024 pm 06:50 PM

この記事では、学習曲線を通じて機械学習モデルの過学習と過小学習を効果的に特定する方法を紹介します。過小適合と過適合 1. 過適合 モデルがデータからノイズを学習するためにデータ上で過学習されている場合、そのモデルは過適合していると言われます。過学習モデルはすべての例を完璧に学習するため、未確認の新しい例を誤って分類してしまいます。過適合モデルの場合、完璧/ほぼ完璧なトレーニング セット スコアとひどい検証セット/テスト スコアが得られます。若干修正: 「過学習の原因: 複雑なモデルを使用して単純な問題を解決し、データからノイズを抽出します。トレーニング セットとしての小さなデータ セットはすべてのデータを正しく表現できない可能性があるため、2. 過学習の Heru。」

宇宙探査と人類居住工学における人工知能の進化 宇宙探査と人類居住工学における人工知能の進化 Apr 29, 2024 pm 03:25 PM

1950 年代に人工知能 (AI) が誕生しました。そのとき、研究者たちは、機械が思考などの人間と同じようなタスクを実行できることを発見しました。その後、1960 年代に米国国防総省は人工知能に資金を提供し、さらなる開発のために研究所を設立しました。研究者たちは、宇宙探査や極限環境での生存など、多くの分野で人工知能の応用を見出しています。宇宙探査は、地球を超えた宇宙全体を対象とする宇宙の研究です。宇宙は地球とは条件が異なるため、極限環境に分類されます。宇宙で生き残るためには、多くの要素を考慮し、予防策を講じる必要があります。科学者や研究者は、宇宙を探索し、あらゆるものの現状を理解することが、宇宙の仕組みを理解し、潜在的な環境危機に備えるのに役立つと信じています。

C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 C++ での機械学習アルゴリズムの実装: 一般的な課題と解決策 Jun 03, 2024 pm 01:25 PM

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

説明可能な AI: 複雑な AI/ML モデルの説明 説明可能な AI: 複雑な AI/ML モデルの説明 Jun 03, 2024 pm 10:08 PM

翻訳者 | Li Rui によるレビュー | 今日、人工知能 (AI) および機械学習 (ML) モデルはますます複雑になっており、これらのモデルによって生成される出力はブラックボックスになっており、関係者に説明することができません。 Explainable AI (XAI) は、利害関係者がこれらのモデルがどのように機能するかを理解できるようにし、これらのモデルが実際に意思決定を行う方法を確実に理解できるようにし、AI システムの透明性、信頼性、およびこの問題を解決するための説明責任を確保することで、この問題を解決することを目指しています。この記事では、さまざまな説明可能な人工知能 (XAI) 手法を検討して、その基礎となる原理を説明します。説明可能な AI が重要であるいくつかの理由 信頼と透明性: AI システムが広く受け入れられ、信頼されるためには、ユーザーは意思決定がどのように行われるかを理解する必要があります

あなたが知らない機械学習の 5 つの流派 あなたが知らない機械学習の 5 つの流派 Jun 05, 2024 pm 08:51 PM

機械学習は人工知能の重要な分野であり、明示的にプログラムしなくてもコンピューターにデータから学習して能力を向上させる機能を提供します。機械学習は、画像認識や自然言語処理から、レコメンデーションシステムや不正行為検出に至るまで、さまざまな分野で幅広く応用されており、私たちの生活様式を変えつつあります。機械学習の分野にはさまざまな手法や理論があり、その中で最も影響力のある 5 つの手法は「機械学習の 5 つの流派」と呼ばれています。 5 つの主要な学派は、象徴学派、コネクショニスト学派、進化学派、ベイジアン学派、およびアナロジー学派です。 1. 象徴主義は、象徴主義とも呼ばれ、論理的推論と知識の表現のためのシンボルの使用を強調します。この学派は、学習は既存の既存の要素を介した逆演繹のプロセスであると信じています。

See all articles