рдореБрдЦреНрдп рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдБ

R рдореЗрдВ Confusion Matrix рдХреЛ рд╕рдордЭрдирд╛

рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ DataCamp рдХреЗ Machine Learning Toolbox рдХреЛрд░реНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЖрдкрдХреЛ R рдореЗрдВ confusion matrices рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред
┬╖ 3 рдорд┐ре░ рдкрдврд╝реЗрдВ

AI рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ

рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░рд╛ Machine Learning Toolbox рдХреЛрд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░рд╣рд╛ рд▓рд┐рдВрдХред

Confusion matrix рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦрд╛, confusion matrix рдХрд┐рд╕реА рдореЙрдбрд▓ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рдгрд╛рдореЛрдВ (true positive, true negative, false positive, false negative) рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рд╣реИред

рдЕрдкрдиреА confusion matrix рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕рдВрднрд╛рд╡реНрдпрддрд╛-рдЖрдзрд╛рд░рд┐рдд рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЛ рдПрдХ рджрд┐рдП рдЧрдП рдереНрд░реЗрд╢реЛрд▓реНрдб рдкрд░ "рдХрд╛рдЯ" рдХрд░ рд╡рд░реНрдЧ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдпрд╣ рдХрд╛рдо рдЖрд╕рд╛рдиреА рд╕реЗ ifelse() рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

class_prediction <-
  ifelse(probability_prediction > 0.50,
         "positive_class",
         "negative_class"
  )

рдЖрдк base R рдХреЗ table() рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдРрд╕реА рдПрдХ contingency рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди caret рдореЗрдВ confusionMatrix() рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ base rates рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдИ рдЙрдкрдпреЛрдЧреА рд╕рд╣рд╛рдпрдХ рдЖрдБрдХрдбрд╝реЗ рднреА рджреЗрддрд╛ рд╣реИред рдЖрдк рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ confusion matrix (рдФрд░ рд╕рдВрдмрджреНрдз рдЖрдБрдХрдбрд╝реЗ) рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

confusionMatrix(predicted, actual)

рдирд┐рд░реНрджреЗрд╢

  • рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ p рдХреЛ 0.50 рдХреЗ рдХрдЯрдСрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП p_class рдирд╛рдо рдХреЗ рд╡рд░реНрдЧ-рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдмрджрд▓реЗрдВред рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддреЗ рд╕рдордп рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП "M" рдФрд░ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП "R" рдХрд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдореВрд▓ рдбреЗрдЯрд╛ рдореЗрдВ рдореМрдЬреВрдж рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдБред
  • p_class, test рд╕реЗрдЯ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдиреЛрдВ, рдФрд░ confusionMatrix() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ confusion matrix рдмрдирд╛рдПрдВред

# If p exceeds threshold of 0.5, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix

рдпрджрд┐ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рдЕрднреНрдпрд╛рд╕ рдкрд░ рдмрдврд╝реЗрдВ! рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдпрд╣рд╛рдБ рдПрдХ рдУрд╡рд░рд╡реНрдпреВ рд╡реАрдбрд┐рдпреЛ рд╣реИред

Confusion Matrix рдкрд░ рдУрд╡рд░рд╡реНрдпреВ рд╡реАрдбрд┐рдпреЛ

рд╕рдВрднрд╛рд╡реНрдпрддрд╛рдУрдВ рд╕реЗ confusion matrix рддрдХ

рджреВрд╕рд░реА рдУрд░, рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдмрд┐рд▓реНрдХреБрд▓ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рд╕рднреА рдорд╛рдЗрдиреНрд╕ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдорд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИред рдРрд╕реЗ рдореЗрдВ, рдЖрдк 0.90 рдХреЗ рдмрдЬрд╛рдп 0.10 рдХрд╛ prediction threshold рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЕрдкрдиреЗ рдирдИ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЧрдИ рдХреНрд▓рд╛рд╕реЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рд╣реА confusion matrix рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

pred <- ifelse(probability > threshold, "M", "R")

рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдк рдкрд┐рдЫрд▓реЗ рдЕрднреНрдпрд╛рд╕ рдХреА рддрд░рд╣ рд╣реА confusionMatrix() рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

confusionMatrix(pred, actual)

# If p exceeds threshold of 0.1, M else R: m_or_r


# Convert to factor: p_class


# Create confusion matrix


рдпрджрд┐ рдЖрдк рдЗрд╕ рдХреЛрд░реНрд╕ рд╕реЗ рдФрд░ рд╕реАрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд░рд╣рд╛ рд▓рд┐рдВрдХред

рд╡рд┐рд╖рдп