--- title: "分類アルゴリズム" url: https://docs.catalyst.zoho.com/ja/quickml/help/ml-algorithms/classification-algorithms/ description: "QuickMLは、Catalyst開発プラットフォームにおける完全ノーコードの機械学習パイプラインビルダーサービスで、エンドツーエンドのソリューションを備えた機械学習パイプラインを作成できます。" last_updated: 2026-03-05T06:13:24Z service: QuickML type: general --- # QuickMLのMLアルゴリズム QuickMLは主に、スムーズなパイプライン実行環境を提供するために、機械学習パイプラインに機械学習操作を簡単に組み込むことに重点を置いています。そのため、データから最良の分析結果を得るために、幅広いMLアルゴリズムと機能が統合されています。 MLアルゴリズムは、外部からの介入なしにデータから学習し、経験から改善できるプログラムです。以下のアルゴリズムと操作はすべて、1つ以上のパイプライン実行で設定できる**QuickMLのステージ**として利用可能です。 データサイエンス分野で最も広く使用されているアルゴリズムは以下の通りです。 1. **分類アルゴリズム** 2. **回帰アルゴリズム** # 分類アルゴリズム 分類は、離散的なクラスラベルを予測するタスクです。QuickMLは以下の分類アルゴリズムを備えています。 1. ### AdaBoost分類 AdaBoostは、一連の小さな1ステップ(1レベル)の決定木を構築し、前の木で見逃された予測困難なケースに各木を適応させ、すべての木を単一のモデルに統合する機械学習アルゴリズムです。 この分類は、最初に元のデータセットで分類器をフィッティングし、その後、同じデータセットで分類器の追加コピーをフィッティングすることから始まります。これらのインスタンスの重みは、現在の予測の誤差に応じて調整されます。これにより、後続の分類器はより困難なケースに集中します。 #### ハイパーパラメータ:
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `base_estimator` | ブーストされたアンサンブルが構築される元のベースエスティメータ。noneの場合、ベースエスティメータは**max_depth=1**で初期化された`DecisionTreeClassifier`です。 | object | KNN分類モデルを除く任意の分類モデル | None |
| `n_estimators` (エスティメータの数) | ブースティングが終了するエスティメータの最大数。完全なフィットの場合、学習手順は早期に停止されます。 | int | [1, 500] | 50 |
| `learning_rate` | 各ブースティングイテレーションで各分類器に適用される重み。学習率が高いほど、各分類器の貢献が大きくなります。 | float | (0.0, +Inf) | 1.0 |
| `algorithm` | 'SAMME.R'の場合、SAMME.Rリアルブースティングアルゴリズムを使用します。base_estimatorはクラス確率の計算をサポートしている必要があります。'SAMME'の場合、SAMME離散ブースティングアルゴリズムを使用します。SAMME.Rアルゴリズムは通常、SAMMEよりも速く収束し、より少ないブースティングイテレーションで低いテストエラーを達成します。 | string | {'SAMME', 'SAMME.R'} | 'SAMME.R' |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `learning_rate` | 勾配ステップの縮小に使用されます。 | float | (0,1] | 0.03 |
| `l2_leaf_reg` (l2_leaf_regularization) | コスト関数のL2正則化項の係数。 | float | [0,+inf) | 3.0 |
| `rsm` (random subspace method) | 各分割選択時に使用する特徴量の割合。特徴量はランダムに再選択されます。 | float | (0,1] | None |
| `loss_function` | トレーニングで使用するメトリック。指定された値は解くべき機械学習問題も決定します。一部のメトリックはオプションパラメータをサポートしています。 | string | {'Logloss', 'CrossEntropy', 'MultiClass', 'MultiClassOneVsAll'} | 'MultiClass' |
| `nan_mode` | 入力データセット内の欠損値を処理する方法。 | string | {'Forbidden', 'Min', 'Max'} | Min |
| `leaf_estimation_method` | リーフ内の値を計算するために使用される方法。 | string | {"Newton", "Gradient"} | None |
| `score_function` | 木の構築中に次の分割を選択するために使用されるスコアタイプ。 | string | {L2, Cosine} | Cosine |
| `max_depth` | 木の最大深度。 | int | [1,+Inf) | None |
| `n_estimators` (エスティメータの数) | 機械学習問題を解く際に構築できる木の最大数。イテレーション数を制限する他のパラメータを使用する場合、最終的な木の数はこのパラメータで指定された数より少なくなることがあります。 | int | [1, 500] | None |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `criterion` | 分割の品質を測定する関数。 | string | {"gini", "entropy"} | "gini" |
| `splitter` | 各ノードで分割を選択するために使用される戦略。 | string | {"best", "random"} | "best" |
| `max_depth` | 木の最大深度。Noneの場合、すべてのリーフが純粋になるか、すべてのリーフがmin_samples_splitサンプル未満になるまでノードが展開されます。 | int | (0, +Inf) | None |
| `min_samples_split` | 内部ノードを分割するために必要なサンプルの最小数。 | int or float | [2, +Inf) or (0, 1.0] | 2 |
| `min_samples_leaf` | リーフノードに必要なサンプルの最小数。任意の深さの分割ポイントは、左右の各ブランチに少なくともmin_samples_leafのトレーニングサンプルが残る場合にのみ考慮されます。 | int or float | [1, +Inf) or (0, 0.5] | 1 |
| `min_weight_fraction_leaf` | リーフノードに存在するために必要な、(すべての入力サンプルの)重みの合計の最小加重分数。 | float | [0, 0.5] | 0 |
| `max_features` | 最適な分割を探す際に考慮する特徴量の数。 | int, float or string | (0, n_features] or { "sqrt", "log2"} | None |
| `max_leaf_nodes` | ベストファースト方式でmax_leaf_nodesの木を成長させます。ベストノードは不純度の相対的な減少として定義されます。Noneの場合、リーフノードの数は無制限です。 | int | (1, +Inf) | None |
| `min_impurity_decrease` | この分割がこの値以上の不純度の減少をもたらす場合にノードが分割されます。 | float | [0, +Inf) | 0.0 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `loss` | 最適化される損失関数。'deviance'は確率的出力を持つ分類のためのdeviance(= ロジスティック回帰)を指します。 | string | {'deviance', 'exponential'} | 'deviance' |
| `learning_rate` | 学習率は各木の貢献をlearning_rateで縮小します。learning_rateとn_estimatorsの間にはトレードオフがあります。 | float | (0.0, +Inf) | 0.1 |
| `n_estimators` (エスティメータの数) | 実行するブースティングステージの数。 | int | [1, 500] | 100 |
| `criterion` | 分割の品質を測定する関数。 | string | {'friedman_mse', 'mse', 'mae'} | 'friedman_mse' |
| `subsample` | 個々のベースラーナーのフィッティングに使用されるサンプルの割合。 | float | (0.0, 1.0] | 1.0 |
| `max_depth` | 個々の回帰エスティメータの最大深度。 | int | (0, +Inf) | None |
| `min_samples_split` | 内部ノードを分割するために必要なサンプルの最小数。 | int or float | [2, +Inf) or (0, 1.0] | 2 |
| `min_samples_leaf` | リーフノードに必要なサンプルの最小数。 | int or float | [1, +Inf) or (0, 0.5] | 1 |
| `min_weight_fraction_leaf` | リーフノードに存在するために必要な、(すべての入力サンプルの)重みの合計の最小加重分数。 | float | [0, 0.5] | 0 |
| `max_features` | 最適な分割を探す際に考慮する特徴量の数。 | int, float or string | (0, n_features] or { "sqrt", "log2"} | None |
| `max_leaf_nodes` | ベストファースト方式でmax_leaf_nodesの木を成長させます。ベストノードは不純度の相対的な減少として定義されます。 | int | (1, +Inf) | None |
| `min_impurity_decrease` | この分割がこの値以上の不純度の減少をもたらす場合にノードが分割されます。 | float | [0, +Inf) | 0.0 |
| `init` | 初期予測の計算に使用されるエスティメータオブジェクト。 | object or string | エスティメータ(SVM分類とcatboostを除く任意の分類モデル)または'zero' | None |
| `warm_start` | Trueに設定すると、前回のfitの呼び出しの解を再利用し、アンサンブルにエスティメータを追加します。Falseの場合は、前回の解を消去します。 | bool | True or False | False |
| `tol` (tolerance) | 早期停止の許容値。損失がn_iter_no_changeイテレーション(数値に設定されている場合)で少なくともtol分改善しない場合、トレーニングが停止します。 | float | [0.0, +Inf) | 1e-4 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `n_neighbors` (近傍の数) | kneighborsクエリにデフォルトで使用する近傍の数。 | int | [1, n] n = データセット内の総レコード数 | 5 |
| `weights` | 予測に使用される重み関数。 | string | {'uniform', 'distance'} | 'uniform' |
| `algorithm` | 最近傍の計算に使用されるアルゴリズム。 | string | {'auto', 'ball_tree', 'kd_tree', 'brute'} | 'auto' |
| `leaf_size` | BallTreeまたはKDTreeに渡されるリーフサイズ。構築とクエリの速度、およびツリーの格納に必要なメモリに影響を与えることがあります。 | int | (1, +Inf) | 30 |
| `p` | Minkowskiメトリックのパワーパラメータ。 | int | [1,3] | 2 |
| `metric` | 距離計算に使用するメトリック。デフォルトは"minkowski"で、p = 2の場合は標準ユークリッド距離になります。 | string | {'cityblock', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan', 'nan_euclidean', 'minkowski'} | 'minkowski' |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `boosting_type` | ブースティングの方法。 | string | {'gbdt', 'dart', 'goss' } | 'gbdt' |
| `num_leaves` | ベースラーナーの最大リーフ数。 | int | (1, +Inf) | 31 |
| `max_depth` | ベースラーナーの最大木深度。<= 0は制限なしを意味します。 | int | (-Inf, +Inf) | -1 |
| `learning_rate` | ブースティング学習率。fitメソッドのcallbacksパラメータを使用して、reset_parameterコールバックでトレーニング中の学習率を縮小/適応させることができます。 | float | (0.0, +Inf) | 0.1 |
| `n_estimators` (エスティメータの数) | フィッティングするブーストされた木の数。 | int | [1, 500] | 100 |
| `subsample_for_bin` | ビンを構築するためのサンプル数。 | int | (0, +Inf) | 200000 |
| `min_split_gain` | 木のリーフノードでさらなるパーティションを行うために必要な最小損失削減。 | float | [0.0, +Inf) | 0.0 |
| `min_child_weight` | 子ノード(リーフ)に必要なインスタンス重み(ヘシアン)の最小合計。 | float | [0.0, +Inf) | 1e-3 |
| `min_child_samples` | 子ノード(リーフ)に必要なデータの最小数。 | int | [0, +Inf) | 20 |
| `subsample` | トレーニングインスタンスのサブサンプル比率。 | float | (0.0, 1.0] | 1.0 |
| `subsample_freq` (subsample_frequency) | サブサンプルの頻度。<= 0は無効を意味します。 | int | (-Inf, +Inf) | 0 |
| `colsample_bytree` (column sample by tree) | 各木を構築する際のカラムのサブサンプル比率。 | float | (0.0, 1.0] | 1.0 |
| `reg_alpha` (alpha) | 重みに対するL1正則化項。 | float | (0.0, +Inf) | 0.0 |
| `reg_lambda` (lambda) | 重みに対するL2正則化項。 | float | (0.0, +Inf) | 0.0 |
| `importance_type` | featureimportancesに入力される特徴量の重要度のタイプ。'split'の場合、結果にはモデルで特徴量が使用された回数が含まれます。'gain'の場合、結果にはその特徴量を使用した分割の合計ゲインが含まれます。 | string | { 'gain', 'split'} | 'split' |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `penalty` | ペナルティのノルムを指定します:
|
string | { 'l1', 'l2', 'elasticnet', 'none'} | 'l2' |
| `dual` | 双対または主問題の定式化。双対定式化はliblinearソルバーを使用するl2ペナルティに対してのみ実装されています。 | bool | True or False | False |
| `tol` (tolerance) | 停止基準の許容値。 | float | [0.0, +Inf) | 1e-4 |
| `C` | 正則化の強さの逆数。正のfloatである必要があります。 | float | [0.0, +Inf) | 1.0 |
| `solver` | 最適化問題に使用するアルゴリズム。 | string | { 'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga' } | 'lbfgs' |
| `fit_intercept` | 定数(バイアスまたは切片)を決定関数に追加するかどうかを指定します。 | bool | True or False | True |
| `l1_ratio` | Elastic-Netの混合パラメータ。 0 <= l1_ratio <= 1。penalty='elasticnet'の場合のみ使用されます。 | float | [0, 1] | None |
| `multi_class` | 'ovr'オプションが選択された場合、各ラベルに対してバイナリ問題がフィッティングされます。'multinomial'の場合、データがバイナリであっても、確率分布全体にわたって多項損失が最小化されます。 | string | {'auto', 'ovr', 'multinomial'} | 'auto' |
| `intercept_scaling` | ソルバー'liblinear'が使用され、self.fit_interceptがTrueに設定されている場合にのみ有用です。切片はintercept_scaling * synthetic_feature_weightとなります。 | float | (0, +Inf) | 1.0 |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `n_estimators` (エスティメータの数) | フォレスト内の木の数。 | int | [1, 500] | 100 |
| `criterion` | 分割の品質を測定する関数。 | string | {"gini", "entropy"} | "gini" |
| `max_depth` | 木の最大深度。Noneの場合、すべてのリーフが純粋になるか、すべてのリーフがmin_samples_splitサンプル未満になるまでノードが展開されます。 | int | (0, +Inf) | None |
| `min_samples_split` | 内部ノードを分割するために必要なサンプルの最小数。 | int or float | [2, +Inf) or (0, 1.0] | 2 |
| `min_samples_leaf` | リーフノードに必要なサンプルの最小数。任意の深さの分割ポイントは、左右の各ブランチに少なくともmin_samples_leafのトレーニングサンプルが残る場合にのみ考慮されます。 | int or float | [1, +Inf) or (0, 0.5] | 1 |
| `min_weight_fraction_leaf` | リーフノードに存在するために必要な、(すべての入力サンプルの)重みの合計の最小加重分数。 | float | [0, 0.5] | 0.0 |
| `max_features` | 最適な分割を探す際に考慮する特徴量の数。 | int, float or string | (0, n_features] or { "sqrt"} | None |
| `max_leaf_nodes` | ベストファースト方式でmax_leaf_nodesの木を成長させます。ベストノードは不純度の相対的な減少として定義されます。 | int | (1, +Inf) | None |
| `min_impurity_decrease` | この分割がこの値以上の不純度の減少をもたらす場合にノードが分割されます。 | float | [0, +Inf) | 0.0 |
| `bootstrap` | 木を構築する際にブートストラップサンプルを使用するかどうか。Falseの場合、各木の構築にデータセット全体が使用されます。 | bool | True or False | True |
| `oob_score`(out of bag score) | 汎化スコアの推定にout-of-bagサンプルを使用するかどうか。bootstrap=Trueの場合のみ利用可能です。 | bool | True or False | False |
| `warm_start` | Trueに設定すると、前回のfitの呼び出しの解を再利用し、アンサンブルにエスティメータを追加します。Falseの場合は、完全に新しいフォレストをフィッティングします。 | bool | True or False | False |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `C` | 正則化パラメータ。正則化の強さはCに反比例します。 | float | [0.0, +Inf) | 1.0 |
| `kernel` | アルゴリズムで使用するカーネルタイプを指定します。指定しない場合、'rbf'が使用されます。 | string | {'linear', 'poly', 'rbf', 'sigmoid'} | 'rbf' |
| `degree` | 多項式カーネル関数('poly')の次数。他のすべてのカーネルでは無視されます。 | int | [0, +Inf) | 3 |
| `gamma` | 'rbf'、'poly'、'sigmoid'のカーネル係数。 | string or float | {'scale', 'auto'} or (0.0, +Inf) | 'scale' |
| `coef0` | カーネル関数の独立項。'poly'と'sigmoid'でのみ重要です。 | float | (-Inf, +Inf) | 0.0 |
| `shrinking` | 縮小ヒューリスティックを使用するかどうか。 | bool | True or False | True |
| `probability` | 確率推定を有効にするかどうか。 | bool | True or False | False |
| `tol` (tolerance) | 停止基準の許容値。 | float | [0.0, +Inf) | 1e-3 |
| `decision_function_shape` | 他のすべての分類器と同様に(n_samples, n_classes)の形状を持つone-vs-rest('ovr')決定関数を返すか、(n_samples, n_classes * (n_classes - 1) / 2)の形状を持つlibsvmの元のone-vs-one('ovo')決定関数を返すか。 | string | {'ovo', 'ovr'} | 'ovr' |
| `break_ties` | trueの場合、decision_function_shape='ovr'かつクラス数が2より大きい場合、predictはdecision_functionの信頼値に従ってタイを解消します。それ以外の場合は、タイのクラスの中で最初のクラスが返されます。 | bool | True or False | False |
| パラメータ | 説明 | データ型 | 設定可能な値 | デフォルト値 |
|---|---|---|---|---|
| `booster` | 使用するブースターを決定します。 | string | {'gbtree', 'gblinear', 'dart' } | 'gbtree' |
| `learning_rate` | 過学習を防ぐために更新に使用されるステップサイズの縮小。各ブースティングステップの後、新しい特徴量の重みを直接取得でき、etaは特徴量の重みを縮小してブースティングプロセスをより保守的にします。 | float | [0,1] | 0.1 |
| `n_estimators` (エスティメータの数) | フィッティングする木の数。 | int | [1, 500] | 100 |
| `objective` | バイナリ分類のためのロジスティック回帰。 | string | 以下の表に記載。 | "binary:logistic" |
| `subsample` | サンプルの割合を制御します。 | int | (0,1] | 1 |
| `max_depth` | 木の最大深度。 | int | (0, +Inf) | 3 |
| `max_delta_step` | 値が0に設定されている場合、制約はありません。正の値に設定すると、更新ステップをより保守的にするのに役立ちます。通常このパラメータは必要ありませんが、クラスが極端に不均衡な場合のロジスティック回帰に役立つことがあります。 | int or float | [0, +Inf) | 0 |
| `colsample_bytree` (column sample by tree) | カラムのランダムサンプルの割合。 | float | (0.0, 1.0] | 1.0 |
| `colsample_bylevel` (column sample by level) | 各レベルのカラムのサブサンプル比率。サブサンプリングは木の新しい深度レベルに到達するたびに行われます。カラムは現在の木に対して選択されたカラムのセットからサブサンプリングされます。 | float | (0.0, 1.0] | 1.0 |
| `min_child_weight` | 重みの最小合計。 | int | [0, +Inf) | 1 |
| `reg_alpha` (alpha) | 重みに対するL1正則化項。 | float | [0.0, +Inf) | 0.0 |
| `reg_lambda` (lambda) | 重みに対するL2正則化項。 | float | [0.0, +Inf) | 0.0 |
| `scale_pos_weight` (scale positive weight) | 正と負の重みのバランスを制御します。不均衡なクラスに有用です。 | int | [0, +Inf) | 1 |