|
|
import pandas as pd |
|
|
import numpy as np |
|
|
from sklearn.base import BaseEstimator, TransformerMixin |
|
|
import joblib |
|
|
from _config import config |
|
|
|
|
|
|
|
|
class ClassifyMovementData(BaseEstimator, TransformerMixin): |
|
|
def __init__(self, model_file = None): |
|
|
|
|
|
self.model_file = model_file |
|
|
self.model = None |
|
|
|
|
|
def fit(self, X, y=None): |
|
|
return self |
|
|
|
|
|
def transform(self, X): |
|
|
if self.model is None: |
|
|
if self.model_file is None: |
|
|
raise ValueError("Model file is not provided.") |
|
|
try: |
|
|
self.model = joblib.load(self.model_file) |
|
|
except Exception as e: |
|
|
raise ValueError(f"Failed to load the model file: {e}") |
|
|
|
|
|
|
|
|
predictions = self.model.predict(X) |
|
|
|
|
|
|
|
|
X.insert(0, 'predicted_emotion', predictions) |
|
|
|
|
|
print("Data classified successfully.") |
|
|
|
|
|
|
|
|
|
|
|
output_file = f"classified_movement_data.csv" |
|
|
X.to_csv(output_file, index=False) |
|
|
print(f"Classified movement data exported successfully to {output_file}.") |
|
|
|
|
|
return X |
|
|
|