File size: 1,162 Bytes
1d6bb40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import pandas as pd
import matplotlib.pyplot as plt
import joblib

from src.config import BASE_DATASET_PATH, META_MODEL_PATH


# Load dataset
df = pd.read_csv(BASE_DATASET_PATH)


# Feature names
feature_columns = [
    "vader_pred",
    "vader_score",
    "lr_pred",
    "lr_confidence",
    "bert_pred",
    "bert_confidence",
    "bert_entropy",
    "vader_lr_disagreement",
    "lr_bert_disagreement",
    "vader_bert_disagreement",
    "has_negative_intensifier"
]


# Load trained model
meta_model = joblib.load(META_MODEL_PATH)


# Extract coefficients
coefficients = meta_model.coef_[0]


# Create dataframe
importance_df = pd.DataFrame({
    "Feature": feature_columns,
    "Coefficient": coefficients
})


# Absolute importance
importance_df["Absolute"] = importance_df[
    "Coefficient"
].abs()


# Sort
importance_df = importance_df.sort_values(
    by="Absolute",
    ascending=True
)


# Plot
plt.figure(figsize=(10, 6))

plt.barh(
    importance_df["Feature"],
    importance_df["Absolute"]
)

plt.xlabel("Importance")

plt.ylabel("Feature")

plt.title("Meta-Feature Importance for Transformer Failure Prediction")

plt.tight_layout()

plt.show()