r-scikit-learn 0.1.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- r_scikit_learn-0.1.0.dist-info/METADATA +349 -0
- r_scikit_learn-0.1.0.dist-info/RECORD +42 -0
- r_scikit_learn-0.1.0.dist-info/WHEEL +4 -0
- r_scikit_learn-0.1.0.dist-info/licenses/LICENSE +17 -0
- r_scikit_learn-0.1.0.dist-info/sboms/r-scikit-learn-core.cyclonedx.json +5561 -0
- rsklearn/__init__.py +48 -0
- rsklearn/_core.cp313-win_amd64.pyd +0 -0
- rsklearn/_validation.py +169 -0
- rsklearn/base.py +237 -0
- rsklearn/compose/__init__.py +5 -0
- rsklearn/compose/_column_transformer.py +601 -0
- rsklearn/impute/__init__.py +5 -0
- rsklearn/impute/_simple_imputer.py +381 -0
- rsklearn/linear_model/__init__.py +15 -0
- rsklearn/linear_model/_base.py +98 -0
- rsklearn/linear_model/_coordinate_descent.py +160 -0
- rsklearn/linear_model/_least_squares.py +174 -0
- rsklearn/linear_model/_logistic.py +253 -0
- rsklearn/linear_model/_warnings.py +5 -0
- rsklearn/metrics/__init__.py +23 -0
- rsklearn/metrics/_classification.py +350 -0
- rsklearn/metrics/_regression.py +99 -0
- rsklearn/metrics/_validation.py +71 -0
- rsklearn/model_selection/__init__.py +13 -0
- rsklearn/model_selection/_split.py +305 -0
- rsklearn/model_selection/_utils.py +96 -0
- rsklearn/model_selection/_validation.py +195 -0
- rsklearn/pipeline.py +460 -0
- rsklearn/preprocessing/__init__.py +19 -0
- rsklearn/preprocessing/_base.py +7 -0
- rsklearn/preprocessing/_categorical.py +337 -0
- rsklearn/preprocessing/_label_encoder.py +124 -0
- rsklearn/preprocessing/_minmax_scaler.py +120 -0
- rsklearn/preprocessing/_normalizer.py +77 -0
- rsklearn/preprocessing/_one_hot_encoder.py +420 -0
- rsklearn/preprocessing/_ordinal_encoder.py +316 -0
- rsklearn/preprocessing/_robust_scaler.py +146 -0
- rsklearn/preprocessing/_standard_scaler.py +110 -0
- rsklearn/py.typed +1 -0
- rsklearn/utils/__init__.py +29 -0
- rsklearn/utils/sparse.py +197 -0
- rsklearn/utils/validation.py +418 -0
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: r-scikit-learn
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Classifier: Development Status :: 3 - Alpha
|
|
5
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
6
|
+
Classifier: Programming Language :: Python :: 3
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
11
|
+
Classifier: Programming Language :: Rust
|
|
12
|
+
Classifier: Typing :: Typed
|
|
13
|
+
Requires-Dist: numpy>=1.23
|
|
14
|
+
Requires-Dist: scipy>=1.10
|
|
15
|
+
Requires-Dist: maturin>=1.9,<2.0 ; extra == 'dev'
|
|
16
|
+
Requires-Dist: pytest>=8 ; extra == 'dev'
|
|
17
|
+
Requires-Dist: ruff>=0.11 ; extra == 'dev'
|
|
18
|
+
Requires-Dist: scikit-learn>=1.6 ; extra == 'dev'
|
|
19
|
+
Provides-Extra: dev
|
|
20
|
+
License-File: LICENSE
|
|
21
|
+
Summary: High-performance scikit-learn-style machine learning powered by safe Rust
|
|
22
|
+
Keywords: machine-learning,preprocessing,rust,numpy,scikit-learn
|
|
23
|
+
Home-Page: https://github.com/rishib42/r-scikit-learn
|
|
24
|
+
Author: r-scikit-learn contributors
|
|
25
|
+
License-Expression: MIT
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
28
|
+
Project-URL: Homepage, https://github.com/rishib42/r-scikit-learn
|
|
29
|
+
Project-URL: Issues, https://github.com/rishib42/r-scikit-learn/issues
|
|
30
|
+
Project-URL: Repository, https://github.com/rishib42/r-scikit-learn
|
|
31
|
+
|
|
32
|
+
# r-scikit-learn
|
|
33
|
+
|
|
34
|
+
Fast, familiar machine-learning building blocks powered by safe Rust. 🦀
|
|
35
|
+
|
|
36
|
+
`r-scikit-learn` combines a Rust computational core with lightweight,
|
|
37
|
+
scikit-learn-style Python estimators. Version 0.1.0 includes:
|
|
38
|
+
|
|
39
|
+
- Preprocessing, categorical encoding, and missing-value imputation
|
|
40
|
+
- Pipelines and column transformers
|
|
41
|
+
- Classification and regression metrics
|
|
42
|
+
- Dataset splitting and cross-validation
|
|
43
|
+
- Rust-powered linear models
|
|
44
|
+
|
|
45
|
+
This project is not affiliated with or endorsed by scikit-learn.
|
|
46
|
+
|
|
47
|
+
The installable distribution is named `r-scikit-learn`. Its Python import
|
|
48
|
+
package is `rsklearn`.
|
|
49
|
+
|
|
50
|
+
## Quick Start 🚀
|
|
51
|
+
|
|
52
|
+
After the first PyPI release, install with:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
python -m pip install r-scikit-learn
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Or build from source on macOS/Linux:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
python -m venv .venv
|
|
62
|
+
source .venv/bin/activate
|
|
63
|
+
python -m pip install -U pip maturin
|
|
64
|
+
maturin develop
|
|
65
|
+
pytest
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
On Windows PowerShell, activate with `.venv\Scripts\Activate.ps1`. Building
|
|
69
|
+
requires a stable Rust toolchain and Python 3.10 or newer.
|
|
70
|
+
|
|
71
|
+
## Usage
|
|
72
|
+
|
|
73
|
+
```python
|
|
74
|
+
import numpy as np
|
|
75
|
+
from rsklearn.preprocessing import StandardScaler
|
|
76
|
+
|
|
77
|
+
X = np.array([[1.0, 10.0], [2.0, 20.0], [3.0, 30.0]])
|
|
78
|
+
scaler = StandardScaler()
|
|
79
|
+
X_scaled = scaler.fit_transform(X)
|
|
80
|
+
X_original = scaler.inverse_transform(X_scaled)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
from rsklearn.preprocessing import MinMaxScaler
|
|
85
|
+
|
|
86
|
+
scaler = MinMaxScaler(feature_range=(-1.0, 1.0), clip=True)
|
|
87
|
+
X_scaled = scaler.fit_transform([[1, 10], [2, 20], [3, 30]])
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
from rsklearn.preprocessing import LabelEncoder
|
|
92
|
+
|
|
93
|
+
encoder = LabelEncoder()
|
|
94
|
+
encoded = encoder.fit_transform(["café", "東京", "café"])
|
|
95
|
+
labels = encoder.inverse_transform(encoded)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
from rsklearn.preprocessing import Normalizer
|
|
100
|
+
|
|
101
|
+
X_normalized = Normalizer(norm="l2").fit_transform([[3.0, 4.0], [0.0, 0.0]])
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
```python
|
|
105
|
+
from rsklearn.preprocessing import RobustScaler
|
|
106
|
+
|
|
107
|
+
X_robust = RobustScaler(quantile_range=(25.0, 75.0)).fit_transform(X)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```python
|
|
111
|
+
from rsklearn.preprocessing import OrdinalEncoder
|
|
112
|
+
|
|
113
|
+
encoder = OrdinalEncoder(
|
|
114
|
+
handle_unknown="use_encoded_value",
|
|
115
|
+
unknown_value=-1,
|
|
116
|
+
)
|
|
117
|
+
X_encoded = encoder.fit_transform([["small"], ["large"], ["small"]])
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
from rsklearn.preprocessing import OneHotEncoder
|
|
122
|
+
|
|
123
|
+
encoder = OneHotEncoder(handle_unknown="ignore")
|
|
124
|
+
X_one_hot = encoder.fit_transform([["small"], ["large"], ["small"]])
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
import numpy as np
|
|
129
|
+
from rsklearn.impute import SimpleImputer
|
|
130
|
+
|
|
131
|
+
imputer = SimpleImputer(strategy="median", add_indicator=True)
|
|
132
|
+
X_imputed = imputer.fit_transform([[1.0, np.nan], [3.0, 4.0]])
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
from rsklearn.impute import SimpleImputer
|
|
137
|
+
from rsklearn.pipeline import make_pipeline
|
|
138
|
+
from rsklearn.preprocessing import StandardScaler
|
|
139
|
+
|
|
140
|
+
pipeline = make_pipeline(SimpleImputer(), StandardScaler())
|
|
141
|
+
X_prepared = pipeline.fit_transform([[1.0, np.nan], [3.0, 4.0]])
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```python
|
|
145
|
+
from rsklearn.compose import ColumnTransformer
|
|
146
|
+
from rsklearn.impute import SimpleImputer
|
|
147
|
+
from rsklearn.pipeline import make_pipeline
|
|
148
|
+
from rsklearn.preprocessing import OneHotEncoder
|
|
149
|
+
from rsklearn.preprocessing import StandardScaler
|
|
150
|
+
|
|
151
|
+
preprocessor = ColumnTransformer(
|
|
152
|
+
[
|
|
153
|
+
("numeric", make_pipeline(SimpleImputer(), StandardScaler()), ["age"]),
|
|
154
|
+
("categorical", OneHotEncoder(handle_unknown="ignore"), ["city"]),
|
|
155
|
+
],
|
|
156
|
+
remainder="drop",
|
|
157
|
+
)
|
|
158
|
+
X_prepared = preprocessor.fit_transform(table)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```python
|
|
162
|
+
from rsklearn.metrics import accuracy_score, mean_squared_error
|
|
163
|
+
|
|
164
|
+
accuracy = accuracy_score(y_true, y_pred)
|
|
165
|
+
mse = mean_squared_error(y_true_regression, y_pred_regression)
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
from rsklearn.model_selection import cross_val_score, train_test_split
|
|
170
|
+
|
|
171
|
+
X_train, X_test, y_train, y_test = train_test_split(
|
|
172
|
+
X, y, test_size=0.2, random_state=42, stratify=y
|
|
173
|
+
)
|
|
174
|
+
scores = cross_val_score(estimator, X, y, cv=5, scoring="accuracy")
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
```python
|
|
178
|
+
from rsklearn.linear_model import Lasso, LinearRegression, LogisticRegression, Ridge
|
|
179
|
+
|
|
180
|
+
regressor = Ridge(alpha=1.0).fit(X_train, y_train)
|
|
181
|
+
predictions = regressor.predict(X_test)
|
|
182
|
+
sparse_regressor = Lasso(alpha=0.1).fit(X_train, y_train)
|
|
183
|
+
|
|
184
|
+
classifier = LogisticRegression(max_iter=500).fit(X_train, class_labels)
|
|
185
|
+
probabilities = classifier.predict_proba(X_test)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Highlights ✨
|
|
189
|
+
|
|
190
|
+
### Numeric Preprocessing
|
|
191
|
+
|
|
192
|
+
- Accepts non-empty 2D NumPy arrays and numeric array-like input.
|
|
193
|
+
- Uses float64 fitted statistics and native float32 kernels where supported.
|
|
194
|
+
- Ignores NaNs while fitting, preserves them while transforming, and rejects
|
|
195
|
+
infinity.
|
|
196
|
+
- Supports incremental `partial_fit` for `StandardScaler` and `MinMaxScaler`.
|
|
197
|
+
- Supports L1, L2, and max row normalization.
|
|
198
|
+
- Provides quantile-based `RobustScaler` fitting and inverse transforms.
|
|
199
|
+
|
|
200
|
+
### Labels And Categories
|
|
201
|
+
|
|
202
|
+
- `LabelEncoder` supports integers, floats, booleans, and UTF-8 strings.
|
|
203
|
+
- `OrdinalEncoder` supports discovered or explicit categories, unknown values,
|
|
204
|
+
missing values, and infrequent-category grouping.
|
|
205
|
+
- `OneHotEncoder` provides native Rust CSR construction, sparse or dense
|
|
206
|
+
output, category dropping, inverse transforms, and feature names.
|
|
207
|
+
- Contiguous NumPy Unicode arrays use a fixed-width Rust codepoint pathway,
|
|
208
|
+
avoiding per-label Python string conversion in the hot path.
|
|
209
|
+
|
|
210
|
+
### Imputation And Composition
|
|
211
|
+
|
|
212
|
+
- `SimpleImputer` supports dense numeric and categorical input, standard and
|
|
213
|
+
callable strategies, missing indicators, inverse transforms, and feature
|
|
214
|
+
names.
|
|
215
|
+
- Numeric imputation statistics and replacement use native Rust kernels.
|
|
216
|
+
- `Pipeline` and `make_pipeline` support nested parameters, passthrough steps,
|
|
217
|
+
prediction, scoring, inverse transforms, and feature-name propagation.
|
|
218
|
+
- `ColumnTransformer` supports named or positional column selection, remainder
|
|
219
|
+
estimators, transformer weights, and density-based dense or CSR output.
|
|
220
|
+
|
|
221
|
+
### Metrics And Model Selection
|
|
222
|
+
|
|
223
|
+
- Classification metrics: `accuracy_score`, `confusion_matrix`,
|
|
224
|
+
`precision_score`, `recall_score`, and `f1_score`.
|
|
225
|
+
- Regression metrics: `mean_squared_error`, `mean_absolute_error`, and
|
|
226
|
+
`r2_score`.
|
|
227
|
+
- Model selection: `train_test_split`, `KFold`, `StratifiedKFold`, and
|
|
228
|
+
`cross_val_score`.
|
|
229
|
+
- Large reductions, weighted confusion matrices, and common split operations
|
|
230
|
+
use safe Rust kernels.
|
|
231
|
+
|
|
232
|
+
### Linear Models
|
|
233
|
+
|
|
234
|
+
- Dense `LinearRegression`, `Ridge`, `Lasso`, `ElasticNet`, and
|
|
235
|
+
`LogisticRegression`.
|
|
236
|
+
- Optimized LAPACK least-squares fitting, Rust regularized solvers, and NumPy's
|
|
237
|
+
BLAS path for dense prediction.
|
|
238
|
+
- Sample weights, intercepts, rank-deficient input, and multi-output
|
|
239
|
+
regression.
|
|
240
|
+
- Shared Rust cyclic coordinate descent for `Lasso` and `ElasticNet`.
|
|
241
|
+
- Binary Rust logistic solvers and BLAS-backed multiclass L-BFGS, including
|
|
242
|
+
binary L1 and elastic-net fitting.
|
|
243
|
+
|
|
244
|
+
### Estimator And Sparse Foundations
|
|
245
|
+
|
|
246
|
+
Public estimator-author APIs are available from `rsklearn.base` and
|
|
247
|
+
`rsklearn.utils.validation`. They include `BaseEstimator`, `TransformerMixin`,
|
|
248
|
+
`ClassifierMixin`, `RegressorMixin`, `clone`, `check_array`, `check_X_y`,
|
|
249
|
+
`check_is_fitted`, and `validate_data`. Scalers use these APIs for fitted-state,
|
|
250
|
+
feature-count, and string feature-name validation. The numeric preprocessors
|
|
251
|
+
pass scikit-learn's official estimator checks.
|
|
252
|
+
|
|
253
|
+
Shared sparse infrastructure is available from `rsklearn.utils`. It validates
|
|
254
|
+
and converts SciPy sparse formats, exposes canonical CSR/CSC components to safe
|
|
255
|
+
Rust kernels, reconstructs validated sparse output, and provides native
|
|
256
|
+
float32/float64 sparse column scaling. Existing estimators remain dense-only
|
|
257
|
+
until their sparse-specific behavior is implemented.
|
|
258
|
+
|
|
259
|
+
For `StandardScaler`, `mean_` follows scikit-learn's practical behavior: it is
|
|
260
|
+
available when either centering or standard-deviation scaling needs it, and is
|
|
261
|
+
`None` only when both options are disabled. `var_` and `scale_` are `None`
|
|
262
|
+
when `with_std=False`.
|
|
263
|
+
|
|
264
|
+
## Compatibility
|
|
265
|
+
|
|
266
|
+
The supported behavior is differential-tested against scikit-learn, including
|
|
267
|
+
population variance, constant features, non-default feature ranges, clipping,
|
|
268
|
+
round trips, and sorted label classes. `r-scikit-learn` is intentionally much
|
|
269
|
+
smaller and does not yet claim complete estimator API compatibility.
|
|
270
|
+
|
|
271
|
+
## Current Production Gaps 🛠️
|
|
272
|
+
|
|
273
|
+
The core implemented behavior is tested and packaged across Linux, macOS, and
|
|
274
|
+
Windows, but the project remains alpha software. Before a stable 1.0 release,
|
|
275
|
+
the following compatibility and operational work remains:
|
|
276
|
+
|
|
277
|
+
- Sparse-aware estimator behavior, including non-centering `StandardScaler`
|
|
278
|
+
operation. Shared CSR/CSC validation and Rust kernels are implemented.
|
|
279
|
+
- `sample_weight` support for `StandardScaler.partial_fit`.
|
|
280
|
+
- Comprehensive `get_feature_names_out` support and configurable output
|
|
281
|
+
containers across estimators.
|
|
282
|
+
- Estimator-check compliance for future classifier and regressor types.
|
|
283
|
+
- Broader `copy=False` support and native float32 Rust kernels for scalers.
|
|
284
|
+
- Further multiclass logistic solver optimization and broader parallel-kernel
|
|
285
|
+
tuning.
|
|
286
|
+
- Broader fuzz, property, memory-pressure, and long-running benchmark coverage.
|
|
287
|
+
|
|
288
|
+
## Benchmarks ⚡
|
|
289
|
+
|
|
290
|
+
Performance depends on workload, hardware, input layout, and build mode. Run
|
|
291
|
+
the benchmarks locally:
|
|
292
|
+
|
|
293
|
+
```bash
|
|
294
|
+
maturin develop --release
|
|
295
|
+
python benches/benchmark_preprocessing.py
|
|
296
|
+
python benches/benchmark_preprocessing.py --include-largest
|
|
297
|
+
python benches/benchmark_metrics.py
|
|
298
|
+
python benches/benchmark_linear_models.py
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
The benchmark warms up each operation and reports multiple repetitions for
|
|
302
|
+
fit, transform, and end-to-end calls. Public `r-scikit-learn` timings include
|
|
303
|
+
Python-side validation and any required contiguous float64 conversion.
|
|
304
|
+
Performance benchmarks must use a release Rust extension. `maturin develop`
|
|
305
|
+
without `--release` intentionally builds an unoptimized debug extension for
|
|
306
|
+
development and can be tens of times slower.
|
|
307
|
+
|
|
308
|
+
## Development
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
maturin develop --extras dev
|
|
312
|
+
cargo fmt --check
|
|
313
|
+
cargo clippy --all-targets -- -D warnings
|
|
314
|
+
cargo test
|
|
315
|
+
ruff format --check python tests benches
|
|
316
|
+
ruff check python tests benches
|
|
317
|
+
pytest
|
|
318
|
+
maturin build --release
|
|
319
|
+
maturin sdist --out dist
|
|
320
|
+
python -c "from rsklearn.preprocessing import StandardScaler"
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
The Rust binding accepts contiguous NumPy arrays through `rust-numpy`. Public
|
|
324
|
+
Python validation may copy non-contiguous or non-float64 input. Rust produces
|
|
325
|
+
new owned output arrays so transformations never mutate caller input.
|
|
326
|
+
Substantial numerical loops release the Python GIL.
|
|
327
|
+
|
|
328
|
+
## Release
|
|
329
|
+
|
|
330
|
+
1. Run all development checks and build a release wheel.
|
|
331
|
+
2. Install the wheel into a clean virtual environment and run the import smoke
|
|
332
|
+
test.
|
|
333
|
+
3. Verify the distribution name on PyPI.
|
|
334
|
+
4. Tag the release as `v0.1.0` and push the tag.
|
|
335
|
+
5. Approve the GitHub Actions Trusted Publishing environment.
|
|
336
|
+
|
|
337
|
+
The release workflow uses PyPI Trusted Publishing and contains no API token.
|
|
338
|
+
|
|
339
|
+
## Roadmap
|
|
340
|
+
|
|
341
|
+
- Close the remaining production gaps listed above.
|
|
342
|
+
- Add sparse-aware behavior to compatible existing estimators.
|
|
343
|
+
- Add further categorical encoding and discretization estimators.
|
|
344
|
+
- Publish reproducible benchmark reports from release wheels.
|
|
345
|
+
|
|
346
|
+
## License
|
|
347
|
+
|
|
348
|
+
MIT
|
|
349
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
r_scikit_learn-0.1.0.dist-info/METADATA,sha256=z3X7bvjlqMgK6ZWE0vEoAXauPrCpNm6kifX1sfei9KY,12575
|
|
2
|
+
r_scikit_learn-0.1.0.dist-info/WHEEL,sha256=tynS2sSkn8A_r30GDHMO40lKs8Vk6sa-QfWugApJ6ZA,97
|
|
3
|
+
r_scikit_learn-0.1.0.dist-info/licenses/LICENSE,sha256=CX8mcrkqyVIC1GzFbv1wHvJxgAtF-uoCMmy8emM3YQw,842
|
|
4
|
+
r_scikit_learn-0.1.0.dist-info/sboms/r-scikit-learn-core.cyclonedx.json,sha256=ms9aJdwZCaWeeu4yyVLcPKS_XqGYfyWvJJEpLSxxvO8,176472
|
|
5
|
+
rsklearn/__init__.py,sha256=ZWGElMSSReLpnTvVDthGM-JYxGT2T4OA_HyumT1XOBI,1104
|
|
6
|
+
rsklearn/_core.cp313-win_amd64.pyd,sha256=JIWLubXzJcMZg7SfVizV7tJQ3pQP4EbM2LEBZ4NFsFc,3937280
|
|
7
|
+
rsklearn/_validation.py,sha256=GoVmoTUxb64B2swqOCCGq_uTuW5qITdrkqjSCttOW-A,6920
|
|
8
|
+
rsklearn/base.py,sha256=ggwxwGuonYbEv0TjgnAb378W78HgtBznsywK2y8sQuI,9155
|
|
9
|
+
rsklearn/compose/__init__.py,sha256=73hKWiF8NJSvDIy8nJ9qWkSl24RZZOnJgYcrXCZp0dA,203
|
|
10
|
+
rsklearn/compose/_column_transformer.py,sha256=eI-Ncfh090zJ_g8OgV3P5ArWms9Xm_FCW9HyjnxLt7g,25674
|
|
11
|
+
rsklearn/impute/__init__.py,sha256=QhunD2zL_RtNSHxQ6pCnGMCgATurFrUN0pXkiqt5nPs,121
|
|
12
|
+
rsklearn/impute/_simple_imputer.py,sha256=iIQIFIvGWzXliimJuyQv5qt9P6eh31JcKWKOAFCPmlE,15736
|
|
13
|
+
rsklearn/linear_model/__init__.py,sha256=VvKtHCVoF-9u_QZOpUbM32bPk9nnXA6t2X6k7QP5Arg,370
|
|
14
|
+
rsklearn/linear_model/_base.py,sha256=dUOGQl1Cl1rCHHZu-6iMculZD5xdJV19txE0V1XZndU,3465
|
|
15
|
+
rsklearn/linear_model/_coordinate_descent.py,sha256=i5yfE9yoj5Cn8DA2w2uW_9C-iZGPxcYpfAG_n39eW_M,5691
|
|
16
|
+
rsklearn/linear_model/_least_squares.py,sha256=8k9yrySzw9a5nCgwftYI7_JNsqqa0uG2tB-5AX1ve_4,6521
|
|
17
|
+
rsklearn/linear_model/_logistic.py,sha256=YosVen3xKG3hQHLrDutA7mEcc2eym3j5d1L57JwC7DU,10229
|
|
18
|
+
rsklearn/linear_model/_warnings.py,sha256=dKrs-VF3bP93GddFs7_8QHOJpYquYX5hUHED9NI7Ds8,173
|
|
19
|
+
rsklearn/metrics/__init__.py,sha256=QwX5GYucVUuMPpKaKQzbWIVFTxDc4ARO-dEVeBWAmIg,539
|
|
20
|
+
rsklearn/metrics/_classification.py,sha256=--ejwyGPaXfDAFRfy__nD66f98-_ACanccVTxhorIa0,12105
|
|
21
|
+
rsklearn/metrics/_regression.py,sha256=RgulYi_J_4KvgxBGoBs0KK7x3Q20XrCa1LUWV3B7b4A,3407
|
|
22
|
+
rsklearn/metrics/_validation.py,sha256=S14wTAWoIt0aiUAzma4bIVCTfMlzKy7OrJ8WnNG10RQ,2837
|
|
23
|
+
rsklearn/model_selection/__init__.py,sha256=gRsFQ0Inf6gQax6jpOVp532Ovc5ymQzerwc1WkeN-B4,358
|
|
24
|
+
rsklearn/model_selection/_split.py,sha256=1AUH2QOUbyKxSdIvcFXwZV2uuzWLGLoJ1-gQWSgajYk,11539
|
|
25
|
+
rsklearn/model_selection/_utils.py,sha256=662N7ztYnYIpdHLetMHp5uBqWbU_kzaoLFVq6fEC1S0,3521
|
|
26
|
+
rsklearn/model_selection/_validation.py,sha256=V_m_TMMj4rAzEK7WVK8NINgjW8lMPA5EeiN9N2fA7DQ,6901
|
|
27
|
+
rsklearn/pipeline.py,sha256=Y3DQFgElrlzkR509qCqqR4dkvxIchyxXokWiM9xlX6Y,18304
|
|
28
|
+
rsklearn/preprocessing/__init__.py,sha256=A_MCSZ5Rfn4kGq5E4EKv9fpofOv6hjJeFTZ-zHqTdS0,503
|
|
29
|
+
rsklearn/preprocessing/_base.py,sha256=Sj48f3Ct_s82Q_IjR5NBXrpffz2UlZRf0G6qM2dnvIQ,241
|
|
30
|
+
rsklearn/preprocessing/_categorical.py,sha256=MaEqYqAp7erHI_6y02wDWMBZjnLwx6dkSy0aKgEM_Ls,13178
|
|
31
|
+
rsklearn/preprocessing/_label_encoder.py,sha256=pK-8D77ZfFGBwI0p665pLN80eNqSFTVOUKxRh0UzM5k,5656
|
|
32
|
+
rsklearn/preprocessing/_minmax_scaler.py,sha256=v9Z7uhbfiFgUfyHw_Oyie2bmI7wL52fgebSeVIUsQBw,4578
|
|
33
|
+
rsklearn/preprocessing/_normalizer.py,sha256=m5OTLDuC_w0x-c3sxrNsT4ot4Wf8YBGGoGqd-ChCAbI,2991
|
|
34
|
+
rsklearn/preprocessing/_one_hot_encoder.py,sha256=YtqZhURBRCIE3SoI2Hqo6nMxGqZyU6-fCfT18nysw7I,18474
|
|
35
|
+
rsklearn/preprocessing/_ordinal_encoder.py,sha256=bzkPZ8RhxUwLyVsxfAuaIB5wxZutnGbEedfavtwtiHI,14651
|
|
36
|
+
rsklearn/preprocessing/_robust_scaler.py,sha256=exYy1Y77Vuk1uU6SDCcZaPfUNJ1XUaxB0Lb5HCrLDDw,5623
|
|
37
|
+
rsklearn/preprocessing/_standard_scaler.py,sha256=J7DrVzWAGKqMy13pgVfQbNmr2cK_nPv3dwlQsAwLqLw,4365
|
|
38
|
+
rsklearn/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
|
39
|
+
rsklearn/utils/__init__.py,sha256=WAOLSHLtdKcTC3NZfVUW4qb_YD1NV9S-jLr-aZF8rgE,626
|
|
40
|
+
rsklearn/utils/sparse.py,sha256=tVOpg4wJ9wcjHFNwFUlNrj0JWAN_PPIJBsBXqDrj8K0,6550
|
|
41
|
+
rsklearn/utils/validation.py,sha256=fjw_oYV_Z6cmyQXouwyxWNB_M1h5Uir16f0oKlAMU6I,15348
|
|
42
|
+
r_scikit_learn-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 r-scikit-learn contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|