3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

scikitlearnでよく使うモデルとパラメーター(教師ありモデル)

Last updated at Posted at 2022-04-07

Qiita初投稿。
機械学習の学習の過程で、よく使うモデルとパラメーターの設定を毎回忘れてしまうので
(たいしてモデルを網羅できていませんが。。。)ここで備忘録として残しておくことにします。
内容に誤りがある場合はご指摘いただけると助かります。

1.線形回帰

モデル名 線形回帰
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター なし
データ標準化が必要か? スケールが異なる入力の場合は必要
ハズレ値に対しては 弱い
コマンド sklearn.linear_model.LinearRegression
特徴(損失関数など) 予測する誤差を最小化する係数を
見つける。過学習しやすい。
利点 ・高次元データにも適用可能
・パラメータ調整不要
欠点 ・過学習しやすい
・リアルなデータでは正直あまり使う機会はない
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html
その他 -

2.リッジ回帰

  線形回帰属
モデル名 リッジ回帰
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター <alpha>
0なら正則化なし=線形回帰
値が小さいほど正則化が弱く(0なら線形回帰と同じ)、過学習しやすい。
大きいほど強く正則化を行う(係数の値を小さくする)ので、モデルの複雑さを制限する
※default=1.0
データ標準化が必要か? はい
ハズレ値に対しては 弱い
コマンド sklearn.linear_model.Ridge
特徴(損失関数など) OverFitを防ぐための回帰モデル。誤差の最小化に加え、係数のl2ノルムも合わせて最小化する。重要でない特徴量の係数は0に近づき、汎化性能が高い滑らかなFitが可能になる。
(完全に0にはならない)。
Overfitが疑われるときにはまずこちらを試す
利点 ・高次元データにも適用可能
・線形回帰では過学習となるような
 ケースで汎化性能を確保できる
欠点 ・最適なalphaを見つける必要あり
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html
その他 -

3.ラッソ回帰

  線形回帰属
モデル名 ラッソ回帰
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター <alpha>
0なら正則化なし=線形回帰
値が小さいほど正則化が弱く(0なら線形回帰と同じ)、過学習しやすい。
大きいほど強く正則化を行う(係数の値を小さくする)ので、モデルの複雑さを制限する
※default=1.0
データ標準化が必要か? はい
ハズレ値に対しては 弱い
コマンド sklearn.linear_model.Lasso
特徴(損失関数など) OverFitを防ぐための
回帰モデル。誤差の最小化に加え、係数のl1ノルムも合わせて最小化する。重要でない特徴量の係数は0になるため、モデルから取り除かれるため、特徴量選択を行う事が可能。
重要でない特徴量があることがわかっている場合はこちらを試す。
利点 ・モデル構築に不要な特徴量を除去できて
 モデルがスッキリする
欠点 ・最適なalphaを見つける必要あり
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html
その他 -

4.ロジスティック回帰

  線形回帰属
モデル名 ロジスティック回帰
目的 分類
.predictが出力する値 yが特定のラベルに分類される確率
調整すべき主なパラメーター <penalty>
penalty{‘l1’, ‘l2’, ‘elasticnet’, ‘none’}
※default=’l2’
<C>
1/λ、つまりλの逆数を表すのがC。
値が小さいほど正則化が弱く(0なら線形回帰と同じ)、過学習しやすい。
大きいほど強く正則化を行う(係数の値を小さくする)ので、モデルの複雑さを制限する
※default=1.0
データ標準化が必要か? はい(sklearnではデフォルトでl2正則化がされるので)
ハズレ値に対しては 弱い
コマンド sklearn.linear_model.LogisticRegression
特徴(損失関数など) yのクラス分類を行うモデル。
係数wと、特徴量Xの線形重み和をシグモイド関数に入れることで、0-1の範囲でyの予測値(yがあるラベルに属する確率)を
出力する。
2値分類だけでなく、3値以上の分類も可能。
デフォルトではL2で正則化がされている。
利点 ・高次元データにも適用可能
欠点 ・線形回帰なので、特徴量が線形分離不可能の場合は精度が劣る
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
その他 model.predict_probaで、各ラベルに分類される確率を予測できる

5.SVC

  サポートベクター属
モデル名 SVC
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター <kernel>
カーネル関数
 linear:線形
 poly:多項式
 rbf:Radial basis function(放射基底関数)※デフォルト
 sigmoid:シグモイドカーネル
<gamma>
訓練データの位置を中心とした、同じクラスタの領域の
凝集度を決める。小さいほど単純な分類境界となり、大きいほど複雑な決定境界になる
<C>
コストパラメータ。値が小さいほど誤りを許容し、大きくなるほど誤りの際のペナルティが大きくなる(すなわち誤りに厳しくなる)ので、過学習をおこしやすくなる
C→∞とすると,誤分類を許容しないハードマージンになる
データ標準化が必要か? はい
ハズレ値に対しては クラスの分離境界に最も近い点だけが分離境界を決定するので、一般に強い
コマンド sklearn.svm.SVC
特徴(損失関数など) yのクラス分類を行うモデル。
利用にあたっては、データの標準化が必須。
n次元空間上の特徴量の点をマージン(決定境界との距離)が最大化されるように、
超平面で特徴量を分離する。
2値分類だけでなく、3値以上の分類も可能。密なデータにも疎なデータにも使える。
カーネルトリックを用いることで、線形ではないデータの分布に対しても、
非線形(曲線)の決定境界も引くことができる。
利点 ・分類モデルとしては精度が高い
・非線形(曲線)の決定境界も引くことができる。
欠点 ・数万データ数以上になると、計算コストが大きすぎて実用的でない。
・パラメーターの調整にとても敏感
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html?highlight=svc#sklearn.svm.SVC
その他 model.predict_probaで、各ラベルに分類される確率を予測できる

6.LinearSVC

  サポートベクター属
モデル名 LinearSVC
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター <penalty>
penalty{‘l1’, ‘l2’, ‘elasticnet’, ‘none’}
※default=’l2’
<C>
コストパラメータ。値が小さいほど誤りを許容し、大きくなるほど誤りの際のペナルティが大きくなる(すなわち誤りに厳しくなる)ので、過学習をおこしやすくなる
データ標準化が必要か? はい
ハズレ値に対しては クラスの分離境界に最も近い点だけが分離境界を決定するので、一般に強い
コマンド sklearn.svm.LinearSVC
特徴(損失関数など) カーネル関数を使用しないSVMに基づくクラス分類手法。
カーネルトリックを用いないので、分離境界は直線になる。
ほかは大体SVCと同じ。
利点 ・分類モデルとしては精度が高い
欠点 ・数万データ数以上になると、計算コストが大きすぎて
実用的でない。
・パラメーターの調整にとても敏感
・非線形な分離境界は引くことができない
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html?highlight=linearsvc#sklearn.svm.LinearSVC
その他 model.predict_probaで、各ラベルに分類される確率を予測できる

7.SVR

  サポートベクター属
モデル名 SVR
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター <kernel>
カーネル関数
 linear:線形
 poly:多項式
 rbf:Radial basis function(放射基底関数)※デフォルト
 sigmoid:シグモイドカーネル
<C>
コストパラメータ。値が小さいほど誤りを許容し、大きくなるほど誤りの際のペナルティが大きくなる(すなわち誤りに厳しくなる)ので、過学習をおこしやすくなる。
<epsilon> 決定境界と、データポイント間の誤差の不感帯。誤差がある一定値εを超えるまでは0と扱うので、
−ε<誤差<εの範囲のデータ点は誤差評価の対象となる。小さければ小さいほど、ハードマージンに近づくので、誤差を厳しく評価するが、小さすぎると過学習の可能性あり。※default=0.1
データ標準化が必要か? はい
ハズレ値に対しては 線形回帰よりは外れ値に強い
コマンド sklearn.svm.SVR
特徴(損失関数など) SVMのアイデアを回帰に適用したもの。
ただしSVMとことなるのが、SVMは「分離超平面に最も近い点の、分離平面との距離」を最小化する命題だったのに対し、SVR では
「すべて(※外れ値については別)のデータポイントの分布領域と、決定境界との距離」を マージンとして定義する。
決定境界と、各データポイントの±ε以下の誤差は0として扱うことで、ハズレ値の影響を受けにくい(つまり外れ値に強くなる)
そして、そのマージンの中で、SVMのコンセプトに基づいて分離境界を引くことができれば、その超平面は、「いい感じに点の真ん中を通る直線」となり、つまり線形回帰と同じく、回帰式を求めることができる、というわけ。
利点 ・高次元の特徴回帰問題を解くことができる
・特徴量がサンプルの数より多い場合に有効
・ハズレ値に強い
欠点 ・数万データ数以上になると、計算コストが大きすぎて実用的でない。
・パラメーターの調整にとても敏感
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html
その他 coef_ で、係数を取り出せる(kernel='linear'のときのみ)
理論的な解説はここが詳しい
https://yuyumoyuyu.com/2021/01/10/supportvectorregression/

8.DecisionTreeClassifier

  決定木属
モデル名 DecisionTreeClassifier
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター <random_state>
アルゴリズムは各分割時に max_features をランダムに選択し、
それらの中から最適な分割を見つけるが、最適な分割は実行ごとに異なる。
つまり実行ごとに、分割に利用される特徴量が異なってしまうため、乱数を固定して
再現性を担保しておく必要がある

学習時にモデルが学習する木の深さの最大値を表すパラメーター。
max_depthの値が設定されていない時、木は訓練データの分類がほぼ終了するまで際限なくデータを分割し、過学習となるため、max_depthを指定して木が深くなりすぎないようにする必要がある。
< min_samples_split>
Node分割時の最小サンプルサイズ。小さいほど分割しやすいので,Overfitしやすい
< max_features>
Node分割時に用いて良い変数の数 。各Node分割時にランダムに変数を選び, その中で分割対象
を決定。大きいほどより制限がないのでOverfitしやすい
< min_samples_leaf>
葉の最小サンプルサイズ。小さいほど細かくノードを分割するのでOverfitしやすい
データ標準化が必要か? いいえ
ハズレ値に対しては 強い
コマンド sklearn.tree.DecisionTreeClassifier
特徴(損失関数など) ある特徴量Xに着目し、その特徴量Xが~以上か?未満か?みたいな
質問(ノード)を、繰り返し条件分岐させることで、特定の特徴量Xをもつ
データサンプルをクラスタリングさせる。
なぜそのクラスタリング結果になったか?が
ツリー構造となっており、わかりやすい。
各ノードで、異なる特徴量Xを判別に用いる。また、クラスタリング結果を可視化したときに、分離境界は、特徴量の軸に平行な境界線となる。
利点 ・高速に処理できる
・可視化も容易
・データのスケーリングは不要
・非線形のデータや説明変数の多い(次元の高い)データ、様々な尺度(質 的変数か量的変数かなど)が混在しているデータでも扱える
欠点 ・単体だと精度が低い
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
その他 from sklearn.tree import plot_tree
plot_tree(model,feature_names=X.columns)で
決定木自体を可視化できる

9.RandomForestClassifier

  決定木属
モデル名 RandomForestClassifier
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター <random_state>
各分類木を作成する時、各分類木でランダムなデータポイントと特徴量を選択するので、再現性担保のために乱数を固定する必要がある

学習時にモデルが学習する木の深さの最大値を表すパラメーター。
max_depthの値が設定されていない時、木は訓練データの分類がほぼ終了するまで際限なくデータを分割し、
過学習となるため、max_depthを指定して木が深くなりすぎないようにする必要がある。
<n_estimators> default:100
決定木を何個用いるか。基本的に(計算コストは掛かるが)大きければ大きいほど汎化性能を確保できる。
< min_samples_split>
Node分割時の最小サンプルサイズ。小さいほど分割しやすいので,Overfitしやすい
< max_features>
Node分割時に用いて良い変数の数 。各Node分割時にランダムに変数を選び, その中で分割対象を決定。大きいほどより制限がないのでOverfitしやすい
< min_samples_leaf>
葉の最小サンプルサイズ。小さいほど細かくノードを分割するのでOverfitしやすい
データ標準化が必要か? いいえ
ハズレ値に対しては 強い
コマンド sklearn.ensemble.RandomForestClassifier
特徴(損失関数など) 決定木(分類木)を複数組み合わせ、
それぞれの決定木に、ランダムに分割したデータ
と、ランダムに選択した特徴量のセットを与える。
最後に各決定木の出力結果を多数決をとることで、
単体の決定木よりも優れた精度を出す。
広く使われる優秀な分類アルゴリズム。
利点 ・決定木よりも頑健で、精度も高い。
・データのスケーリングは不要
・非線形のデータや説明変数の多い(次元の高い)データ、
 様々な尺度(質的変数か量的変数かなど)が混在している
 データでも扱える
欠点 訓練セットのレンジ外にテストデータがある場合、予測精度が低い
(外挿ができない)
パラメーターの設定に敏感で、複雑にすると容易に過学習に陥ることがある
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html
その他 plot_feature_importances_(model)で、特徴量ごとの重要度を可視化できる

10.RandomForestRegressor

  決定木属
モデル名 RandomForestRegressor
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター RandomForestClassifierと同じ
データ標準化が必要か? いいえ
ハズレ値に対しては 強い
コマンド sklearn.ensemble.RandomForestRegressor
特徴(損失関数など) RandomForestClassifierの回帰木バージョン。
利点 RandomForestClassifierと同じ
欠点 訓練セットのレンジ外にテストデータがある場合、予測精度が低い(外挿ができない)
パラメーターの設定に敏感で、複雑にすると容易に過学習に陥ることがある
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestRegressor.html
その他 plot_feature_importances_(model)で、
特徴量ごとの重要度を可視化できる

11.GradientBoostingClassifier

  勾配Boosting属
モデル名 GradientBoostingClassifier
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター <random_state>
再現性担保のためには、ブースティングの各反復において,各ツリーに与える
乱数シードを制御する必要がある。
<learning_rate>float, default=0.1
個々の決定木が予測した分類結果に対して、その結果の誤りをどれくらい強く
補正するかの割合。(学習率)
n_estimatorsとはトレードオフの関係性(学習率を大きくすればlearning_rateは小さく、小さくすればlearning_rateは大きく)がある。大きくしすぎると、誤りを強く補正しすぎるため、OverFitになる。
<n_estimators>
決定木を何個用いるか。RandomForestでは大きければ大きいほど良かったが、n_estimatorsを大きくしすぎると、誤りを強く補正しすぎるため、OverFitになる。n_estimatorsを先に決めておき、最適なlearning_rateを探索する方法がよく使われる。
<max_depth>
学習時にモデルが学習する木の深さの最大値を表すパラメーター。
max_depthを指定して木が深くなりすぎないようにする必要がある。
基本的に個々の木の深さは小さく設定され、最大でも5程度が適している(ような気がする)。
データ標準化が必要か? いいえ
ハズレ値に対しては 弱い
コマンド sklearn.ensemble.GradientBoostingClassifier
特徴(損失関数など) 勾配Boosting分類木モデル。教師あり学習の中でもとても強力で、
広く使われている。
決定木を複数組み合わせることで精度を向上させるコンセプトはRandomForestと同じだが、個々の決定木の出力結果の誤りを、次の決定木が修正するように
(誤ったデータに重み付けする)シーケンシャルに学習していく。(バギング)
最終的に、各決定木の出力結果の加重平均を取ることで、アウトプットを生成する。
仕組み上、外れ値に対しては弱いのと、計算時間がかかる。

※This is because boosting builds each tree on previous trees' residuals/errors. Outliers will have much larger residuals than non-outliers, so boosting will focus a disproportionate amount of its attention on those points

https://www.quora.com/Is-XGBoost-robust-to-outliers
利点 ・Kaggleなどでもよく使われるほど、精度が高い
・データのスケーリングは不要
・非線形のデータや説明変数の多い(次元の高い)データ、
 様々な尺度(質的変数か量的変数かなど)が混在している
 データでも扱える
欠点 ・計算コストが非常に高く付く
・可視化は難しい
・パラメーターの設定に敏感
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html
その他 plot_feature_importances_(model)で、
特徴量ごとの重要度を可視化できる

12.GradientBoostingRegressor

  勾配Boosting属
モデル名 GradientBoostingRegressor
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター
random_state:
再現性担保のためには、ブースティングの各反復において,各ツリーに与える乱数シードを制御する必要がある。

max_depth:木を成長させたい最大の深さ

n_estimators:作成するツリーの量

Learning_rate:個々の決定木が予測した分類結果に対して、その結果の誤りをどれくらい強く補正するかの割合。(学習率)

loss:残差の計算に使用する損失関数
(デフォルトは「ls」または最小二乗)

max_leaf_nodes:各ツリーに必要なリーフノードの最大数。この数がトレーニングインスタンスの数よりも少なく、2つ以上のインスタンスが同じリーフ内にある場合、リーフの値はそのリーフ内のすべてのトレーニングインスタンス値の平均になる。
データ標準化が必要か? いいえ
ハズレ値に対しては 弱い
コマンド sklearn.ensemble.GradientBoostingRegressor
特徴(損失関数など) 勾配ブースティング回帰木モデル。
教師あり学習の中でもとても強力で、広く使われている。
利点 ・Kaggleでもよく使われるほど、精度が高い
・データのスケーリングは不要
・非線形のデータや説明変数の多い(次元の高い)データ、
 様々な尺度(質的変数か量的変数かなど)が混在している
 データでも扱える
欠点 ・計算コストが非常に高く付く
・可視化は難しい
・パラメーターの設定に敏感
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingRegressor.html?highlight=gradientboostingre#sklearn.ensemble.GradientBoostingRegressor
その他 plot_feature_importances_(model)で、
特徴量ごとの重要度を可視化できる

13.NLPClassifier

  ニューラルネットワーク属
モデル名 MLPClassifier
目的 分類
.predictが出力する値 yがどのラベルに分類されるか
調整すべき主なパラメーター
こちらにまとまっている

https://spjai.com/neural-network-parameter/

データ標準化が必要か? はい
ハズレ値に対しては
コマンド sklearn.neural_network import MLPClassifier
特徴(損失関数など) 多層パーセプトロンからなる分類モデル。
利点 ・sklearn上で試せるNNモデル
・パラメーターチューンすれば高い精度を期待できる
欠点 ・(隠れ層の)パラメーターチューニング、層の設計が大変
精度評価の手法 ・model.score(y_pred,y)
・混同行列(confusion matrix)
・正解率(accuracy):sklearn.metrics.accuracy_score
・適合率(precision):sklearn.metrics.precision_score
・再現率(recall)
・F1スコア(f1)・・・recallとPrecision双方を加味したスコア
など。
※accuracyだけでなくprecisionやrecallも
 見ないと、「正しくPositive(Negative)をPositive(Negative)として予測しているか」の精度が見れないので注意。
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html
その他 -

14.NLPRegressor

  ニューラルネットワーク属
モデル名 NLPRegoressor
目的 回帰
.predictが出力する値 yの予測値(連続値)
調整すべき主なパラメーター こちらにまとまっている

https://spjai.com/neural-network-parameter/
データ標準化が必要か? はい
ハズレ値に対しては
コマンド sklearn.neural_network.MLPRegressor
特徴(損失関数など) 多層パーセプトロンからなる回帰モデル。
利点 ・sklearn上で試せるNNモデル
・パラメーターチューンすれば高い精度を期待できる
欠点 ・(隠れ層の)パラメーターチューニング、層の設計が大変
精度評価の手法 ・model.score(y_pred,y)
・MSE(平均2乗誤差)
・RMSE(√平均2乗誤差)
・r2_score(決定係数)など
sklearnのドキュメント https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html
その他 coefs_[i]で、i番目のレイヤの回帰係数を取り出せる
intercepts_[i]で、切片(バイアス)項を取り出せる
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?