BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
sasone
Quartz | Level 8

いつも大変お世話になっております。
proc logisticとproc hpneuralとで同じ結果となるように構文を書いたつもりなのですが、予測値が異なる結果となります。
前者はデータセットout1でSetosaを返して来て、後者はout2でVERSICOLORを返して来ます。
何かオプション指定を誤っておりますでしょうか?
それともlogisticとhpneuralは全く異なるアルゴリズムなのでしょうか?
ご教示のほど、よろしくお願いいたします。

proc logistic data=sashelp.iris outmodel=model;
  class Species;
  model Species=PetalLength PetalWidth;
run;
data new_iris;
  PetalLength=0; PetalWidth=20;
run;
proc logistic inmodel=model;
  score data=new_iris out=out1;
run;

proc hpneural data=sashelp.iris;
  input PetalLength PetalWidth;
  target Species / level=nom;
  architecture logistic;
  train valid=none outmodel=model_iris;
run;
proc hpneural data=new_iris;
  score model=model_iris out=out2;
run;
1 ACCEPTED SOLUTION

Accepted Solutions
yu_sas
SAS Employee

プロシジャが異なると内部の実装も基本的には異なるため、まったく同じ推定値とならない場合もあると思われます。HPNEURALでは説明変数を[-1,1]に標準化してるなどの違いもありますので、こういった部分を同一にすればある程度近い結果は得られるかと思います。

 

proc logistic data=sashelp.iris outmodel=model;
  class Species;
  model Species=PetalLength PetalWidth / link=glogit;
run;
proc hpneural data=sashelp.iris;
  input PetalLength PetalWidth / std=none;
  target Species / level=nom;
  architecture logistic;
  train valid=none outmodel=model_iris maxiter=1000 numtries=1;
run;

View solution in original post

2 REPLIES 2
yu_sas
SAS Employee

プロシジャが異なると内部の実装も基本的には異なるため、まったく同じ推定値とならない場合もあると思われます。HPNEURALでは説明変数を[-1,1]に標準化してるなどの違いもありますので、こういった部分を同一にすればある程度近い結果は得られるかと思います。

 

proc logistic data=sashelp.iris outmodel=model;
  class Species;
  model Species=PetalLength PetalWidth / link=glogit;
run;
proc hpneural data=sashelp.iris;
  input PetalLength PetalWidth / std=none;
  target Species / level=nom;
  architecture logistic;
  train valid=none outmodel=model_iris maxiter=1000 numtries=1;
run;
sasone
Quartz | Level 8

yu_sasさま

 

早速のご回答、誠にありがとうございました。

確かにHPNEURALの変数の[-1,1]の標準化を解除してしまえば、

予測値は完全一致するようでした。

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

Discussion stats
  • 2 replies
  • 1015 views
  • 1 like
  • 2 in conversation