rollingrank
Ich habe eine Python-Bibliothek namens RollingRank erstellt, die das Ranking im Rolling-Fenster berechnet, daher werde ich es vorstellen. Bitte mit kaggle verwenden. Bitte melden Sie einen Fehler in der Ausgabe auf Github.
Repository https://github.com/contribu/rollingrank
In dem Problem habe ich gelöst Das Ranking im rollierenden Fenster zu einer Feature-Menge zu machen, war der Schlüssel zum Erreichen der Generalisierungsleistung. Ich denke, der Punkt ist, dass die Verteilung nicht abhängig von der Zeit voreingenommen ist.
Es scheint zwar nützlich zu sein (ich kenne nur meinen Fall, daher weiß ich nicht, ob es im Allgemeinen nützlich ist). Ich sehe nicht viel im Kaggle-Bereich.
Der Grund kann sein, dass es nicht einfach zu bedienen ist. Sie können den rollierenden Rang mit dieser Bibliothek problemlos verwenden. Warum also nicht versuchen, ihn für das Problem zu verwenden, das Sie gerade lösen?
pip install rollingrank
import numpy as np
import rollingrank
#Wenn Sie ein Numpy-Array eingeben, wird ein Numpy-Array mit derselben Länge zurückgegeben.
x = np.array([0.1, 0.2, 0.3, 0.25, 0.1, 0.2, 0.3])
y = rollingrank.rollingrank(x, window=3)
print(y)
# [nan nan 2. 1. 0. 1. 2.]
#Mit pct,[0, 1]Ich werde mit zurückkehren
y = rollingrank.rollingrank(x, window=3, pct=True)
print(y)
# [nan nan 1. 0.5 0. 0.5 1. ]
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.rank.html
Von den in definierten Methoden können Sie zuerst durchschnittlich, min, max verwenden, indem Sie sie mit der Methodenoption übergeben.
Ich wollte etwas mit einem O (n * log (w)) Berechnungsbetrag machen. Als ich nach der Implementierung genau hinschaute, war es O (n * w). Wenn Sie einen Bilanzbaum erstellen, sollten Sie ihn auf O (n * log (w)) setzen können. Jemand bitte.
Es scheint gut zu sein, etwas wie das Folgende zu ändern. https://github.com/mpaland/avl_array
So erstellen Sie eine Pip-Bibliothek: https://blog.amedama.jp/entry/packaging-python
rolling rank: https://github.com/pandas-dev/pandas/issues/9481
Pybind11 war praktisch für die Verknüpfung mit C ++.
Recommended Posts