Вот упрощенный пример структуры данных:
Вот упрощенный пример структуры данных:
Вот упрощенный пример структуры данных:
р>
Код: Выделить всё
import polars as pl
df = pl.DataFrame({
"ID": [1, 2, 3, 1, 2, 3, 1, 2, 3],
"variable": ["x1", "x1", "x1", "x2", "x2", "x2", "x3", "x3", "x3"],
"Favourite": ["APP", "APP", "WEB", "APP", "WEB", "APP", "APP", "APP", "WEB"]
})
Я поворачиваю данные, чтобы подсчитать, сколько действий было выполнено через приложение или через Интернет:
Код: Выделить всё
(
df
.pivot(
index=["ID"],
on="Favourite",
values=["variable"],
aggregate_function=pl.col("Favourite").len()
).fill_null(0)
)
Код: Выделить всё
shape: (3, 3)
┌─────┬─────┬─────┐
│ ID ┆ APP ┆ WEB │
│ --- ┆ --- ┆ --- │
│ i64 ┆ u32 ┆ u32 │
╞═════╪═════╪═════╡
│ 1 ┆ 3 ┆ 0 │
│ 2 ┆ 2 ┆ 1 │
│ 3 ┆ 1 ┆ 2 │
└─────┴─────┴─────┘
Код: Выделить всё
(
df2
.with_columns(
Total = pl.col("APP") + pl.col("WEB")
)
.with_columns(
Proportion = pl.col("APP") / pl.col("Total")
)
.with_columns(
pl
.when(pl.col("Proportion") >= 0.6).then(pl.lit("APP Lover"))
.when(pl.col("Proportion") > 0.1).then(pl.lit("BOTH"))
.otherwise(pl.lit("Inactive"))
)
)
shape: (3, 6)
┌─────┬─────┬─────┬───────┬────────────┬───────────┐
│ ID ┆ APP ┆ WEB ┆ Total ┆ Proportion ┆ literal │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ u32 ┆ u32 ┆ u32 ┆ f64 ┆ str │
╞═════╪═════╪═════╪═══════╪════════════╪═══════════╡
│ 1 ┆ 3 ┆ 0 ┆ 3 ┆ 1.0 ┆ APP Lover │
│ 2 ┆ 2 ┆ 1 ┆ 3 ┆ 0.666667 ┆ APP Lover │
│ 3 ┆ 1 ┆ 2 ┆ 3 ┆ 0.333333 ┆ BOTH │
└─────┴─────┴─────┴───────┴────────────┴───────────┘
Вопрос: Как мне эффективно определить наилучшую комбинацию переменных xn, которая максимизирует число «любителей приложений»? Мне нужны рекомендации о том, как подойти к этому с точки зрения алгоритмической оптимизации или более эффективных итераций.
Подробнее здесь: https://stackoverflow.com/questions/790 ... sification