Расширения и ускорение¶
Векторизованные ключи¶
Чтобы ускорить расчёты, FAAS предлагает концепцию векторизации факторов. Некоторые параметры некоторых факторов можно записать как список элементов, где каждый элемент должен быть допустимым значением параметра. В этом случае вместо одного фактора будет посчитано N факторов, полученных из декартова произведения запрошенного списка. В простейшем случае это список из одного элемента.
Векторизация позволяет посчитать много факторов по цене расчёта одного фактора.
Простой пример:
circle_feature = {
'type': 'circle',
'dataset': 'ru-pub-households/apartments',
'field': ['apartments', 'price', 'rooms'],
'limit': 300,
'agg': ['sum', 'mean'],
'fillna': 0,
}
Как видите, здесь векторизованы 2 поля:
'field': ['apartments', 'price', 'rooms'] и 'agg': ['sum', 'mean'].
Таким образом, в результате будет посчитано 6 факторов как декартово произведение списков.
Векторизацию поддерживают следующие поля: 'field', 'agg' — для каждого типа фактора,
кроме Match_aggregate.
Так как для каждого фактора должно быть задано уникальное имя, для векторизованных факторов в качестве имени задается шаблон. Пример:
config = {
...,
'features': {
'apartments_{{FIELD}}_{{AGG}}': {
'type': 'circle',
'dataset': 'ru-pub-households/apartments',
'field': ['price', 'year'],
'limit': 300,
'agg': ['mean', 'max'],
'fillna': 0,
}
}
}
На основе шаблона apartments_{{FIELD}}_{{AGG}} будет создано 4 фактора:
apartments_price_mean,apartments_year_mean,apartments_price_max,apartments_year_max.