これまで何年も経ち、私たちは皆、ML のパフォーマンスが向上しないにしても、少なくともほぼすべての場所で ML 以前のソリューションと同等のパフォーマンスを発揮できると確信しています。たとえば、一部のルール制約については、ツリーベースの ML モデルで置き換えることができるかどうかを全員で考えます。しかし、世界は常に白か黒かが決まるわけではありません。機械学習は確かに問題解決にその役割を果たしますが、それが常に最善の解決策であるとは限りません。ルールベースのシステムは、特に説明可能性、堅牢性、透明性が重要な領域では、機械学習を上回るパフォーマンスを発揮することもあります。
この記事では、いくつかの実践的な事例と、手動ルールと ML を組み合わせてソリューションをどのように改善できるかを紹介します。
ルールベースのシステムは、事前定義されたルールを通じて意思決定をサポートし、保存されたルールに基づいてデータを評価し、マッピングに基づいて特定の操作を実行します。
ここにいくつかの例があります:
不正検出: 不正検出では、ルールベースのシステムを使用して、事前定義されたルールに基づいて疑わしい取引に迅速にフラグを立てて調査できます。
たとえば、チェス詐欺師の場合、彼らの基本的なアプローチは、コンピュータのチェス アプリケーションを別のウィンドウにインストールし、そのプログラムを使用してチェスをプレイすることです。プログラムがどれほど複雑であっても、各ステップには 4 ~ 5 秒かかります。完了。そこで、プレイヤーの各ステップのタイムを計算するために「しきい値」を設け、その変動が大きくなければ、下図のように不正行為と判定される可能性があります。
ヘルスケア業界: ルールベースのシステムを使用して、処方箋を管理し、投薬ミスを防ぐことができます。また、医師が以前の結果に基づいて追加の分析を患者に処方するのに非常に役立ちます。
サプライ チェーン管理: サプライ チェーン管理では、ルールベースのシステムを使用して、在庫不足アラートを生成したり、有効期限や新製品の発売を管理したりできます。 機械学習ベースのシステム機械学習 (ML) システムは、明示的にプログラムすることなく、アルゴリズムを使用してデータから学習し、予測を行ったり、アクションを実行したりします。機械学習システムは、大量のデータのトレーニングを通じて得られた知識を使用して、新しいデータに関する予測と決定を行います。 ML アルゴリズムは、トレーニングに使用されるデータが増えるにつれてパフォーマンスを向上させることができます。機械学習システムには、自然言語処理、画像および音声認識、予測分析などが含まれます。 不正検出: 銀行は機械学習システムを使用して、過去の不正取引から学習し、潜在的な不正行為をリアルタイムで特定する場合があります。あるいは、システムをリバース エンジニアリングして、非常に「異常」に見えるトランザクションを探す可能性があります。 ヘルスケア: 病院は ML システムを使用して患者データを分析し、特定の X 線に基づいて患者が特定の疾患を発症する可能性を予測する場合があります。比較
ルールベースのシステムと ML システムには、それぞれ長所と短所がありますルールベースこのシステムの利点は明白です:理解しやすく説明しやすい
多くの制約がある問題
##既存のルールに限定されるルールと比較して人間の介入を削減します。ベースのシステム、効率の向上
限られた認知能力
レンタル データセットを使用して実装できるハイブリッド システムを見てみましょう:
特徴エンジニアリング: フロアを次のように変換します。 3 建物の階数に応じて、高、中、低のいくつかのカテゴリのうちの 1 つ。これにより、ML モデルの効率を向上させることができます
ハードコーディングされたルールは、入力データ内の重要な特徴を識別して抽出するための特徴エンジニアリング プロセスの一部として使用できます。たとえば、問題領域が明確で明確であれば、ルールを簡単かつ正確に定義でき、ハードコーディングされたルールを使用して新しい機能を作成したり、既存の機能を変更して機械学習モデルのパフォーマンスを向上させることができます。ハードコーディング ルールと特徴量エンジニアリングは 2 つの異なる技術ですが、これらを一緒に使用して機械学習モデルのパフォーマンスを向上させることができます。ハードコードされたルールを使用して、新しい機能を作成したり、既存の機能を変更したりできますが、機能エンジニアリングを使用して、ハードコードされたルールでは簡単に捕捉できない機能を抽出できます。
後処理: 最終結果を丸めるか正規化します。
ハードコードされたルールは、機械学習モデルの出力を変更するための後処理段階の一部として使用できます。たとえば、機械学習モデルが既知のルールや制約と矛盾する一連の予測を出力する場合、ハードコーディングされたルールを使用して予測を変更し、ルールや制約に準拠することができます。フィルタリングやスムージングなどの後処理手法を使用すると、ノイズやエラーを除去したり、予測の全体的な精度を向上させたりすることで、機械学習モデルの出力を改善できます。これらの手法は、機械学習モデルの出力確率予測または入力データに不確実性がある場合に特に効果的です。場合によっては、後処理技術を使用して、追加情報で入力データを強化することもできます。たとえば、機械学習モデルが限られたデータセットでトレーニングされている場合、後処理技術を使用して外部ソース (ソーシャル メディアやニュース フィードなど) から追加の特徴を抽出し、予測の精度を向上させることができます。
心臓病に関するデータを見てみましょう:
ランダム フォレストを使用してターゲット クラスを予測する場合:
clf = RandomForestClassifier(n_estimators=100, random_state=random_seed X_train, X_test, y_train, y_test = train_test_split( df.iloc[:, :-1], df.iloc[:, -1], test_size=0.30, random_state=random_seed ) clf.fit(X_train, y_train))
ここでランダム フォレストを選択する理由の 1 つは、特徴の重要性を構築できることです。以下では、トレーニングに使用される機能の重要性を確認できます:
結果を見てください:
y_pred = pd.Series(clf.predict(X_test), index=y_test.index cm = confusion_matrix(y_test, y_pred, labels=clf.classes_) conf_matrix = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=clf.classes_) conf_matrix.plot())
f1_score(y_test, y_pred): 0.74 recall_score(y_test, y_pred): 0.747
そのとき、心臓専門医があなたのモデルを診察します。彼の経験と専門分野の知識に基づいて、彼はサラセミア特性 (thal) が上記よりもはるかに重要であると信じています。そこで、ヒストグラムを作成して結果を確認することにしました。
#次に、必須ルールを指定しますy_pred[X_test[X_test["thal"] == 2].index] = 1
#
f1_score(y_test, y_pred): 0.818 recall_score(y_test, y_pred): 0.9
不正取引
df["Class"].value_counts() 0 28431 1 4925
ルールを作成するには、分布の箱ひげ図を調べます。機能:
手動ルールの推定器として機能する独自の HybridEstimator クラスを作成します:from hulearn.classification import FunctionClassifier rules = { "V3": ("<=", -2), "V12": ("<=", -3), "V17": ("<=", -2), } def create_rules(data: pd.DataFrame, rules): filtered_data = data.copy() for col in rules: filtered_data[col] = eval(f"filtered_data[col] {rules[col][0]} {rules[col][1]}") result = np.array(filtered_data[list(rules.keys())].min(axis=1)).astype(int) return result hybrid_classifier = FunctionClassifier(create_rules, rules=rules)
ルールベースのシステムと kNN メソッドの純粋な結果を比較できます。ここで kNN が使用される理由は、不均衡なデータを処理できるためです:
ご覧のとおり、たった 3 つのルールを記述しただけで、KNN モデルよりも優れたパフォーマンスを示します。概要
ハイブリッド モデルは、ドメイン知識と機械学習モデルを組み合わせるのに役立ちます。ハイブリッド モデルは通常、複数のサブモデルで構成され、それぞれが特定のドメインの知識に合わせて最適化されています。これらのサブモデルは、ハードコーディングされたルールに基づいたモデル、統計的手法に基づいたモデル、さらには深層学習に基づいたモデルにすることができます。
ハイブリッド モデルは、ドメイン知識を使用して機械学習モデルの学習プロセスをガイドできるため、モデルの精度と信頼性が向上します。たとえば、医療分野では、ハイブリッド モデルを使用して医師の専門知識と機械学習モデルの能力を組み合わせて、患者の病気を診断できます。自然言語処理の分野では、ハイブリッド モデルは言語知識と機械学習モデルの機能を組み合わせて、自然言語をよりよく理解して生成できます。
つまり、ハイブリッド モデルは、ドメイン知識と機械学習モデルを組み合わせるのに役立ち、それによってモデルの精度と信頼性が向上し、さまざまなタスクに広範囲に応用できます。
以上がルールベースのアプローチと機械学習のアプローチを組み合わせて、強力なハイブリッド システムを構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。