gators.feature_generation.PlanRotation¶
-
class
gators.feature_generation.
PlanRotation
(columns: List[List[str]], theta_vec: List[float])[source]¶ Create new columns based on the plan rotation mapping.
The data should be composed of numerical columns only. Use gators.encoders to replace the categorical columns by numerical ones before using PlanRotation.
- Parameters
- columnsList[List[str]]
List of pair-wise columns.
- theta_vecList[float]
List of rotation angles.
- dtypetype, default np.float64
Numpy dtype of the output data.
Examples
Imports and initialization:
>>> from gators.feature_generation import PlanRotation >>> obj = PlanRotation( ... columns=[['X', 'Y'], ['X', 'Z']] , theta_vec=[45.0, 60.0])
The fit, transform, and fit_transform methods accept:
dask dataframes:
>>> import dask.dataframe as dd >>> import pandas as pd >>> X = dd.from_pandas(pd.DataFrame( ... {'X': [200.0, 210.0], 'Y': [140.0, 160.0], 'Z': [100.0, 125.0]}), npartitions=1)
koalas dataframes:
>>> import databricks.koalas as ks >>> X = ks.DataFrame( ... {'X': [200.0, 210.0], 'Y': [140.0, 160.0], 'Z': [100.0, 125.0]})
and pandas dataframes:
>>> import pandas as pd >>> X = pd.DataFrame( ... {'X': [200.0, 210.0], 'Y': [140.0, 160.0], 'Z': [100.0, 125.0]})
The result is a transformed dataframe belonging to the same dataframe library.
>>> obj.fit_transform(X) X Y Z ... XZ_y_45.0deg XZ_x_60.0deg XZ_y_60.0deg 0 200.0 140.0 100.0 ... 212.132034 13.397460 223.205081 1 210.0 160.0 125.0 ... 236.880772 -3.253175 244.365335
>>> X = pd.DataFrame( ... {'X': [200.0, 210.0], 'Y': [140.0, 160.0], 'Z': [100.0, 125.0]}) >>> _ = obj.fit(X) >>> obj.transform_numpy(X.to_numpy()) array([[200. , 140. , 100. , 42.42640687, 240.4163056 , -21.24355653, 243.20508076, 70.71067812, 212.13203436, 13.39745962, 223.20508076], [210. , 160. , 125. , 35.35533906, 261.62950904, -33.56406461, 261.86533479, 60.1040764 , 236.8807717 , -3.25317547, 244.36533479]])
-
fit
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series] = None) → gators.feature_generation.plan_rotation.PlanRotation[source]¶ Fit the transformer on the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- ySeries, default None.
Target values.
- Returns
- PlanRotation
Instance of itself.
-
transform
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame]) → Union[pd.DataFrame, ks.DataFrame, dd.DataFrame][source]¶ Transform the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- Returns
- XDataFrame
Transformed dataframe.
-
transform_numpy
(X: numpy.ndarray) → numpy.ndarray[source]¶ Transform the array X.
- Parameters
- Xnp.ndarray
Input array.
- Returns
- Xnp.ndarray
Transformed array.
-
static
check_array
(X: numpy.ndarray)¶ Validate array.
- Parameters
- Xnp.ndarray
Array.
-
check_array_is_numerics
(X: numpy.ndarray)¶ Check if array is only numerics.
- Parameters
- Xnp.ndarray
Array.
-
static
check_binary_target
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not binary.
- Parameters
- ySeries
Target values.
-
static
check_dataframe
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Validate dataframe.
- Parameters
- XDataFrame
Dataframe.
-
static
check_dataframe_contains_numerics
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
static
check_dataframe_is_numerics
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
check_dataframe_with_objects
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame])¶ Check if dataframe contains object columns.
- Parameters
- XDataFrame
Dataframe.
-
check_datatype
(dtype, accepted_dtypes)¶ Check if dataframe is only numerics.
- Parameters
- XDataFrame
Dataframe.
-
static
check_multiclass_target
(y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not discrete.
- Parameters
- ySeries
Target values.
-
check_nans
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], columns: List[str])¶ Raise an error if X contains NaN values.
- Parameters
- XDataFrame
Dataframe.
- theta_vecList[float]
List of columns.
-
static
check_regression_target
(y: Union[pd.Series, ks.Series, dd.Series])¶ Raise an error if the target is not discrete.
- Parameters
- ySeries
Target values.
-
static
check_target
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series])¶ Validate target.
- Parameters
- XDataFrame
Dataframe.
- ySeries
Target values.
-
fit_transform
(X: Union[pd.DataFrame, ks.DataFrame, dd.DataFrame], y: Union[pd.Series, ks.Series, dd.Series] = None) → Union[pd.DataFrame, ks.DataFrame, dd.DataFrame]¶ Fit and Transform the dataframe X.
- Parameters
- XDataFrame.
Input dataframe.
- ySeries, default None.
Input target.
- Returns
- XDataFrame
Transformed dataframe.
-
static
get_column_names
(inplace: bool, columns: List[str], suffix: str)¶ Return the names of the modified columns.
- Parameters
- inplacebool
If True return columns. If False return columns__suffix.
- columnsList[str]
List of columns.
- suffixstr
Suffix used if inplace is False.
- Returns
- List[str]
List of column names.
-
get_params
(deep=True)¶ Get parameters for this estimator.
- Parameters
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns
- paramsdict
Parameter names mapped to their values.
-
set_params
(**params)¶ Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline
). The latter have parameters of the form<component>__<parameter>
so that it’s possible to update each component of a nested object.- Parameters
- **paramsdict
Estimator parameters.
- Returns
- selfestimator instance
Estimator instance.