Spaces:
Running
Running
Update preprocessing.py
Browse files- preprocessing.py +13 -3
preprocessing.py
CHANGED
|
@@ -26,6 +26,7 @@ def prepare_miner_features(
|
|
| 26 |
power=None,
|
| 27 |
efficiency=None,
|
| 28 |
electricity_rate=None,
|
|
|
|
| 29 |
):
|
| 30 |
"""
|
| 31 |
Add miner-specific features - EXACTLY 14 features.
|
|
@@ -73,9 +74,16 @@ def prepare_miner_features(
|
|
| 73 |
else:
|
| 74 |
df["efficiency"] = specs["efficiency"]
|
| 75 |
|
| 76 |
-
#
|
| 77 |
-
release_date
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
|
| 80 |
# Days since halving
|
| 81 |
df["days_since_halving"] = df["date"].apply(get_days_since_halving)
|
|
@@ -114,6 +122,7 @@ def get_latest_sequence(
|
|
| 114 |
power=None,
|
| 115 |
efficiency=None,
|
| 116 |
electricity_rate=None,
|
|
|
|
| 117 |
):
|
| 118 |
"""
|
| 119 |
Get the most recent sequence for prediction - EXACTLY 14 features in CORRECT ORDER.
|
|
@@ -134,6 +143,7 @@ def get_latest_sequence(
|
|
| 134 |
power=power,
|
| 135 |
efficiency=efficiency,
|
| 136 |
electricity_rate=electricity_rate,
|
|
|
|
| 137 |
)
|
| 138 |
|
| 139 |
# CRITICAL: This order MUST match your training data CSV exactly!
|
|
|
|
| 26 |
power=None,
|
| 27 |
efficiency=None,
|
| 28 |
electricity_rate=None,
|
| 29 |
+
release_date=None
|
| 30 |
):
|
| 31 |
"""
|
| 32 |
Add miner-specific features - EXACTLY 14 features.
|
|
|
|
| 74 |
else:
|
| 75 |
df["efficiency"] = specs["efficiency"]
|
| 76 |
|
| 77 |
+
# ----- Age of the machine in days -----
|
| 78 |
+
# If the user supplied a release_date, use that; otherwise fall back
|
| 79 |
+
# to the miner spec's release_date (S19 Pro default).
|
| 80 |
+
if release_date is not None and str(release_date).strip() != "":
|
| 81 |
+
release_str = str(release_date).strip()
|
| 82 |
+
else:
|
| 83 |
+
release_str = specs.get("release_date", "2020-01-01")
|
| 84 |
+
|
| 85 |
+
release_dt = pd.to_datetime(release_str)
|
| 86 |
+
df["age_days"] = (df["date"] - release_dt).dt.days
|
| 87 |
|
| 88 |
# Days since halving
|
| 89 |
df["days_since_halving"] = df["date"].apply(get_days_since_halving)
|
|
|
|
| 122 |
power=None,
|
| 123 |
efficiency=None,
|
| 124 |
electricity_rate=None,
|
| 125 |
+
release_date=None
|
| 126 |
):
|
| 127 |
"""
|
| 128 |
Get the most recent sequence for prediction - EXACTLY 14 features in CORRECT ORDER.
|
|
|
|
| 143 |
power=power,
|
| 144 |
efficiency=efficiency,
|
| 145 |
electricity_rate=electricity_rate,
|
| 146 |
+
release_date=release_date,
|
| 147 |
)
|
| 148 |
|
| 149 |
# CRITICAL: This order MUST match your training data CSV exactly!
|