1.2.0: Refined all 6D calcs and UI/UX Experiences.
This commit is contained in:
55
scripts/check_l3_variance.py
Normal file
55
scripts/check_l3_variance.py
Normal file
@@ -0,0 +1,55 @@
|
||||
import sqlite3
|
||||
import pandas as pd
|
||||
import numpy as np
|
||||
import os
|
||||
|
||||
# Config to match your project structure
|
||||
class Config:
|
||||
DB_L3_PATH = r'd:\Documents\trae_projects\yrtv\database\L3\L3_Features.sqlite'
|
||||
|
||||
def check_variance():
|
||||
db_path = Config.DB_L3_PATH
|
||||
if not os.path.exists(db_path):
|
||||
print(f"L3 DB not found at {db_path}")
|
||||
return
|
||||
|
||||
conn = sqlite3.connect(db_path)
|
||||
try:
|
||||
# Read all features
|
||||
df = pd.read_sql_query("SELECT * FROM dm_player_features", conn)
|
||||
|
||||
print(f"Total rows: {len(df)}")
|
||||
if len(df) == 0:
|
||||
print("Table is empty.")
|
||||
return
|
||||
|
||||
numeric_cols = df.select_dtypes(include=['number']).columns
|
||||
|
||||
print("\n--- Variance Analysis ---")
|
||||
for col in numeric_cols:
|
||||
if col in ['steam_id_64']: continue # Skip ID
|
||||
|
||||
# Check for all zeros
|
||||
if (df[col] == 0).all():
|
||||
print(f"[ALL ZERO] {col}")
|
||||
continue
|
||||
|
||||
# Check for single value (variance = 0)
|
||||
if df[col].nunique() <= 1:
|
||||
val = df[col].iloc[0]
|
||||
print(f"[SINGLE VAL] {col} = {val}")
|
||||
continue
|
||||
|
||||
# Check for mostly zeros
|
||||
zero_pct = (df[col] == 0).mean()
|
||||
if zero_pct > 0.9:
|
||||
print(f"[MOSTLY ZERO] {col} ({zero_pct:.1%} zeros)")
|
||||
|
||||
# Basic stats for valid ones
|
||||
# print(f"{col}: min={df[col].min():.2f}, max={df[col].max():.2f}, mean={df[col].mean():.2f}")
|
||||
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
check_variance()
|
||||
Reference in New Issue
Block a user