This commit is contained in:
2025-11-18 02:55:01 +03:00
parent 658e5f55f1
commit 3f13f2363c
20 changed files with 152363 additions and 15 deletions
+4
View File
@@ -0,0 +1,4 @@
__pycache__/
.vscode/
.venv/
.direnv/
Binary file not shown.
Generated
+61
View File
@@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1763283776,
"narHash": "sha256-Y7TDFPK4GlqrKrivOcsHG8xSGqQx3A6c+i7novT85Uk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "50a96edd8d0db6cc8db57dab6bb6d6ee1f3dc49a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+21 -10
View File
@@ -1,8 +1,8 @@
{ {
description = "Python development environment with Jupyter"; description = "Python development env with venv + Jupyter";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; # используйте актуальную версию nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
}; };
@@ -13,17 +13,28 @@
in in
{ {
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
buildInputs = [ packages = with pkgs; [
pkgs.python310 python312
pkgs.python310Packages.ipython python312Packages.virtualenv
pkgs.python310Packages.jupyterlab python312Packages.pip
pkgs.git
python312Packages.jupyterlab
python312Packages.ipykernel
]; ];
shellHook = '' shellHook = ''
echo "Welcome to your Python + Jupyter dev environment!" echo "🐍 Python: $(python3 --version)"
if [ ! -d .venv ]; then
python3 -m venv .venv
. .venv/bin/activate
pip install --upgrade pip wheel
else
. .venv/bin/activate
fi
python -m ipykernel install --user --name "nix-env" --display-name "Python (nix)"
''; '';
}; };
} });
);
} }
+191
View File
@@ -0,0 +1,191 @@
import numpy as np
class Preprocessor:
def __init__(self):
pass
def fit(self, X, Y=None):
pass
def transform(self, X):
pass
def fit_transform(self, X, Y=None):
pass
class MyOneHotEncoder(Preprocessor):
def __init__(self, dtype=np.float64):
super(Preprocessor).__init__()
self.dtype = dtype
self.types = {}
def fit(self, X, Y=None):
"""
param X: training objects, pandas-dataframe, shape [n_objects, n_features]
param Y: unused
"""
for col in X.columns:
self.types[col] = sorted(X[col].unique())
def transform(self, X):
"""
param X: objects to transform, pandas-dataframe, shape [n_objects, n_features]
returns: transformed objects, numpy-array, shape [n_objects, |f1| + |f2| + ...]
"""
n_objects = X.shape[0]
n_features = sum(len(categories) for categories in self.types.vals())
res = np.zeros((n_objects, n_features))
shift_indexes = 0
for column, categories in self.types.items():
for i, category in enumerate(categories):
indices = np.where(X[column] == category)
res[indices, shift_indexes + i] = 1
shift_indexes += len(categories)
return res
def fit_transform(self, X, Y=None):
self.fit(X)
return self.transform(X)
def get_params(self, deep=True):
return {"dtype": self.dtype}
class SimpleCounterEncoder:
def __init__(self, dtype=np.float64):
self.dtype = dtype
self.count = {}
def fit(self, X, Y):
"""
param X: training objects, pandas-dataframe, shape [n_objects, n_features]
param Y: target for training objects, pandas-series, shape [n_objects,]
"""
for col in X.columns:
uniq_vals = X[col].unique()
self.count[col] = {}
for val in uniq_vals:
indexes = X[col] == val
self.count[col][val] = [Y[indexes].mean(), np.mean(indexes)]
def transform(self, X, a=1e-5, b=1e-5):
"""
param X: objects to transform, pandas-dataframe, shape [n_objects, n_features]
param a: constant for counters, float
param b: constant for counters, float
returns: transformed objects, numpy-array, shape [n_objects, 3 * n_features]
"""
n_obj, n_feach = X.shape
res = np.zeros((n_obj, 3 * n_feach))
for i, col in enumerate(X.columns):
for j in range(n_obj):
val = X.iloc[j, i]
mean_expected, frac = self.count[col][val]
res[j, 3 * i] = mean_expected
res[j, 3 * i + 1] = frac
res[j, 3 * i + 2] = (mean_expected + a) / (frac + b)
return res
def fit_transform(self, X, Y, a=1e-5, b=1e-5):
self.fit(X, Y)
return self.transform(X, a, b)
def get_params(self, deep=True):
return {"dtype": self.dtype}
def group_k_fold(size, n_splits=3, seed=1):
idx = np.arange(size)
np.random.seed(seed)
idx = np.random.permutation(idx)
n = size // n_splits
for i in range(n_splits - 1):
yield idx[i * n:(i + 1) * n], np.hstack((idx[: i * n], idx[(i + 1) * n:]))
yield idx[(n_splits - 1) * n:], idx[:(n_splits - 1) * n]
class FoldCounters:
def __init__(self, n_folds=3, dtype=np.float64):
self.dtype = dtype
self.n_folds = n_folds
self.fold_count = []
def fit(self, X, Y, seed=1):
"""
param X: training objects, pandas-dataframe, shape [n_objects, n_features]
param Y: target for training objects, pandas-series, shape [n_objects,]
param seed: random seed, int
"""
for fold_idx, rest_idx in group_k_fold(X.shape[0], self.n_folds, seed):
fold_counter = {}
X_fold, Y_fold = X.iloc[rest_idx], Y.iloc[rest_idx]
for column in X.columns:
unique_val = X_fold[column].unique()
fold_counter[column] = {}
for val in unique_val:
fold_counter[column][val] = [
Y_fold[X_fold[column] == val].mean(),
np.mean(X_fold[column] == val),
]
self.fold_count.append((fold_idx, fold_counter))
def transform(self, X, a=1e-5, b=1e-5):
"""
param X: objects to transform, pandas-dataframe, shape [n_objects, n_features]
param a: constant for counters, float
param b: constant for counters, float
returns: transformed objects, numpy-array, shape [n_objects, 3 * n_features]
"""
n_obj, n_feach = X.shape
res = np.zeros((n_obj, 3 * n_feach))
for fold_idx, fold_count in self.fold_count:
for i, column in enumerate(X.columns):
for j in fold_idx:
val = X.iloc[j, i]
mean_expected, frac = fold_count[column][val]
res[j, 3 * i] = mean_expected
res[j, 3 * i + 1] = frac
res[j, 3 * i + 2] = (mean_expected + a) / (frac + b)
return res
def fit_transform(self, X, Y, a=1e-5, b=1e-5):
self.fit(X, Y)
return self.transform(X, a, b)
def weights(x, y):
"""
param x: training set of one feature, numpy-array, shape [n_objects,]
param y: target for training objects, numpy-array, shape [n_objects,]
returns: optimal weights, numpy-array, shape [|x unique vals|,]
"""
uniq_vals = np.unique(x)
enc_x = np.eye(uniq_vals.shape[0])[x]
weight = np.zeros(enc_x.shape[1])
lr = 1e-2
for _ in range(1000):
p = np.dot(enc_x, weight)
grad = np.dot(enc_x.T, (p - y))
weight -= grad * lr
return weight
File diff suppressed because one or more lines are too long
+23
View File
@@ -0,0 +1,23 @@
set -o xtrace
setup_root() {
apt-get install python3.12 -qq -y
apt-get install -qq -y \
python3-pip \
python3-tk
python3 --version
pip install --upgrade pip
pip --version
echo -e "catboost==1.2.8\ngdown==5.2.0\nh5py==3.14.0\nhyperopt==0.2.7\nipympl==0.9.7\nipywidgets==7.7.1\nlightgbm==4.6.0\nmatplotlib-inline==0.1.7\nmatplotlib==3.10.0\nnumpy==2.0.2\npandas==2.2.2\npep8==1.7.1\nplotly==5.24.1\npycodestyle==2.14.0\npytest==8.4.1\nscikit-image==0.25.2\nscikit-learn==1.6.1\nscipy==1.16.1\nseaborn==0.13.2\ntqdm==4.67.1\numap-learn==0.5.9.post2\nxgboost==3.0.4" > requirements.txt
pip install -r ./requirements.txt
}
setup_checker() {
python3 -c 'import matplotlib.pyplot'
}
"$@"
File diff suppressed because one or more lines are too long
@@ -0,0 +1,22 @@
catboost==1.2.8
gdown==5.2.0
h5py==3.14.0
hyperopt==0.2.7
ipympl==0.9.7
ipywidgets==7.7.1
lightgbm==4.6.0
matplotlib-inline==0.1.7
matplotlib==3.10.0
numpy==2.0.2
pandas==2.2.2
pep8==1.7.1
plotly==5.24.1
pycodestyle==2.14.0
pytest==8.4.1
scikit-image==0.25.2
scikit-learn==1.6.1
scipy==1.16.1
seaborn==0.13.2
tqdm==4.67.1
umap-learn==0.5.9.post2
xgboost==3.0.4
+65
View File
@@ -0,0 +1,65 @@
#!/usr/bin/env python3
from json import load, dumps
from glob import glob
from os import environ
from os.path import join
from sys import argv, exit
def run_single_test(data_dir, output_dir):
from pytest import main
exit(main(['-vv', '-p', 'no:cacheprovider', join(data_dir, 'test.py')]))
def check_test(data_dir):
pass
def grade(data_path):
results = load(open(join(data_path, 'results.json')))
grade_mapping = [0.5, 0.5, 1, 1]
max_mark = sum(grade_mapping)
total_grade = 0
ok_count = 0
for result, grade in zip(results, grade_mapping):
if result['status'] == 'Ok':
total_grade += grade
ok_count += 1
total_count = len(results)
description = '%02d/%02d' % (ok_count, total_count)
mark = total_grade / sum(grade_mapping) * max_mark
res = {'description': description, 'mark': mark}
if environ.get('CHECKER'):
print(dumps(res))
return res
if __name__ == '__main__':
if environ.get('CHECKER'):
# Script is running in testing system
if len(argv) != 4:
print('Usage: %s mode data_dir output_dir' % argv[0])
exit(0)
mode = argv[1]
data_dir = argv[2]
output_dir = argv[3]
if mode == 'run_single_test':
run_single_test(data_dir, output_dir)
elif mode == 'check_test':
check_test(data_dir)
elif mode == 'grade':
grade(data_dir)
else:
# Script is running locally
name = argv[1]
test_dir = glob(f'tests/[0-9][0-9]_unittest_{name}_input')
if not test_dir:
print('Test not found')
exit(0)
from pytest import main
exit(main(['-vv', join(test_dir[0], 'test.py')]))
Binary file not shown.
@@ -0,0 +1,67 @@
import numpy as np
import pandas as pd
from Task import MyOneHotEncoder, SimpleCounterEncoder, FoldCounters, weights
def test_imports():
with open('Task.py', 'r') as file:
lines = ' '.join(file.readlines())
assert 'import numpy' in lines
assert lines.count('import') == 1
assert 'sklearn' not in lines
assert 'get_dummies' not in lines
def test_one_hot_small():
data = {'col_1': [0, 1, 0, 1, 0, 1], 'col_2': ['a', 'b', 'c', 'c', 'b', 'a']}
df_test = pd.DataFrame.from_dict(data)
enc = MyOneHotEncoder(dtype=int)
enc.fit(df_test)
onehot = enc.transform(df_test)
ans = np.array([[1,0,1,0,0],[0,1,0,1,0],[1,0,0,0,1],[0,1,0,0,1],[1,0,0,1,0],[0,1,1,0,0]])
assert len(onehot.shape) == 2
assert onehot.shape[0] == 6
assert onehot.shape[1] == 5
assert (ans == onehot).all()
assert type(onehot) == np.ndarray
def test_one_hot_big():
data = {'col_1': [1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 2, 1, 2, 0, 2, 1, 2, 0, 0, 2, 0, 1, 2, 2, 0, 1, 1, 2, 0], 'col_2': [1, 1, 1, 1, 0, 4, 1, 0, 0, 3, 2, 1, 0, 3, 1, 1, 3, 4, 0, 1, 3, 4, 2, 4, 0, 3, 1, 2, 0, 4], 'col_3': [1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1]}
df_test = pd.DataFrame.from_dict(data)
enc = MyOneHotEncoder(dtype=int)
enc.fit(df_test)
onehot = enc.transform(df_test)
ans = np.array([[0, 1, 0, 0, 1, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 1, 0, 1, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1, 1, 0],
[1, 0, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 1, 0, 1, 0, 0, 0, 0, 1, 0],
[1, 0, 0, 1, 0, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0, 0, 1],
[1, 0, 0, 0, 0, 1, 0, 0, 0, 1],
[0, 0, 1, 0, 1, 0, 0, 0, 0, 1],
[0, 1, 0, 1, 0, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 0, 1, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 0, 1, 0, 1, 0, 0, 0, 1, 0],
[0, 1, 0, 0, 0, 0, 1, 0, 0, 1],
[0, 0, 1, 0, 0, 0, 0, 1, 0, 1],
[1, 0, 0, 1, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 0, 1, 0, 0, 0, 1, 0, 1, 0],
[1, 0, 0, 0, 0, 0, 0, 1, 1, 0],
[0, 1, 0, 0, 0, 1, 0, 0, 1, 0],
[0, 0, 1, 0, 0, 0, 0, 1, 1, 0],
[0, 0, 1, 1, 0, 0, 0, 0, 1, 0],
[1, 0, 0, 0, 0, 0, 1, 0, 0, 1],
[0, 1, 0, 0, 1, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 1, 0, 0, 0, 1],
[0, 0, 1, 1, 0, 0, 0, 0, 0, 1],
[1, 0, 0, 0, 0, 0, 0, 1, 0, 1]])
assert len(onehot.shape) == 2
assert onehot.shape[0] == 30
assert onehot.shape[1] == 10
assert (onehot == ans).all()
assert type(onehot) == np.ndarray
@@ -0,0 +1,32 @@
import numpy as np
import pandas as pd
from Task import MyOneHotEncoder, SimpleCounterEncoder, FoldCounters, weights
def test_imports():
with open('Task.py', 'r') as file:
lines = ' '.join(file.readlines())
assert 'import numpy' in lines
assert lines.count('import') == 1
assert 'sklearn' not in lines
assert 'get_dummies' not in lines
def test_weights_small():
np.random.seed(1)
x = np.array([1, 1, 1, 1, 0, 4, 1, 0, 0, 3, 2, 1, 0, 3, 1, 1, 3, 4, 0, 1, 3, 4, 2, 4, 0, 3, 1, 2, 0, 4])
y = np.array([1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0])
w = weights(x, y)
ans = [0.5714285714285714, 0.4, 0.6666666666666666, 1.0, 0.2]
assert len(w) == 5
assert np.allclose(w, ans, atol=1e-8)
assert type(w) == np.ndarray
def test_weights_big():
np.random.seed(1)
x = np.random.choice([0, 1, 2, 3, 4, 5], size=(300,))
y = np.random.choice([0, 1], size=(300,))
w = weights(x, y)
ans = [0.38596491228070173, 0.5384615384615384, 0.4523809523809524, 0.3409090909090909, 0.44642857142857145, 0.42857142857142855]
assert len(w) == 6
assert np.allclose(w, ans, atol=1e-8)
assert type(w) == np.ndarray
Binary file not shown.
@@ -0,0 +1,96 @@
import numpy as np
import pandas as pd
from Task import SimpleCounterEncoder
def test_imports():
with open('Task.py', 'r') as file:
lines = ' '.join(file.readlines())
assert 'import numpy' in lines
assert lines.count('import') == 1
assert 'sklearn' not in lines
assert 'get_dummies' not in lines
def test_simple_counters_small():
data = {'col_1': [0, 0, 0, 1, 1, 1], 'col_2': ['a', 'b', 'c', 'a', 'b', 'c'], 'col_3': [0, 1, 2, 3, 4, 5]}
df_test = pd.DataFrame.from_dict(data)
enc = SimpleCounterEncoder()
enc.fit(df_test[['col_1', 'col_2']], df_test['col_3'])
counts = enc.transform(df_test[['col_1', 'col_2']], a=1, b=1)
print("Counters small")
print(counts)
ans = np.array([[1, 0.5, 4/3, 1.5, 1/3, 1.875],\
[1, 0.5, 4/3, 2.5, 1/3, 2.625],\
[1, 0.5, 4/3, 3.5, 1/3, 3.375],\
[4, 0.5, 10/3, 1.5, 1/3, 1.875],\
[4, 0.5, 10/3, 2.5, 1/3, 2.625],\
[4, 0.5, 10/3, 3.5, 1/3, 3.375]])
assert len(counts.shape) == 2
assert counts.shape[0] == 6
assert counts.shape[1] == 6
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
def test_simple_counters_diff_shape_small():
data_enc = {'col_1': [0, 0, 0, 1, 1, 1], 'col_2': ['a', 'b', 'c', 'a', 'b', 'c'], 'col_3': [0, 1, 2, 3, 4, 5]}
data_trans = {'col_1': [0, 1, 0, 1, 0], 'col_2': ['c', 'a', 'b', 'b', 'c']}
df_test_enc = pd.DataFrame.from_dict(data_enc)
df_test_trans = pd.DataFrame.from_dict(data_trans)
enc = SimpleCounterEncoder()
enc.fit(df_test_enc[['col_1', 'col_2']], df_test_enc['col_3'])
counts = enc.transform(df_test_trans[['col_1', 'col_2']], a=1, b=1)
ans = np.array([[1, 0.5, 4/3, 3.5, 1/3, 3.375],\
[4, 0.5, 10/3, 1.5, 1/3, 1.875],\
[1, 0.5, 4/3, 2.5, 1/3, 2.625],\
[4, 0.5, 10/3, 2.5, 1/3, 2.625],\
[1, 0.5, 4/3, 3.5, 1/3, 3.375]])
assert len(counts.shape) == 2
assert counts.shape[0] == 5
assert counts.shape[1] == 6
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
def test_simple_counters_big():
data = {'col_1': [1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 2, 1, 2, 0, 2, 1, 2, 0, 0, 2, 0, 1, 2, 2, 0, 1, 1, 2, 0], 'col_2': [1, 1, 1, 1, 0, 4, 1, 0, 0, 3, 2, 1, 0, 3, 1, 1, 3, 4, 0, 1, 3, 4, 2, 4, 0, 3, 1, 2, 0, 4], 'col_3': [1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], "target": [1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0]}
df_test = pd.DataFrame.from_dict(data)
enc = SimpleCounterEncoder()
enc.fit(df_test[['col_1', 'col_2', 'col_3']], df_test['target'])
counts = enc.transform(df_test[['col_1', 'col_2', 'col_3']], a=1, b=2)
ans = np.array([[0.6, 0.3333333333333333, 0.6857142857142857, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.4, 0.3333333333333333, 0.6, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.2, 0.16666666666666666, 0.5538461538461539, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 1.0, 0.16666666666666666, 0.9230769230769231, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.6666666666666666, 0.1, 0.7936507936507935, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 1.0, 0.16666666666666666, 0.9230769230769231, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.4, 0.3333333333333333, 0.6, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 1.0, 0.16666666666666666, 0.9230769230769231, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.2, 0.16666666666666666, 0.5538461538461539, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 1.0, 0.16666666666666666, 0.9230769230769231, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.2, 0.16666666666666666, 0.5538461538461539, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.6666666666666666, 0.1, 0.7936507936507935, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.2, 0.16666666666666666, 0.5538461538461539, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.36363636363636365, 0.36666666666666664, 0.5761843790012805 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 1.0, 0.16666666666666666, 0.9230769230769231, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.4, 0.3333333333333333, 0.6, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.6, 0.3333333333333333, 0.6857142857142857, 0.6666666666666666, 0.1, 0.7936507936507935, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.75, 0.26666666666666666, 0.7720588235294118, 0.5714285714285714, 0.23333333333333334, 0.7036247334754797, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ],\
[0.3333333333333333, 0.4, 0.5555555555555556, 0.2, 0.16666666666666666, 0.5538461538461539, 0.631578947368421, 0.6333333333333333, 0.619586942038641 ]])
assert len(counts.shape) == 2
assert counts.shape[0] == 30
assert counts.shape[1] == 9
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
Binary file not shown.
@@ -0,0 +1,103 @@
import numpy as np
import pandas as pd
from Task import MyOneHotEncoder, SimpleCounterEncoder, FoldCounters, weights
def test_imports():
with open('Task.py', 'r') as file:
lines = ' '.join(file.readlines())
assert 'import numpy' in lines
assert lines.count('import') == 1
assert 'sklearn' not in lines
assert 'get_dummies' not in lines
def test_kfold_counters_small():
data = {'col_1': [0,1,0,1,0,1,0,1,0,1,0,1], 'col_2':['a','b','c','a','b','c','a','b','c','a','b','c'], 'col_3': [1,2,3,4,1,2,3,4,1,2,3,4]}
df_test = pd.DataFrame.from_dict(data)
enc = FoldCounters(n_folds=2)
enc.fit(df_test[['col_1', 'col_2']], df_test['col_3'], seed=6)
counts = enc.transform(df_test[['col_1', 'col_2']], a=0, b=0)
ans = np.array([[7/3,0.5,14/3,3,1/3,9],\
[8/3,0.5,16/3,2,1/3,6],\
[5/3,0.5,10/3,2.5,1/3,7.5],\
[10/3,0.5,20/3,2,1/3,6],\
[5/3,0.5,10/3,3,1/3,9],\
[10/3,0.5,20/3,2.5,1/3,7.5],\
[7/3,0.5,14/3,3,1/3,9],\
[8/3,0.5,16/3,2,1/3,6],\
[7/3,0.5,14/3,2.5,1/3,7.5],\
[10/3,0.5,20/3,2,1/3,6],\
[5/3,0.5,10/3,3,1/3,9],\
[8/3,0.5,16/3,2.5,1/3,7.5]])
assert len(counts.shape) == 2
assert counts.shape[0] == 12
assert counts.shape[1] == 6
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
def test_kfold_counters_diffshape_idx_small():
data = np.array([[0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1], [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]])
index = pd.Index([11, 0, 9, 7, 6, 10, 1, 2, 5, 4, 3, 8])
df_test = pd.DataFrame(data.reshape(12, 2), index=index, columns=['col_1', 'col_2'])
enc = FoldCounters(n_folds=2)
enc.fit(df_test[['col_1']], df_test['col_2'], seed=6)
counts = enc.transform(df_test[['col_1']], a=0, b=0)
ans = np.array([[ 1. , 0.66666667, 1.5 ],\
[ 1. , 0.66666667, 1.5 ],\
[ 1. , 0.33333333, 3. ],\
[ 1. , 0.33333333, 3. ],\
[ 1. , 0.33333333, 3. ],\
[ 1. , 0.33333333, 3. ],\
[ 2. , 0.16666667, 12. ],\
[ 4. , 0.16666667, 24. ],\
[ 2. , 0.16666667, 12. ],\
[ 4. , 0.33333333, 12. ],\
[ 2. , 0.33333333, 6. ],\
[ 4. , 0.16666667, 24. ]])
assert len(counts.shape) == 2
assert counts.shape[0] == 12
assert counts.shape[1] == 3
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
def test_fold_counters_big():
data = {'col_1': [1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 2, 1, 2, 0, 2, 1, 2, 0, 0, 2, 0, 1, 2, 2, 0, 1, 1, 2, 0], 'col_2': [1, 1, 1, 1, 0, 4, 1, 0, 0, 3, 2, 1, 0, 3, 1, 1, 3, 4, 0, 1, 3, 4, 2, 4, 0, 3, 1, 2, 0, 4], 'col_3': [1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1], "target": [1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0]}
df_test = pd.DataFrame.from_dict(data)
enc = FoldCounters(n_folds=3)
enc.fit(df_test[['col_1', 'col_2', 'col_3']], df_test['target'], seed=1)
counts = enc.transform(df_test[['col_1', 'col_2', 'col_3']], a=1, b=2)
ans = np.array([[0.3333333333333333, 0.3, 0.5797101449275363, 0.2857142857142857, 0.35, 0.547112462006079, 0.5384615384615384, 0.65, 0.5805515239477503 ],\
[0.2857142857142857, 0.35, 0.547112462006079, 0.42857142857142855, 0.35, 0.60790273556231, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.2857142857142857, 0.35, 0.547112462006079, 0.42857142857142855, 0.35, 0.60790273556231, 0.5, 0.4, 0.625 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 0.5, 0.3, 0.6521739130434783, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 1.0, 0.2, 0.9090909090909091, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.3333333333333333, 0.45, 0.5442176870748299, 0.3333333333333333, 0.15, 0.6201550387596899, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.2857142857142857, 0.35, 0.547112462006079, 0.42857142857142855, 0.35, 0.60790273556231, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 1.0, 0.2, 0.9090909090909091, 0.5, 0.4, 0.625 ],\
[0.3333333333333333, 0.45, 0.5442176870748299, 0.25, 0.2, 0.5681818181818181, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.3333333333333333, 0.3, 0.5797101449275363, 1.0, 0.15, 0.9302325581395349, 0.5384615384615384, 0.65, 0.5805515239477503 ],\
[0.375, 0.4, 0.5729166666666667, 1.0, 0.05, 0.9756097560975611, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.8, 0.25, 0.8, 0.2857142857142857, 0.35, 0.547112462006079, 0.5384615384615384, 0.65, 0.5805515239477503 ],\
[0.3333333333333333, 0.3, 0.5797101449275363, 0.25, 0.2, 0.5681818181818181, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.8333333333333334, 0.3, 0.7971014492753624, 1.0, 0.15, 0.9302325581395349, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.375, 0.4, 0.5729166666666667, 0.5, 0.3, 0.6521739130434783, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.8, 0.25, 0.8, 0.2857142857142857, 0.35, 0.547112462006079, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.3333333333333333, 0.3, 0.5797101449275363, 1.0, 0.15, 0.9302325581395349, 0.5384615384615384, 0.65, 0.5805515239477503 ],\
[0.6, 0.25, 0.7111111111111111, 0.0, 0.15, 0.46511627906976744, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.2857142857142857, 0.35, 0.547112462006079, 1.0, 0.2, 0.9090909090909091, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.375, 0.4, 0.5729166666666667, 0.5, 0.3, 0.6521739130434783, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.6, 0.25, 0.7111111111111111, 1.0, 0.2, 0.9090909090909091, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.375, 0.4, 0.5729166666666667, 0.0, 0.15, 0.46511627906976744, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 1.0, 0.05, 0.9756097560975611, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.8333333333333334, 0.3, 0.7971014492753624, 0.25, 0.2, 0.5681818181818181, 0.5, 0.4, 0.625 ],\
[0.6, 0.25, 0.7111111111111111, 0.5, 0.3, 0.6521739130434783, 0.2857142857142857, 0.35, 0.547112462006079 ],\
[0.2857142857142857, 0.35, 0.547112462006079, 1.0, 0.15, 0.9302325581395349, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 0.5, 0.3, 0.6521739130434783, 0.6923076923076923, 0.65, 0.6386066763425254 ],\
[0.7142857142857143, 0.35, 0.729483282674772, 0.5, 0.1, 0.7142857142857143, 0.6666666666666666, 0.6, 0.641025641025641 ],\
[0.8, 0.25, 0.8, 0.25, 0.2, 0.5681818181818181, 0.5384615384615384, 0.65, 0.5805515239477503 ],\
[0.3333333333333333, 0.45, 0.5442176870748299, 0.3333333333333333, 0.15, 0.6201550387596899, 0.5384615384615384, 0.65, 0.5805515239477503 ]])
assert len(counts.shape) == 2
assert counts.shape[0] == 30
assert counts.shape[1] == 9
assert np.allclose(counts, ans, atol=1e-8)
assert type(counts) == np.ndarray
+145461
View File
File diff suppressed because it is too large Load Diff
@@ -94,11 +94,297 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 1,
"metadata": { "metadata": {
"id": "fMgnzKcqlIen" "id": "fMgnzKcqlIen"
}, },
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
"100 360 100 360 0 0 696 0 --:--:-- --:--:-- --:--:-- 697\n",
"Collecting catboost==1.2.8 (from -r ./requirements_2025_26_for_colab_small.txt (line 1))\n",
" Downloading catboost-1.2.8-cp312-cp312-manylinux2014_x86_64.whl.metadata (1.2 kB)\n",
"Collecting gdown==5.2.0 (from -r ./requirements_2025_26_for_colab_small.txt (line 2))\n",
" Downloading gdown-5.2.0-py3-none-any.whl.metadata (5.8 kB)\n",
"Collecting h5py==3.14.0 (from -r ./requirements_2025_26_for_colab_small.txt (line 3))\n",
" Downloading h5py-3.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.7 kB)\n",
"Collecting hyperopt==0.2.7 (from -r ./requirements_2025_26_for_colab_small.txt (line 4))\n",
" Downloading hyperopt-0.2.7-py2.py3-none-any.whl.metadata (1.7 kB)\n",
"Collecting ipympl==0.9.7 (from -r ./requirements_2025_26_for_colab_small.txt (line 5))\n",
" Downloading ipympl-0.9.7-py3-none-any.whl.metadata (8.7 kB)\n",
"Collecting ipywidgets==7.7.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 6))\n",
" Downloading ipywidgets-7.7.1-py2.py3-none-any.whl.metadata (1.9 kB)\n",
"Collecting lightgbm==4.6.0 (from -r ./requirements_2025_26_for_colab_small.txt (line 7))\n",
" Downloading lightgbm-4.6.0-py3-none-manylinux_2_28_x86_64.whl.metadata (17 kB)\n",
"Requirement already satisfied: matplotlib-inline==0.1.7 in /nix/store/xll44q41bdn0i1zcphwj7p95j5arz356-python3.12-matplotlib-inline-0.1.7/lib/python3.12/site-packages (from -r ./requirements_2025_26_for_colab_small.txt (line 8)) (0.1.7)\n",
"Collecting matplotlib==3.10.0 (from -r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)\n",
"Collecting numpy==2.0.2 (from -r ./requirements_2025_26_for_colab_small.txt (line 10))\n",
" Downloading numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)\n",
"Collecting pandas==2.2.2 (from -r ./requirements_2025_26_for_colab_small.txt (line 11))\n",
" Downloading pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (19 kB)\n",
"Collecting pep8==1.7.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 12))\n",
" Downloading pep8-1.7.1-py2.py3-none-any.whl.metadata (22 kB)\n",
"Collecting plotly==5.24.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 13))\n",
" Downloading plotly-5.24.1-py3-none-any.whl.metadata (7.3 kB)\n",
"Collecting pycodestyle==2.14.0 (from -r ./requirements_2025_26_for_colab_small.txt (line 14))\n",
" Downloading pycodestyle-2.14.0-py2.py3-none-any.whl.metadata (4.5 kB)\n",
"Collecting pytest==8.4.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 15))\n",
" Downloading pytest-8.4.1-py3-none-any.whl.metadata (7.7 kB)\n",
"Collecting scikit-image==0.25.2 (from -r ./requirements_2025_26_for_colab_small.txt (line 16))\n",
" Downloading scikit_image-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (14 kB)\n",
"Collecting scikit-learn==1.6.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 17))\n",
" Downloading scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)\n",
"Collecting scipy==1.16.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 18))\n",
" Downloading scipy-1.16.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (61 kB)\n",
"Collecting seaborn==0.13.2 (from -r ./requirements_2025_26_for_colab_small.txt (line 19))\n",
" Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB)\n",
"Collecting tqdm==4.67.1 (from -r ./requirements_2025_26_for_colab_small.txt (line 20))\n",
" Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
"Collecting umap-learn==0.5.9.post2 (from -r ./requirements_2025_26_for_colab_small.txt (line 21))\n",
" Downloading umap_learn-0.5.9.post2-py3-none-any.whl.metadata (25 kB)\n",
"Collecting xgboost==3.0.4 (from -r ./requirements_2025_26_for_colab_small.txt (line 22))\n",
" Downloading xgboost-3.0.4-py3-none-manylinux_2_28_x86_64.whl.metadata (2.1 kB)\n",
"Collecting graphviz (from catboost==1.2.8->-r ./requirements_2025_26_for_colab_small.txt (line 1))\n",
" Downloading graphviz-0.21-py3-none-any.whl.metadata (12 kB)\n",
"Requirement already satisfied: six in /nix/store/vfy6pmqhgw9kaxiqyhmlg8rmn2aaw6fd-python3.12-six-1.17.0/lib/python3.12/site-packages (from catboost==1.2.8->-r ./requirements_2025_26_for_colab_small.txt (line 1)) (1.17.0)\n",
"Requirement already satisfied: beautifulsoup4 in /nix/store/bwljsfpk78gbaq7rvm3wr3jyrqbwb8i9-python3.12-beautifulsoup4-4.12.3/lib/python3.12/site-packages (from gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (4.12.3)\n",
"Requirement already satisfied: filelock in /nix/store/zm1ag99a91zq3h525fbpka5s4yvnjx6c-python3.12-filelock-3.18.0/lib/python3.12/site-packages (from gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (3.18.0)\n",
"Requirement already satisfied: requests[socks] in /nix/store/7i5sy2qyz79gjkdlcrmdlgzmjlimq7sk-python3.12-requests-2.32.3/lib/python3.12/site-packages (from gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (2.32.3)\n",
"Collecting networkx>=2.2 (from hyperopt==0.2.7->-r ./requirements_2025_26_for_colab_small.txt (line 4))\n",
" Downloading networkx-3.5-py3-none-any.whl.metadata (6.3 kB)\n",
"Collecting future (from hyperopt==0.2.7->-r ./requirements_2025_26_for_colab_small.txt (line 4))\n",
" Downloading future-1.0.0-py3-none-any.whl.metadata (4.0 kB)\n",
"Collecting cloudpickle (from hyperopt==0.2.7->-r ./requirements_2025_26_for_colab_small.txt (line 4))\n",
" Downloading cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB)\n",
"Collecting py4j (from hyperopt==0.2.7->-r ./requirements_2025_26_for_colab_small.txt (line 4))\n",
" Downloading py4j-0.10.9.9-py2.py3-none-any.whl.metadata (1.3 kB)\n",
"Requirement already satisfied: ipython<10 in /nix/store/sx6qmhz6rv8fdx0z2jym3kg7pb4ihi9l-python3.12-ipython-9.2.0/lib/python3.12/site-packages (from ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (9.2.0)\n",
"Collecting pillow (from ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5))\n",
" Downloading pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB)\n",
"Requirement already satisfied: traitlets<6 in /nix/store/5fkvg2aiqnv0v6r3k9f4x41qbql50f78-python3.12-traitlets-5.14.3/lib/python3.12/site-packages (from ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (5.14.3)\n",
"Requirement already satisfied: ipykernel>=4.5.1 in /nix/store/pzz4808nm0p3lmjpzxnfyb7d3xb6csby-python3.12-ipykernel-6.29.5/lib/python3.12/site-packages (from ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (6.29.5)\n",
"Collecting ipython-genutils~=0.2.0 (from ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6))\n",
" Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl.metadata (755 bytes)\n",
"Collecting widgetsnbextension~=3.6.0 (from ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6))\n",
" Downloading widgetsnbextension-3.6.10-py2.py3-none-any.whl.metadata (1.3 kB)\n",
"Requirement already satisfied: jupyterlab-widgets>=1.0.0 in /home/krosh/Documents/Github/ML/.venv/lib/python3.12/site-packages (from ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.0.16)\n",
"Collecting contourpy>=1.0.1 (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.5 kB)\n",
"Collecting cycler>=0.10 (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)\n",
"Collecting fonttools>=4.22.0 (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (112 kB)\n",
"Collecting kiwisolver>=1.3.1 (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.3 kB)\n",
"Requirement already satisfied: packaging>=20.0 in /nix/store/h1qsc2cb41r5iaix9n7s3gn4r5s2pdfw-python3.12-packaging-24.2/lib/python3.12/site-packages (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9)) (24.2)\n",
"Collecting pyparsing>=2.3.1 (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9))\n",
" Downloading pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB)\n",
"Requirement already satisfied: python-dateutil>=2.7 in /nix/store/dn6x1maxc5cxyq84fc51z8pzjk2f4wq6-python3.12-python-dateutil-2.9.0.post0/lib/python3.12/site-packages (from matplotlib==3.10.0->-r ./requirements_2025_26_for_colab_small.txt (line 9)) (2.9.0.post0)\n",
"Collecting pytz>=2020.1 (from pandas==2.2.2->-r ./requirements_2025_26_for_colab_small.txt (line 11))\n",
" Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)\n",
"Collecting tzdata>=2022.7 (from pandas==2.2.2->-r ./requirements_2025_26_for_colab_small.txt (line 11))\n",
" Using cached tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)\n",
"Collecting tenacity>=6.2.0 (from plotly==5.24.1->-r ./requirements_2025_26_for_colab_small.txt (line 13))\n",
" Downloading tenacity-9.1.2-py3-none-any.whl.metadata (1.2 kB)\n",
"Collecting iniconfig>=1 (from pytest==8.4.1->-r ./requirements_2025_26_for_colab_small.txt (line 15))\n",
" Downloading iniconfig-2.3.0-py3-none-any.whl.metadata (2.5 kB)\n",
"Collecting pluggy<2,>=1.5 (from pytest==8.4.1->-r ./requirements_2025_26_for_colab_small.txt (line 15))\n",
" Downloading pluggy-1.6.0-py3-none-any.whl.metadata (4.8 kB)\n",
"Requirement already satisfied: pygments>=2.7.2 in /nix/store/hdikjhn6cic0ibvb3j8cghy7lg3kv6yy-python3.12-pygments-2.19.1/lib/python3.12/site-packages (from pytest==8.4.1->-r ./requirements_2025_26_for_colab_small.txt (line 15)) (2.19.1)\n",
"Collecting imageio!=2.35.0,>=2.33 (from scikit-image==0.25.2->-r ./requirements_2025_26_for_colab_small.txt (line 16))\n",
" Downloading imageio-2.37.2-py3-none-any.whl.metadata (9.7 kB)\n",
"Collecting tifffile>=2022.8.12 (from scikit-image==0.25.2->-r ./requirements_2025_26_for_colab_small.txt (line 16))\n",
" Downloading tifffile-2025.10.16-py3-none-any.whl.metadata (31 kB)\n",
"Collecting lazy-loader>=0.4 (from scikit-image==0.25.2->-r ./requirements_2025_26_for_colab_small.txt (line 16))\n",
" Downloading lazy_loader-0.4-py3-none-any.whl.metadata (7.6 kB)\n",
"Collecting joblib>=1.2.0 (from scikit-learn==1.6.1->-r ./requirements_2025_26_for_colab_small.txt (line 17))\n",
" Downloading joblib-1.5.2-py3-none-any.whl.metadata (5.6 kB)\n",
"Collecting threadpoolctl>=3.1.0 (from scikit-learn==1.6.1->-r ./requirements_2025_26_for_colab_small.txt (line 17))\n",
" Downloading threadpoolctl-3.6.0-py3-none-any.whl.metadata (13 kB)\n",
"Collecting numba>=0.51.2 (from umap-learn==0.5.9.post2->-r ./requirements_2025_26_for_colab_small.txt (line 21))\n",
" Downloading numba-0.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.8 kB)\n",
"Collecting pynndescent>=0.5 (from umap-learn==0.5.9.post2->-r ./requirements_2025_26_for_colab_small.txt (line 21))\n",
" Downloading pynndescent-0.5.13-py3-none-any.whl.metadata (6.8 kB)\n",
"Collecting nvidia-nccl-cu12 (from xgboost==3.0.4->-r ./requirements_2025_26_for_colab_small.txt (line 22))\n",
" Downloading nvidia_nccl_cu12-2.28.7-py3-none-manylinux_2_18_x86_64.whl.metadata (2.0 kB)\n",
"Requirement already satisfied: comm>=0.1.1 in /nix/store/vav4k2c299vg67mk0x1pgzs50mv09p6q-python3.12-comm-0.2.2/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.2.2)\n",
"Requirement already satisfied: jupyter-client>=6.1.12 in /nix/store/ii8mmw13zhpg4zdwx6c5sp3qi5g9g0iv-python3.12-jupyter-client-8.6.3/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (8.6.3)\n",
"Requirement already satisfied: jupyter-core!=5.0.*,>=4.12 in /nix/store/ppsp7zdbnivzw04r8rrwr30rwkahxy6k-python3.12-jupyter-core-5.7.2/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (5.7.2)\n",
"Requirement already satisfied: nest-asyncio in /nix/store/ah04qkf51fnsq76dkk86gzhm059lbaqr-python3.12-nest-asyncio-1.6.0/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.6.0)\n",
"Requirement already satisfied: psutil in /nix/store/3hsnbwhiflh31c7b808nbai5bwm55ddj-python3.12-psutil-7.0.0/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (7.0.0)\n",
"Requirement already satisfied: pyzmq>=24 in /nix/store/h9nq7xr7pfwdksqlx1givw25fiv1fflh-python3.12-pyzmq-26.3.0/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (26.3.0)\n",
"Requirement already satisfied: tornado>=6.1 in /nix/store/ay14g4n81v3p75rdibn9ddp7m4idazgv-python3.12-tornado-6.5.1/lib/python3.12/site-packages (from ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (6.5.1)\n",
"Requirement already satisfied: decorator in /nix/store/gkh0fg3v2zs85v3h3cw1nh2d6ncdzki6-python3.12-decorator-5.2.1/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (5.2.1)\n",
"Requirement already satisfied: ipython-pygments-lexers in /nix/store/qqvbgszbfdlxpzfd41ggzxmh0p5wq0rj-python3.12-ipython-pygments-lexers-1.1.1/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (1.1.1)\n",
"Requirement already satisfied: jedi>=0.16 in /nix/store/0g96bmz4qlk00rd58lsivm7xir6ljg0m-python3.12-jedi-0.19.2/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.19.2)\n",
"Requirement already satisfied: pexpect>4.3 in /nix/store/hw5i2kd9750fndnb9gdl3x5prxx7mj5d-python3.12-pexpect-4.9.0/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (4.9.0)\n",
"Requirement already satisfied: prompt_toolkit<3.1.0,>=3.0.41 in /nix/store/wzmw3slxlzycs29w5hjjc6a1529d0s6d-python3.12-prompt-toolkit-3.0.50/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (3.0.50)\n",
"Requirement already satisfied: stack_data in /nix/store/61k17cinvnvwvyr0hxmf2c28407k9q2l-python3.12-stack-data-0.6.3/lib/python3.12/site-packages (from ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.6.3)\n",
"Collecting llvmlite<0.46,>=0.45.0dev0 (from numba>=0.51.2->umap-learn==0.5.9.post2->-r ./requirements_2025_26_for_colab_small.txt (line 21))\n",
" Downloading llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (4.9 kB)\n",
"Requirement already satisfied: notebook>=4.4.1 in /home/krosh/Documents/Github/ML/.venv/lib/python3.12/site-packages (from widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (7.4.7)\n",
"Requirement already satisfied: soupsieve>1.2 in /nix/store/j9ndbf8laq3gki56i3f748k0l66s7qzd-python3.12-soupsieve-2.6/lib/python3.12/site-packages (from beautifulsoup4->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (2.6)\n",
"Requirement already satisfied: charset_normalizer<4,>=2 in /nix/store/znsiffn7xpr0bfmmbvh7j9dn0z815pf6-python3.12-charset-normalizer-3.4.1/lib/python3.12/site-packages (from requests[socks]->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (3.4.1)\n",
"Requirement already satisfied: idna<4,>=2.5 in /nix/store/80zr7m04sb6a5kfaq55nd1rf2425gi7r-python3.12-idna-3.10/lib/python3.12/site-packages (from requests[socks]->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (3.10)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /nix/store/d3n2v8v8m2874vn7gw7zrdggj86dincs-python3.12-urllib3-2.3.0/lib/python3.12/site-packages (from requests[socks]->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (2.3.0)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /nix/store/bk8dgkmkprc9wc6wcwc75bdyjk1ndbjk-python3.12-certifi-2025.01.31/lib/python3.12/site-packages (from requests[socks]->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2)) (2025.1.31)\n",
"Collecting PySocks!=1.5.7,>=1.5.6 (from requests[socks]->gdown==5.2.0->-r ./requirements_2025_26_for_colab_small.txt (line 2))\n",
" Downloading PySocks-1.7.1-py3-none-any.whl.metadata (13 kB)\n",
"Requirement already satisfied: parso<0.9.0,>=0.8.4 in /nix/store/sw3hp8g6i6n5hcj0zk3dvdm8v7k67c6h-python3.12-parso-0.8.4/lib/python3.12/site-packages (from jedi>=0.16->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.8.4)\n",
"Requirement already satisfied: platformdirs>=2.5 in /nix/store/ay5c0v86xdaq1w2x8l8z88kkiwv7i2cl-python3.12-platformdirs-4.3.7/lib/python3.12/site-packages (from jupyter-core!=5.0.*,>=4.12->ipykernel>=4.5.1->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (4.3.7)\n",
"Requirement already satisfied: jupyter-server<3,>=2.4.0 in /nix/store/zj57c9yx8bkqg83xjxz6bjwnxg65dk5c-python3.12-jupyter-server-2.15.0/lib/python3.12/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.15.0)\n",
"Requirement already satisfied: jupyterlab-server<3,>=2.27.1 in /nix/store/pd8cbi214wii25llx5g2ismw6pmvgkf5-python3.12-jupyterlab-server-2.27.3/lib/python3.12/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.27.3)\n",
"Collecting jupyterlab<4.5,>=4.4.9 (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6))\n",
" Using cached jupyterlab-4.4.10-py3-none-any.whl.metadata (16 kB)\n",
"Requirement already satisfied: notebook-shim<0.3,>=0.2 in /nix/store/agvxbdh9lb9i7gm5v1qjx7a0bv22am8n-python3.12-notebook-shim-0.2.4/lib/python3.12/site-packages (from notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.2.4)\n",
"Requirement already satisfied: ptyprocess>=0.5 in /nix/store/rz2ygcrnc8wx1n3pz0slcah47s71havg-python3.12-ptyprocess-0.7.0/lib/python3.12/site-packages (from pexpect>4.3->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.7.0)\n",
"Requirement already satisfied: wcwidth in /nix/store/82wc5sicriaacpnavd97c9b2b3l88d1j-python3.12-wcwidth-0.2.13/lib/python3.12/site-packages (from prompt_toolkit<3.1.0,>=3.0.41->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.2.13)\n",
"Requirement already satisfied: executing>=1.2.0 in /nix/store/vryr7qfzh6qp2v8whvc5357hz3f3xxpc-python3.12-executing-2.2.0/lib/python3.12/site-packages (from stack_data->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (2.2.0)\n",
"Requirement already satisfied: asttokens>=2.1.0 in /nix/store/lh5is09vgpvw5rnvm9bgcxiasm7pidw1-python3.12-asttokens-3.0.0/lib/python3.12/site-packages (from stack_data->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (3.0.0)\n",
"Requirement already satisfied: pure_eval in /nix/store/lab1jiw46l09zci0r8h1cl2wnb04w1s5-python3.12-pure-eval-0.2.3/lib/python3.12/site-packages (from stack_data->ipython<10->ipympl==0.9.7->-r ./requirements_2025_26_for_colab_small.txt (line 5)) (0.2.3)\n",
"Requirement already satisfied: anyio>=3.1.0 in /nix/store/slsfw31xlwaczcnqgg4r5qw3xpwm0nbq-python3.12-anyio-4.9.0/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (4.9.0)\n",
"Requirement already satisfied: argon2-cffi>=21.1 in /nix/store/1clmzlxvasiidjs72h4vx4pqcrkwg3zf-python3.12-argon2-cffi-23.1.0/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (23.1.0)\n",
"Requirement already satisfied: jinja2>=3.0.3 in /nix/store/svijzcfkrsxb8jripykx1d2krzi2q0fq-python3.12-jinja2-3.1.6/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.1.6)\n",
"Requirement already satisfied: jupyter-events>=0.11.0 in /nix/store/4jydas1rslfay93x8h61s7a16023pcql-python3.12-jupyter-events-0.11.0/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.11.0)\n",
"Requirement already satisfied: jupyter-server-terminals>=0.4.4 in /nix/store/ly5g70s9xpnm9piajwcmrlrd8maixfh4-python3.12-jupyter-server-terminals-0.5.3/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.5.3)\n",
"Requirement already satisfied: nbconvert>=6.4.4 in /nix/store/5h2jqcxjgkyrp8yy28s1cxbmlps9llbr-python3.12-nbconvert-7.16.6/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (7.16.6)\n",
"Requirement already satisfied: nbformat>=5.3.0 in /nix/store/mha5x4r94hi8278p347v2ig89r7pg37i-python3.12-nbformat-5.10.4/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (5.10.4)\n",
"Requirement already satisfied: overrides>=5.0 in /nix/store/8hnr7s08x0zglraaqhsvxw9cxfb4m5vf-python3.12-overrides-7.7.0/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (7.7.0)\n",
"Requirement already satisfied: prometheus-client>=0.9 in /nix/store/hi0lchzh5wd2mima5ryzxv1sp8avpixv-python3.12-prometheus-client-0.21.1/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.21.1)\n",
"Requirement already satisfied: send2trash>=1.8.2 in /nix/store/qaybrn941lhzv68mmly22vml2bi9biln-python3.12-send2trash-1.8.3/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.8.3)\n",
"Requirement already satisfied: terminado>=0.8.3 in /nix/store/r0c0p4ycha98vxggn3ib9bmrsma9a5gq-python3.12-terminado-0.18.1/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.18.1)\n",
"Requirement already satisfied: websocket-client>=1.7 in /nix/store/maij4ca0hdq51yh6sc8ha0dbfksfvbs2-python3.12-websocket-client-1.8.0/lib/python3.12/site-packages (from jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.8.0)\n",
"Requirement already satisfied: async-lru>=1.0.0 in /nix/store/appfbz4pp2rq674miy7y35llz30382ab-python3.12-async-lru-2.0.5/lib/python3.12/site-packages (from jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.0.5)\n",
"Requirement already satisfied: httpx<1,>=0.25.0 in /nix/store/83krrvn5s26brnzqfqb9w7cvsa94b9w6-python3.12-httpx-0.28.1/lib/python3.12/site-packages (from jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.28.1)\n",
"Requirement already satisfied: jupyter-lsp>=2.0.0 in /nix/store/w0fm4viprsj0s6vdymp1grlgq9gg24pp-python3.12-jupyter-lsp-2.2.5/lib/python3.12/site-packages (from jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.2.5)\n",
"Requirement already satisfied: setuptools>=41.1.0 in /nix/store/jahiclal74yv1j7py0jnlm30ji3wa1wr-python3.12-setuptools-78.1.1/lib/python3.12/site-packages (from jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (78.1.1.post0)\n",
"Requirement already satisfied: babel>=2.10 in /nix/store/0k8xz970r9zwm7c0bbmnps9ppya32jyx-python3.12-babel-2.17.0/lib/python3.12/site-packages (from jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.17.0)\n",
"Requirement already satisfied: json5>=0.9.0 in /nix/store/m67k0bjvzldj8fg862y9jaqdn14fav0r-python3.12-json5-0.10.0/lib/python3.12/site-packages (from jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.10.0)\n",
"Requirement already satisfied: jsonschema>=4.18.0 in /nix/store/cbv4a3ncj97dj8a7sz4ldw5hpajhnrgd-python3.12-jsonschema-4.23.0/lib/python3.12/site-packages (from jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (4.23.0)\n",
"Requirement already satisfied: sniffio>=1.1 in /nix/store/6jdf3szr6xcvzdg3cdzrgvhy6dc6ppdp-python3.12-sniffio-1.3.1/lib/python3.12/site-packages (from anyio>=3.1.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.3.1)\n",
"Requirement already satisfied: typing_extensions>=4.5 in /nix/store/lpap2xy7m2z6qs3pjgx57whdvn0gmrld-python3.12-typing-extensions-4.13.2/lib/python3.12/site-packages (from anyio>=3.1.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (4.13.2)\n",
"Requirement already satisfied: argon2-cffi-bindings in /nix/store/xs11y0i84x084h3f9va5xn3vw71g9sn5-python3.12-argon2-cffi-bindings-21.2.0/lib/python3.12/site-packages (from argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (21.2.0)\n",
"Requirement already satisfied: httpcore==1.* in /nix/store/45mbjl9s9pv0libawf8ikmh588k831zz-python3.12-httpcore-1.0.9/lib/python3.12/site-packages (from httpx<1,>=0.25.0->jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.0.9)\n",
"Requirement already satisfied: h11>=0.16 in /nix/store/ndg6nlcirvbl8w5sdz49r0x28x4hnfr7-python3.12-h11-0.16.0/lib/python3.12/site-packages (from httpcore==1.*->httpx<1,>=0.25.0->jupyterlab<4.5,>=4.4.9->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.16.0)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /nix/store/s1s7cngw3wc3wm6ysqyjkwq8nq4cz4vl-python3.12-markupsafe-3.0.2/lib/python3.12/site-packages (from jinja2>=3.0.3->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.0.2)\n",
"Requirement already satisfied: attrs>=22.2.0 in /nix/store/aj8dzb2ampzwwmjy7i47ypbp9vdcb4zy-python3.12-attrs-25.3.0/lib/python3.12/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (25.3.0)\n",
"Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /nix/store/vd97fs6kjvygdndlsnh2c9166z4d0xh3-python3.12-jsonschema-specifications-2024.10.1/lib/python3.12/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2024.10.1)\n",
"Requirement already satisfied: referencing>=0.28.4 in /nix/store/n7knhq0j8jmls8dckxyim8qhslw399ng-python3.12-referencing-0.36.2/lib/python3.12/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.36.2)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /nix/store/8a2h77svk68xqlhbp0bi2xk8rwj9j50j-python3.12-rpds-py-0.24.0/lib/python3.12/site-packages (from jsonschema>=4.18.0->jupyterlab-server<3,>=2.27.1->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.24.0)\n",
"Requirement already satisfied: python-json-logger>=2.0.4 in /nix/store/p56rsir3w5f044svipd9mpa6qqxgsa78-python3.12-python-json-logger-3.2.1/lib/python3.12/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.2.1)\n",
"Requirement already satisfied: pyyaml>=5.3 in /nix/store/9ap0fph2ybcfnl0f1rsklj990n25ll84-python3.12-pyyaml-6.0.2/lib/python3.12/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (6.0.2)\n",
"Requirement already satisfied: rfc3339-validator in /nix/store/14rqw00zqxk6jcslmab0skzzf3qcp5xw-python3.12-rfc3339-validator-0.1.4/lib/python3.12/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.1.4)\n",
"Requirement already satisfied: rfc3986-validator>=0.1.1 in /nix/store/zqnambrrca5dzmfiizygsslmgakhiigc-python3.12-rfc3986-validator-0.1.1/lib/python3.12/site-packages (from jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.1.1)\n",
"Requirement already satisfied: bleach!=5.0.0 in /nix/store/0svbzbngdvar6sdz7p4iscpjhcp5i7aq-python3.12-bleach-6.2.0/lib/python3.12/site-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (6.2.0)\n",
"Requirement already satisfied: defusedxml in /nix/store/4l429an1q3m5m7gbmr004zi4mzhbksn1-python3.12-defusedxml-0.8.0rc2/lib/python3.12/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.8.0rc2)\n",
"Requirement already satisfied: jupyterlab-pygments in /nix/store/fm0shwwm682kdk11hx331ya0axmx6357-python3.12-jupyterlab-pygments-0.3.0/lib/python3.12/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.3.0)\n",
"Requirement already satisfied: mistune<4,>=2.0.3 in /nix/store/9mln2k5sj8y5jr1mggmd55zbj6m5i4vb-python3.12-mistune-3.1.2/lib/python3.12/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.1.2)\n",
"Requirement already satisfied: nbclient>=0.5.0 in /nix/store/yhm4rkd5j81xfwmcr8s749m67z9099pa-python3.12-nbclient-0.10.2/lib/python3.12/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.10.2)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /nix/store/n76h7wginvrsqaq8ngnmf259fagz6dyp-python3.12-pandocfilters-1.5.1/lib/python3.12/site-packages (from nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.5.1)\n",
"Requirement already satisfied: fastjsonschema>=2.15 in /nix/store/yh2gsm8j4cnx422kxm69bx0k7c54n6b4-python3.12-fastjsonschema-2.21.1/lib/python3.12/site-packages (from nbformat>=5.3.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.21.1)\n",
"Requirement already satisfied: webencodings in /nix/store/n8jzk1lyamvlj6rw9pyx88ai0rhcmfgm-python3.12-webencodings-0.5.1/lib/python3.12/site-packages (from bleach!=5.0.0->bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (0.5.1)\n",
"Requirement already satisfied: tinycss2<1.5,>=1.1.0 in /nix/store/lrxfr5x30dinqpw0vg2zvdvh6jfy4kxn-python3.12-tinycss2-1.4.0/lib/python3.12/site-packages (from bleach[css]!=5.0.0->nbconvert>=6.4.4->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.4.0)\n",
"Requirement already satisfied: fqdn in /nix/store/c676msxyjp0k5r70s33p040rk6fxii8d-python3.12-fqdn-1.5.1/lib/python3.12/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.5.1)\n",
"Requirement already satisfied: isoduration in /nix/store/4mnklym4fix9xi1i4ppknqk5fcpljfga-python3.12-isoduration-20.11.0/lib/python3.12/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (20.11.0)\n",
"Requirement already satisfied: jsonpointer>1.13 in /nix/store/9lhd1pal6j928py2p7x6g5xs2fyqjfzf-python3.12-jsonpointer-3.0.0/lib/python3.12/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (3.0.0)\n",
"Requirement already satisfied: uri-template in /nix/store/g3g6pdfkd8xlnram70kml18wxdl1zyl2-python3.12-uri-template-1.3.0/lib/python3.12/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.3.0)\n",
"Requirement already satisfied: webcolors>=24.6.0 in /nix/store/vffapvc0y8z4y3x1kq1yahyrk203z60v-python3.12-webcolors-24.11.1/lib/python3.12/site-packages (from jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (24.11.1)\n",
"Requirement already satisfied: cffi>=1.0.1 in /nix/store/xmrm1mvjf8kp4nl1im58apax0n0pgb81-python3.12-cffi-1.17.1/lib/python3.12/site-packages (from argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.17.1)\n",
"Requirement already satisfied: pycparser in /nix/store/zvrx9j7dsh4h5ryn9nn2vs9v7i7lslc0-python3.12-pycparser-2.22/lib/python3.12/site-packages (from cffi>=1.0.1->argon2-cffi-bindings->argon2-cffi>=21.1->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.22)\n",
"Requirement already satisfied: arrow>=0.15.0 in /nix/store/xkn28vnhxy42lz0039qqpxhf1dplifb6-python3.12-arrow-1.3.0/lib/python3.12/site-packages (from isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (1.3.0)\n",
"Requirement already satisfied: types-python-dateutil>=2.8.10 in /nix/store/4rbnpq6m8shi5h2s2l3kjn86f157gh2d-python3.12-types-python-dateutil-2.9.0.20241206/lib/python3.12/site-packages (from arrow>=0.15.0->isoduration->jsonschema[format-nongpl]>=4.18.0->jupyter-events>=0.11.0->jupyter-server<3,>=2.4.0->notebook>=4.4.1->widgetsnbextension~=3.6.0->ipywidgets==7.7.1->-r ./requirements_2025_26_for_colab_small.txt (line 6)) (2.9.0.20241206)\n",
"Downloading catboost-1.2.8-cp312-cp312-manylinux2014_x86_64.whl (99.2 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m99.2/99.2 MB\u001b[0m \u001b[31m486.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:06\u001b[0m\n",
"\u001b[?25hDownloading gdown-5.2.0-py3-none-any.whl (18 kB)\n",
"Downloading h5py-3.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.9/4.9 MB\u001b[0m \u001b[31m314.9 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:04\u001b[0m\n",
"\u001b[?25hDownloading hyperopt-0.2.7-py2.py3-none-any.whl (1.6 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m544.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:02\u001b[0m\n",
"\u001b[?25hDownloading ipympl-0.9.7-py3-none-any.whl (515 kB)\n",
"Downloading ipywidgets-7.7.1-py2.py3-none-any.whl (123 kB)\n",
"Downloading lightgbm-4.6.0-py3-none-manylinux_2_28_x86_64.whl (3.6 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.6/3.6 MB\u001b[0m \u001b[31m636.2 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:04\u001b[0m\n",
"\u001b[?25hDownloading matplotlib-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m8.6/8.6 MB\u001b[0m \u001b[31m202.3 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[36m0:00:02\u001b[0mm eta \u001b[36m0:00:03\u001b[0m\n",
"\u001b[?25hDownloading numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.2 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m19.2/19.2 MB\u001b[0m \u001b[31m465.2 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:02\u001b[0m\n",
"\u001b[?25hDownloading pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.7 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m12.7/12.7 MB\u001b[0m \u001b[31m314.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:02\u001b[0m\n",
"\u001b[?25hDownloading pep8-1.7.1-py2.py3-none-any.whl (41 kB)\n",
"Downloading plotly-5.24.1-py3-none-any.whl (19.1 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m19.1/19.1 MB\u001b[0m \u001b[31m226.8 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:04\u001b[0m\n",
"\u001b[?25hDownloading pycodestyle-2.14.0-py2.py3-none-any.whl (31 kB)\n",
"Downloading pytest-8.4.1-py3-none-any.whl (365 kB)\n",
"Downloading scikit_image-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.0 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.0/15.0 MB\u001b[0m \u001b[31m450.7 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m0:02\u001b[0m:03\u001b[0m\n",
"\u001b[?25hDownloading scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m13.1/13.1 MB\u001b[0m \u001b[31m569.2 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m0:01\u001b[0m:02\u001b[0m\n",
"\u001b[?25hDownloading scipy-1.16.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (35.2 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m35.2/35.2 MB\u001b[0m \u001b[31m943.1 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:02\u001b[0m\n",
"\u001b[?25hDownloading seaborn-0.13.2-py3-none-any.whl (294 kB)\n",
"Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
"Downloading umap_learn-0.5.9.post2-py3-none-any.whl (90 kB)\n",
"Downloading xgboost-3.0.4-py3-none-manylinux_2_28_x86_64.whl (94.9 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m94.9/94.9 MB\u001b[0m \u001b[31m650.9 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:05\u001b[0m\n",
"\u001b[?25hDownloading contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (362 kB)\n",
"Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB)\n",
"Downloading fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (4.9 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m4.9/4.9 MB\u001b[0m \u001b[31m685.6 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:02\u001b[0m\n",
"\u001b[?25hDownloading imageio-2.37.2-py3-none-any.whl (317 kB)\n",
"Downloading iniconfig-2.3.0-py3-none-any.whl (7.5 kB)\n",
"Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)\n",
"Downloading joblib-1.5.2-py3-none-any.whl (308 kB)\n",
"Downloading kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.5/1.5 MB\u001b[0m \u001b[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[31m1.3 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading lazy_loader-0.4-py3-none-any.whl (12 kB)\n",
"Downloading networkx-3.5-py3-none-any.whl (2.0 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m2.0/2.0 MB\u001b[0m \u001b[31m985.8 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m:01\u001b[0m\n",
"\u001b[?25hDownloading numba-0.62.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.8 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.8/3.8 MB\u001b[0m \u001b[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[31m1.4 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m7.0/7.0 MB\u001b[0m \u001b[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[31m1.2 MB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading pluggy-1.6.0-py3-none-any.whl (20 kB)\n",
"Downloading pynndescent-0.5.13-py3-none-any.whl (56 kB)\n",
"Downloading pyparsing-3.2.5-py3-none-any.whl (113 kB)\n",
"Downloading pytz-2025.2-py2.py3-none-any.whl (509 kB)\n",
"Downloading tenacity-9.1.2-py3-none-any.whl (28 kB)\n",
"Downloading threadpoolctl-3.6.0-py3-none-any.whl (18 kB)\n",
"Downloading tifffile-2025.10.16-py3-none-any.whl (231 kB)\n",
"Using cached tzdata-2025.2-py2.py3-none-any.whl (347 kB)\n",
"Downloading widgetsnbextension-3.6.10-py2.py3-none-any.whl (1.6 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m1.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m[31m980.3 kB/s\u001b[0m eta \u001b[36m0:00:01\u001b[0m\n",
"\u001b[?25hDownloading cloudpickle-3.1.2-py3-none-any.whl (22 kB)\n",
"Downloading future-1.0.0-py3-none-any.whl (491 kB)\n",
"Downloading graphviz-0.21-py3-none-any.whl (47 kB)\n",
"Downloading nvidia_nccl_cu12-2.28.7-py3-none-manylinux_2_18_x86_64.whl (296.8 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m296.8/296.8 MB\u001b[0m \u001b[31m561.9 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:20\u001b[0m\n",
"\u001b[?25hDownloading py4j-0.10.9.9-py2.py3-none-any.whl (203 kB)\n",
"Downloading llvmlite-0.45.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (56.3 MB)\n",
"\u001b[2K \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m56.3/56.3 MB\u001b[0m \u001b[31m551.0 kB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0mm eta \u001b[36m0:00:01\u001b[0m[36m0:00:03\u001b[0m\n",
"\u001b[?25hDownloading PySocks-1.7.1-py3-none-any.whl (16 kB)\n",
"Using cached jupyterlab-4.4.10-py3-none-any.whl (12.3 MB)\n",
"Installing collected packages: pytz, py4j, pep8, ipython-genutils, tzdata, tqdm, threadpoolctl, tenacity, PySocks, pyparsing, pycodestyle, pluggy, pillow, nvidia-nccl-cu12, numpy, networkx, llvmlite, lazy-loader, kiwisolver, joblib, iniconfig, graphviz, future, fonttools, cycler, cloudpickle, tifffile, scipy, pytest, plotly, pandas, numba, imageio, h5py, contourpy, xgboost, scikit-learn, scikit-image, matplotlib, lightgbm, hyperopt, gdown, seaborn, pynndescent, catboost, umap-learn, jupyterlab, widgetsnbextension, ipywidgets, ipympl\n",
" Attempting uninstall: jupyterlab\n",
" Found existing installation: jupyterlab 4.4.1\n",
" Not uninstalling jupyterlab at /nix/store/jzhscs6dw96a836cvv12s271j59a5lmv-python3.12-jupyterlab-4.4.1/lib/python3.12/site-packages, outside environment /home/krosh/Documents/Github/ML/.venv\n",
" Can't uninstall 'jupyterlab'. No files were found to uninstall.\n",
" Attempting uninstall: widgetsnbextension\n",
" Found existing installation: widgetsnbextension 4.0.15\n",
" Uninstalling widgetsnbextension-4.0.15:\n",
" Successfully uninstalled widgetsnbextension-4.0.15\n",
" Attempting uninstall: ipywidgets\n",
" Found existing installation: ipywidgets 8.1.8\n",
" Uninstalling ipywidgets-8.1.8:\n",
" Successfully uninstalled ipywidgets-8.1.8\n",
"Successfully installed PySocks-1.7.1 catboost-1.2.8 cloudpickle-3.1.2 contourpy-1.3.3 cycler-0.12.1 fonttools-4.60.1 future-1.0.0 gdown-5.2.0 graphviz-0.21 h5py-3.14.0 hyperopt-0.2.7 imageio-2.37.2 iniconfig-2.3.0 ipympl-0.9.7 ipython-genutils-0.2.0 ipywidgets-7.7.1 joblib-1.5.2 jupyterlab-4.4.10 kiwisolver-1.4.9 lazy-loader-0.4 lightgbm-4.6.0 llvmlite-0.45.1 matplotlib-3.10.0 networkx-3.5 numba-0.62.1 numpy-2.0.2 nvidia-nccl-cu12-2.28.7 pandas-2.2.2 pep8-1.7.1 pillow-12.0.0 plotly-5.24.1 pluggy-1.6.0 py4j-0.10.9.9 pycodestyle-2.14.0 pynndescent-0.5.13 pyparsing-3.2.5 pytest-8.4.1 pytz-2025.2 scikit-image-0.25.2 scikit-learn-1.6.1 scipy-1.16.1 seaborn-0.13.2 tenacity-9.1.2 threadpoolctl-3.6.0 tifffile-2025.10.16 tqdm-4.67.1 tzdata-2025.2 umap-learn-0.5.9.post2 widgetsnbextension-3.6.10 xgboost-3.0.4\n"
]
}
],
"source": [ "source": [
"! curl https://raw.githubusercontent.com/MSU-ML-COURSE/ML-COURSE-25-26/refs/heads/master/requirements/requirements.txt -o ./requirements_2025_26_for_colab_small.txt\n", "! curl https://raw.githubusercontent.com/MSU-ML-COURSE/ML-COURSE-25-26/refs/heads/master/requirements/requirements.txt -o ./requirements_2025_26_for_colab_small.txt\n",
"! pip install -r ./requirements_2025_26_for_colab_small.txt" "! pip install -r ./requirements_2025_26_for_colab_small.txt"
@@ -115,7 +401,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 4, "execution_count": 2,
"metadata": { "metadata": {
"id": "QwWXXElyiRYq" "id": "QwWXXElyiRYq"
}, },
@@ -2558,7 +2844,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.13.7" "version": "3.12.12"
} }
}, },
"nbformat": 4, "nbformat": 4,
@@ -7,7 +7,7 @@ ipywidgets==7.7.1
lightgbm==4.6.0 lightgbm==4.6.0
matplotlib-inline==0.1.7 matplotlib-inline==0.1.7
matplotlib==3.10.0 matplotlib==3.10.0
numpy numpy==2.0.2
pandas==2.2.2 pandas==2.2.2
pep8==1.7.1 pep8==1.7.1
plotly==5.24.1 plotly==5.24.1