he jugado un poco,
- tomó los datos de Big Class (peso y altura como x e y, sexo como clase),
- análisis KNN realizado, fórmula guardada
- generó una cuadrícula en una tabla separada y copió la fórmula en esa cuadrícula para mostrar "áreas de decisión"
ver captura de pantalla. Podría ser más bonito (se debe a la distribución de datos, etc.), pero muestra lo que significa.
También puede hacer esto de forma interactiva, si no desea codificar. Adjunto está el código para este ejemplo. Tal vez esto pueda ayudar.

Names Default To Here( 1 );
// Create a data table (x and y are height and weight from Big Class, class is sex)
dt_data= New Table( "dt_data",
Add Rows( 40 ),
New Column( "x", Numeric,
"Continuous",
Format( "Fixed Dec", 5, 0 ),
Set Values(
[59, 61, 55, 66, 52, 60, 61, 51, 60, 61, 56, 65, 63, 58, 59, 61, 62, 65, 63, 62,
63, 64, 65, 64, 68, 64, 69, 62, 64, 67, 65, 66, 62, 66, 65, 60, 68, 62, 68, 70]
),
Set Display Width( 48 )
),
New Column("y", Numeric,
"Continuous",
Format( "Fixed Dec", 5, 0 ),
Set Values(
[95, 123, 74, 145, 64, 84, 128, 79, 112, 107, 67, 98, 105, 95, 79, 81, 91, 142,
84, 85, 93, 99, 119, 92, 112, 99, 113, 92, 112, 128, 111, 105, 104, 106, 112,
115, 128, 116, 134, 172]
),
Set Display Width( 48 )
),
New Column( "class", Numeric,
"Nominal",
Format( "Best", 12 ),
Set Values(
[1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 2]
)
),
);
// Model class by x and y and save formula
knn_rep = dt_data << K Nearest Neighbors(
Y( :class ),
X( :x, :y ),
K( 10 ),
Set Random Seed( 42 )
);
knn_rep << xpath( "class" ) << Save Prediction Formula( 8 );
knn_rep << Close Window();
// Generate a grid data table to show the whole field
Summarize(
dt_data,
max_x = Max( :x ),
min_x = Min( :x ),
max_y = Max( :y ),
min_y = Min( :y )
);
dx = 1;
get_limit = Function( {value},
Round( value / dx ) * dx + If( value >= 0, 1, -1 ) * dx
);
dtx = As Table(
(get_limit( min_x ) / dx :: get_limit( max_x ) / dx)` * dx,
<<COLUMN names=""></COLUMN>
No estoy muy familiarizado con KNN, pero la primera idea que tendría para la visualización es dar un marcador diferente al mal predicho. Vea la captura de pantalla a continuación. Son los datos en forma de u, KNN con K=4 dio el mejor resultado.
- fórmula de predicción guardada
- hizo una nueva fórmula para comparar la clase verdadera y la clase predicha
- use esa fórmula para la forma del marcador
También hay una función eficiente para encontrar los próximos vecinos, que podríamos usar para encontrar, por ejemplo, el rango de los puntos incorrectos y darle un aspecto diferente. Quizás esto ayude.
