GaiaFramework commited on
Commit
1244dbe
·
verified ·
1 Parent(s): 385f20c

Initial Commit

Browse files

This innovative data analytics solution leverages a decision tree learning model to predict and visualize hotel customer churn rates with precision and clarity. Designed for hotel management and marketing teams, this tool analyzes historical customer data—such as booking patterns, stay duration, service usage, and satisfaction metrics—to identify key factors driving customer retention and attrition. The decision tree algorithm efficiently segments customers into actionable categories, highlighting at-risk groups and uncovering the root causes of churn.
The portfolio item features an intuitive churn rate display, presenting insights through an easy-to-interpret visual dashboard. This includes a graphical representation of the decision tree, showing branching paths that lead to churn or retention outcomes, alongside a churn rate percentage updated in real-time as new data is processed. By offering both predictive accuracy and transparency into decision-making logic, this model empowers hotel businesses to optimize retention strategies, enhance customer satisfaction, and boost long-term profitability.
Ideal for hospitality industry stakeholders, this solution combines advanced machine learning with practical application, delivering a powerful tool to reduce churn and foster loyalty.

Files changed (1) hide show
  1. Hotel_App_Churn_Rate.rmp +422 -0
Hotel_App_Churn_Rate.rmp ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?><process version="10.5.000">
2
+ <context>
3
+ <input/>
4
+ <output/>
5
+ <macros/>
6
+ </context>
7
+ <operator activated="true" class="process" compatibility="10.5.000" expanded="true" name="Process" origin="GENERATED_TRAINING">
8
+ <parameter key="logverbosity" value="init"/>
9
+ <parameter key="random_seed" value="2001"/>
10
+ <parameter key="send_mail" value="never"/>
11
+ <parameter key="notification_email" value=""/>
12
+ <parameter key="process_duration_for_mail" value="30"/>
13
+ <parameter key="encoding" value="SYSTEM"/>
14
+ <process expanded="true">
15
+ <operator activated="true" class="subprocess" compatibility="10.5.000" expanded="true" height="82" name="ETL" origin="GENERATED_TRAINING" width="90" x="45" y="34">
16
+ <process expanded="true">
17
+ <operator activated="true" class="retrieve" compatibility="10.5.000" expanded="true" height="68" name="Retrieve Transaction Data" origin="GENERATED_TRAINING" width="90" x="45" y="34">
18
+ <parameter key="repository_entry" value="../../../../../Data/Hotel App Customer/Transaction Data"/>
19
+ </operator>
20
+ <operator activated="true" class="retrieve" compatibility="10.5.000" expanded="true" height="68" name="Retrieve Termination Data" origin="GENERATED_TRAINING" width="90" x="45" y="238">
21
+ <parameter key="repository_entry" value="../../../../../Data/Hotel App Customer/Termination Data"/>
22
+ </operator>
23
+ <operator activated="true" class="retrieve" compatibility="10.5.000" expanded="true" height="68" name="Retrieve Hotel App Joins data" origin="GENERATED_TRAINING" width="90" x="45" y="136">
24
+ <parameter key="repository_entry" value="../../../../../Data/Hotel App Customer/Hotel App Joins data"/>
25
+ </operator>
26
+ <operator activated="true" class="subprocess" compatibility="10.5.000" expanded="true" height="124" name="Data Prep" origin="GENERATED_TRAINING" width="90" x="179" y="85">
27
+ <process expanded="true">
28
+ <operator activated="true" class="numerical_to_polynominal" compatibility="10.5.000" expanded="true" height="82" name="Numerical to Polynominal (2)" origin="GENERATED_TRAINING" width="90" x="179" y="187">
29
+ <parameter key="attribute_filter_type" value="single"/>
30
+ <parameter key="attribute" value="CustomerId"/>
31
+ <parameter key="attributes" value=""/>
32
+ <parameter key="use_except_expression" value="false"/>
33
+ <parameter key="value_type" value="numeric"/>
34
+ <parameter key="use_value_type_exception" value="false"/>
35
+ <parameter key="except_value_type" value="real"/>
36
+ <parameter key="block_type" value="value_series"/>
37
+ <parameter key="use_block_type_exception" value="false"/>
38
+ <parameter key="except_block_type" value="value_series_end"/>
39
+ <parameter key="invert_selection" value="false"/>
40
+ <parameter key="include_special_attributes" value="false"/>
41
+ </operator>
42
+ <operator activated="true" class="subprocess" compatibility="10.5.000" expanded="true" height="103" name="Aggregate &amp; Pivot" origin="GENERATED_TRAINING" width="90" x="45" y="34">
43
+ <process expanded="true">
44
+ <operator activated="true" class="aggregate" compatibility="10.5.000" expanded="true" height="82" name="Aggregate" origin="GENERATED_TRAINING" width="90" x="45" y="34">
45
+ <parameter key="use_default_aggregation" value="false"/>
46
+ <parameter key="attribute_filter_type" value="all"/>
47
+ <parameter key="attribute" value=""/>
48
+ <parameter key="attributes" value=""/>
49
+ <parameter key="use_except_expression" value="false"/>
50
+ <parameter key="value_type" value="attribute_value"/>
51
+ <parameter key="use_value_type_exception" value="false"/>
52
+ <parameter key="except_value_type" value="time"/>
53
+ <parameter key="block_type" value="attribute_block"/>
54
+ <parameter key="use_block_type_exception" value="false"/>
55
+ <parameter key="except_block_type" value="value_matrix_row_start"/>
56
+ <parameter key="invert_selection" value="false"/>
57
+ <parameter key="include_special_attributes" value="false"/>
58
+ <parameter key="default_aggregation_function" value="average"/>
59
+ <list key="aggregation_attributes">
60
+ <parameter key="TransactionValue" value="average"/>
61
+ <parameter key="TransactionValue" value="sum"/>
62
+ <parameter key="Date" value="maximum"/>
63
+ </list>
64
+ <parameter key="group_by_attributes" value="CustomerId"/>
65
+ <parameter key="count_all_combinations" value="false"/>
66
+ <parameter key="only_distinct" value="false"/>
67
+ <parameter key="ignore_missings" value="true"/>
68
+ </operator>
69
+ <operator activated="true" class="blending:pivot" compatibility="10.5.000" expanded="true" height="103" name="Pivot" origin="GENERATED_TRAINING" width="90" x="179" y="136">
70
+ <parameter key="group_by_attributes" value="CustomerId"/>
71
+ <parameter key="column_grouping_attribute" value="PaymentMethod"/>
72
+ <list key="aggregation_attributes">
73
+ <parameter key="PaymentMethod" value="count"/>
74
+ </list>
75
+ <parameter key="use_default_aggregation" value="false"/>
76
+ <parameter key="default_aggregation_function" value="first"/>
77
+ </operator>
78
+ <operator activated="true" class="concurrency:join" compatibility="10.5.000" expanded="true" height="82" name="Join" origin="GENERATED_TRAINING" width="90" x="313" y="34">
79
+ <parameter key="remove_double_attributes" value="true"/>
80
+ <parameter key="join_type" value="inner"/>
81
+ <parameter key="use_id_attribute_as_key" value="false"/>
82
+ <list key="key_attributes">
83
+ <parameter key="CustomerId" value="CustomerId"/>
84
+ </list>
85
+ <parameter key="keep_both_join_attributes" value="false"/>
86
+ </operator>
87
+ <operator activated="true" class="replace_missing_values" compatibility="10.5.000" expanded="true" height="103" name="Replace Missing Values" origin="GENERATED_TRAINING" width="90" x="447" y="85">
88
+ <parameter key="return_preprocessing_model" value="false"/>
89
+ <parameter key="attribute_filter_type" value="subset"/>
90
+ <parameter key="attribute" value=""/>
91
+ <parameter key="attributes" value="count(PaymentMethod)_cash|count(PaymentMethod)_cheque|count(PaymentMethod)_credit card"/>
92
+ <parameter key="use_except_expression" value="false"/>
93
+ <parameter key="value_type" value="attribute_value"/>
94
+ <parameter key="use_value_type_exception" value="false"/>
95
+ <parameter key="except_value_type" value="time"/>
96
+ <parameter key="block_type" value="attribute_block"/>
97
+ <parameter key="use_block_type_exception" value="false"/>
98
+ <parameter key="except_block_type" value="value_matrix_row_start"/>
99
+ <parameter key="invert_selection" value="false"/>
100
+ <parameter key="include_special_attributes" value="false"/>
101
+ <parameter key="default" value="zero"/>
102
+ <list key="columns"/>
103
+ </operator>
104
+ <operator activated="true" class="concurrency:join" compatibility="10.5.000" expanded="true" height="82" name="Join (2)" origin="GENERATED_TRAINING" width="90" x="581" y="238">
105
+ <parameter key="remove_double_attributes" value="true"/>
106
+ <parameter key="join_type" value="inner"/>
107
+ <parameter key="use_id_attribute_as_key" value="false"/>
108
+ <list key="key_attributes">
109
+ <parameter key="CustomerId" value="CustomerId"/>
110
+ </list>
111
+ <parameter key="keep_both_join_attributes" value="false"/>
112
+ </operator>
113
+ <operator activated="true" class="blending:rename" compatibility="10.5.000" expanded="true" height="82" name="Rename" origin="GENERATED_TRAINING" width="90" x="715" y="85">
114
+ <list key="rename attributes">
115
+ <parameter key="average(TransactionValue)" value="AverageTransactionValue"/>
116
+ <parameter key="maximum(Date)" value="MostRecentTransactionDate"/>
117
+ <parameter key="sum(TransactionValue)" value="TotalTransactionValue"/>
118
+ <parameter key="Geschlecht" value="Gender"/>
119
+ </list>
120
+ <parameter key="from_attribute" value=""/>
121
+ <parameter key="to_attribute" value=""/>
122
+ </operator>
123
+ <connect from_port="in 1" to_op="Aggregate" to_port="example set input"/>
124
+ <connect from_port="in 2" to_op="Join (2)" to_port="right"/>
125
+ <connect from_op="Aggregate" from_port="example set output" to_op="Join" to_port="left"/>
126
+ <connect from_op="Aggregate" from_port="original" to_op="Pivot" to_port="input"/>
127
+ <connect from_op="Pivot" from_port="output" to_op="Join" to_port="right"/>
128
+ <connect from_op="Join" from_port="join" to_op="Replace Missing Values" to_port="example set input"/>
129
+ <connect from_op="Replace Missing Values" from_port="example set output" to_op="Join (2)" to_port="left"/>
130
+ <connect from_op="Join (2)" from_port="join" to_op="Rename" to_port="example set input"/>
131
+ <connect from_op="Rename" from_port="example set output" to_port="out 1"/>
132
+ <portSpacing port="source_in 1" spacing="0"/>
133
+ <portSpacing port="source_in 2" spacing="0"/>
134
+ <portSpacing port="source_in 3" spacing="0"/>
135
+ <portSpacing port="sink_out 1" spacing="0"/>
136
+ <portSpacing port="sink_out 2" spacing="0"/>
137
+ </process>
138
+ </operator>
139
+ <operator activated="true" class="numerical_to_polynominal" compatibility="10.5.000" expanded="true" height="82" name="Numerical to Polynominal" origin="GENERATED_TRAINING" width="90" x="179" y="34">
140
+ <parameter key="attribute_filter_type" value="single"/>
141
+ <parameter key="attribute" value="CustomerId"/>
142
+ <parameter key="attributes" value=""/>
143
+ <parameter key="use_except_expression" value="false"/>
144
+ <parameter key="value_type" value="numeric"/>
145
+ <parameter key="use_value_type_exception" value="false"/>
146
+ <parameter key="except_value_type" value="real"/>
147
+ <parameter key="block_type" value="value_series"/>
148
+ <parameter key="use_block_type_exception" value="false"/>
149
+ <parameter key="except_block_type" value="value_series_end"/>
150
+ <parameter key="invert_selection" value="false"/>
151
+ <parameter key="include_special_attributes" value="false"/>
152
+ </operator>
153
+ <operator activated="true" class="blending:set_role" compatibility="10.5.000" expanded="true" height="82" name="Set Role (2)" origin="GENERATED_TRAINING" width="90" x="313" y="34">
154
+ <list key="set_roles">
155
+ <parameter key="CustomerId" value="id"/>
156
+ </list>
157
+ </operator>
158
+ <operator activated="true" class="blending:set_role" compatibility="10.5.000" expanded="true" height="82" name="Set Role (3)" origin="GENERATED_TRAINING" width="90" x="313" y="187">
159
+ <list key="set_roles">
160
+ <parameter key="CustomerId" value="id"/>
161
+ </list>
162
+ </operator>
163
+ <operator activated="true" class="set_minus" compatibility="10.5.000" expanded="true" height="82" name="Set Minus to remove Termination Data" origin="GENERATED_TRAINING" width="90" x="447" y="85"/>
164
+ <connect from_port="in 1" to_op="Aggregate &amp; Pivot" to_port="in 1"/>
165
+ <connect from_port="in 2" to_op="Aggregate &amp; Pivot" to_port="in 2"/>
166
+ <connect from_port="in 3" to_op="Numerical to Polynominal (2)" to_port="example set input"/>
167
+ <connect from_op="Numerical to Polynominal (2)" from_port="example set output" to_op="Set Role (3)" to_port="example set input"/>
168
+ <connect from_op="Aggregate &amp; Pivot" from_port="out 1" to_op="Numerical to Polynominal" to_port="example set input"/>
169
+ <connect from_op="Numerical to Polynominal" from_port="example set output" to_op="Set Role (2)" to_port="example set input"/>
170
+ <connect from_op="Set Role (2)" from_port="example set output" to_op="Set Minus to remove Termination Data" to_port="example set input"/>
171
+ <connect from_op="Set Role (3)" from_port="example set output" to_op="Set Minus to remove Termination Data" to_port="subtrahend"/>
172
+ <connect from_op="Set Minus to remove Termination Data" from_port="example set output" to_port="out 1"/>
173
+ <portSpacing port="source_in 1" spacing="0"/>
174
+ <portSpacing port="source_in 2" spacing="0"/>
175
+ <portSpacing port="source_in 3" spacing="0"/>
176
+ <portSpacing port="source_in 4" spacing="0"/>
177
+ <portSpacing port="sink_out 1" spacing="0"/>
178
+ <portSpacing port="sink_out 2" spacing="0"/>
179
+ </process>
180
+ </operator>
181
+ <operator activated="true" class="subprocess" compatibility="10.5.000" expanded="true" height="82" name="Feature Generation" origin="GENERATED_TRAINING" width="90" x="313" y="85">
182
+ <process expanded="true">
183
+ <operator activated="true" class="format_numbers" compatibility="10.5.000" expanded="true" height="82" name="Format Numbers" origin="GENERATED_TRAINING" width="90" x="45" y="34">
184
+ <parameter key="attribute_filter_type" value="single"/>
185
+ <parameter key="attribute" value="PostalCode"/>
186
+ <parameter key="attributes" value=""/>
187
+ <parameter key="use_except_expression" value="false"/>
188
+ <parameter key="value_type" value="numeric"/>
189
+ <parameter key="use_value_type_exception" value="false"/>
190
+ <parameter key="except_value_type" value="real"/>
191
+ <parameter key="block_type" value="value_series"/>
192
+ <parameter key="use_block_type_exception" value="false"/>
193
+ <parameter key="except_block_type" value="value_series_end"/>
194
+ <parameter key="invert_selection" value="false"/>
195
+ <parameter key="include_special_attributes" value="false"/>
196
+ <parameter key="format_type" value="pattern"/>
197
+ <parameter key="pattern" value="00000"/>
198
+ <parameter key="locale" value="English (United States)"/>
199
+ <parameter key="use_grouping" value="false"/>
200
+ </operator>
201
+ <operator activated="true" class="blending:generate_columns" compatibility="10.5.000" expanded="true" height="82" name="Generate Attributes (2)" origin="GENERATED_TRAINING" width="90" x="179" y="34">
202
+ <list key="function_descriptions">
203
+ <parameter key="Churn Indicator" value="if(missing(DateChurn), &quot;Loyal&quot;, &quot;Churn&quot;)"/>
204
+ <parameter key="Age" value="date_diff(Birthday, date_now(), DATE_UNIT_YEAR,&quot;America/Los_Angeles&quot;)"/>
205
+ </list>
206
+ <parameter key="keep_all_columns" value="true"/>
207
+ <parameter key="default_time_zone" value="America/New_York"/>
208
+ </operator>
209
+ <operator activated="true" class="filter_examples" compatibility="10.5.000" expanded="true" height="103" name="Filter Examples" origin="GENERATED_TRAINING" width="90" x="313" y="34">
210
+ <parameter key="parameter_expression" value=""/>
211
+ <parameter key="condition_class" value="custom_filters"/>
212
+ <parameter key="invert_filter" value="false"/>
213
+ <list key="filters_list">
214
+ <parameter key="filters_entry_key" value="Age.ge.16"/>
215
+ <parameter key="filters_entry_key" value="Age.le.100"/>
216
+ </list>
217
+ <parameter key="filters_logic_and" value="true"/>
218
+ <parameter key="filters_check_metadata" value="true"/>
219
+ </operator>
220
+ <operator activated="true" class="blending:set_role" compatibility="10.5.000" expanded="true" height="82" name="Set Role" origin="GENERATED_TRAINING" width="90" x="447" y="34">
221
+ <list key="set_roles">
222
+ <parameter key="Churn Indicator" value="label"/>
223
+ </list>
224
+ </operator>
225
+ <operator activated="true" class="blending:generate_columns" compatibility="10.5.000" expanded="true" height="82" name="Generate Attributes (3)" origin="GENERATED_TRAINING" width="90" x="581" y="34">
226
+ <list key="function_descriptions">
227
+ <parameter key="PostalCode" value="prefix(PostalCode, 1)"/>
228
+ <parameter key="MostRecentTransactionDate" value="date_diff(MostRecentTransactionDate, date_now(), DATE_UNIT_DAY, &quot;America/Los_Angeles&quot;)"/>
229
+ </list>
230
+ <parameter key="keep_all_columns" value="true"/>
231
+ <parameter key="default_time_zone" value="America/New_York"/>
232
+ </operator>
233
+ <operator activated="true" class="blending:select_attributes" compatibility="10.5.000" expanded="true" height="82" name="Select Attributes" origin="GENERATED_TRAINING" width="90" x="246" y="289">
234
+ <parameter key="type" value="exclude attributes"/>
235
+ <parameter key="attribute_filter_type" value="a subset"/>
236
+ <parameter key="select_attribute" value=""/>
237
+ <parameter key="select_subset" value="Birthday␞DateChurn␞First Name␞id␞HashCode"/>
238
+ <parameter key="also_apply_to_special_attributes_(id,_label..)" value="false"/>
239
+ </operator>
240
+ <operator activated="true" class="generate_aggregation" compatibility="10.5.000" expanded="true" height="82" name="Generate Aggregation" origin="GENERATED_TRAINING" width="90" x="380" y="289">
241
+ <parameter key="attribute_name" value="TotalCount"/>
242
+ <parameter key="attribute_filter_type" value="regular_expression"/>
243
+ <parameter key="attribute" value=""/>
244
+ <parameter key="attributes" value=""/>
245
+ <parameter key="regular_expression" value="count.+"/>
246
+ <parameter key="use_except_expression" value="false"/>
247
+ <parameter key="value_type" value="attribute_value"/>
248
+ <parameter key="use_value_type_exception" value="false"/>
249
+ <parameter key="except_value_type" value="time"/>
250
+ <parameter key="block_type" value="attribute_block"/>
251
+ <parameter key="use_block_type_exception" value="false"/>
252
+ <parameter key="except_block_type" value="value_matrix_row_start"/>
253
+ <parameter key="invert_selection" value="false"/>
254
+ <parameter key="include_special_attributes" value="false"/>
255
+ <parameter key="aggregation_function" value="sum"/>
256
+ <parameter key="concatenation_separator" value="|"/>
257
+ <parameter key="keep_all" value="true"/>
258
+ <parameter key="ignore_missings" value="true"/>
259
+ <parameter key="ignore_missing_attributes" value="false"/>
260
+ </operator>
261
+ <operator activated="true" class="rename_by_replacing" compatibility="10.5.000" expanded="true" height="82" name="Rename by Replacing" origin="GENERATED_TRAINING" width="90" x="514" y="289">
262
+ <parameter key="attribute_filter_type" value="all"/>
263
+ <parameter key="attribute" value=""/>
264
+ <parameter key="attributes" value=""/>
265
+ <parameter key="use_except_expression" value="false"/>
266
+ <parameter key="value_type" value="attribute_value"/>
267
+ <parameter key="use_value_type_exception" value="false"/>
268
+ <parameter key="except_value_type" value="time"/>
269
+ <parameter key="block_type" value="attribute_block"/>
270
+ <parameter key="use_block_type_exception" value="false"/>
271
+ <parameter key="except_block_type" value="value_matrix_row_start"/>
272
+ <parameter key="invert_selection" value="false"/>
273
+ <parameter key="include_special_attributes" value="false"/>
274
+ <parameter key="replace_what" value="\W"/>
275
+ </operator>
276
+ <connect from_port="in 1" to_op="Format Numbers" to_port="example set input"/>
277
+ <connect from_op="Format Numbers" from_port="example set output" to_op="Generate Attributes (2)" to_port="table input"/>
278
+ <connect from_op="Generate Attributes (2)" from_port="table output" to_op="Filter Examples" to_port="example set input"/>
279
+ <connect from_op="Filter Examples" from_port="example set output" to_op="Set Role" to_port="example set input"/>
280
+ <connect from_op="Set Role" from_port="example set output" to_op="Generate Attributes (3)" to_port="table input"/>
281
+ <connect from_op="Generate Attributes (3)" from_port="table output" to_op="Select Attributes" to_port="example set input"/>
282
+ <connect from_op="Select Attributes" from_port="example set output" to_op="Generate Aggregation" to_port="example set input"/>
283
+ <connect from_op="Generate Aggregation" from_port="example set output" to_op="Rename by Replacing" to_port="example set input"/>
284
+ <connect from_op="Rename by Replacing" from_port="example set output" to_port="out 1"/>
285
+ <portSpacing port="source_in 1" spacing="0"/>
286
+ <portSpacing port="source_in 2" spacing="0"/>
287
+ <portSpacing port="sink_out 1" spacing="0"/>
288
+ <portSpacing port="sink_out 2" spacing="0"/>
289
+ </process>
290
+ </operator>
291
+ <operator activated="true" class="concurrency:loop_attributes" compatibility="10.5.000" expanded="true" height="82" name="Loop Attributes" origin="GENERATED_TRAINING" width="90" x="447" y="85">
292
+ <parameter key="attribute_filter_type" value="regular_expression"/>
293
+ <parameter key="attribute" value=""/>
294
+ <parameter key="attributes" value=""/>
295
+ <parameter key="regular_expression" value="count.+"/>
296
+ <parameter key="use_except_expression" value="false"/>
297
+ <parameter key="value_type" value="attribute_value"/>
298
+ <parameter key="use_value_type_exception" value="false"/>
299
+ <parameter key="except_value_type" value="time"/>
300
+ <parameter key="block_type" value="attribute_block"/>
301
+ <parameter key="use_block_type_exception" value="false"/>
302
+ <parameter key="except_block_type" value="value_matrix_row_start"/>
303
+ <parameter key="invert_selection" value="false"/>
304
+ <parameter key="include_special_attributes" value="false"/>
305
+ <parameter key="attribute_name_macro" value="loop_attribute"/>
306
+ <parameter key="reuse_results" value="true"/>
307
+ <parameter key="enable_parallel_execution" value="true"/>
308
+ <process expanded="true">
309
+ <operator activated="true" class="blending:generate_columns" compatibility="10.5.000" expanded="true" height="82" name="Generate Attributes" origin="GENERATED_TRAINING" width="90" x="179" y="34">
310
+ <list key="function_descriptions">
311
+ <parameter key="%{loop_attribute}" value="eval(%{loop_attribute})/TotalCount"/>
312
+ </list>
313
+ <parameter key="keep_all_columns" value="true"/>
314
+ <parameter key="default_time_zone" value="America/New_York"/>
315
+ </operator>
316
+ <connect from_port="input 1" to_op="Generate Attributes" to_port="table input"/>
317
+ <connect from_op="Generate Attributes" from_port="table output" to_port="output 1"/>
318
+ <portSpacing port="source_input 1" spacing="0"/>
319
+ <portSpacing port="source_input 2" spacing="0"/>
320
+ <portSpacing port="sink_output 1" spacing="0"/>
321
+ <portSpacing port="sink_output 2" spacing="0"/>
322
+ </process>
323
+ </operator>
324
+ <connect from_op="Retrieve Transaction Data" from_port="output" to_op="Data Prep" to_port="in 1"/>
325
+ <connect from_op="Retrieve Termination Data" from_port="output" to_op="Data Prep" to_port="in 3"/>
326
+ <connect from_op="Retrieve Hotel App Joins data" from_port="output" to_op="Data Prep" to_port="in 2"/>
327
+ <connect from_op="Data Prep" from_port="out 1" to_op="Feature Generation" to_port="in 1"/>
328
+ <connect from_op="Feature Generation" from_port="out 1" to_op="Loop Attributes" to_port="input 1"/>
329
+ <connect from_op="Loop Attributes" from_port="output 1" to_port="out 1"/>
330
+ <portSpacing port="source_in 1" spacing="0"/>
331
+ <portSpacing port="sink_out 1" spacing="0"/>
332
+ <portSpacing port="sink_out 2" spacing="0"/>
333
+ </process>
334
+ </operator>
335
+ <operator activated="true" class="concurrency:cross_validation" compatibility="10.1.003" expanded="true" height="145" name="Cross Validation" origin="GENERATED_TRAINING" width="90" x="179" y="34">
336
+ <parameter key="split_on_batch_attribute" value="false"/>
337
+ <parameter key="leave_one_out" value="false"/>
338
+ <parameter key="number_of_folds" value="10"/>
339
+ <parameter key="sampling_type" value="automatic"/>
340
+ <parameter key="use_local_random_seed" value="false"/>
341
+ <parameter key="local_random_seed" value="1992"/>
342
+ <parameter key="enable_parallel_execution" value="true"/>
343
+ <process expanded="true">
344
+ <operator activated="true" class="concurrency:parallel_decision_tree" compatibility="10.5.000" expanded="true" height="103" name="Decision Tree" origin="GENERATED_TRAINING" width="90" x="112" y="34">
345
+ <parameter key="criterion" value="gain_ratio"/>
346
+ <parameter key="maximal_depth" value="10"/>
347
+ <parameter key="apply_pruning" value="true"/>
348
+ <parameter key="confidence" value="0.25"/>
349
+ <parameter key="apply_prepruning" value="true"/>
350
+ <parameter key="minimal_gain" value="0.01"/>
351
+ <parameter key="minimal_leaf_size" value="2"/>
352
+ <parameter key="minimal_size_for_split" value="4"/>
353
+ <parameter key="number_of_prepruning_alternatives" value="3"/>
354
+ </operator>
355
+ <connect from_port="training set" to_op="Decision Tree" to_port="training set"/>
356
+ <connect from_op="Decision Tree" from_port="model" to_port="model"/>
357
+ <portSpacing port="source_training set" spacing="0"/>
358
+ <portSpacing port="sink_model" spacing="0"/>
359
+ <portSpacing port="sink_through 1" spacing="0"/>
360
+ <description align="left" color="orange" colored="true" height="280" resized="true" width="303" x="10" y="163">Demo 6a &amp;#8211; Building &amp;amp; Storing Model&lt;br&gt;&lt;br&gt;1. Embed Lesson 5 process result&lt;br&gt;2. Introduce the Cross Validation Operator (insert building block)&lt;br&gt;3. In the Cross Validation sub-process, define Decision Tree parameters&lt;br&gt;4. Apply Model &amp;amp; Evaluate Performance&lt;br&gt;(Consider using Performance(Binominal Classification) despite any warnings&lt;br&gt;5. Store the Model&lt;br&gt;</description>
361
+ </process>
362
+ <process expanded="true">
363
+ <operator activated="true" class="apply_model" compatibility="10.5.000" expanded="true" height="82" name="Apply Model" origin="GENERATED_TRAINING" width="90" x="45" y="34">
364
+ <list key="application_parameters"/>
365
+ </operator>
366
+ <operator activated="true" class="performance_binominal_classification" compatibility="10.5.000" expanded="true" height="82" name="Performance" origin="GENERATED_TRAINING" width="90" x="179" y="34">
367
+ <parameter key="manually_set_positive_class" value="false"/>
368
+ <parameter key="main_criterion" value="AUC"/>
369
+ <parameter key="accuracy" value="true"/>
370
+ <parameter key="classification_error" value="false"/>
371
+ <parameter key="kappa" value="false"/>
372
+ <parameter key="AUC (optimistic)" value="false"/>
373
+ <parameter key="AUC" value="true"/>
374
+ <parameter key="AUC (pessimistic)" value="false"/>
375
+ <parameter key="precision" value="false"/>
376
+ <parameter key="recall" value="false"/>
377
+ <parameter key="lift" value="false"/>
378
+ <parameter key="fallout" value="false"/>
379
+ <parameter key="f_measure" value="false"/>
380
+ <parameter key="false_positive" value="false"/>
381
+ <parameter key="false_negative" value="false"/>
382
+ <parameter key="true_positive" value="false"/>
383
+ <parameter key="true_negative" value="false"/>
384
+ <parameter key="sensitivity" value="false"/>
385
+ <parameter key="specificity" value="false"/>
386
+ <parameter key="youden" value="false"/>
387
+ <parameter key="positive_predictive_value" value="false"/>
388
+ <parameter key="negative_predictive_value" value="false"/>
389
+ <parameter key="psep" value="false"/>
390
+ <parameter key="skip_undefined_labels" value="true"/>
391
+ <parameter key="use_example_weights" value="true"/>
392
+ </operator>
393
+ <connect from_port="model" to_op="Apply Model" to_port="model"/>
394
+ <connect from_port="test set" to_op="Apply Model" to_port="unlabelled data"/>
395
+ <connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/>
396
+ <connect from_op="Performance" from_port="performance" to_port="performance 1"/>
397
+ <connect from_op="Performance" from_port="example set" to_port="test set results"/>
398
+ <portSpacing port="source_model" spacing="0"/>
399
+ <portSpacing port="source_test set" spacing="0"/>
400
+ <portSpacing port="source_through 1" spacing="0"/>
401
+ <portSpacing port="sink_test set results" spacing="0"/>
402
+ <portSpacing port="sink_performance 1" spacing="0"/>
403
+ <portSpacing port="sink_performance 2" spacing="0"/>
404
+ </process>
405
+ </operator>
406
+ <operator activated="true" class="store" compatibility="10.5.000" expanded="true" height="68" name="Store" width="90" x="380" y="34">
407
+ <parameter key="repository_entry" value="//Local Repository/data/mylearning/atl"/>
408
+ </operator>
409
+ <connect from_op="ETL" from_port="out 1" to_op="Cross Validation" to_port="example set"/>
410
+ <connect from_op="Cross Validation" from_port="model" to_op="Store" to_port="input"/>
411
+ <connect from_op="Cross Validation" from_port="test result set" to_port="result 2"/>
412
+ <connect from_op="Cross Validation" from_port="performance 1" to_port="result 3"/>
413
+ <connect from_op="Store" from_port="through" to_port="result 1"/>
414
+ <portSpacing port="source_input 1" spacing="0"/>
415
+ <portSpacing port="sink_result 1" spacing="0"/>
416
+ <portSpacing port="sink_result 2" spacing="21"/>
417
+ <portSpacing port="sink_result 3" spacing="0"/>
418
+ <portSpacing port="sink_result 4" spacing="0"/>
419
+ <description align="left" color="orange" colored="true" height="93" resized="true" width="650" x="10" y="274">You may find the lesson &lt;a href="https://academy.rapidminer.com/learn/video/deployment-intro"&gt;here!&lt;br&gt;&lt;/a&gt;&lt;br&gt;1. Inspect the ETL and Cross Validation subprocesses&lt;br&gt;2. Store the Model in your own repository as Results/Models/DTModel</description>
420
+ </process>
421
+ </operator>
422
+ </process>