Wynik KS do oceny modelu
Czym są metryki ewaluacyjne i dlaczego potrzebujemy ewaluacji modelu?
- Metryki oceny to te, które są używane do ilościowego określania wydajności modelu uczenia maszynowego.
- Ocena modelu pozwala nam ocenić jakość prognoz i określić, czy model dobrze się uogólnia. Metryki oceny służą modelowi po jego przeszkoleniu przez podanie wyniku.
- Ocena modelu pomaga zidentyfikować problemy z modelem i danymi. Daje możliwość optymalizacji modelu, na przykład poprzez dostrojenie hiperparametrów lub wybranie różnych cech.
- Wreszcie, ilościowe określenie wydajności modelu zbuduje zaufanie do modelu, a interesariusze polegający na modelu przy podejmowaniu decyzji będą mogli uzyskać miarę mocy predykcyjnej modelu.
- Wynik Kołmogorowa-Smirnowa (KS) jest sposobem na porównanie skumulowanej sumy klas dodatnich i ujemnych. Mierzy maksymalną różnicę między nimi w zakresie przewidywanych prawdopodobieństw.
- Populacja całego zbioru danych jest dzielona na decyle na podstawie prawdopodobieństwa predykcji. Każdy decyl jest ogólnie znany jako poziom .
- Wysoki wynik KS wskazuje, że model ma lepszą separację między klasami pozytywnymi (towary) i negatywnymi (złe) na odpowiednim poziomie. Miara ta jest szeroko stosowana w branży finansów i ryzyka kredytowego.
- KS Score zapewnia pojedynczą wartość skalarną, którą można łatwo zinterpretować i porównać w różnych modelach.
class ModelEvaluation:
"""
A class to compute the gains table for a given predictions DataFrame.
Attributes
----------
predictions : pd.DataFrame
A DataFrame containing 'Prediction Probability', 'True Labels' columns.
Methods
-------
compute_gains_table_ks():
Computes the gains table from the provided predictions DataFrame.
Returns the gains table & KS value from the gains table.
"""
def __init__(self, predictions_df):
self.predictions = predictions_df
def compute_gains_table_ks(self):
self.predictions['Bins'] = pd.qcut(self.predictions['Prediction_Probability'],q = 10)
self.predictions['Total'] = 1
self.predictions.rename(columns={'Label':'Bads'},inplace=True)
gains_table = self.predictions[['Bins', 'Bads', 'Total']].groupby(self.predictions['Bins']).sum()
gains_table['Goods'] = gains_table['Total'] - gains_table['Bads']
gains_table['Cumulative_bads'] = gains_table['Bads'].cumsum()
gains_table['Cumulative_goods'] = gains_table['Goods'].cumsum()
gains_table['Cumulative_Bad_Rate'] = (gains_table['Cumulative_bads'] / gains_table['Cumulative_bads'].max() * 100).round(2)
gains_table['Cumulative_Good_Rate'] = (gains_table['Cumulative_goods'] / gains_table['Cumulative_goods'].max() * 100).round(2)
gains_table['KS'] = abs(gains_table["Cumulative_Bad_Rate"] - gains_table["Cumulative_Good_Rate"])
gains_table = gains_table[['Bads', 'Goods', 'Total', 'Cumulative_bads', 'Cumulative_goods','Cumulative_Bad_Rate', 'Cumulative_Good_Rate', 'KS']]
model_ks = gains_table['KS'].max()
def identify_max(series):
max_value = series.max()
return ['<---' if i == max_value else '' for i in series]
def highlight_max(series):
max_value = series.max()
return ['background-color: aquamarine' if i == max_value else '' for i in series]
# Apply the identify_max & highlight_max functions to the DataFrame
gains_table['Max_KS'] = identify_max(gains_table['KS'])
gains_table = gains_table.style.apply(highlight_max,subset=['KS'])
return gains_table, model_ks
Sample predictions data frame (where Label 0 —Class Good & Label 1 — Class Bad )
model_score = ModelEvaluation(predictions_df)
gains_table,ks = model_score.compute_gains_table_ks()
Gains Table
Wniosek
Podsumowując, KS Score służy jako potężne narzędzie do ilościowego określania mocy dyskryminacyjnej modeli predykcyjnych, szczególnie w dziedzinie problemów klasyfikacji binarnej. KS Score jest bardzo pomocny w identyfikowaniu rozróżnienia między dobrami a złymi na każdym poziomie określonym przez zakresy prawdopodobieństwa.
Dla analityka danych kluczowe znaczenie ma zrozumienie i efektywne wykorzystanie różnych metryk oceny modeli, w tym KS Score, aby upewnić się, że modele są nie tylko dokładne, ale także solidne i niezawodne w praktyce. Włączając KS Score do własnego zestawu narzędzi do oceny, możemy podejmować bardziej świadome decyzje dotyczące wyboru modelu, udoskonalania i wdrażania, ostatecznie osiągając lepsze wyniki dla organizacji i interesariuszy.
Dziękuje za przeczytanie. Zachęcamy do dzielenia się wszelkimi opiniami.
Aby uzyskać więcej artykułów na temat nauki o danych, śledź mniehttps://medium.com/@kstarun.
Jestem również dostępny na Linkedin .

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































