Usage Examples

This section provides detailed examples of how to use the LimeSoDa package for various soil mapping tasks.

Basic Usage

First, let’s import the necessary modules and load a dataset:

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score, mean_squared_error
from LimeSoDa import load_dataset
from LimeSoDa.utils import split_dataset

def basic_usage():
    """Basic usage example with 10-fold CV"""
    # Set random seed
    np.random.seed(2025)

    # Load dataset
    BB_250 = load_dataset('BB.250')

    # Perform 10-fold CV
    y_true_all = []
    y_pred_all = []

    for fold in range(1, 11):
        X_train, X_test, y_train, y_test = split_dataset(BB_250, fold=fold, targets='SOC_target')

        model = LinearRegression()
        model.fit(X_train, y_train)
        y_pred = model.predict(X_test)

        y_true_all.extend(y_test.values)
        y_pred_all.extend(y_pred)

    # Calculate overall performance
    y_true_all = np.array(y_true_all)
    y_pred_all = np.array(y_pred_all)
    mean_r2 = r2_score(y_true_all, y_pred_all)
    mean_rmse = np.sqrt(mean_squared_error(y_true_all, y_pred_all))
    std_r2 = 0
    std_rmse = 0

    return mean_r2, std_r2, mean_rmse, std_rmse

if __name__ == "__main__":
    mean_r2, std_r2, mean_rmse, std_rmse = basic_usage()
    print("\nSOC prediction (10-fold CV):")
    print(f"Mean R-squared: {mean_r2:.7f} ± {std_r2:.7f}") # Mean R-squared: 0.7507837 ± 0.0000000
    print(f"Mean RMSE: {mean_rmse:.7f} ± {std_rmse:.7f}") # Mean RMSE: 0.2448791 ± 0.0000000