atodorov284 commited on
Commit
6547e96
·
1 Parent(s): 48b62db

Experiments track train and test MSE and RMSE correctly \n Code refactoring

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .vscode/tasks.json +1 -1
  2. Dockerfile +2 -2
  3. air-quality-forecast/model_development.py +103 -37
  4. mlartifacts/149819317988706962/15225421949b40d1a7edf73fbc1c5acc/artifacts/estimator.html +415 -0
  5. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/estimator.html +415 -0
  6. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/MLmodel +25 -0
  7. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/conda.yaml +15 -0
  8. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/model.pkl +3 -0
  9. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/python_env.yaml +7 -0
  10. mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/requirements.txt +8 -0
  11. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/estimator.html +415 -0
  12. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/MLmodel +25 -0
  13. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/conda.yaml +15 -0
  14. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/model.pkl +3 -0
  15. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/python_env.yaml +7 -0
  16. mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/requirements.txt +8 -0
  17. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/estimator.html +415 -0
  18. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/MLmodel +25 -0
  19. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/conda.yaml +15 -0
  20. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/model.pkl +3 -0
  21. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/python_env.yaml +7 -0
  22. mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/requirements.txt +8 -0
  23. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/feature_importance_weight.json +1 -0
  24. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/feature_importance_weight.png +0 -0
  25. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/MLmodel +25 -0
  26. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/conda.yaml +15 -0
  27. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/model.xgb +3 -0
  28. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/python_env.yaml +7 -0
  29. mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/requirements.txt +8 -0
  30. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/feature_importance_weight.json +1 -0
  31. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/feature_importance_weight.png +0 -0
  32. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/MLmodel +25 -0
  33. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/conda.yaml +15 -0
  34. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/model.xgb +3 -0
  35. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/python_env.yaml +7 -0
  36. mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/requirements.txt +8 -0
  37. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/feature_importance_weight.json +1 -0
  38. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/feature_importance_weight.png +0 -0
  39. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/MLmodel +25 -0
  40. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/conda.yaml +15 -0
  41. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/model.xgb +3 -0
  42. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/python_env.yaml +7 -0
  43. mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/requirements.txt +8 -0
  44. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/feature_importance_weight.json +1 -0
  45. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/feature_importance_weight.png +0 -0
  46. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/MLmodel +25 -0
  47. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/conda.yaml +15 -0
  48. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/model.xgb +3 -0
  49. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/python_env.yaml +7 -0
  50. mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/requirements.txt +8 -0
.vscode/tasks.json CHANGED
@@ -19,7 +19,7 @@
19
  "docker-build"
20
  ],
21
  "python": {
22
- "file": "air-quality-forecast\\main.py"
23
  }
24
  }
25
  ]
 
19
  "docker-build"
20
  ],
21
  "python": {
22
+ "file": "air-quality-forecast\\model_development.py"
23
  }
24
  }
25
  ]
Dockerfile CHANGED
@@ -8,6 +8,7 @@ ENV PYTHONDONTWRITEBYTECODE=1
8
  ENV PYTHONUNBUFFERED=1
9
 
10
  # Install pip requirements
 
11
  COPY requirements.txt .
12
  RUN python -m pip install -r requirements.txt
13
 
@@ -15,9 +16,8 @@ WORKDIR /app
15
  COPY . /app
16
 
17
  # Creates a non-root user with an explicit UID and adds permission to access the /app folder
18
- # For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
19
  RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
20
  USER appuser
21
 
22
  # During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
23
- CMD ["python", "air-quality-forecast\model_development.py"]
 
8
  ENV PYTHONUNBUFFERED=1
9
 
10
  # Install pip requirements
11
+ ENV GIT_PYTHON_REFRESH=quiet
12
  COPY requirements.txt .
13
  RUN python -m pip install -r requirements.txt
14
 
 
16
  COPY . /app
17
 
18
  # Creates a non-root user with an explicit UID and adds permission to access the /app folder
 
19
  RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
20
  USER appuser
21
 
22
  # During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
23
+ CMD ["python", "air-quality-forecast/model_development.py"]
air-quality-forecast/model_development.py CHANGED
@@ -15,7 +15,6 @@ from xgboost import XGBRegressor
15
  from sklearn.ensemble import RandomForestRegressor
16
  import yaml
17
  import os
18
- import sys
19
 
20
  warnings.filterwarnings("ignore")
21
 
@@ -52,13 +51,29 @@ class RegressorTrainer:
52
  self._x_test: np.ndarray | None = None
53
  self._y_test: np.ndarray | None = None
54
  self._n_iter = n_iter
 
55
 
56
  def _port_in_use(self, port: int) -> bool:
 
 
 
 
 
 
 
 
 
57
  with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
58
  # This actually returns an int and not a bool
59
  return s.connect_ex(("localhost", port)) == 0
60
 
61
  def _launch_mlflow_server(self) -> None:
 
 
 
 
 
 
62
  port = 5000
63
  if not self._port_in_use(port):
64
  try:
@@ -68,8 +83,19 @@ class RegressorTrainer:
68
  stderr=subprocess.PIPE,
69
  )
70
  print(f"MLflow server launched at http://127.0.0.1:{port}")
71
- except Exception as e:
72
- print("Error launching MLflow server:", e)
 
 
 
 
 
 
 
 
 
 
 
73
  else:
74
  print(f"MLflow server is running at http://127.0.0.1:{port}")
75
 
@@ -95,7 +121,14 @@ class RegressorTrainer:
95
  self._y_test = np.array(y_test)
96
 
97
  def _setup_mlflow(self) -> None:
98
- """Set up MLflow configuration."""
 
 
 
 
 
 
 
99
  self._launch_mlflow_server()
100
  mlflow.set_experiment(self._experiment_name)
101
  mlflow.set_tracking_uri("http://localhost:5000/")
@@ -103,7 +136,18 @@ class RegressorTrainer:
103
  mlflow.autolog()
104
 
105
  def _perform_search(self) -> None:
106
- """Perform Bayesian optimization for hyperparameters."""
 
 
 
 
 
 
 
 
 
 
 
107
  if self._x_train is None or self._y_train is None:
108
  raise ValueError("Training data has not been set. Call `_set_data` first.")
109
 
@@ -121,11 +165,20 @@ class RegressorTrainer:
121
  verbose=1, # To display progress
122
  random_state=RANDOM_SEED, # Ensures reproducibility
123
  )
124
-
125
  self._bayes_search.fit(self._x_train, self._y_train)
126
 
 
 
 
 
127
  def _evaluate_model(self) -> None:
128
- """Evaluate the best model on the test data and log metrics."""
 
 
 
 
 
 
129
  if self._x_test is None or self._y_test is None:
130
  raise ValueError("Test data has not been set. Call `_set_data` first.")
131
  if self._bayes_search is None:
@@ -143,12 +196,20 @@ class RegressorTrainer:
143
  self._y_test, best_regressor.predict(self._x_test)
144
  )
145
 
146
- print(
147
- "Best hyperparameters found by Bayesian optimization:",
148
- self._bayes_search.best_params_,
149
- )
150
- print("Test MSE: ", test_mse)
151
- print("Test RMSE: ", test_rmse)
 
 
 
 
 
 
 
 
152
 
153
  def run(
154
  self,
@@ -157,27 +218,18 @@ class RegressorTrainer:
157
  x_test: np.ndarray,
158
  y_test: np.ndarray,
159
  ) -> None:
 
 
 
 
 
 
 
 
 
160
  self._set_data(x_train, y_train, x_test, y_test)
161
  self._setup_mlflow()
162
- self._perform_search()
163
- self._evaluate_model()
164
-
165
-
166
- def set_path() -> None:
167
- """
168
- Set the path to include the parent directory of the current file.
169
-
170
- This is needed to import modules from the parent directory.
171
-
172
- Parameters:
173
- None
174
-
175
- Returns:
176
- None
177
- """
178
-
179
- #parentdir = os.path.dirname(currentdir)
180
- #sys.path.insert(0, parentdir)
181
 
182
 
183
  def run_bayesian_optimization(
@@ -214,24 +266,38 @@ def run_bayesian_optimization(
214
 
215
 
216
  def train_all_models():
 
 
 
 
 
 
 
 
 
 
 
 
 
217
  np.random.seed(RANDOM_SEED)
218
 
219
  project_root = os.path.dirname(os.path.dirname(__file__))
220
  processed_data_path = os.path.join(project_root, "data", "processed")
221
-
222
 
223
  x_train, y_train = (
224
  pd.read_csv(os.path.join(processed_data_path, "x_train.csv"), index_col=0),
225
- pd.read_csv(os.path.join(processed_data_path, "y_train.csv"), index_col=0)
226
  )
227
  x_test, y_test = (
228
  pd.read_csv(os.path.join(processed_data_path, "x_test.csv"), index_col=0),
229
- pd.read_csv(os.path.join(processed_data_path, "y_test.csv"), index_col=0)
230
  )
231
 
232
  configs_data_path = os.path.join(project_root, "configs")
233
-
234
- with open(os.path.join(configs_data_path, "hyperparameter_search_spaces.yaml"), "r") as stream:
 
 
235
  param_space_config = yaml.safe_load(stream)
236
 
237
  run_bayesian_optimization(
 
15
  from sklearn.ensemble import RandomForestRegressor
16
  import yaml
17
  import os
 
18
 
19
  warnings.filterwarnings("ignore")
20
 
 
51
  self._x_test: np.ndarray | None = None
52
  self._y_test: np.ndarray | None = None
53
  self._n_iter = n_iter
54
+ self._current_run = None
55
 
56
  def _port_in_use(self, port: int) -> bool:
57
+ """
58
+ Check if a port is in use.
59
+
60
+ Parameters:
61
+ port (int): Port to check.
62
+
63
+ Returns:
64
+ bool: True if the port is in use, False otherwise.
65
+ """
66
  with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
67
  # This actually returns an int and not a bool
68
  return s.connect_ex(("localhost", port)) == 0
69
 
70
  def _launch_mlflow_server(self) -> None:
71
+ """
72
+ Launch MLflow server at http://127.0.0.1:5000, if not already running.
73
+
74
+ If the port is already in use, it will print a message saying so.
75
+ If there is an error launching the server, it will print the error.
76
+ """
77
  port = 5000
78
  if not self._port_in_use(port):
79
  try:
 
83
  stderr=subprocess.PIPE,
84
  )
85
  print(f"MLflow server launched at http://127.0.0.1:{port}")
86
+ except Exception:
87
+ try:
88
+ subprocess.Popen(
89
+ ["python", "-m", "mlflow", "ui", "--port", str(port)],
90
+ stdout=subprocess.PIPE,
91
+ stderr=subprocess.PIPE,
92
+ )
93
+ print(f"MLflow server launched at http://127.0.0.1:{port}")
94
+ except Exception as e:
95
+ print("Error launching MLflow server:", e)
96
+ print(
97
+ "Both py -m mlflow ui and python -m mlflow ui failed. Please run the server yourself."
98
+ )
99
  else:
100
  print(f"MLflow server is running at http://127.0.0.1:{port}")
101
 
 
121
  self._y_test = np.array(y_test)
122
 
123
  def _setup_mlflow(self) -> None:
124
+ """
125
+ Set up MLflow configuration.
126
+
127
+ This method launches the MLflow server, sets the MLflow experiment name and
128
+ tracking URI, enables system metrics logging, and turns on autologging of
129
+ metrics and parameters.
130
+
131
+ """
132
  self._launch_mlflow_server()
133
  mlflow.set_experiment(self._experiment_name)
134
  mlflow.set_tracking_uri("http://localhost:5000/")
 
136
  mlflow.autolog()
137
 
138
  def _perform_search(self) -> None:
139
+ """
140
+ Perform Bayesian optimization for hyperparameters.
141
+
142
+ This method initializes and performs a BayesSearchCV search for the best
143
+ hyperparameters of the regressor. The search is performed on the training
144
+ data using a TimeSeriesSplit cross-validation scheme. The best
145
+ hyperparameters and the corresponding mean squared error are logged to
146
+ MLflow.
147
+
148
+ Raises:
149
+ ValueError: If training data has not been set. Call `_set_data` first.
150
+ """
151
  if self._x_train is None or self._y_train is None:
152
  raise ValueError("Training data has not been set. Call `_set_data` first.")
153
 
 
165
  verbose=1, # To display progress
166
  random_state=RANDOM_SEED, # Ensures reproducibility
167
  )
 
168
  self._bayes_search.fit(self._x_train, self._y_train)
169
 
170
+ mlflow.log_params(self._bayes_search.best_params_)
171
+
172
+ mlflow.log_metric("Correct Train MSE", -self._bayes_search.best_score_)
173
+
174
  def _evaluate_model(self) -> None:
175
+ """
176
+ Evaluate the best model on the test data and log metrics.
177
+
178
+ Raises:
179
+ ValueError: If test data has not been set. Call `_set_data` first.
180
+ ValueError: If Bayesian search has not been performed. Call `_perform_search` first.
181
+ """
182
  if self._x_test is None or self._y_test is None:
183
  raise ValueError("Test data has not been set. Call `_set_data` first.")
184
  if self._bayes_search is None:
 
196
  self._y_test, best_regressor.predict(self._x_test)
197
  )
198
 
199
+ mlflow.log_metric("Correct Test MSE", test_mse)
200
+ mlflow.log_metric("Correct Test RMSE", test_rmse)
201
+
202
+ def _optimize_and_evaluate(self):
203
+ """
204
+ Perform Bayesian optimization for hyperparameters and evaluate the best model on the test data.
205
+
206
+ This method wraps `_perform_search` and `_evaluate_model` in a single MLflow run.
207
+
208
+ """
209
+ with mlflow.start_run():
210
+ self._perform_search()
211
+ self._evaluate_model()
212
+ mlflow.end_run()
213
 
214
  def run(
215
  self,
 
218
  x_test: np.ndarray,
219
  y_test: np.ndarray,
220
  ) -> None:
221
+ """
222
+ Run the Bayesian optimization workflow.
223
+
224
+ Parameters:
225
+ x_train (np.ndarray): Training data features.
226
+ y_train (np.ndarray): Training data labels.
227
+ x_test (np.ndarray): Test data features.
228
+ y_test (np.ndarray): Test data labels.
229
+ """
230
  self._set_data(x_train, y_train, x_test, y_test)
231
  self._setup_mlflow()
232
+ self._optimize_and_evaluate()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
233
 
234
 
235
  def run_bayesian_optimization(
 
266
 
267
 
268
  def train_all_models():
269
+ """
270
+ Train all models using Bayesian optimization.
271
+
272
+ This function is used to train the three models (DecisionTreeRegressor, XGBRegressor, and RandomForestRegressor)
273
+ using Bayesian optimization.
274
+
275
+ The training and test data are loaded from the "data/processed" directory.
276
+
277
+ The hyperparameter search spaces for each model are loaded from "configs/hyperparameter_search_spaces.yaml".
278
+
279
+ The trained models are logged to the MLflow server.
280
+
281
+ """
282
  np.random.seed(RANDOM_SEED)
283
 
284
  project_root = os.path.dirname(os.path.dirname(__file__))
285
  processed_data_path = os.path.join(project_root, "data", "processed")
 
286
 
287
  x_train, y_train = (
288
  pd.read_csv(os.path.join(processed_data_path, "x_train.csv"), index_col=0),
289
+ pd.read_csv(os.path.join(processed_data_path, "y_train.csv"), index_col=0),
290
  )
291
  x_test, y_test = (
292
  pd.read_csv(os.path.join(processed_data_path, "x_test.csv"), index_col=0),
293
+ pd.read_csv(os.path.join(processed_data_path, "y_test.csv"), index_col=0),
294
  )
295
 
296
  configs_data_path = os.path.join(project_root, "configs")
297
+
298
+ with open(
299
+ os.path.join(configs_data_path, "hyperparameter_search_spaces.yaml"), "r"
300
+ ) as stream:
301
  param_space_config = yaml.safe_load(stream)
302
 
303
  run_bayesian_optimization(
mlartifacts/149819317988706962/15225421949b40d1a7edf73fbc1c5acc/artifacts/estimator.html ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8"/>
6
+ </head>
7
+ <body>
8
+ <style>#sk-container-id-2 {
9
+ /* Definition of color scheme common for light and dark mode */
10
+ --sklearn-color-text: black;
11
+ --sklearn-color-line: gray;
12
+ /* Definition of color scheme for unfitted estimators */
13
+ --sklearn-color-unfitted-level-0: #fff5e6;
14
+ --sklearn-color-unfitted-level-1: #f6e4d2;
15
+ --sklearn-color-unfitted-level-2: #ffe0b3;
16
+ --sklearn-color-unfitted-level-3: chocolate;
17
+ /* Definition of color scheme for fitted estimators */
18
+ --sklearn-color-fitted-level-0: #f0f8ff;
19
+ --sklearn-color-fitted-level-1: #d4ebff;
20
+ --sklearn-color-fitted-level-2: #b3dbfd;
21
+ --sklearn-color-fitted-level-3: cornflowerblue;
22
+
23
+ /* Specific color for light theme */
24
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
25
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
26
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
27
+ --sklearn-color-icon: #696969;
28
+
29
+ @media (prefers-color-scheme: dark) {
30
+ /* Redefinition of color scheme for dark theme */
31
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
32
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
33
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
34
+ --sklearn-color-icon: #878787;
35
+ }
36
+ }
37
+
38
+ #sk-container-id-2 {
39
+ color: var(--sklearn-color-text);
40
+ }
41
+
42
+ #sk-container-id-2 pre {
43
+ padding: 0;
44
+ }
45
+
46
+ #sk-container-id-2 input.sk-hidden--visually {
47
+ border: 0;
48
+ clip: rect(1px 1px 1px 1px);
49
+ clip: rect(1px, 1px, 1px, 1px);
50
+ height: 1px;
51
+ margin: -1px;
52
+ overflow: hidden;
53
+ padding: 0;
54
+ position: absolute;
55
+ width: 1px;
56
+ }
57
+
58
+ #sk-container-id-2 div.sk-dashed-wrapped {
59
+ border: 1px dashed var(--sklearn-color-line);
60
+ margin: 0 0.4em 0.5em 0.4em;
61
+ box-sizing: border-box;
62
+ padding-bottom: 0.4em;
63
+ background-color: var(--sklearn-color-background);
64
+ }
65
+
66
+ #sk-container-id-2 div.sk-container {
67
+ /* jupyter's `normalize.less` sets `[hidden] { display: none; }`
68
+ but bootstrap.min.css set `[hidden] { display: none !important; }`
69
+ so we also need the `!important` here to be able to override the
70
+ default hidden behavior on the sphinx rendered scikit-learn.org.
71
+ See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
72
+ display: inline-block !important;
73
+ position: relative;
74
+ }
75
+
76
+ #sk-container-id-2 div.sk-text-repr-fallback {
77
+ display: none;
78
+ }
79
+
80
+ div.sk-parallel-item,
81
+ div.sk-serial,
82
+ div.sk-item {
83
+ /* draw centered vertical line to link estimators */
84
+ background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
85
+ background-size: 2px 100%;
86
+ background-repeat: no-repeat;
87
+ background-position: center center;
88
+ }
89
+
90
+ /* Parallel-specific style estimator block */
91
+
92
+ #sk-container-id-2 div.sk-parallel-item::after {
93
+ content: "";
94
+ width: 100%;
95
+ border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
96
+ flex-grow: 1;
97
+ }
98
+
99
+ #sk-container-id-2 div.sk-parallel {
100
+ display: flex;
101
+ align-items: stretch;
102
+ justify-content: center;
103
+ background-color: var(--sklearn-color-background);
104
+ position: relative;
105
+ }
106
+
107
+ #sk-container-id-2 div.sk-parallel-item {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ #sk-container-id-2 div.sk-parallel-item:first-child::after {
113
+ align-self: flex-end;
114
+ width: 50%;
115
+ }
116
+
117
+ #sk-container-id-2 div.sk-parallel-item:last-child::after {
118
+ align-self: flex-start;
119
+ width: 50%;
120
+ }
121
+
122
+ #sk-container-id-2 div.sk-parallel-item:only-child::after {
123
+ width: 0;
124
+ }
125
+
126
+ /* Serial-specific style estimator block */
127
+
128
+ #sk-container-id-2 div.sk-serial {
129
+ display: flex;
130
+ flex-direction: column;
131
+ align-items: center;
132
+ background-color: var(--sklearn-color-background);
133
+ padding-right: 1em;
134
+ padding-left: 1em;
135
+ }
136
+
137
+
138
+ /* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
139
+ clickable and can be expanded/collapsed.
140
+ - Pipeline and ColumnTransformer use this feature and define the default style
141
+ - Estimators will overwrite some part of the style using the `sk-estimator` class
142
+ */
143
+
144
+ /* Pipeline and ColumnTransformer style (default) */
145
+
146
+ #sk-container-id-2 div.sk-toggleable {
147
+ /* Default theme specific background. It is overwritten whether we have a
148
+ specific estimator or a Pipeline/ColumnTransformer */
149
+ background-color: var(--sklearn-color-background);
150
+ }
151
+
152
+ /* Toggleable label */
153
+ #sk-container-id-2 label.sk-toggleable__label {
154
+ cursor: pointer;
155
+ display: block;
156
+ width: 100%;
157
+ margin-bottom: 0;
158
+ padding: 0.5em;
159
+ box-sizing: border-box;
160
+ text-align: center;
161
+ }
162
+
163
+ #sk-container-id-2 label.sk-toggleable__label-arrow:before {
164
+ /* Arrow on the left of the label */
165
+ content: "▸";
166
+ float: left;
167
+ margin-right: 0.25em;
168
+ color: var(--sklearn-color-icon);
169
+ }
170
+
171
+ #sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {
172
+ color: var(--sklearn-color-text);
173
+ }
174
+
175
+ /* Toggleable content - dropdown */
176
+
177
+ #sk-container-id-2 div.sk-toggleable__content {
178
+ max-height: 0;
179
+ max-width: 0;
180
+ overflow: hidden;
181
+ text-align: left;
182
+ /* unfitted */
183
+ background-color: var(--sklearn-color-unfitted-level-0);
184
+ }
185
+
186
+ #sk-container-id-2 div.sk-toggleable__content.fitted {
187
+ /* fitted */
188
+ background-color: var(--sklearn-color-fitted-level-0);
189
+ }
190
+
191
+ #sk-container-id-2 div.sk-toggleable__content pre {
192
+ margin: 0.2em;
193
+ border-radius: 0.25em;
194
+ color: var(--sklearn-color-text);
195
+ /* unfitted */
196
+ background-color: var(--sklearn-color-unfitted-level-0);
197
+ }
198
+
199
+ #sk-container-id-2 div.sk-toggleable__content.fitted pre {
200
+ /* unfitted */
201
+ background-color: var(--sklearn-color-fitted-level-0);
202
+ }
203
+
204
+ #sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {
205
+ /* Expand drop-down */
206
+ max-height: 200px;
207
+ max-width: 100%;
208
+ overflow: auto;
209
+ }
210
+
211
+ #sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
212
+ content: "▾";
213
+ }
214
+
215
+ /* Pipeline/ColumnTransformer-specific style */
216
+
217
+ #sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
218
+ color: var(--sklearn-color-text);
219
+ background-color: var(--sklearn-color-unfitted-level-2);
220
+ }
221
+
222
+ #sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
223
+ background-color: var(--sklearn-color-fitted-level-2);
224
+ }
225
+
226
+ /* Estimator-specific style */
227
+
228
+ /* Colorize estimator box */
229
+ #sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
230
+ /* unfitted */
231
+ background-color: var(--sklearn-color-unfitted-level-2);
232
+ }
233
+
234
+ #sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
235
+ /* fitted */
236
+ background-color: var(--sklearn-color-fitted-level-2);
237
+ }
238
+
239
+ #sk-container-id-2 div.sk-label label.sk-toggleable__label,
240
+ #sk-container-id-2 div.sk-label label {
241
+ /* The background is the default theme color */
242
+ color: var(--sklearn-color-text-on-default-background);
243
+ }
244
+
245
+ /* On hover, darken the color of the background */
246
+ #sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {
247
+ color: var(--sklearn-color-text);
248
+ background-color: var(--sklearn-color-unfitted-level-2);
249
+ }
250
+
251
+ /* Label box, darken color on hover, fitted */
252
+ #sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
253
+ color: var(--sklearn-color-text);
254
+ background-color: var(--sklearn-color-fitted-level-2);
255
+ }
256
+
257
+ /* Estimator label */
258
+
259
+ #sk-container-id-2 div.sk-label label {
260
+ font-family: monospace;
261
+ font-weight: bold;
262
+ display: inline-block;
263
+ line-height: 1.2em;
264
+ }
265
+
266
+ #sk-container-id-2 div.sk-label-container {
267
+ text-align: center;
268
+ }
269
+
270
+ /* Estimator-specific */
271
+ #sk-container-id-2 div.sk-estimator {
272
+ font-family: monospace;
273
+ border: 1px dotted var(--sklearn-color-border-box);
274
+ border-radius: 0.25em;
275
+ box-sizing: border-box;
276
+ margin-bottom: 0.5em;
277
+ /* unfitted */
278
+ background-color: var(--sklearn-color-unfitted-level-0);
279
+ }
280
+
281
+ #sk-container-id-2 div.sk-estimator.fitted {
282
+ /* fitted */
283
+ background-color: var(--sklearn-color-fitted-level-0);
284
+ }
285
+
286
+ /* on hover */
287
+ #sk-container-id-2 div.sk-estimator:hover {
288
+ /* unfitted */
289
+ background-color: var(--sklearn-color-unfitted-level-2);
290
+ }
291
+
292
+ #sk-container-id-2 div.sk-estimator.fitted:hover {
293
+ /* fitted */
294
+ background-color: var(--sklearn-color-fitted-level-2);
295
+ }
296
+
297
+ /* Specification for estimator info (e.g. "i" and "?") */
298
+
299
+ /* Common style for "i" and "?" */
300
+
301
+ .sk-estimator-doc-link,
302
+ a:link.sk-estimator-doc-link,
303
+ a:visited.sk-estimator-doc-link {
304
+ float: right;
305
+ font-size: smaller;
306
+ line-height: 1em;
307
+ font-family: monospace;
308
+ background-color: var(--sklearn-color-background);
309
+ border-radius: 1em;
310
+ height: 1em;
311
+ width: 1em;
312
+ text-decoration: none !important;
313
+ margin-left: 1ex;
314
+ /* unfitted */
315
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
316
+ color: var(--sklearn-color-unfitted-level-1);
317
+ }
318
+
319
+ .sk-estimator-doc-link.fitted,
320
+ a:link.sk-estimator-doc-link.fitted,
321
+ a:visited.sk-estimator-doc-link.fitted {
322
+ /* fitted */
323
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
324
+ color: var(--sklearn-color-fitted-level-1);
325
+ }
326
+
327
+ /* On hover */
328
+ div.sk-estimator:hover .sk-estimator-doc-link:hover,
329
+ .sk-estimator-doc-link:hover,
330
+ div.sk-label-container:hover .sk-estimator-doc-link:hover,
331
+ .sk-estimator-doc-link:hover {
332
+ /* unfitted */
333
+ background-color: var(--sklearn-color-unfitted-level-3);
334
+ color: var(--sklearn-color-background);
335
+ text-decoration: none;
336
+ }
337
+
338
+ div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
339
+ .sk-estimator-doc-link.fitted:hover,
340
+ div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
341
+ .sk-estimator-doc-link.fitted:hover {
342
+ /* fitted */
343
+ background-color: var(--sklearn-color-fitted-level-3);
344
+ color: var(--sklearn-color-background);
345
+ text-decoration: none;
346
+ }
347
+
348
+ /* Span, style for the box shown on hovering the info icon */
349
+ .sk-estimator-doc-link span {
350
+ display: none;
351
+ z-index: 9999;
352
+ position: relative;
353
+ font-weight: normal;
354
+ right: .2ex;
355
+ padding: .5ex;
356
+ margin: .5ex;
357
+ width: min-content;
358
+ min-width: 20ex;
359
+ max-width: 50ex;
360
+ color: var(--sklearn-color-text);
361
+ box-shadow: 2pt 2pt 4pt #999;
362
+ /* unfitted */
363
+ background: var(--sklearn-color-unfitted-level-0);
364
+ border: .5pt solid var(--sklearn-color-unfitted-level-3);
365
+ }
366
+
367
+ .sk-estimator-doc-link.fitted span {
368
+ /* fitted */
369
+ background: var(--sklearn-color-fitted-level-0);
370
+ border: var(--sklearn-color-fitted-level-3);
371
+ }
372
+
373
+ .sk-estimator-doc-link:hover span {
374
+ display: block;
375
+ }
376
+
377
+ /* "?"-specific style due to the `<a>` HTML tag */
378
+
379
+ #sk-container-id-2 a.estimator_doc_link {
380
+ float: right;
381
+ font-size: 1rem;
382
+ line-height: 1em;
383
+ font-family: monospace;
384
+ background-color: var(--sklearn-color-background);
385
+ border-radius: 1rem;
386
+ height: 1rem;
387
+ width: 1rem;
388
+ text-decoration: none;
389
+ /* unfitted */
390
+ color: var(--sklearn-color-unfitted-level-1);
391
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
392
+ }
393
+
394
+ #sk-container-id-2 a.estimator_doc_link.fitted {
395
+ /* fitted */
396
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
397
+ color: var(--sklearn-color-fitted-level-1);
398
+ }
399
+
400
+ /* On hover */
401
+ #sk-container-id-2 a.estimator_doc_link:hover {
402
+ /* unfitted */
403
+ background-color: var(--sklearn-color-unfitted-level-3);
404
+ color: var(--sklearn-color-background);
405
+ text-decoration: none;
406
+ }
407
+
408
+ #sk-container-id-2 a.estimator_doc_link.fitted:hover {
409
+ /* fitted */
410
+ background-color: var(--sklearn-color-fitted-level-3);
411
+ }
412
+ </style><div id="sk-container-id-2" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>RandomForestRegressor(max_depth=34)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-2" type="checkbox" checked><label for="sk-estimator-id-2" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted">&nbsp;&nbsp;RandomForestRegressor<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestRegressor.html">?<span>Documentation for RandomForestRegressor</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>RandomForestRegressor(max_depth=34)</pre></div> </div></div></div></div>
413
+ </body>
414
+ </html>
415
+
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/estimator.html ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8"/>
6
+ </head>
7
+ <body>
8
+ <style>#sk-container-id-2 {
9
+ /* Definition of color scheme common for light and dark mode */
10
+ --sklearn-color-text: black;
11
+ --sklearn-color-line: gray;
12
+ /* Definition of color scheme for unfitted estimators */
13
+ --sklearn-color-unfitted-level-0: #fff5e6;
14
+ --sklearn-color-unfitted-level-1: #f6e4d2;
15
+ --sklearn-color-unfitted-level-2: #ffe0b3;
16
+ --sklearn-color-unfitted-level-3: chocolate;
17
+ /* Definition of color scheme for fitted estimators */
18
+ --sklearn-color-fitted-level-0: #f0f8ff;
19
+ --sklearn-color-fitted-level-1: #d4ebff;
20
+ --sklearn-color-fitted-level-2: #b3dbfd;
21
+ --sklearn-color-fitted-level-3: cornflowerblue;
22
+
23
+ /* Specific color for light theme */
24
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
25
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
26
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
27
+ --sklearn-color-icon: #696969;
28
+
29
+ @media (prefers-color-scheme: dark) {
30
+ /* Redefinition of color scheme for dark theme */
31
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
32
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
33
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
34
+ --sklearn-color-icon: #878787;
35
+ }
36
+ }
37
+
38
+ #sk-container-id-2 {
39
+ color: var(--sklearn-color-text);
40
+ }
41
+
42
+ #sk-container-id-2 pre {
43
+ padding: 0;
44
+ }
45
+
46
+ #sk-container-id-2 input.sk-hidden--visually {
47
+ border: 0;
48
+ clip: rect(1px 1px 1px 1px);
49
+ clip: rect(1px, 1px, 1px, 1px);
50
+ height: 1px;
51
+ margin: -1px;
52
+ overflow: hidden;
53
+ padding: 0;
54
+ position: absolute;
55
+ width: 1px;
56
+ }
57
+
58
+ #sk-container-id-2 div.sk-dashed-wrapped {
59
+ border: 1px dashed var(--sklearn-color-line);
60
+ margin: 0 0.4em 0.5em 0.4em;
61
+ box-sizing: border-box;
62
+ padding-bottom: 0.4em;
63
+ background-color: var(--sklearn-color-background);
64
+ }
65
+
66
+ #sk-container-id-2 div.sk-container {
67
+ /* jupyter's `normalize.less` sets `[hidden] { display: none; }`
68
+ but bootstrap.min.css set `[hidden] { display: none !important; }`
69
+ so we also need the `!important` here to be able to override the
70
+ default hidden behavior on the sphinx rendered scikit-learn.org.
71
+ See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
72
+ display: inline-block !important;
73
+ position: relative;
74
+ }
75
+
76
+ #sk-container-id-2 div.sk-text-repr-fallback {
77
+ display: none;
78
+ }
79
+
80
+ div.sk-parallel-item,
81
+ div.sk-serial,
82
+ div.sk-item {
83
+ /* draw centered vertical line to link estimators */
84
+ background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
85
+ background-size: 2px 100%;
86
+ background-repeat: no-repeat;
87
+ background-position: center center;
88
+ }
89
+
90
+ /* Parallel-specific style estimator block */
91
+
92
+ #sk-container-id-2 div.sk-parallel-item::after {
93
+ content: "";
94
+ width: 100%;
95
+ border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
96
+ flex-grow: 1;
97
+ }
98
+
99
+ #sk-container-id-2 div.sk-parallel {
100
+ display: flex;
101
+ align-items: stretch;
102
+ justify-content: center;
103
+ background-color: var(--sklearn-color-background);
104
+ position: relative;
105
+ }
106
+
107
+ #sk-container-id-2 div.sk-parallel-item {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ #sk-container-id-2 div.sk-parallel-item:first-child::after {
113
+ align-self: flex-end;
114
+ width: 50%;
115
+ }
116
+
117
+ #sk-container-id-2 div.sk-parallel-item:last-child::after {
118
+ align-self: flex-start;
119
+ width: 50%;
120
+ }
121
+
122
+ #sk-container-id-2 div.sk-parallel-item:only-child::after {
123
+ width: 0;
124
+ }
125
+
126
+ /* Serial-specific style estimator block */
127
+
128
+ #sk-container-id-2 div.sk-serial {
129
+ display: flex;
130
+ flex-direction: column;
131
+ align-items: center;
132
+ background-color: var(--sklearn-color-background);
133
+ padding-right: 1em;
134
+ padding-left: 1em;
135
+ }
136
+
137
+
138
+ /* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
139
+ clickable and can be expanded/collapsed.
140
+ - Pipeline and ColumnTransformer use this feature and define the default style
141
+ - Estimators will overwrite some part of the style using the `sk-estimator` class
142
+ */
143
+
144
+ /* Pipeline and ColumnTransformer style (default) */
145
+
146
+ #sk-container-id-2 div.sk-toggleable {
147
+ /* Default theme specific background. It is overwritten whether we have a
148
+ specific estimator or a Pipeline/ColumnTransformer */
149
+ background-color: var(--sklearn-color-background);
150
+ }
151
+
152
+ /* Toggleable label */
153
+ #sk-container-id-2 label.sk-toggleable__label {
154
+ cursor: pointer;
155
+ display: block;
156
+ width: 100%;
157
+ margin-bottom: 0;
158
+ padding: 0.5em;
159
+ box-sizing: border-box;
160
+ text-align: center;
161
+ }
162
+
163
+ #sk-container-id-2 label.sk-toggleable__label-arrow:before {
164
+ /* Arrow on the left of the label */
165
+ content: "▸";
166
+ float: left;
167
+ margin-right: 0.25em;
168
+ color: var(--sklearn-color-icon);
169
+ }
170
+
171
+ #sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {
172
+ color: var(--sklearn-color-text);
173
+ }
174
+
175
+ /* Toggleable content - dropdown */
176
+
177
+ #sk-container-id-2 div.sk-toggleable__content {
178
+ max-height: 0;
179
+ max-width: 0;
180
+ overflow: hidden;
181
+ text-align: left;
182
+ /* unfitted */
183
+ background-color: var(--sklearn-color-unfitted-level-0);
184
+ }
185
+
186
+ #sk-container-id-2 div.sk-toggleable__content.fitted {
187
+ /* fitted */
188
+ background-color: var(--sklearn-color-fitted-level-0);
189
+ }
190
+
191
+ #sk-container-id-2 div.sk-toggleable__content pre {
192
+ margin: 0.2em;
193
+ border-radius: 0.25em;
194
+ color: var(--sklearn-color-text);
195
+ /* unfitted */
196
+ background-color: var(--sklearn-color-unfitted-level-0);
197
+ }
198
+
199
+ #sk-container-id-2 div.sk-toggleable__content.fitted pre {
200
+ /* unfitted */
201
+ background-color: var(--sklearn-color-fitted-level-0);
202
+ }
203
+
204
+ #sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {
205
+ /* Expand drop-down */
206
+ max-height: 200px;
207
+ max-width: 100%;
208
+ overflow: auto;
209
+ }
210
+
211
+ #sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
212
+ content: "▾";
213
+ }
214
+
215
+ /* Pipeline/ColumnTransformer-specific style */
216
+
217
+ #sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
218
+ color: var(--sklearn-color-text);
219
+ background-color: var(--sklearn-color-unfitted-level-2);
220
+ }
221
+
222
+ #sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
223
+ background-color: var(--sklearn-color-fitted-level-2);
224
+ }
225
+
226
+ /* Estimator-specific style */
227
+
228
+ /* Colorize estimator box */
229
+ #sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
230
+ /* unfitted */
231
+ background-color: var(--sklearn-color-unfitted-level-2);
232
+ }
233
+
234
+ #sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
235
+ /* fitted */
236
+ background-color: var(--sklearn-color-fitted-level-2);
237
+ }
238
+
239
+ #sk-container-id-2 div.sk-label label.sk-toggleable__label,
240
+ #sk-container-id-2 div.sk-label label {
241
+ /* The background is the default theme color */
242
+ color: var(--sklearn-color-text-on-default-background);
243
+ }
244
+
245
+ /* On hover, darken the color of the background */
246
+ #sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {
247
+ color: var(--sklearn-color-text);
248
+ background-color: var(--sklearn-color-unfitted-level-2);
249
+ }
250
+
251
+ /* Label box, darken color on hover, fitted */
252
+ #sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
253
+ color: var(--sklearn-color-text);
254
+ background-color: var(--sklearn-color-fitted-level-2);
255
+ }
256
+
257
+ /* Estimator label */
258
+
259
+ #sk-container-id-2 div.sk-label label {
260
+ font-family: monospace;
261
+ font-weight: bold;
262
+ display: inline-block;
263
+ line-height: 1.2em;
264
+ }
265
+
266
+ #sk-container-id-2 div.sk-label-container {
267
+ text-align: center;
268
+ }
269
+
270
+ /* Estimator-specific */
271
+ #sk-container-id-2 div.sk-estimator {
272
+ font-family: monospace;
273
+ border: 1px dotted var(--sklearn-color-border-box);
274
+ border-radius: 0.25em;
275
+ box-sizing: border-box;
276
+ margin-bottom: 0.5em;
277
+ /* unfitted */
278
+ background-color: var(--sklearn-color-unfitted-level-0);
279
+ }
280
+
281
+ #sk-container-id-2 div.sk-estimator.fitted {
282
+ /* fitted */
283
+ background-color: var(--sklearn-color-fitted-level-0);
284
+ }
285
+
286
+ /* on hover */
287
+ #sk-container-id-2 div.sk-estimator:hover {
288
+ /* unfitted */
289
+ background-color: var(--sklearn-color-unfitted-level-2);
290
+ }
291
+
292
+ #sk-container-id-2 div.sk-estimator.fitted:hover {
293
+ /* fitted */
294
+ background-color: var(--sklearn-color-fitted-level-2);
295
+ }
296
+
297
+ /* Specification for estimator info (e.g. "i" and "?") */
298
+
299
+ /* Common style for "i" and "?" */
300
+
301
+ .sk-estimator-doc-link,
302
+ a:link.sk-estimator-doc-link,
303
+ a:visited.sk-estimator-doc-link {
304
+ float: right;
305
+ font-size: smaller;
306
+ line-height: 1em;
307
+ font-family: monospace;
308
+ background-color: var(--sklearn-color-background);
309
+ border-radius: 1em;
310
+ height: 1em;
311
+ width: 1em;
312
+ text-decoration: none !important;
313
+ margin-left: 1ex;
314
+ /* unfitted */
315
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
316
+ color: var(--sklearn-color-unfitted-level-1);
317
+ }
318
+
319
+ .sk-estimator-doc-link.fitted,
320
+ a:link.sk-estimator-doc-link.fitted,
321
+ a:visited.sk-estimator-doc-link.fitted {
322
+ /* fitted */
323
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
324
+ color: var(--sklearn-color-fitted-level-1);
325
+ }
326
+
327
+ /* On hover */
328
+ div.sk-estimator:hover .sk-estimator-doc-link:hover,
329
+ .sk-estimator-doc-link:hover,
330
+ div.sk-label-container:hover .sk-estimator-doc-link:hover,
331
+ .sk-estimator-doc-link:hover {
332
+ /* unfitted */
333
+ background-color: var(--sklearn-color-unfitted-level-3);
334
+ color: var(--sklearn-color-background);
335
+ text-decoration: none;
336
+ }
337
+
338
+ div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
339
+ .sk-estimator-doc-link.fitted:hover,
340
+ div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
341
+ .sk-estimator-doc-link.fitted:hover {
342
+ /* fitted */
343
+ background-color: var(--sklearn-color-fitted-level-3);
344
+ color: var(--sklearn-color-background);
345
+ text-decoration: none;
346
+ }
347
+
348
+ /* Span, style for the box shown on hovering the info icon */
349
+ .sk-estimator-doc-link span {
350
+ display: none;
351
+ z-index: 9999;
352
+ position: relative;
353
+ font-weight: normal;
354
+ right: .2ex;
355
+ padding: .5ex;
356
+ margin: .5ex;
357
+ width: min-content;
358
+ min-width: 20ex;
359
+ max-width: 50ex;
360
+ color: var(--sklearn-color-text);
361
+ box-shadow: 2pt 2pt 4pt #999;
362
+ /* unfitted */
363
+ background: var(--sklearn-color-unfitted-level-0);
364
+ border: .5pt solid var(--sklearn-color-unfitted-level-3);
365
+ }
366
+
367
+ .sk-estimator-doc-link.fitted span {
368
+ /* fitted */
369
+ background: var(--sklearn-color-fitted-level-0);
370
+ border: var(--sklearn-color-fitted-level-3);
371
+ }
372
+
373
+ .sk-estimator-doc-link:hover span {
374
+ display: block;
375
+ }
376
+
377
+ /* "?"-specific style due to the `<a>` HTML tag */
378
+
379
+ #sk-container-id-2 a.estimator_doc_link {
380
+ float: right;
381
+ font-size: 1rem;
382
+ line-height: 1em;
383
+ font-family: monospace;
384
+ background-color: var(--sklearn-color-background);
385
+ border-radius: 1rem;
386
+ height: 1rem;
387
+ width: 1rem;
388
+ text-decoration: none;
389
+ /* unfitted */
390
+ color: var(--sklearn-color-unfitted-level-1);
391
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
392
+ }
393
+
394
+ #sk-container-id-2 a.estimator_doc_link.fitted {
395
+ /* fitted */
396
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
397
+ color: var(--sklearn-color-fitted-level-1);
398
+ }
399
+
400
+ /* On hover */
401
+ #sk-container-id-2 a.estimator_doc_link:hover {
402
+ /* unfitted */
403
+ background-color: var(--sklearn-color-unfitted-level-3);
404
+ color: var(--sklearn-color-background);
405
+ text-decoration: none;
406
+ }
407
+
408
+ #sk-container-id-2 a.estimator_doc_link.fitted:hover {
409
+ /* fitted */
410
+ background-color: var(--sklearn-color-fitted-level-3);
411
+ }
412
+ </style><div id="sk-container-id-2" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>RandomForestRegressor(max_depth=34)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-2" type="checkbox" checked><label for="sk-estimator-id-2" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted">&nbsp;&nbsp;RandomForestRegressor<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestRegressor.html">?<span>Documentation for RandomForestRegressor</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>RandomForestRegressor(max_depth=34)</pre></div> </div></div></div></div>
413
+ </body>
414
+ </html>
415
+
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ env:
5
+ conda: conda.yaml
6
+ virtualenv: python_env.yaml
7
+ loader_module: mlflow.sklearn
8
+ model_path: model.pkl
9
+ predict_fn: predict
10
+ python_version: 3.11.0
11
+ sklearn:
12
+ code: null
13
+ pickled_model: model.pkl
14
+ serialization_format: cloudpickle
15
+ sklearn_version: 1.5.2
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 34769333
18
+ model_uuid: 1223b8cf87ee4fae9c34ac54eeef9eb4
19
+ run_id: 39324cef8f2443b7b4b77eefe61ef6ca
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 16:26:16.224496'
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - cloudpickle==3.0.0
9
+ - numpy==1.26.2
10
+ - pandas==2.2.2
11
+ - psutil==5.9.4
12
+ - scikit-learn==1.5.2
13
+ - scipy==1.11.4
14
+ - typing==3.7.4.3
15
+ name: mlflow-env
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b51c46f274e74ab79fd748cbe4fa01c5216d66f347bd96f71cfedf31015152f
3
+ size 34769333
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/149819317988706962/39324cef8f2443b7b4b77eefe61ef6ca/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ cloudpickle==3.0.0
3
+ numpy==1.26.2
4
+ pandas==2.2.2
5
+ psutil==5.9.4
6
+ scikit-learn==1.5.2
7
+ scipy==1.11.4
8
+ typing==3.7.4.3
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/estimator.html ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8"/>
6
+ </head>
7
+ <body>
8
+ <style>#sk-container-id-2 {
9
+ /* Definition of color scheme common for light and dark mode */
10
+ --sklearn-color-text: black;
11
+ --sklearn-color-line: gray;
12
+ /* Definition of color scheme for unfitted estimators */
13
+ --sklearn-color-unfitted-level-0: #fff5e6;
14
+ --sklearn-color-unfitted-level-1: #f6e4d2;
15
+ --sklearn-color-unfitted-level-2: #ffe0b3;
16
+ --sklearn-color-unfitted-level-3: chocolate;
17
+ /* Definition of color scheme for fitted estimators */
18
+ --sklearn-color-fitted-level-0: #f0f8ff;
19
+ --sklearn-color-fitted-level-1: #d4ebff;
20
+ --sklearn-color-fitted-level-2: #b3dbfd;
21
+ --sklearn-color-fitted-level-3: cornflowerblue;
22
+
23
+ /* Specific color for light theme */
24
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
25
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
26
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
27
+ --sklearn-color-icon: #696969;
28
+
29
+ @media (prefers-color-scheme: dark) {
30
+ /* Redefinition of color scheme for dark theme */
31
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
32
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
33
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
34
+ --sklearn-color-icon: #878787;
35
+ }
36
+ }
37
+
38
+ #sk-container-id-2 {
39
+ color: var(--sklearn-color-text);
40
+ }
41
+
42
+ #sk-container-id-2 pre {
43
+ padding: 0;
44
+ }
45
+
46
+ #sk-container-id-2 input.sk-hidden--visually {
47
+ border: 0;
48
+ clip: rect(1px 1px 1px 1px);
49
+ clip: rect(1px, 1px, 1px, 1px);
50
+ height: 1px;
51
+ margin: -1px;
52
+ overflow: hidden;
53
+ padding: 0;
54
+ position: absolute;
55
+ width: 1px;
56
+ }
57
+
58
+ #sk-container-id-2 div.sk-dashed-wrapped {
59
+ border: 1px dashed var(--sklearn-color-line);
60
+ margin: 0 0.4em 0.5em 0.4em;
61
+ box-sizing: border-box;
62
+ padding-bottom: 0.4em;
63
+ background-color: var(--sklearn-color-background);
64
+ }
65
+
66
+ #sk-container-id-2 div.sk-container {
67
+ /* jupyter's `normalize.less` sets `[hidden] { display: none; }`
68
+ but bootstrap.min.css set `[hidden] { display: none !important; }`
69
+ so we also need the `!important` here to be able to override the
70
+ default hidden behavior on the sphinx rendered scikit-learn.org.
71
+ See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
72
+ display: inline-block !important;
73
+ position: relative;
74
+ }
75
+
76
+ #sk-container-id-2 div.sk-text-repr-fallback {
77
+ display: none;
78
+ }
79
+
80
+ div.sk-parallel-item,
81
+ div.sk-serial,
82
+ div.sk-item {
83
+ /* draw centered vertical line to link estimators */
84
+ background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
85
+ background-size: 2px 100%;
86
+ background-repeat: no-repeat;
87
+ background-position: center center;
88
+ }
89
+
90
+ /* Parallel-specific style estimator block */
91
+
92
+ #sk-container-id-2 div.sk-parallel-item::after {
93
+ content: "";
94
+ width: 100%;
95
+ border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
96
+ flex-grow: 1;
97
+ }
98
+
99
+ #sk-container-id-2 div.sk-parallel {
100
+ display: flex;
101
+ align-items: stretch;
102
+ justify-content: center;
103
+ background-color: var(--sklearn-color-background);
104
+ position: relative;
105
+ }
106
+
107
+ #sk-container-id-2 div.sk-parallel-item {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ #sk-container-id-2 div.sk-parallel-item:first-child::after {
113
+ align-self: flex-end;
114
+ width: 50%;
115
+ }
116
+
117
+ #sk-container-id-2 div.sk-parallel-item:last-child::after {
118
+ align-self: flex-start;
119
+ width: 50%;
120
+ }
121
+
122
+ #sk-container-id-2 div.sk-parallel-item:only-child::after {
123
+ width: 0;
124
+ }
125
+
126
+ /* Serial-specific style estimator block */
127
+
128
+ #sk-container-id-2 div.sk-serial {
129
+ display: flex;
130
+ flex-direction: column;
131
+ align-items: center;
132
+ background-color: var(--sklearn-color-background);
133
+ padding-right: 1em;
134
+ padding-left: 1em;
135
+ }
136
+
137
+
138
+ /* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
139
+ clickable and can be expanded/collapsed.
140
+ - Pipeline and ColumnTransformer use this feature and define the default style
141
+ - Estimators will overwrite some part of the style using the `sk-estimator` class
142
+ */
143
+
144
+ /* Pipeline and ColumnTransformer style (default) */
145
+
146
+ #sk-container-id-2 div.sk-toggleable {
147
+ /* Default theme specific background. It is overwritten whether we have a
148
+ specific estimator or a Pipeline/ColumnTransformer */
149
+ background-color: var(--sklearn-color-background);
150
+ }
151
+
152
+ /* Toggleable label */
153
+ #sk-container-id-2 label.sk-toggleable__label {
154
+ cursor: pointer;
155
+ display: block;
156
+ width: 100%;
157
+ margin-bottom: 0;
158
+ padding: 0.5em;
159
+ box-sizing: border-box;
160
+ text-align: center;
161
+ }
162
+
163
+ #sk-container-id-2 label.sk-toggleable__label-arrow:before {
164
+ /* Arrow on the left of the label */
165
+ content: "▸";
166
+ float: left;
167
+ margin-right: 0.25em;
168
+ color: var(--sklearn-color-icon);
169
+ }
170
+
171
+ #sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {
172
+ color: var(--sklearn-color-text);
173
+ }
174
+
175
+ /* Toggleable content - dropdown */
176
+
177
+ #sk-container-id-2 div.sk-toggleable__content {
178
+ max-height: 0;
179
+ max-width: 0;
180
+ overflow: hidden;
181
+ text-align: left;
182
+ /* unfitted */
183
+ background-color: var(--sklearn-color-unfitted-level-0);
184
+ }
185
+
186
+ #sk-container-id-2 div.sk-toggleable__content.fitted {
187
+ /* fitted */
188
+ background-color: var(--sklearn-color-fitted-level-0);
189
+ }
190
+
191
+ #sk-container-id-2 div.sk-toggleable__content pre {
192
+ margin: 0.2em;
193
+ border-radius: 0.25em;
194
+ color: var(--sklearn-color-text);
195
+ /* unfitted */
196
+ background-color: var(--sklearn-color-unfitted-level-0);
197
+ }
198
+
199
+ #sk-container-id-2 div.sk-toggleable__content.fitted pre {
200
+ /* unfitted */
201
+ background-color: var(--sklearn-color-fitted-level-0);
202
+ }
203
+
204
+ #sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {
205
+ /* Expand drop-down */
206
+ max-height: 200px;
207
+ max-width: 100%;
208
+ overflow: auto;
209
+ }
210
+
211
+ #sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
212
+ content: "▾";
213
+ }
214
+
215
+ /* Pipeline/ColumnTransformer-specific style */
216
+
217
+ #sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
218
+ color: var(--sklearn-color-text);
219
+ background-color: var(--sklearn-color-unfitted-level-2);
220
+ }
221
+
222
+ #sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
223
+ background-color: var(--sklearn-color-fitted-level-2);
224
+ }
225
+
226
+ /* Estimator-specific style */
227
+
228
+ /* Colorize estimator box */
229
+ #sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
230
+ /* unfitted */
231
+ background-color: var(--sklearn-color-unfitted-level-2);
232
+ }
233
+
234
+ #sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
235
+ /* fitted */
236
+ background-color: var(--sklearn-color-fitted-level-2);
237
+ }
238
+
239
+ #sk-container-id-2 div.sk-label label.sk-toggleable__label,
240
+ #sk-container-id-2 div.sk-label label {
241
+ /* The background is the default theme color */
242
+ color: var(--sklearn-color-text-on-default-background);
243
+ }
244
+
245
+ /* On hover, darken the color of the background */
246
+ #sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {
247
+ color: var(--sklearn-color-text);
248
+ background-color: var(--sklearn-color-unfitted-level-2);
249
+ }
250
+
251
+ /* Label box, darken color on hover, fitted */
252
+ #sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
253
+ color: var(--sklearn-color-text);
254
+ background-color: var(--sklearn-color-fitted-level-2);
255
+ }
256
+
257
+ /* Estimator label */
258
+
259
+ #sk-container-id-2 div.sk-label label {
260
+ font-family: monospace;
261
+ font-weight: bold;
262
+ display: inline-block;
263
+ line-height: 1.2em;
264
+ }
265
+
266
+ #sk-container-id-2 div.sk-label-container {
267
+ text-align: center;
268
+ }
269
+
270
+ /* Estimator-specific */
271
+ #sk-container-id-2 div.sk-estimator {
272
+ font-family: monospace;
273
+ border: 1px dotted var(--sklearn-color-border-box);
274
+ border-radius: 0.25em;
275
+ box-sizing: border-box;
276
+ margin-bottom: 0.5em;
277
+ /* unfitted */
278
+ background-color: var(--sklearn-color-unfitted-level-0);
279
+ }
280
+
281
+ #sk-container-id-2 div.sk-estimator.fitted {
282
+ /* fitted */
283
+ background-color: var(--sklearn-color-fitted-level-0);
284
+ }
285
+
286
+ /* on hover */
287
+ #sk-container-id-2 div.sk-estimator:hover {
288
+ /* unfitted */
289
+ background-color: var(--sklearn-color-unfitted-level-2);
290
+ }
291
+
292
+ #sk-container-id-2 div.sk-estimator.fitted:hover {
293
+ /* fitted */
294
+ background-color: var(--sklearn-color-fitted-level-2);
295
+ }
296
+
297
+ /* Specification for estimator info (e.g. "i" and "?") */
298
+
299
+ /* Common style for "i" and "?" */
300
+
301
+ .sk-estimator-doc-link,
302
+ a:link.sk-estimator-doc-link,
303
+ a:visited.sk-estimator-doc-link {
304
+ float: right;
305
+ font-size: smaller;
306
+ line-height: 1em;
307
+ font-family: monospace;
308
+ background-color: var(--sklearn-color-background);
309
+ border-radius: 1em;
310
+ height: 1em;
311
+ width: 1em;
312
+ text-decoration: none !important;
313
+ margin-left: 1ex;
314
+ /* unfitted */
315
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
316
+ color: var(--sklearn-color-unfitted-level-1);
317
+ }
318
+
319
+ .sk-estimator-doc-link.fitted,
320
+ a:link.sk-estimator-doc-link.fitted,
321
+ a:visited.sk-estimator-doc-link.fitted {
322
+ /* fitted */
323
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
324
+ color: var(--sklearn-color-fitted-level-1);
325
+ }
326
+
327
+ /* On hover */
328
+ div.sk-estimator:hover .sk-estimator-doc-link:hover,
329
+ .sk-estimator-doc-link:hover,
330
+ div.sk-label-container:hover .sk-estimator-doc-link:hover,
331
+ .sk-estimator-doc-link:hover {
332
+ /* unfitted */
333
+ background-color: var(--sklearn-color-unfitted-level-3);
334
+ color: var(--sklearn-color-background);
335
+ text-decoration: none;
336
+ }
337
+
338
+ div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
339
+ .sk-estimator-doc-link.fitted:hover,
340
+ div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
341
+ .sk-estimator-doc-link.fitted:hover {
342
+ /* fitted */
343
+ background-color: var(--sklearn-color-fitted-level-3);
344
+ color: var(--sklearn-color-background);
345
+ text-decoration: none;
346
+ }
347
+
348
+ /* Span, style for the box shown on hovering the info icon */
349
+ .sk-estimator-doc-link span {
350
+ display: none;
351
+ z-index: 9999;
352
+ position: relative;
353
+ font-weight: normal;
354
+ right: .2ex;
355
+ padding: .5ex;
356
+ margin: .5ex;
357
+ width: min-content;
358
+ min-width: 20ex;
359
+ max-width: 50ex;
360
+ color: var(--sklearn-color-text);
361
+ box-shadow: 2pt 2pt 4pt #999;
362
+ /* unfitted */
363
+ background: var(--sklearn-color-unfitted-level-0);
364
+ border: .5pt solid var(--sklearn-color-unfitted-level-3);
365
+ }
366
+
367
+ .sk-estimator-doc-link.fitted span {
368
+ /* fitted */
369
+ background: var(--sklearn-color-fitted-level-0);
370
+ border: var(--sklearn-color-fitted-level-3);
371
+ }
372
+
373
+ .sk-estimator-doc-link:hover span {
374
+ display: block;
375
+ }
376
+
377
+ /* "?"-specific style due to the `<a>` HTML tag */
378
+
379
+ #sk-container-id-2 a.estimator_doc_link {
380
+ float: right;
381
+ font-size: 1rem;
382
+ line-height: 1em;
383
+ font-family: monospace;
384
+ background-color: var(--sklearn-color-background);
385
+ border-radius: 1rem;
386
+ height: 1rem;
387
+ width: 1rem;
388
+ text-decoration: none;
389
+ /* unfitted */
390
+ color: var(--sklearn-color-unfitted-level-1);
391
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
392
+ }
393
+
394
+ #sk-container-id-2 a.estimator_doc_link.fitted {
395
+ /* fitted */
396
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
397
+ color: var(--sklearn-color-fitted-level-1);
398
+ }
399
+
400
+ /* On hover */
401
+ #sk-container-id-2 a.estimator_doc_link:hover {
402
+ /* unfitted */
403
+ background-color: var(--sklearn-color-unfitted-level-3);
404
+ color: var(--sklearn-color-background);
405
+ text-decoration: none;
406
+ }
407
+
408
+ #sk-container-id-2 a.estimator_doc_link.fitted:hover {
409
+ /* fitted */
410
+ background-color: var(--sklearn-color-fitted-level-3);
411
+ }
412
+ </style><div id="sk-container-id-2" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>RandomForestRegressor(max_depth=34)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-2" type="checkbox" checked><label for="sk-estimator-id-2" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted">&nbsp;&nbsp;RandomForestRegressor<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestRegressor.html">?<span>Documentation for RandomForestRegressor</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>RandomForestRegressor(max_depth=34)</pre></div> </div></div></div></div>
413
+ </body>
414
+ </html>
415
+
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ env:
5
+ conda: conda.yaml
6
+ virtualenv: python_env.yaml
7
+ loader_module: mlflow.sklearn
8
+ model_path: model.pkl
9
+ predict_fn: predict
10
+ python_version: 3.11.0
11
+ sklearn:
12
+ code: null
13
+ pickled_model: model.pkl
14
+ serialization_format: cloudpickle
15
+ sklearn_version: 1.5.2
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 34769333
18
+ model_uuid: 120c266f00cf4e34aca4337b65a1e372
19
+ run_id: faa3ad4458c7419a8fc7c85d44b5c475
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 11:43:18.288700'
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - cloudpickle==3.0.0
9
+ - numpy==1.26.2
10
+ - pandas==2.2.2
11
+ - psutil==5.9.4
12
+ - scikit-learn==1.5.2
13
+ - scipy==1.11.4
14
+ - typing==3.7.4.3
15
+ name: mlflow-env
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b51c46f274e74ab79fd748cbe4fa01c5216d66f347bd96f71cfedf31015152f
3
+ size 34769333
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/149819317988706962/faa3ad4458c7419a8fc7c85d44b5c475/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ cloudpickle==3.0.0
3
+ numpy==1.26.2
4
+ pandas==2.2.2
5
+ psutil==5.9.4
6
+ scikit-learn==1.5.2
7
+ scipy==1.11.4
8
+ typing==3.7.4.3
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/estimator.html ADDED
@@ -0,0 +1,415 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8"/>
6
+ </head>
7
+ <body>
8
+ <style>#sk-container-id-2 {
9
+ /* Definition of color scheme common for light and dark mode */
10
+ --sklearn-color-text: black;
11
+ --sklearn-color-line: gray;
12
+ /* Definition of color scheme for unfitted estimators */
13
+ --sklearn-color-unfitted-level-0: #fff5e6;
14
+ --sklearn-color-unfitted-level-1: #f6e4d2;
15
+ --sklearn-color-unfitted-level-2: #ffe0b3;
16
+ --sklearn-color-unfitted-level-3: chocolate;
17
+ /* Definition of color scheme for fitted estimators */
18
+ --sklearn-color-fitted-level-0: #f0f8ff;
19
+ --sklearn-color-fitted-level-1: #d4ebff;
20
+ --sklearn-color-fitted-level-2: #b3dbfd;
21
+ --sklearn-color-fitted-level-3: cornflowerblue;
22
+
23
+ /* Specific color for light theme */
24
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
25
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));
26
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));
27
+ --sklearn-color-icon: #696969;
28
+
29
+ @media (prefers-color-scheme: dark) {
30
+ /* Redefinition of color scheme for dark theme */
31
+ --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
32
+ --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));
33
+ --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));
34
+ --sklearn-color-icon: #878787;
35
+ }
36
+ }
37
+
38
+ #sk-container-id-2 {
39
+ color: var(--sklearn-color-text);
40
+ }
41
+
42
+ #sk-container-id-2 pre {
43
+ padding: 0;
44
+ }
45
+
46
+ #sk-container-id-2 input.sk-hidden--visually {
47
+ border: 0;
48
+ clip: rect(1px 1px 1px 1px);
49
+ clip: rect(1px, 1px, 1px, 1px);
50
+ height: 1px;
51
+ margin: -1px;
52
+ overflow: hidden;
53
+ padding: 0;
54
+ position: absolute;
55
+ width: 1px;
56
+ }
57
+
58
+ #sk-container-id-2 div.sk-dashed-wrapped {
59
+ border: 1px dashed var(--sklearn-color-line);
60
+ margin: 0 0.4em 0.5em 0.4em;
61
+ box-sizing: border-box;
62
+ padding-bottom: 0.4em;
63
+ background-color: var(--sklearn-color-background);
64
+ }
65
+
66
+ #sk-container-id-2 div.sk-container {
67
+ /* jupyter's `normalize.less` sets `[hidden] { display: none; }`
68
+ but bootstrap.min.css set `[hidden] { display: none !important; }`
69
+ so we also need the `!important` here to be able to override the
70
+ default hidden behavior on the sphinx rendered scikit-learn.org.
71
+ See: https://github.com/scikit-learn/scikit-learn/issues/21755 */
72
+ display: inline-block !important;
73
+ position: relative;
74
+ }
75
+
76
+ #sk-container-id-2 div.sk-text-repr-fallback {
77
+ display: none;
78
+ }
79
+
80
+ div.sk-parallel-item,
81
+ div.sk-serial,
82
+ div.sk-item {
83
+ /* draw centered vertical line to link estimators */
84
+ background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));
85
+ background-size: 2px 100%;
86
+ background-repeat: no-repeat;
87
+ background-position: center center;
88
+ }
89
+
90
+ /* Parallel-specific style estimator block */
91
+
92
+ #sk-container-id-2 div.sk-parallel-item::after {
93
+ content: "";
94
+ width: 100%;
95
+ border-bottom: 2px solid var(--sklearn-color-text-on-default-background);
96
+ flex-grow: 1;
97
+ }
98
+
99
+ #sk-container-id-2 div.sk-parallel {
100
+ display: flex;
101
+ align-items: stretch;
102
+ justify-content: center;
103
+ background-color: var(--sklearn-color-background);
104
+ position: relative;
105
+ }
106
+
107
+ #sk-container-id-2 div.sk-parallel-item {
108
+ display: flex;
109
+ flex-direction: column;
110
+ }
111
+
112
+ #sk-container-id-2 div.sk-parallel-item:first-child::after {
113
+ align-self: flex-end;
114
+ width: 50%;
115
+ }
116
+
117
+ #sk-container-id-2 div.sk-parallel-item:last-child::after {
118
+ align-self: flex-start;
119
+ width: 50%;
120
+ }
121
+
122
+ #sk-container-id-2 div.sk-parallel-item:only-child::after {
123
+ width: 0;
124
+ }
125
+
126
+ /* Serial-specific style estimator block */
127
+
128
+ #sk-container-id-2 div.sk-serial {
129
+ display: flex;
130
+ flex-direction: column;
131
+ align-items: center;
132
+ background-color: var(--sklearn-color-background);
133
+ padding-right: 1em;
134
+ padding-left: 1em;
135
+ }
136
+
137
+
138
+ /* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is
139
+ clickable and can be expanded/collapsed.
140
+ - Pipeline and ColumnTransformer use this feature and define the default style
141
+ - Estimators will overwrite some part of the style using the `sk-estimator` class
142
+ */
143
+
144
+ /* Pipeline and ColumnTransformer style (default) */
145
+
146
+ #sk-container-id-2 div.sk-toggleable {
147
+ /* Default theme specific background. It is overwritten whether we have a
148
+ specific estimator or a Pipeline/ColumnTransformer */
149
+ background-color: var(--sklearn-color-background);
150
+ }
151
+
152
+ /* Toggleable label */
153
+ #sk-container-id-2 label.sk-toggleable__label {
154
+ cursor: pointer;
155
+ display: block;
156
+ width: 100%;
157
+ margin-bottom: 0;
158
+ padding: 0.5em;
159
+ box-sizing: border-box;
160
+ text-align: center;
161
+ }
162
+
163
+ #sk-container-id-2 label.sk-toggleable__label-arrow:before {
164
+ /* Arrow on the left of the label */
165
+ content: "▸";
166
+ float: left;
167
+ margin-right: 0.25em;
168
+ color: var(--sklearn-color-icon);
169
+ }
170
+
171
+ #sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {
172
+ color: var(--sklearn-color-text);
173
+ }
174
+
175
+ /* Toggleable content - dropdown */
176
+
177
+ #sk-container-id-2 div.sk-toggleable__content {
178
+ max-height: 0;
179
+ max-width: 0;
180
+ overflow: hidden;
181
+ text-align: left;
182
+ /* unfitted */
183
+ background-color: var(--sklearn-color-unfitted-level-0);
184
+ }
185
+
186
+ #sk-container-id-2 div.sk-toggleable__content.fitted {
187
+ /* fitted */
188
+ background-color: var(--sklearn-color-fitted-level-0);
189
+ }
190
+
191
+ #sk-container-id-2 div.sk-toggleable__content pre {
192
+ margin: 0.2em;
193
+ border-radius: 0.25em;
194
+ color: var(--sklearn-color-text);
195
+ /* unfitted */
196
+ background-color: var(--sklearn-color-unfitted-level-0);
197
+ }
198
+
199
+ #sk-container-id-2 div.sk-toggleable__content.fitted pre {
200
+ /* unfitted */
201
+ background-color: var(--sklearn-color-fitted-level-0);
202
+ }
203
+
204
+ #sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {
205
+ /* Expand drop-down */
206
+ max-height: 200px;
207
+ max-width: 100%;
208
+ overflow: auto;
209
+ }
210
+
211
+ #sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {
212
+ content: "▾";
213
+ }
214
+
215
+ /* Pipeline/ColumnTransformer-specific style */
216
+
217
+ #sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
218
+ color: var(--sklearn-color-text);
219
+ background-color: var(--sklearn-color-unfitted-level-2);
220
+ }
221
+
222
+ #sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
223
+ background-color: var(--sklearn-color-fitted-level-2);
224
+ }
225
+
226
+ /* Estimator-specific style */
227
+
228
+ /* Colorize estimator box */
229
+ #sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
230
+ /* unfitted */
231
+ background-color: var(--sklearn-color-unfitted-level-2);
232
+ }
233
+
234
+ #sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {
235
+ /* fitted */
236
+ background-color: var(--sklearn-color-fitted-level-2);
237
+ }
238
+
239
+ #sk-container-id-2 div.sk-label label.sk-toggleable__label,
240
+ #sk-container-id-2 div.sk-label label {
241
+ /* The background is the default theme color */
242
+ color: var(--sklearn-color-text-on-default-background);
243
+ }
244
+
245
+ /* On hover, darken the color of the background */
246
+ #sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {
247
+ color: var(--sklearn-color-text);
248
+ background-color: var(--sklearn-color-unfitted-level-2);
249
+ }
250
+
251
+ /* Label box, darken color on hover, fitted */
252
+ #sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {
253
+ color: var(--sklearn-color-text);
254
+ background-color: var(--sklearn-color-fitted-level-2);
255
+ }
256
+
257
+ /* Estimator label */
258
+
259
+ #sk-container-id-2 div.sk-label label {
260
+ font-family: monospace;
261
+ font-weight: bold;
262
+ display: inline-block;
263
+ line-height: 1.2em;
264
+ }
265
+
266
+ #sk-container-id-2 div.sk-label-container {
267
+ text-align: center;
268
+ }
269
+
270
+ /* Estimator-specific */
271
+ #sk-container-id-2 div.sk-estimator {
272
+ font-family: monospace;
273
+ border: 1px dotted var(--sklearn-color-border-box);
274
+ border-radius: 0.25em;
275
+ box-sizing: border-box;
276
+ margin-bottom: 0.5em;
277
+ /* unfitted */
278
+ background-color: var(--sklearn-color-unfitted-level-0);
279
+ }
280
+
281
+ #sk-container-id-2 div.sk-estimator.fitted {
282
+ /* fitted */
283
+ background-color: var(--sklearn-color-fitted-level-0);
284
+ }
285
+
286
+ /* on hover */
287
+ #sk-container-id-2 div.sk-estimator:hover {
288
+ /* unfitted */
289
+ background-color: var(--sklearn-color-unfitted-level-2);
290
+ }
291
+
292
+ #sk-container-id-2 div.sk-estimator.fitted:hover {
293
+ /* fitted */
294
+ background-color: var(--sklearn-color-fitted-level-2);
295
+ }
296
+
297
+ /* Specification for estimator info (e.g. "i" and "?") */
298
+
299
+ /* Common style for "i" and "?" */
300
+
301
+ .sk-estimator-doc-link,
302
+ a:link.sk-estimator-doc-link,
303
+ a:visited.sk-estimator-doc-link {
304
+ float: right;
305
+ font-size: smaller;
306
+ line-height: 1em;
307
+ font-family: monospace;
308
+ background-color: var(--sklearn-color-background);
309
+ border-radius: 1em;
310
+ height: 1em;
311
+ width: 1em;
312
+ text-decoration: none !important;
313
+ margin-left: 1ex;
314
+ /* unfitted */
315
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
316
+ color: var(--sklearn-color-unfitted-level-1);
317
+ }
318
+
319
+ .sk-estimator-doc-link.fitted,
320
+ a:link.sk-estimator-doc-link.fitted,
321
+ a:visited.sk-estimator-doc-link.fitted {
322
+ /* fitted */
323
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
324
+ color: var(--sklearn-color-fitted-level-1);
325
+ }
326
+
327
+ /* On hover */
328
+ div.sk-estimator:hover .sk-estimator-doc-link:hover,
329
+ .sk-estimator-doc-link:hover,
330
+ div.sk-label-container:hover .sk-estimator-doc-link:hover,
331
+ .sk-estimator-doc-link:hover {
332
+ /* unfitted */
333
+ background-color: var(--sklearn-color-unfitted-level-3);
334
+ color: var(--sklearn-color-background);
335
+ text-decoration: none;
336
+ }
337
+
338
+ div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,
339
+ .sk-estimator-doc-link.fitted:hover,
340
+ div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,
341
+ .sk-estimator-doc-link.fitted:hover {
342
+ /* fitted */
343
+ background-color: var(--sklearn-color-fitted-level-3);
344
+ color: var(--sklearn-color-background);
345
+ text-decoration: none;
346
+ }
347
+
348
+ /* Span, style for the box shown on hovering the info icon */
349
+ .sk-estimator-doc-link span {
350
+ display: none;
351
+ z-index: 9999;
352
+ position: relative;
353
+ font-weight: normal;
354
+ right: .2ex;
355
+ padding: .5ex;
356
+ margin: .5ex;
357
+ width: min-content;
358
+ min-width: 20ex;
359
+ max-width: 50ex;
360
+ color: var(--sklearn-color-text);
361
+ box-shadow: 2pt 2pt 4pt #999;
362
+ /* unfitted */
363
+ background: var(--sklearn-color-unfitted-level-0);
364
+ border: .5pt solid var(--sklearn-color-unfitted-level-3);
365
+ }
366
+
367
+ .sk-estimator-doc-link.fitted span {
368
+ /* fitted */
369
+ background: var(--sklearn-color-fitted-level-0);
370
+ border: var(--sklearn-color-fitted-level-3);
371
+ }
372
+
373
+ .sk-estimator-doc-link:hover span {
374
+ display: block;
375
+ }
376
+
377
+ /* "?"-specific style due to the `<a>` HTML tag */
378
+
379
+ #sk-container-id-2 a.estimator_doc_link {
380
+ float: right;
381
+ font-size: 1rem;
382
+ line-height: 1em;
383
+ font-family: monospace;
384
+ background-color: var(--sklearn-color-background);
385
+ border-radius: 1rem;
386
+ height: 1rem;
387
+ width: 1rem;
388
+ text-decoration: none;
389
+ /* unfitted */
390
+ color: var(--sklearn-color-unfitted-level-1);
391
+ border: var(--sklearn-color-unfitted-level-1) 1pt solid;
392
+ }
393
+
394
+ #sk-container-id-2 a.estimator_doc_link.fitted {
395
+ /* fitted */
396
+ border: var(--sklearn-color-fitted-level-1) 1pt solid;
397
+ color: var(--sklearn-color-fitted-level-1);
398
+ }
399
+
400
+ /* On hover */
401
+ #sk-container-id-2 a.estimator_doc_link:hover {
402
+ /* unfitted */
403
+ background-color: var(--sklearn-color-unfitted-level-3);
404
+ color: var(--sklearn-color-background);
405
+ text-decoration: none;
406
+ }
407
+
408
+ #sk-container-id-2 a.estimator_doc_link.fitted:hover {
409
+ /* fitted */
410
+ background-color: var(--sklearn-color-fitted-level-3);
411
+ }
412
+ </style><div id="sk-container-id-2" class="sk-top-container"><div class="sk-text-repr-fallback"><pre>RandomForestRegressor(max_depth=34)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class="sk-container" hidden><div class="sk-item"><div class="sk-estimator fitted sk-toggleable"><input class="sk-toggleable__control sk-hidden--visually" id="sk-estimator-id-2" type="checkbox" checked><label for="sk-estimator-id-2" class="sk-toggleable__label fitted sk-toggleable__label-arrow fitted">&nbsp;&nbsp;RandomForestRegressor<a class="sk-estimator-doc-link fitted" rel="noreferrer" target="_blank" href="https://scikit-learn.org/1.5/modules/generated/sklearn.ensemble.RandomForestRegressor.html">?<span>Documentation for RandomForestRegressor</span></a><span class="sk-estimator-doc-link fitted">i<span>Fitted</span></span></label><div class="sk-toggleable__content fitted"><pre>RandomForestRegressor(max_depth=34)</pre></div> </div></div></div></div>
413
+ </body>
414
+ </html>
415
+
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ env:
5
+ conda: conda.yaml
6
+ virtualenv: python_env.yaml
7
+ loader_module: mlflow.sklearn
8
+ model_path: model.pkl
9
+ predict_fn: predict
10
+ python_version: 3.11.0
11
+ sklearn:
12
+ code: null
13
+ pickled_model: model.pkl
14
+ serialization_format: cloudpickle
15
+ sklearn_version: 1.5.2
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 34769333
18
+ model_uuid: 6d6ca6151f804bf69e8c2ad9a6f0deb8
19
+ run_id: ff9b209269104b37b82bb9564fe96907
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 12:24:07.662782'
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - cloudpickle==3.0.0
9
+ - numpy==1.26.2
10
+ - pandas==2.2.2
11
+ - psutil==5.9.4
12
+ - scikit-learn==1.5.2
13
+ - scipy==1.11.4
14
+ - typing==3.7.4.3
15
+ name: mlflow-env
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b51c46f274e74ab79fd748cbe4fa01c5216d66f347bd96f71cfedf31015152f
3
+ size 34769333
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/149819317988706962/ff9b209269104b37b82bb9564fe96907/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ cloudpickle==3.0.0
3
+ numpy==1.26.2
4
+ pandas==2.2.2
5
+ psutil==5.9.4
6
+ scikit-learn==1.5.2
7
+ scipy==1.11.4
8
+ typing==3.7.4.3
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/feature_importance_weight.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"f0": 30335.0, "f1": 12283.0, "f2": 8903.0, "f3": 6526.0, "f4": 8117.0, "f5": 7541.0, "f6": 6146.0, "f7": 6050.0, "f8": 3123.0, "f9": 3844.0, "f10": 6510.0, "f11": 4622.0, "f12": 3717.0, "f13": 3799.0, "f14": 2906.0, "f15": 3587.0, "f16": 3904.0, "f17": 4225.0, "f18": 3999.0, "f19": 2503.0, "f20": 2764.0, "f21": 4179.0, "f22": 4006.0, "f23": 3549.0, "f24": 3621.0, "f25": 2669.0, "f26": 2954.0, "f27": 3504.0, "f28": 3645.0, "f29": 3696.0, "f30": 2283.0, "f31": 2338.0, "f32": 3725.0}
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/feature_importance_weight.png ADDED
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ data: model.xgb
5
+ env:
6
+ conda: conda.yaml
7
+ virtualenv: python_env.yaml
8
+ loader_module: mlflow.xgboost
9
+ python_version: 3.11.0
10
+ xgboost:
11
+ code: null
12
+ data: model.xgb
13
+ model_class: xgboost.sklearn.XGBRegressor
14
+ model_format: xgb
15
+ xgb_version: 2.1.1
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 12354728
18
+ model_uuid: ccfb5bbaecb042b38a2b828e2165d60f
19
+ run_id: 5da5a79d58cf46bb8d6496df6c8bc067
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float32", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 12:22:48.833671'
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - numpy==1.26.2
9
+ - pandas==2.2.2
10
+ - psutil==5.9.4
11
+ - scikit-learn==1.5.2
12
+ - scipy==1.11.4
13
+ - typing==3.7.4.3
14
+ - xgboost==2.1.1
15
+ name: mlflow-env
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/model.xgb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c823873e6e051da216bde5618c3db8390d1cdc8e1edd143c59272d69548fc05f
3
+ size 12354728
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/674375719018272828/5da5a79d58cf46bb8d6496df6c8bc067/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ numpy==1.26.2
3
+ pandas==2.2.2
4
+ psutil==5.9.4
5
+ scikit-learn==1.5.2
6
+ scipy==1.11.4
7
+ typing==3.7.4.3
8
+ xgboost==2.1.1
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/feature_importance_weight.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"f0": 30335.0, "f1": 12283.0, "f2": 8903.0, "f3": 6526.0, "f4": 8117.0, "f5": 7541.0, "f6": 6146.0, "f7": 6050.0, "f8": 3123.0, "f9": 3844.0, "f10": 6510.0, "f11": 4622.0, "f12": 3717.0, "f13": 3799.0, "f14": 2906.0, "f15": 3587.0, "f16": 3904.0, "f17": 4225.0, "f18": 3999.0, "f19": 2503.0, "f20": 2764.0, "f21": 4179.0, "f22": 4006.0, "f23": 3549.0, "f24": 3621.0, "f25": 2669.0, "f26": 2954.0, "f27": 3504.0, "f28": 3645.0, "f29": 3696.0, "f30": 2283.0, "f31": 2338.0, "f32": 3725.0}
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/feature_importance_weight.png ADDED
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ data: model.xgb
5
+ env:
6
+ conda: conda.yaml
7
+ virtualenv: python_env.yaml
8
+ loader_module: mlflow.xgboost
9
+ python_version: 3.11.0
10
+ xgboost:
11
+ code: null
12
+ data: model.xgb
13
+ model_class: xgboost.sklearn.XGBRegressor
14
+ model_format: xgb
15
+ xgb_version: 2.1.1
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 12354728
18
+ model_uuid: 95d8f73e972b41e49e2291370f132bd9
19
+ run_id: 976bcbfebc774af6b12bc6785df91a9c
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float32", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 16:25:07.964079'
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - numpy==1.26.2
9
+ - pandas==2.2.2
10
+ - psutil==5.9.4
11
+ - scikit-learn==1.5.2
12
+ - scipy==1.11.4
13
+ - typing==3.7.4.3
14
+ - xgboost==2.1.1
15
+ name: mlflow-env
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/model.xgb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c823873e6e051da216bde5618c3db8390d1cdc8e1edd143c59272d69548fc05f
3
+ size 12354728
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/674375719018272828/976bcbfebc774af6b12bc6785df91a9c/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ numpy==1.26.2
3
+ pandas==2.2.2
4
+ psutil==5.9.4
5
+ scikit-learn==1.5.2
6
+ scipy==1.11.4
7
+ typing==3.7.4.3
8
+ xgboost==2.1.1
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/feature_importance_weight.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"f0": 30335.0, "f1": 12283.0, "f2": 8903.0, "f3": 6526.0, "f4": 8117.0, "f5": 7541.0, "f6": 6146.0, "f7": 6050.0, "f8": 3123.0, "f9": 3844.0, "f10": 6510.0, "f11": 4622.0, "f12": 3717.0, "f13": 3799.0, "f14": 2906.0, "f15": 3587.0, "f16": 3904.0, "f17": 4225.0, "f18": 3999.0, "f19": 2503.0, "f20": 2764.0, "f21": 4179.0, "f22": 4006.0, "f23": 3549.0, "f24": 3621.0, "f25": 2669.0, "f26": 2954.0, "f27": 3504.0, "f28": 3645.0, "f29": 3696.0, "f30": 2283.0, "f31": 2338.0, "f32": 3725.0}
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/feature_importance_weight.png ADDED
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ data: model.xgb
5
+ env:
6
+ conda: conda.yaml
7
+ virtualenv: python_env.yaml
8
+ loader_module: mlflow.xgboost
9
+ python_version: 3.11.0
10
+ xgboost:
11
+ code: null
12
+ data: model.xgb
13
+ model_class: xgboost.sklearn.XGBRegressor
14
+ model_format: xgb
15
+ xgb_version: 2.1.1
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 12354728
18
+ model_uuid: e6fbedea3ece4da9ad5612e8efaf58b3
19
+ run_id: accdc880bb474188a8274ccfb0cf0d66
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float32", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 11:42:28.142214'
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - numpy==1.26.2
9
+ - pandas==2.2.2
10
+ - psutil==5.9.4
11
+ - scikit-learn==1.5.2
12
+ - scipy==1.11.4
13
+ - typing==3.7.4.3
14
+ - xgboost==2.1.1
15
+ name: mlflow-env
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/model.xgb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c823873e6e051da216bde5618c3db8390d1cdc8e1edd143c59272d69548fc05f
3
+ size 12354728
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/674375719018272828/accdc880bb474188a8274ccfb0cf0d66/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ numpy==1.26.2
3
+ pandas==2.2.2
4
+ psutil==5.9.4
5
+ scikit-learn==1.5.2
6
+ scipy==1.11.4
7
+ typing==3.7.4.3
8
+ xgboost==2.1.1
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/feature_importance_weight.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"f0": 30335.0, "f1": 12283.0, "f2": 8903.0, "f3": 6526.0, "f4": 8117.0, "f5": 7541.0, "f6": 6146.0, "f7": 6050.0, "f8": 3123.0, "f9": 3844.0, "f10": 6510.0, "f11": 4622.0, "f12": 3717.0, "f13": 3799.0, "f14": 2906.0, "f15": 3587.0, "f16": 3904.0, "f17": 4225.0, "f18": 3999.0, "f19": 2503.0, "f20": 2764.0, "f21": 4179.0, "f22": 4006.0, "f23": 3549.0, "f24": 3621.0, "f25": 2669.0, "f26": 2954.0, "f27": 3504.0, "f28": 3645.0, "f29": 3696.0, "f30": 2283.0, "f31": 2338.0, "f32": 3725.0}
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/feature_importance_weight.png ADDED
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/MLmodel ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ artifact_path: model
2
+ flavors:
3
+ python_function:
4
+ data: model.xgb
5
+ env:
6
+ conda: conda.yaml
7
+ virtualenv: python_env.yaml
8
+ loader_module: mlflow.xgboost
9
+ python_version: 3.11.0
10
+ xgboost:
11
+ code: null
12
+ data: model.xgb
13
+ model_class: xgboost.sklearn.XGBRegressor
14
+ model_format: xgb
15
+ xgb_version: 2.1.1
16
+ mlflow_version: 2.16.2
17
+ model_size_bytes: 12354728
18
+ model_uuid: e6dbc474179049ceaf181dcb2d2477ba
19
+ run_id: f431bc7dfc364411bfea5e73327458d1
20
+ signature:
21
+ inputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float64", "shape": [-1, 33]}}]'
22
+ outputs: '[{"type": "tensor", "tensor-spec": {"dtype": "float32", "shape": [-1,
23
+ 6]}}]'
24
+ params: null
25
+ utc_time_created: '2024-09-30 13:22:22.959048'
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/conda.yaml ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ channels:
2
+ - conda-forge
3
+ dependencies:
4
+ - python=3.11.0
5
+ - pip<=24.2
6
+ - pip:
7
+ - mlflow==2.16.2
8
+ - numpy==1.26.2
9
+ - pandas==2.2.2
10
+ - psutil==5.9.4
11
+ - scikit-learn==1.5.2
12
+ - scipy==1.11.4
13
+ - typing==3.7.4.3
14
+ - xgboost==2.1.1
15
+ name: mlflow-env
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/model.xgb ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c823873e6e051da216bde5618c3db8390d1cdc8e1edd143c59272d69548fc05f
3
+ size 12354728
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/python_env.yaml ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ python: 3.11.0
2
+ build_dependencies:
3
+ - pip==24.2
4
+ - setuptools==65.5.0
5
+ - wheel==0.41.2
6
+ dependencies:
7
+ - -r requirements.txt
mlartifacts/674375719018272828/f431bc7dfc364411bfea5e73327458d1/artifacts/model/requirements.txt ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ mlflow==2.16.2
2
+ numpy==1.26.2
3
+ pandas==2.2.2
4
+ psutil==5.9.4
5
+ scikit-learn==1.5.2
6
+ scipy==1.11.4
7
+ typing==3.7.4.3
8
+ xgboost==2.1.1