nirs4all.sklearn.classifier module

sklearn-compatible classification pipeline wrapper for nirs4all.

NIRSPipelineClassifier is the classification variant of NIRSPipeline, providing ClassifierMixin compatibility for sklearn tools.

class nirs4all.sklearn.classifier.NIRSPipelineClassifier[source]

Bases: NIRSPipeline

sklearn-compatible classifier wrapper for trained nirs4all pipelines.

This is the classification variant of NIRSPipeline, providing ClassifierMixin compatibility (predict_proba, classes_).

Construction:

Use class methods to create instances: - NIRSPipelineClassifier.from_result(result): From a RunResult - NIRSPipelineClassifier.from_bundle(path): From an exported .n4a bundle

Additional Attributes:

classes_: Array of class labels.

Additional Methods:

predict_proba(X): Predict class probabilities.

Example

>>> result = nirs4all.run(classification_pipeline, dataset)
>>> clf = NIRSPipelineClassifier.from_result(result)
>>> proba = clf.predict_proba(X_new)
>>> print(f"Accuracy: {clf.score(X_test, y_test):.4f}")
__repr__() str[source]

Return string representation.

property classes_: ndarray

Get array of class labels.

Returns:

Array of unique class labels.

Raises:

RuntimeError – If classes cannot be determined.

classmethod from_bundle(bundle_path: str | Path, fold: int = 0) NIRSPipelineClassifier[source]

Create NIRSPipelineClassifier from an exported .n4a bundle.

Parameters:
  • bundle_path – Path to the exported .n4a bundle file.

  • fold – Which fold’s model to use (default: 0).

Returns:

NIRSPipelineClassifier instance ready for prediction.

Example

>>> clf = NIRSPipelineClassifier.from_bundle("exports/classifier.n4a")
>>> proba = clf.predict_proba(X_new)
classmethod from_result(result: RunResult, source: Dict[str, Any] | None = None, fold: int = 0) NIRSPipelineClassifier[source]

Create NIRSPipelineClassifier from a RunResult.

Parameters:
  • result – RunResult from nirs4all.run() with a classification pipeline.

  • source – Optional prediction dict to wrap. If None, uses best model.

  • fold – Which fold’s model to use (default: 0).

Returns:

NIRSPipelineClassifier instance ready for prediction.

Example

>>> result = nirs4all.run(classification_pipeline, dataset)
>>> clf = NIRSPipelineClassifier.from_result(result)
predict(X: ndarray) ndarray[source]

Predict class labels for samples.

Parameters:

X – Feature matrix (n_samples, n_features).

Returns:

Predicted class labels (n_samples,).

Example

>>> clf = NIRSPipelineClassifier.from_bundle("model.n4a")
>>> y_pred = clf.predict(X_test)
predict_proba(X: ndarray) ndarray[source]

Predict class probabilities for samples.

Parameters:

X – Feature matrix (n_samples, n_features).

Returns:

Class probability matrix (n_samples, n_classes).

Raises:

RuntimeError – If model doesn’t support predict_proba.

Example

>>> clf = NIRSPipelineClassifier.from_bundle("model.n4a")
>>> proba = clf.predict_proba(X_test)
>>> print(f"Probability of class 0: {proba[:, 0]}")
score(X: ndarray, y: ndarray) float[source]

Compute accuracy score on test data.

Parameters:
  • X – Feature matrix (n_samples, n_features).

  • y – True class labels (n_samples,).

Returns:

Accuracy score (fraction correctly classified).

Example

>>> clf = NIRSPipelineClassifier.from_bundle("model.n4a")
>>> accuracy = clf.score(X_test, y_test)
>>> print(f"Accuracy: {accuracy:.4f}")