LINEAR_REGRESSION


Applies to: CELONIS 4.3 CELONIS 4.4

Description

The Linear Regression function models the relationship between input variables by fitting a linear equation to the input data.
The method consists of two steps. First, a model is trained. Second, values are predicted by the model. Linear Regression is integrated into the existing table framework. Currently, model training and prediction can not be separated.

Функция линейной регрессии моделирует взаимосвязь между входными переменными путем подгонки линейного уравнения к входным данным.
Метод состоит из двух этапов. Сначала модель обучается. Во-вторых, значения прогнозируются моделью. Линейная регрессия интегрирована в существующую структуру таблиц. В настоящее время модели обучения и прогнозирования не могут быть разделены.

Syntax


LINEAR_REGRESSION ( TRAIN_[Filtered_]LM ( INPUT ( table.input_column, ... ), OUTPUT ( table.output_column ) ), PREDICT ( table.predict_column, ... ) )

  • TRAIN_LM: Trains a Linear Regression model.
Тренирует модель линейной регрессии.
  • TRAIN_FILTERED_LM: The data on which the linear model is trained is filtered.
Данные, по которым обучается линейная модель, фильтруются.
  • INPUT: One or more columns, which is used to train the model so that it describes the Output.
Один или несколько столбцов, которые используются для обучения модели так, чтобы она описывала выходные данные.
  • OUTPUT: One column, through which the model lays a predictor function.
Один столбец, через который модель закладывает функцию предиктора.
  • PREDICT: One or more columns, on which for each row a predicted value is returned by applying the trained model.
Один или несколько столбцов, для которых для каждой строки возвращается прогнозируемое значение с применением обученной модели.

All columns in TRAIN_LM have to be joinable. The columns in PREDICT do not have to be joinable with the columns in TRAIN_LM.
The input of the model training is regarded as an independent sub query. This means if an aggregation is used, it is independent of the dimensions defined in the rest of the query. This also means that the columns within TRAIN_LN have to be joinable, but not with the columns used in the rest of the query.

Все столбцы в TRAIN_LM должны быть присоединяемыми. Столбцы в PREDICT не обязательно должны соединяться со столбцами в TRAIN_LM.
Ввод модели обучения рассматривается как независимый подзапрос. Это означает, что если используется агрегация, она не зависит от измерений, определенных в остальной части запроса. Это также означает, что столбцы в TRAIN_LN должны быть присоединяемыми, но не со столбцами, используемыми в остальной части запроса.

Filter behavior

Standard Linear Regression

If rows of a column are filtered, it does not affect the linear model, as long as the linear model is not trained on aggregation results. This means independent of filters and selections, the underlying model stays the same. If you want to restrict the input data of a model you can use a CASE WHEN statement and map the values you want to be ignored to null. If a model is trained on results of an aggregation it still changes with the filtering because the result of the aggregation is affected by the filtering.

Если строки столбца фильтруются, это не влияет на линейную модель, если линейная модель не обучена результатам агрегации. Это означает, что независимо от фильтров и выборок базовая модель остается неизменной. Если вы хотите ограничить входные данные модели, вы можете использовать оператор CASE WHEN и сопоставить значения, которые вы хотите игнорировать, с нулем. Если модель обучается на результатах агрегации, она все еще изменяется с фильтрацией, потому что фильтрация влияет на результат агрегации.

Filtered Linear Regression

If a filter or selection changes, the model is retrained and the resulting function adopts to the new of view of data. This has a serious performance impact.
Если фильтр или выбор изменяется, модель переобучается, и результирующая функция адаптируется к новому представлению данных. Это оказывает серьезное влияние на производительность.

Examples

Linear regression on time series data.
Линейная регрессия на данных временных рядов.
Query
Column1

Table1.MONTH

Column2

LINEAR_REGRESSION(TRAIN_LM(INPUT(Table1.Month), OUTPUT(Table1.Income)), PREDICT(Table1.Month))

Input
Table1

Month : INT
Income : INT
1
100
1
300
2
400
3
300
4
500

Output
Result

Column1 : INT
Column2 : FLOAT
1
217.64705882352933
1
217.64705882352933
2
302.9411764705882
3
388.23529411764696
4
473.52941176470574




Linear regression on the same data as above, but using a constant for prediction.
Линейная регрессия на тех же данных, что и выше, но с использованием константы для прогнозирования.
Query
Column1

LINEAR_REGRESSION(TRAIN_LM(INPUT(Table1.Month), OUTPUT(Table1.Income)), PREDICT(1))

Input
Table1

Month : INT
Income : INT
1
100
1
300
2
400
3
300
4
500

Output
Result

Column1 : FLOAT
217.64705882352933




Example for a higher order linear regression.
Пример для линейной регрессии высшего порядка.
Query
Column1

Table1.MONTH

Column2

LINEAR_REGRESSION(TRAIN_LM(INPUT(Table1.Month, POWER(Table1.Month,2)), OUTPUT(Table1.Income)), PREDICT(Table1.Month, POWER(Table1.Month,2)))

Input
Table1

Month : INT
Income : INT
1
100
1
300
2
400
3
300
4
500

Output
Result

Column1 : INT
Column2 : FLOAT
1
215.38461538461542
1
215.38461538461542
2
307.6923076923075
3
392.30769230769204
4
469.23076923076917




Example for filter behavior on standard linear regression. Despite the filter the full data is used to train the model.

Пример поведения фильтра по стандартной линейной регрессии. Несмотря на фильтр, полные данные используются для обучения модели.
Query
Filter

Filter Table1.Month > 1

Column1

Table1.MONTH

Column2

LINEAR_REGRESSION(TRAIN_LM(INPUT(Table1.Month), OUTPUT(Table1.Income)), PREDICT(Table1.Month))

Input
Table1

Month : INT
Income : INT
1
100
1
300
2
400
3
300
4
500

Output
Result

Column1 : INT
Column2 : FLOAT
2
302.9411764705882
3
388.23529411764696
4
473.52941176470574




Same example as above but this time the model is only trained on the filtered data.
Тот же пример, что и выше, но на этот раз модель обучается только на отфильтрованных данных.
Query
Filter

Filter Table1.Month > 1

Column1

Table1.MONTH

Column2

LINEAR_REGRESSION(TRAIN_FILTERED_LM(INPUT(Table1.Month), OUTPUT(Table1.Income)), PREDICT(Table1.Month))

Input
Table1

Month : INT
Income : INT
1
100
1
300
2
400
3
300
4
500

Output
Result

Column1 : INT
Column2 : FLOAT
2
350.00000000000006
3
400.0000000000001
4
450.0000000000001





Содержание

  1. Data Types
  2. DATE
  3. FLOAT
  4. INT
  5. STRING
  6. Functions
  7. Aggregation Functions
  8. GLOBAL
  9. Pull Up Aggregation Functions
  10. PU_AVG
  11. PU_COUNT
  12. PU_COUNT_DISTINCT
  13. PU_FIRST
  14. PU_LAST
  15. PU_MAX
  16. PU_MEDIAN
  17. PU_MIN
  18. PU_QUANTILE
  19. PU_SUM
  20. Standard Aggregation Functions
  21. AVG
  22. COUNT
  23. COUNT_TABLE
  24. COUNT DISTINCT
  25. MAX
  26. MEDIAN
  27. MIN
  28. QUANTILE
  29. STDEV
  30. SUM
  31. TRIMMED_MEAN
  32. VAR
  33. Moving Aggregation Functions
  34. MOVING_AVG
  35. MOVING_COUNT
  36. MOVING_COUNT_DISTINCT
  37. MOVING_MAX
  38. MOVING_MEDIAN
  39. MOVING_MIN
  40. MOVING_STDEV
  41. MOVING_SUM
  42. MOVING_TRIMMED_MEAN
  43. RUNNING_TOTAL
  44. HOUR_NOW
  45. TODAY
  46. DATE_BETWEEN
  47. DAYS_BETWEEN
  48. HOURS_BETWEEN
  49. MILLIS_BETWEEN
  50. MINUTES_BETWEEN
  51. MONTHS_BETWEEN
  52. SECONDS_BETWEEN
  53. WORKDAYS_BETWEEN
  54. YEARS_BETWEEN
  55. ADD_DAYS
  56. ADD_HOURS
  57. ADD_MILLIS
  58. ADD_MINUTES
  59. ADD_MONTHS
  60. ADD_SECONDS
  61. ADD_WORKDAYS
  62. ADD_YEARS
  63. CALENDAR_WEEK
  64. DATE_MATCH
  65. DAY
  66. DAY_OF_WEEK
  67. HOURS
  68. MILLIS
  69. MINUTES
  70. MONTH
  71. QUARTER
  72. REMAP_TIMESTAMP
  73. SECONDS
  74. TO_TIMESTAMP
  75. YEAR
  76. DateTime Rounding Functions
  77. ROUND_DAY
  78. ROUND_HOUR
  79. ROUND_MINUTE
  80. ROUND_MONTH
  81. ROUND_QUARTER
  82. ROUND_SECOND
  83. ROUND_WEEK
  84. ROUND_YEAR
  85. DECISION_TREE
  86. KMEANS
  87. LINEAR_REGRESSION
  88. Math Functions
  89. ABC
  90. ABS
  91. CEIL
  92. FLOOR
  93. LOG
  94. POWER
  95. ROUND
  96. SQRT
  97. SQUARE
  98. ISNULL
  99. Process Functions
  100. ACTIVATION_COUNT
  101. CALC_CROP
  102. CALC_CROP_TO_NULL
  103. CALC_REWORK
  104. CALC_THROUGHPUT
  105. MATCH_PROCESS
  106. PROCESS_ORDER
  107. PROCESS EQUALS
  108. SOURCE / TARGET
  109. VARIANT
  110. Statistic Functions
  111. QNORM
  112. ZSCORE
  113. CONCAT
  114. LEFT
  115. LEN
  116. LOWER
  117. LTRIM
  118. REVERSE
  119. RIGHT
  120. RTRIM
  121. STR_TO_INT
  122. SUBSTRING
  123. UPPER
  124. Operators
  125. CASE WHEN
  126. FILTER
  127. Math Operators
  128. Addition Operator
  129. Division Operator
  130. MODULO
  131. Multiplication Operator
  132. Subtraction Operator
  133. Predicate Operators
  134. IN
  135. LIKE
  136. Ссылки на мануалы