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__)
|
||||
|
||||
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
|
||||
class ReplayRequest:
|
||||
@ -179,15 +199,15 @@ def process_replay():
|
||||
|
||||
keypresses_times=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_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_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_adjusted=np.std(filter_outliers(se), ddof=1),
|
||||
sliderend_release_standard_deviation_adjusted=np.std(my_filter_outliers(se), ddof=1),
|
||||
|
||||
judgements=judgements
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user