Module neuralops.analysis.utils
Utility functions for analysis.
Functions
def correlation_matrix(df: pandas.DataFrame, columns: list[str]) ‑> pandas.DataFrame-
Expand source code
def correlation_matrix(df: pd.DataFrame, columns: list[str]) -> pd.DataFrame: """Correlation matrix.""" return df[columns].corr()Correlation matrix.
def detect_least_compressible_layers(model, tokenizer, calibration_texts: list[str], k: int = 5) ‑> list[int]-
Expand source code
def detect_least_compressible_layers( model, tokenizer, calibration_texts: list[str], k: int = 5 ) -> list[int]: """Detect least compressible layers.""" from .layerwise_analyzer import LayerwiseAnalyzer analyzer = LayerwiseAnalyzer(model, tokenizer) result = analyzer.analyze(calibration_texts) changes = result["cosine_similarities"] most_change_scores = [1 - sim for sim in changes] top_indices = np.argsort(most_change_scores)[-k:] return sorted(top_indices)Detect least compressible layers.
def filter_results(df: pandas.DataFrame,
models: list[str] | None = None,
tasks: list[str] | None = None,
ranks: list[int] | None = None,
min_accuracy: float | None = None) ‑> pandas.DataFrame-
Expand source code
def filter_results( df: pd.DataFrame, models: list[str] | None = None, tasks: list[str] | None = None, ranks: list[int] | None = None, min_accuracy: float | None = None, ) -> pd.DataFrame: """Filter results.""" result = df.copy() if models: result = result[result["model"].isin(models)] if tasks: result = result[result["task"].isin(tasks)] if ranks: result = result[result["rank"].isin(ranks)] if min_accuracy is not None and "accuracy" in result.columns: result = result[result["accuracy"] >= min_accuracy] return resultFilter results.
def get_best_configurations(df: pandas.DataFrame, metric: str = 'accuracy') ‑> pandas.DataFrame-
Expand source code
def get_best_configurations(df: pd.DataFrame, metric: str = "accuracy") -> pd.DataFrame: """Return the best configurations.""" best_rows = [] for (task, model), group in df.groupby(["task", "model"]): if metric in group.columns: idx = group[metric].idxmax() best_rows.append(group.loc[idx]) return pd.DataFrame(best_rows)Return the best configurations.
def statistical_tests(df: pandas.DataFrame, group_col: str, value_col: str) ‑> dict[str, typing.Any]-
Expand source code
def statistical_tests(df: pd.DataFrame, group_col: str, value_col: str) -> dict[str, Any]: """Statistical tests.""" from scipy import stats groups = [g[1][value_col].dropna() for g in df.groupby(group_col)] if len(groups) < 2: return {"error": "Need at least two groups"} f_stat, p_anova = stats.f_oneway(*groups) pairwise = {} for i in range(len(groups) - 1): t, p = stats.ttest_ind(groups[i], groups[i + 1]) pairwise[f"{i}_vs_{i + 1}"] = {"t": t, "p": p} return {"anova_p": p_anova, "pairwise": pairwise}Statistical tests.