--- 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'
2. ### CatBoost分類 CatBoostは勾配ブースティング決定木に基づいています。トレーニング中、一連の決定木が連続的に構築されます。各後続の木は、前の木と比較して損失が削減された状態で構築されます。木の数は開始パラメータによって制御されます。 この分類は、他と比較して**予測時間がはるかに短い**という特徴があります。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
3. ### Decision-Tree分類 決定木は、木構造の形式で分類または回帰モデルを構築します。データセットをより小さなサブセットに分割していき、同時に関連する決定木が段階的に開発されます。 決定木は**カテゴリカルデータと数値データの両方**を処理できます。特徴量のセットの出力値を予測する際、その特徴量のセットが属するサブセットに基づいて出力を予測します。 #### ハイパーパラメータ
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
4. ### GB分類 勾配ブースティング分類は、現在の予測と既知の正しいターゲット値の差を計算します。この差は残差と呼ばれます。この値を見つけた後、勾配ブースティング分類器は特徴量をその残差にマッピングする弱いモデル(決定木)をトレーニングします。弱いモデルによって予測されたこの残差は既存のモデル入力に追加され、このプロセスによりモデルは正しいターゲットに向かって徐々に近づきます。このステップを複数回繰り返すことで、全体的なモデル予測が改善されます。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
5. ### KNN分類 KNNは、クエリ(データインスタンス)とデータ内のすべての例との距離を求め、クエリに最も近い指定数の例(K)を選択し、近傍で最も頻度の高いラベルに投票することで動作します。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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'
6. ### LGBM分類 LGBMは、各木の出力を使用して更新される初期推定値から始めることで動作します。学習パラメータはこの推定値の変化の大きさを制御します。任意のデータに使用でき、多くの組み込み前処理ステップを含むため高い精度を提供します。 LightGBMアルゴリズムは垂直方向に成長します。つまり、他のアルゴリズムがレベル単位で成長するのに対し、リーフ単位で成長します。LightGBMは最大の損失を持つリーフを選択して成長させます。同じリーフを成長させる場合、レベル単位のアルゴリズムよりも大きな損失の削減が可能です。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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'
7. ### ロジスティック回帰 ターゲットが**バイナリ値**の場合、ロジスティック分類を使用できます。値を0と1の間にマッピングします。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`penalty` ペナルティのノルムを指定します:
  • 'none':ペナルティなし
  • 'l2':L2ペナルティ項を追加(デフォルト)
  • 'l1':L1ペナルティ項を追加
  • 'elasticnet':L1とL2の両方のペナルティ項を追加
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
> **注意:** "solver"パラメータの値は、"penalty"パラメータの一部の値のみをサポートしています。ソルバーがサポートするペナルティは以下の通りです: * newton-cg' - ['l2', 'none'] * 'lbfgs' - ['l2', 'none'] * 'liblinear' - ['l1', 'l2'] * 'sag' - ['l2', 'none'] * 'saga' - ['elasticnet', 'l1', 'l2', 'none'] 8. ### Naive Bayes分類 Naive Bayesは**ベイズの定理**を使用する分類器です。各クラスの帰属確率(特定のレコードやデータポイントが特定のクラスに属する確率)を予測します。最も高い確率を持つクラスが最も可能性の高いクラスとして考慮されます。 9. ### Random-Forest分類 ランダムフォレストは、多数の決定木で構成される分類アルゴリズムです。個々の木を構築する際にバギングと特徴量のランダム性を使用して、個々の木よりも予測精度が高い非相関な木の森を作成しようとします。 バギングは、元のデータセットのランダムなサブセットに対してベース分類器/回帰器をフィッティングし、その後、個々の予測を集約(投票または平均化)して最終予測を形成するアンサンブルメタエスティメータです。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
10. ### SVM分類 SVM(サポートベクターマシン)は、分類および回帰問題のための線形モデルです。線形問題と非線形問題の両方を解くことができ、多くの実際的な問題に対してうまく機能します。SVMのアイデアはシンプルです:アルゴリズムはデータをクラスに分離する直線または超平面を作成します。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
11. ### XGB分類 XGBoostは、高効率で柔軟かつポータブルに設計された最適化された分散勾配ブースティングライブラリです。Gradient Boostingフレームワークの下で機械学習アルゴリズムを実装しています。多くのデータサイエンスの問題を迅速かつ正確に解決するための並列ツリーブースティングを提供します。L1およびL2正則化を使用してポイントを予測し、トレーニングが高速です。 各モデルにはFit(モデルのトレーニング)、predict(新しいデータの予測)、get metrics(モデルの精度やその他のメトリックの取得)、feature_importances(予測のための入力特徴量の重要度)があります。 Adaboost、CatBoost、Decision tree、Gradient boost(GB)、LGBM、RandomForest、SVM、XGBの基本的な動作原理は、回帰と分類の両方でほぼ同一です。 #### ハイパーパラメータ:
パラメータ 説明 データ型 設定可能な値 デフォルト値
`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
**"OBJECTIVE"パラメータの設定可能な値:** {binary:logistic, binary:logitraw, binary:hinge, multi:softmax, multi:softprob}