@@ -7,34 +7,35 @@ dcl varchar(100) EM_CLASSIFICATION;
7
7
dcl double EM_EVENTPROBABILITY;
8
8
9
9
10
- method score(double LOAN, double MORTDUE, double VALUE , varchar(100 ) REASON, varchar(100 ) JOB, double YOJ, double DEROG, double DELINQ, double CLAGE, double NINQ, double CLNO, double DEBTINC, in_out double resultCode, in_out varchar(100 ) EM_CLASSIFICATION, in_out double EM_EVENTPROBABILITY);
10
+ method score(double LOAN, double MORTDUE, double VALUE , varchar(100 ) REASON, varchar(100 ) JOB, double YOJ, double DEROG, double DELINQ, double CLAGE, double NINQ, double CLNO, double DEBTINC, double LOAN, double MORTDUE, double VALUE , varchar( 100 ) REASON, varchar( 100 ) JOB, double YOJ, double DEROG, double DELINQ, double CLAGE, double NINQ, double CLNO, double DEBTINC, in_out double resultCode, in_out varchar( 100 ) EM_CLASSIFICATION, in_out double EM_EVENTPROBABILITY , in_out varchar(100 ) EM_CLASSIFICATION, in_out double EM_EVENTPROBABILITY);
11
11
resultCode = revision = 0 ;
12
12
if null (pm) then do ;
13
13
pm = _new_ pymas();
14
- resultCode = pm.useModule('model_exec_1a74cbe6-406d-4a65-8169-f8a68c5a6935 ' , 1 );
14
+ resultCode = pm.useModule('model_exec_52c2930f-8aef-4ad2-9b4c-099496862675 ' , 1 );
15
15
if resultCode then do ;
16
16
resultCode = pm.appendSrcLine('import math' );
17
17
resultCode = pm.appendSrcLine('import pickle' );
18
18
resultCode = pm.appendSrcLine('import pandas as pd' );
19
19
resultCode = pm.appendSrcLine('import numpy as np' );
20
20
resultCode = pm.appendSrcLine('from pathlib import Path' );
21
21
resultCode = pm.appendSrcLine('' );
22
+ resultCode = pm.appendSrcLine('import settings' );
23
+ resultCode = pm.appendSrcLine('' );
22
24
resultCode = pm.appendSrcLine('import h2o' );
23
- resultCode = pm.appendSrcLine('import gzip' );
24
- resultCode = pm.appendSrcLine('import shutil' );
25
- resultCode = pm.appendSrcLine('import os' );
26
25
resultCode = pm.appendSrcLine('' );
27
26
resultCode = pm.appendSrcLine('h2o.init()' );
28
27
resultCode = pm.appendSrcLine('' );
29
- resultCode = pm.appendSrcLine('model = h2o.load (str(Path("/models/resources/viya/b3b0fcef-81d8-4da1-a78d-8284dbb590a8/glmfit.pickle") ))' );
28
+ resultCode = pm.appendSrcLine('model = h2o.import_mojo (str(Path(settings.pickle_path) / "glmfit_mojo.mojo" ))' );
30
29
resultCode = pm.appendSrcLine('' );
31
30
resultCode = pm.appendSrcLine('def score(LOAN, MORTDUE, VALUE, REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC):' );
32
31
resultCode = pm.appendSrcLine(' "Output: EM_CLASSIFICATION, EM_EVENTPROBABILITY"' );
33
32
resultCode = pm.appendSrcLine('' );
34
33
resultCode = pm.appendSrcLine(' try:' );
35
34
resultCode = pm.appendSrcLine(' global model' );
36
35
resultCode = pm.appendSrcLine(' except NameError:' );
37
- resultCode = pm.appendSrcLine(' model = h2o.load(str(Path("/models/resources/viya/b3b0fcef-81d8-4da1-a78d-8284dbb590a8/glmfit.pickle")))' );
36
+ resultCode = pm.appendSrcLine(' model = h2o.import_mojo(str(Path(settings.pickle_path) / "glmfit_mojo.mojo"))' );
37
+ resultCode = pm.appendSrcLine('' );
38
+ resultCode = pm.appendSrcLine('' );
38
39
resultCode = pm.appendSrcLine('' );
39
40
resultCode = pm.appendSrcLine(' try:' );
40
41
resultCode = pm.appendSrcLine(' if math.isnan(LOAN):' );
@@ -97,7 +98,97 @@ method score(double LOAN, double MORTDUE, double VALUE, varchar(100) REASON, var
97
98
resultCode = pm.appendSrcLine('' );
98
99
resultCode = pm.appendSrcLine(' input_array = pd.DataFrame([[LOAN, MORTDUE, VALUE, REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC]],' );
99
100
resultCode = pm.appendSrcLine(' columns=["LOAN", "MORTDUE", "VALUE", "REASON", "JOB", "YOJ", "DEROG", "DELINQ", "CLAGE", "NINQ", "CLNO", "DEBTINC"],' );
100
- resultCode = pm.appendSrcLine(' dtype=float,' );
101
+ resultCode = pm.appendSrcLine(' dtype=object,' );
102
+ resultCode = pm.appendSrcLine(' index=[0])' );
103
+ resultCode = pm.appendSrcLine(' column_types = {"LOAN" : "numeric", "MORTDUE" : "numeric", "VALUE" : "numeric", "REASON" : "string", "JOB" : "string", "YOJ" : "numeric", "DEROG" : "numeric", "DELINQ" : "numeric", "CLAGE" : "numeric", "NINQ" : "numeric", "CLNO" : "numeric", "DEBTINC" : "numeric"}' );
104
+ resultCode = pm.appendSrcLine(' h2o_array = h2o.H2OFrame(input_array, column_types=column_types)' );
105
+ resultCode = pm.appendSrcLine(' prediction = model.predict(h2o_array)' );
106
+ resultCode = pm.appendSrcLine(' prediction = h2o.as_list(prediction, use_pandas=False)' );
107
+ resultCode = pm.appendSrcLine(' EM_CLASSIFICATION = prediction[1][0]' );
108
+ resultCode = pm.appendSrcLine(' EM_EVENTPROBABILITY = float(prediction[1][1])' );
109
+ resultCode = pm.appendSrcLine('' );
110
+ resultCode = pm.appendSrcLine(' return EM_CLASSIFICATION, EM_EVENTPROBABILITYimport math' );
111
+ resultCode = pm.appendSrcLine('import pickle' );
112
+ resultCode = pm.appendSrcLine('import pandas as pd' );
113
+ resultCode = pm.appendSrcLine('import numpy as np' );
114
+ resultCode = pm.appendSrcLine('from pathlib import Path' );
115
+ resultCode = pm.appendSrcLine('' );
116
+ resultCode = pm.appendSrcLine('import h2o' );
117
+ resultCode = pm.appendSrcLine('' );
118
+ resultCode = pm.appendSrcLine('h2o.init()' );
119
+ resultCode = pm.appendSrcLine('' );
120
+ resultCode = pm.appendSrcLine('model = h2o.load(str(Path("/models/resources/viya/5929a748-f9b2-4285-b73a-45c40659b4b0/glmfit_binary.pickle")))' );
121
+ resultCode = pm.appendSrcLine('' );
122
+ resultCode = pm.appendSrcLine('def score(LOAN, MORTDUE, VALUE, REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC):' );
123
+ resultCode = pm.appendSrcLine(' "Output: EM_CLASSIFICATION, EM_EVENTPROBABILITY"' );
124
+ resultCode = pm.appendSrcLine('' );
125
+ resultCode = pm.appendSrcLine(' try:' );
126
+ resultCode = pm.appendSrcLine(' global model' );
127
+ resultCode = pm.appendSrcLine(' except NameError:' );
128
+ resultCode = pm.appendSrcLine(' model = h2o.load(str(Path("/models/resources/viya/5929a748-f9b2-4285-b73a-45c40659b4b0/glmfit_binary.pickle")))' );
129
+ resultCode = pm.appendSrcLine('' );
130
+ resultCode = pm.appendSrcLine(' try:' );
131
+ resultCode = pm.appendSrcLine(' if math.isnan(LOAN):' );
132
+ resultCode = pm.appendSrcLine(' LOAN = 18724.518290980173' );
133
+ resultCode = pm.appendSrcLine(' except TypeError:' );
134
+ resultCode = pm.appendSrcLine(' LOAN = 18724.518290980173' );
135
+ resultCode = pm.appendSrcLine(' try:' );
136
+ resultCode = pm.appendSrcLine(' if math.isnan(MORTDUE):' );
137
+ resultCode = pm.appendSrcLine(' MORTDUE = 73578.70182374542' );
138
+ resultCode = pm.appendSrcLine(' except TypeError:' );
139
+ resultCode = pm.appendSrcLine(' MORTDUE = 73578.70182374542' );
140
+ resultCode = pm.appendSrcLine(' try:' );
141
+ resultCode = pm.appendSrcLine(' if math.isnan(VALUE):' );
142
+ resultCode = pm.appendSrcLine(' VALUE = 102073.94160831199' );
143
+ resultCode = pm.appendSrcLine(' except TypeError:' );
144
+ resultCode = pm.appendSrcLine(' VALUE = 102073.94160831199' );
145
+ resultCode = pm.appendSrcLine(' try:' );
146
+ resultCode = pm.appendSrcLine(' REASON = REASON.strip()' );
147
+ resultCode = pm.appendSrcLine(' except AttributeError:' );
148
+ resultCode = pm.appendSrcLine(' REASON = ""' );
149
+ resultCode = pm.appendSrcLine(' try:' );
150
+ resultCode = pm.appendSrcLine(' JOB = JOB.strip()' );
151
+ resultCode = pm.appendSrcLine(' except AttributeError:' );
152
+ resultCode = pm.appendSrcLine(' JOB = ""' );
153
+ resultCode = pm.appendSrcLine(' try:' );
154
+ resultCode = pm.appendSrcLine(' if math.isnan(YOJ):' );
155
+ resultCode = pm.appendSrcLine(' YOJ = 8.878919914084074' );
156
+ resultCode = pm.appendSrcLine(' except TypeError:' );
157
+ resultCode = pm.appendSrcLine(' YOJ = 8.878919914084074' );
158
+ resultCode = pm.appendSrcLine(' try:' );
159
+ resultCode = pm.appendSrcLine(' if math.isnan(DEROG):' );
160
+ resultCode = pm.appendSrcLine(' DEROG = 0.2522264631043257' );
161
+ resultCode = pm.appendSrcLine(' except TypeError:' );
162
+ resultCode = pm.appendSrcLine(' DEROG = 0.2522264631043257' );
163
+ resultCode = pm.appendSrcLine(' try:' );
164
+ resultCode = pm.appendSrcLine(' if math.isnan(DELINQ):' );
165
+ resultCode = pm.appendSrcLine(' DELINQ = 0.4452373565001551' );
166
+ resultCode = pm.appendSrcLine(' except TypeError:' );
167
+ resultCode = pm.appendSrcLine(' DELINQ = 0.4452373565001551' );
168
+ resultCode = pm.appendSrcLine(' try:' );
169
+ resultCode = pm.appendSrcLine(' if math.isnan(CLAGE):' );
170
+ resultCode = pm.appendSrcLine(' CLAGE = 179.86044681046295' );
171
+ resultCode = pm.appendSrcLine(' except TypeError:' );
172
+ resultCode = pm.appendSrcLine(' CLAGE = 179.86044681046295' );
173
+ resultCode = pm.appendSrcLine(' try:' );
174
+ resultCode = pm.appendSrcLine(' if math.isnan(NINQ):' );
175
+ resultCode = pm.appendSrcLine(' NINQ = 1.1648318042813455' );
176
+ resultCode = pm.appendSrcLine(' except TypeError:' );
177
+ resultCode = pm.appendSrcLine(' NINQ = 1.1648318042813455' );
178
+ resultCode = pm.appendSrcLine(' try:' );
179
+ resultCode = pm.appendSrcLine(' if math.isnan(CLNO):' );
180
+ resultCode = pm.appendSrcLine(' CLNO = 21.205105889178995' );
181
+ resultCode = pm.appendSrcLine(' except TypeError:' );
182
+ resultCode = pm.appendSrcLine(' CLNO = 21.205105889178995' );
183
+ resultCode = pm.appendSrcLine(' try:' );
184
+ resultCode = pm.appendSrcLine(' if math.isnan(DEBTINC):' );
185
+ resultCode = pm.appendSrcLine(' DEBTINC = 33.64816965600249' );
186
+ resultCode = pm.appendSrcLine(' except TypeError:' );
187
+ resultCode = pm.appendSrcLine(' DEBTINC = 33.64816965600249' );
188
+ resultCode = pm.appendSrcLine('' );
189
+ resultCode = pm.appendSrcLine(' input_array = pd.DataFrame([[LOAN, MORTDUE, VALUE, REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC]],' );
190
+ resultCode = pm.appendSrcLine(' columns=["LOAN", "MORTDUE", "VALUE", "REASON", "JOB", "YOJ", "DEROG", "DELINQ", "CLAGE", "NINQ", "CLNO", "DEBTINC"],' );
191
+ resultCode = pm.appendSrcLine(' dtype=object,' );
101
192
resultCode = pm.appendSrcLine(' index=[0])' );
102
193
resultCode = pm.appendSrcLine(' column_types = {"LOAN" : "numeric", "MORTDUE" : "numeric", "VALUE" : "numeric", "REASON" : "string", "JOB" : "string", "YOJ" : "numeric", "DEROG" : "numeric", "DELINQ" : "numeric", "CLAGE" : "numeric", "NINQ" : "numeric", "CLNO" : "numeric", "DEBTINC" : "numeric"}' );
103
194
resultCode = pm.appendSrcLine(' h2o_array = h2o.H2OFrame(input_array, column_types=column_types)' );
@@ -107,7 +198,7 @@ method score(double LOAN, double MORTDUE, double VALUE, varchar(100) REASON, var
107
198
resultCode = pm.appendSrcLine(' EM_EVENTPROBABILITY = float(prediction[1][1])' );
108
199
resultCode = pm.appendSrcLine('' );
109
200
resultCode = pm.appendSrcLine(' return EM_CLASSIFICATION, EM_EVENTPROBABILITY' );
110
- revision = pm.publish(pm.getSource(), 'model_exec_1a74cbe6-406d-4a65-8169-f8a68c5a6935 ' );
201
+ revision = pm.publish(pm.getSource(), 'model_exec_52c2930f-8aef-4ad2-9b4c-099496862675 ' );
111
202
112
203
if ( revision < 1 ) then do ;
113
204
logr.log ( 'e' , 'py.publish() failed.' );
@@ -155,18 +246,56 @@ method score(double LOAN, double MORTDUE, double VALUE, varchar(100) REASON, var
155
246
if resultCode then
156
247
logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
157
248
resultCode = pm.setDouble('DEBTINC' , DEBTINC);
249
+ if resultCode then
250
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
251
+ resultCode = pm.setDouble('LOAN' , LOAN);
252
+ if resultCode then
253
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
254
+ resultCode = pm.setDouble('MORTDUE' , MORTDUE);
255
+ if resultCode then
256
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
257
+ resultCode = pm.setDouble('VALUE' , VALUE );
258
+ if resultCode then
259
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
260
+ resultCode = pm.setString('REASON' , REASON);
261
+ if resultCode then
262
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
263
+ resultCode = pm.setString('JOB' , JOB);
264
+ if resultCode then
265
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
266
+ resultCode = pm.setDouble('YOJ' , YOJ);
267
+ if resultCode then
268
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
269
+ resultCode = pm.setDouble('DEROG' , DEROG);
270
+ if resultCode then
271
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
272
+ resultCode = pm.setDouble('DELINQ' , DELINQ);
273
+ if resultCode then
274
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
275
+ resultCode = pm.setDouble('CLAGE' , CLAGE);
276
+ if resultCode then
277
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
278
+ resultCode = pm.setDouble('NINQ' , NINQ);
279
+ if resultCode then
280
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
281
+ resultCode = pm.setDouble('CLNO' , CLNO);
282
+ if resultCode then
283
+ logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
284
+ resultCode = pm.setDouble('DEBTINC' , DEBTINC);
158
285
if resultCode then
159
286
logr.log ('E' , 'useMethod() failed. resultCode=$s' , resultCode);
160
287
resultCode = pm.execute();
161
288
if (resultCode) then put 'Error: pm.execute failed. resultCode=' resultCode;
162
289
else do ;
163
290
EM_CLASSIFICATION = pm.getString('EM_CLASSIFICATION' );
164
291
EM_EVENTPROBABILITY = pm.getDouble('EM_EVENTPROBABILITY' );
292
+ EM_CLASSIFICATION = pm.getString('EM_CLASSIFICATION' );
293
+ EM_EVENTPROBABILITY = pm.getDouble('EM_EVENTPROBABILITY' );
165
294
end ;
166
295
end ;
167
296
168
297
method run ();
169
298
set SASEP .IN ;
170
- score(LOAN, MORTDUE, VALUE , REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC, resultCode, EM_CLASSIFICATION, EM_EVENTPROBABILITY);
299
+ score(LOAN, MORTDUE, VALUE , REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC, LOAN, MORTDUE, VALUE , REASON, JOB, YOJ, DEROG, DELINQ, CLAGE, NINQ, CLNO, DEBTINC, resultCode, EM_CLASSIFICATION, EM_EVENTPROBABILITY , EM_CLASSIFICATION, EM_EVENTPROBABILITY);
171
300
end ;
172
301
enddata;
0 commit comments