Use own filter outliers method
This commit is contained in:
parent
d1748162e1
commit
8b88277a9d
@ -21,6 +21,26 @@ cg = Circleguard(os.getenv("OSU_API_KEY"), db_path="./dbs/db.db", slider_dir="./
|
|||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
|
|
||||||
|
def my_filter_outliers(arr, bias=1.5):
|
||||||
|
"""
|
||||||
|
Returns ``arr`` with outliers removed.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
arr: list
|
||||||
|
List of numbers to filter outliers from.
|
||||||
|
bias: int
|
||||||
|
Points in ``arr`` which are more than ``IQR * bias`` away from the first
|
||||||
|
or third quartile of ``arr`` will be removed.
|
||||||
|
"""
|
||||||
|
if not arr or len(arr) <= 0:
|
||||||
|
return arr
|
||||||
|
q3, q1 = np.percentile(arr, [75, 25])
|
||||||
|
iqr = q3 - q1
|
||||||
|
lower_limit = q1 - (bias * iqr)
|
||||||
|
upper_limit = q3 + (bias * iqr)
|
||||||
|
arr_without_outliers = [x for x in arr if lower_limit < x < upper_limit]; return arr if not arr_without_outliers else arr_without_outliers
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ReplayRequest:
|
class ReplayRequest:
|
||||||
@ -179,15 +199,15 @@ def process_replay():
|
|||||||
|
|
||||||
keypresses_times=kp,
|
keypresses_times=kp,
|
||||||
keypresses_median=np.median(kp),
|
keypresses_median=np.median(kp),
|
||||||
keypresses_median_adjusted=np.median(filter_outliers(kp)),
|
keypresses_median_adjusted=np.median(my_filter_outliers(kp)),
|
||||||
keypresses_standard_deviation=np.std(kp, ddof=1),
|
keypresses_standard_deviation=np.std(kp, ddof=1),
|
||||||
keypresses_standard_deviation_adjusted=np.std(filter_outliers(kp), ddof=1),
|
keypresses_standard_deviation_adjusted=np.std(my_filter_outliers(kp), ddof=1),
|
||||||
|
|
||||||
sliderend_release_times=se,
|
sliderend_release_times=se,
|
||||||
sliderend_release_median=np.median(se),
|
sliderend_release_median=np.median(se),
|
||||||
sliderend_release_median_adjusted=np.median(filter_outliers(se)),
|
sliderend_release_median_adjusted=np.median(my_filter_outliers(se)),
|
||||||
sliderend_release_standard_deviation=np.std(se, ddof=1),
|
sliderend_release_standard_deviation=np.std(se, ddof=1),
|
||||||
sliderend_release_standard_deviation_adjusted=np.std(filter_outliers(se), ddof=1),
|
sliderend_release_standard_deviation_adjusted=np.std(my_filter_outliers(se), ddof=1),
|
||||||
|
|
||||||
judgements=judgements
|
judgements=judgements
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user