# # Install the minirocket package
# !pip install sktime
import sktime
# Import necessary libraries
import numpy as np
import pandas as pd
from sktime.datasets import load_arrow_head
from sktime.transformations.panel.rocket import MiniRocket
from sklearn.linear_model import RidgeClassifierCV
from sklearn.pipeline import make_pipeline
from sklearn.metrics import accuracy_score
# Load dataset
X_train, y_train = load_arrow_head(split="train", return_X_y=True)
X_test, y_test = load_arrow_head(split="test", return_X_y=True)
# Fit MiniRocket transformer
minirocket = MiniRocket()
minirocket.fit(X_train)
# Transform the dataset
X_train_transform = minirocket.transform(X_train)
X_test_transform = minirocket.transform(X_test)
# Train a linear classifier
classifier = RidgeClassifierCV(alphas=np.logspace(-3, 3, 10))
pipeline = make_pipeline(minirocket, classifier)
pipeline.fit(X_train, y_train)
# Make predictions and evaluate
y_pred = pipeline.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.4f}')