Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/autoencodix/base/_base_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@ def __init__(
TypeError: If inputs have incorrect types.
"""
if not hasattr(self, "_default_config"):
raise ValueError("""
raise ValueError(
"""
The _default_config attribute has not been specified in your pipeline class.

Example:
Expand All @@ -116,7 +117,8 @@ def __init__(
_default_config in its corresponding pipeline class.

For more details, please refer to the 'how to add a new architecture' section in our documentation.
""")
"""
)
self.model_map = kwargs.pop("model_map", None)
self._validate_config(config=config)
self._validate_user_input(data=data)
Expand Down
53 changes: 33 additions & 20 deletions src/autoencodix/visualize/_general_visualizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -473,18 +473,23 @@ def _plot_2D(
print(
"The provided label column is numeric and converted to categories."
)
labels = [
float("nan") if not isinstance(x, float) else x for x in labels
]
labels = (
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
# Try to convert all labels to float, if fails, convert to nan
for i in range(len(labels)):
try:
labels[i] = float(labels[i])
except ValueError:
labels[i] = float("nan")
# Check if all labels are NaN, convert to string
if all(np.isnan(labels)):
labels = [str(x) for x in labels]
else:
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)
.astype(str)
.to_list()
)
else:
center = False ## Disable centering for numeric params
numeric = True
Expand Down Expand Up @@ -692,15 +697,23 @@ def _plot_latent_ridge(
# print(labels[0])
if not isinstance(labels[0], str):
if len(np.unique(labels)) > 3:
# Change all non-float labels to NaN
labels = [x if isinstance(x, float) else float("nan") for x in labels]
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)
# Try to convert all labels to float, if fails, convert to nan
for i in range(len(labels)):
try:
labels[i] = float(labels[i])
except ValueError:
labels[i] = float("nan")
# Check if all labels are NaN, convert to string
if all(np.isnan(labels)):
labels = [str(x) for x in labels]
else:
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)
else:
labels = [str(x) for x in labels]

Expand Down
25 changes: 18 additions & 7 deletions src/autoencodix/visualize/_xmodal_visualizer.py
Original file line number Diff line number Diff line change
Expand Up @@ -695,13 +695,24 @@ def _plot_latent_ridge_multi(
# print(labels[0])
if not isinstance(labels[0], str):
if len(np.unique(labels)) > 3:
# Change all non-float labels to NaN
labels = [x if isinstance(x, float) else float("nan") for x in labels]
labels = pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
# Try to convert all labels to float, if fails, convert to nan
for i in range(len(labels)):
try:
labels[i] = float(labels[i])
except ValueError:
labels[i] = float("nan")
# Check if all labels are NaN, convert to string
if all(np.isnan(labels)):
labels = [str(x) for x in labels]
else:
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)

else:
labels = [str(x) for x in labels]

Expand Down
52 changes: 33 additions & 19 deletions src/autoencodix/visualize/visualize.py
Original file line number Diff line number Diff line change
Expand Up @@ -704,19 +704,23 @@ def plot_2D(
print(
"The provided label column is numeric and converted to categories."
)
# Change non-float labels to NaN
labels = [
x if isinstance(x, float) else float("nan") for x in labels
]
labels = (
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
# Try to convert all labels to float, if fails, convert to nan
for i in range(len(labels)):
try:
labels[i] = float(labels[i])
except ValueError:
labels[i] = float("nan")
# Check if all labels are NaN, convert to string
if all(np.isnan(labels)):
labels = [str(x) for x in labels]
else:
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)
.astype(str)
.to_list()
)
else:
center = False ## Disable centering for numeric params
numeric = True
Expand Down Expand Up @@ -834,13 +838,23 @@ def plot_latent_ridge(
# print(labels[0])
if not isinstance(labels[0], str):
if len(np.unique(labels)) > 3:
# Change non-float labels to NaN
labels = [x if isinstance(x, float) else float("nan") for x in labels]
labels = pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
# Try to convert all labels to float, if fails, convert to nan
for i in range(len(labels)):
try:
labels[i] = float(labels[i])
except ValueError:
labels[i] = float("nan")
# Check if all labels are NaN, convert to string
if all(np.isnan(labels)):
labels = [str(x) for x in labels]
else:
labels = list(
pd.qcut(
x=pd.Series(labels),
q=4,
labels=["1stQ", "2ndQ", "3rdQ", "4thQ"],
).astype(str)
)
else:
labels = [str(x) for x in labels]

Expand Down
Loading