accelerometer / pipeline_classes /scale_xyzdata.py
mininato's picture
Upload 30 files
ca3e099 verified
import pandas as pd
import numpy as np
from sklearn.base import BaseEstimator, TransformerMixin
from sklearn.preprocessing import StandardScaler, MinMaxScaler
#from _config import config
class ScaleXYZData(BaseEstimator, TransformerMixin):
def __init__(self, scaler_type='standard'):
self.scaler_type = scaler_type
def fit(self, X, y=None):
return self
def transform(self, X):
columns_to_scale = ['x', 'y', 'z']
if self.scaler_type == 'standard': # Scale the columns using StandardScaler or MinMaxScaler
scaler = StandardScaler()
elif self.scaler_type == 'minmax':
scaler = MinMaxScaler()
elif self.scaler_type == 'none':
return X # Return the DataFrame without scaling
else:
raise ValueError("Invalid scaler_type. Expected 'standard' or 'minmax'.") # Raise an error if scaler_type is invalid
scaled_columns = scaler.fit_transform(X[columns_to_scale])
scaled_df = pd.DataFrame(scaled_columns, columns=columns_to_scale, index=X.index)
X[columns_to_scale] = scaled_df
print("Data scaled successfully.")
return X