Hi All,
Trying to write Proc DS2 code for SAS ESP model, below is the code exported from EMiner:-
length _WARN_ $4;
label _WARN_ = 'Warnings' ;
length I_Failure $ 12;
label I_Failure = 'Into: Failure' ;
*** Target Values;
array REG2DRF [2] $12 _temporary_ ('1' '0' );
label U_Failure = 'Unnormalized Into: Failure' ;
format U_Failure BEST12.;
*** Unnormalized target values;
ARRAY REG2DRU[2] _TEMPORARY_ (1 0);
drop _DM_BAD;
_DM_BAD=0;
*** Check Coolant_Level for missing values ;
if missing( Coolant_Level ) then do;
substr(_warn_,1,1) = 'M';
_DM_BAD = 1;
end;
*** Check Noise for missing values ;
if missing( Noise ) then do;
substr(_warn_,1,1) = 'M';
_DM_BAD = 1;
end;
*** Check Oil_Temparature for missing values ;
if missing( Oil_Temparature ) then do;
substr(_warn_,1,1) = 'M';
_DM_BAD = 1;
end;
*** Check Speed for missing values ;
if missing( Speed ) then do;
substr(_warn_,1,1) = 'M';
_DM_BAD = 1;
end;
*** If missing inputs, use averages;
if _DM_BAD > 0 then do;
_P0 = 0.2055244985;
_P1 = 0.7944755015;
goto REG2DR1;
end;
*** Compute Linear Predictor;
drop _TEMP;
drop _LP0;
_LP0 = 0;
*** Effect: Coolant_Level ;
_TEMP = Coolant_Level ;
_LP0 = _LP0 + ( 0.03716283327255 * _TEMP);
*** Effect: Noise ;
_TEMP = Noise ;
_LP0 = _LP0 + ( 1.90253038267245 * _TEMP);
*** Effect: Oil_Temparature ;
_TEMP = Oil_Temparature ;
_LP0 = _LP0 + ( 0.05477217759604 * _TEMP);
*** Effect: Speed ;
_TEMP = Speed ;
_LP0 = _LP0 + ( 0.00222458951872 * _TEMP);
*** Naive Posterior Probabilities;
drop _MAXP _IY _P0 _P1;
_TEMP = -180.133287153081 + _LP0;
if (_TEMP < 0) then do;
_TEMP = exp(_TEMP);
_P0 = _TEMP / (1 + _TEMP);
end;
else _P0 = 1 / (1 + exp(-_TEMP));
_P1 = 1.0 - _P0;
REG2DR1:
*** Posterior Probabilities and Predicted Level;
label P_Failure1 = 'Predicted: Failure=1' ;
label P_Failure0 = 'Predicted: Failure=0' ;
P_Failure1 = _P0;
_MAXP = _P0;
_IY = 1;
P_Failure0 = _P1;
if (_P1 > _MAXP + 1E-8) then do;
_MAXP = _P1;
_IY = 2;
end;
I_Failure = REG2DRF[_IY];
U_Failure = REG2DRU[_IY];
*************************************;
***** end scoring code for regression;
*************************************;
*------------------------------------------------------------*;
* TOOL: Score Node;
* TYPE: ASSESS;
* NODE: Score2;
*------------------------------------------------------------*;
*------------------------------------------------------------*;
* Score2: Creating Fixed Names;
*------------------------------------------------------------*;
LABEL EM_EVENTPROBABILITY = 'Probability for level 1 of Failure';
EM_EVENTPROBABILITY = P_Failure1;
LABEL EM_PROBABILITY = 'Probability of Classification';
EM_PROBABILITY =
max(
P_Failure1
,
P_Failure0
);
LENGTH EM_CLASSIFICATION $%dmnorlen;
LABEL EM_CLASSIFICATION = "Prediction for Failure";
EM_CLASSIFICATION = I_Failure;
I am able to convert most of the part except the array, can anyone please help me to convert this code in proc DS2 for use in SAS Event stream processing.
Thanks in advance.
Regards,
Swapna
... View more