まとめ用。随時更新。
教師あり学習
最小二乗回帰(OLS:Ordinary Least Squares regression、線形回帰)
【プロシジャ】HPREG, GLMSELECT, HPGENSELECT(dist=gaussian)
【SAS】glmselectプロシジャ_Lasso回帰、ElasticNet回帰 - こちにぃるの日記
(例:10-fold ElasticNet回帰)
ods graphics on; proc glmselect data=訓練データ plots=all seed=19; model ラベル = 特徴量1, ..., 特徴量p / details=all stats=all selection=elasticnet(choose=cv l2search=grid showl2search stop=none) cvmethod=random(10) stb; score out=score_elasticnet predicted residual; code file="ファイル名.sas"; run; ods graphics off; *-- 予測; data _Pred; set 予測データ; %inc "ファイル名.sas"; *-- 新しいデータで予測; run;
ロジスティック回帰(Logistic regression)
【プロシジャ】HPLOGISTIC, HPGENSELECT(dist=binary link=logit)
【SAS】hpgenselect プロシジャ_罰則付きロジスティック回帰(LASSO) - こちにぃるの日記
(例:Logistic regression with Lasso)
proc hpgenselect data=訓練データ lassorho=0.8 lassosteps=20; partition roleVar=selected(train='0' validate='1'); model ラベル(event="1")=特徴量1, ..., 特徴量p / distribution=binary link=logit; selection method=lasso(choose=validate stop=none) details=all; performance details; code file="ファイル名.sas" residual; *-- 予測用のPGM生成; ods output ParameterEstimates=_Coef_lasso; *-- 回帰係数; output data=_Pred_lasso role=ROLE pred=PRED resid=RESID; run; *-- 予測; data _Pred; set 予測データ; %inc "ファイル名.sas"; *-- 新しいデータで予測; run;
四分位回帰(Quantile regression)
【プロシジャ】HPQUANTSELECT
サポートベクターマシーン(SVM: Support vector machine)
【プロシジャ】HPSVM
【SAS】hpsvmプロシジャ_サポートベクターマシーン - こちにぃるの日記
proc hpsvm data = 訓練データ; target ラベル / order = 順序 level = 変数のタイプ; input 名義尺度の特徴量 / level=nominal; input 順序尺度の特徴量 / level=ordinal order=ascending; input 間隔尺度の特徴量 / level=interval; code file = "ファイル名.sas" ; /* 将来データ用に予測アルゴリズム出力 */ run; *-- 予測 ; data _Pred; set 予測データ; %inc "ファイル名.sas"; *-- 新しいデータで予測; run;
決定木(Decision tree)
【プロシジャ】HPSPLIT
proc hpsplit data=train; class ラベル カテゴリの特徴量 ; model ラベル(event="1") = 特徴量1, ..., 特徴量p ; partition roleVar=selected(valid='0' train='1'); prune costcomplexity; code file= "ファイル名.sas" ; /* 将来データ用に予測アルゴリズム出力 */ output out=_SCORE; run; *-- 予測 ; data _Pred; set 予測データ; %inc "ファイル名.sas"; *-- 新しいデータで予測; run;
ランダムフォレスト(Random Forest)
【プロシジャ】HPFOREST
【SAS】hpforestプロシジャ_ランダムフォレスト - こちにぃるの日記
proc hpforest data = 訓練データ seed = 19 scoreprole = valid maxtrees = 100 /* pythonではn_estimators */ maxdepth = 6 /* pythonではmax_depth */ ; partition roleVar=selected(train='0' valid='1'); performance details; target ラベル / order = 順序 level = 変数のタイプ; input 名義尺度の特徴量 / level=nominal; input 順序尺度の特徴量 / level=ordinal order=ascending; input 間隔尺度の特徴量 / level=interval; ods output FitStatistics = _Res_FitStatistics; /* 予測値の出力 */ ods output VariableImportance = _Res_VariableImportance; /* 変数重要度(特徴量重要度)の出力 */ save file = "hpforest_fit.bin"; /* 将来データ用に予測アルゴリズム出力 */ run; *-- 予測 ; proc hp4score data = 予測データ; score file="ファイル名.bin" out=_Pred_RandomForest; id 表示したい特徴量; run;
勾配ブースティング木(Gradient Boosting Tree)
【プロシジャ】TREEBOOST
【SAS】treeboostプロシジャ_Gradient Boosting Tree(勾配ブースティング木) - こちにぃるの日記
proc treeboost data=訓練データ(where=(selected=0)) iterations = 1000 /* pythonではn_estimators */ maxdepth = 6 /* pythonではmax_depth */ seed = 19 ; target ラベル / order = 順序 level = 変数のタイプ; input 名義尺度の特徴量 / level=nominal; input 順序尺度の特徴量 / level=ordinal order=ascending; input 間隔尺度の特徴量 / level=interval; assess validata = valid_dataset; subseries best; code file="ファイル名.sas"; save fit=_gb_fit importance=_gb_importance; /* 予測値と特徴量重要度 */ quit; run; *-- 予測; data _Pred; set 予測データ; %inc "ファイル名.sas"; *-- 新しいデータで予測; run;
k近傍法(k-NN: k-nearest neighbor algorithm)
【プロシジャ】
教師なし学習
主成分分析(PCA: principal component analysis)
【プロシジャ】
k-means法
【プロシジャ】