private void dgvMachines_CurrentCellChanged(object sender, EventArgs e)
{
DataGridViewRow row = dgvMachines.CurrentRow;
if (row == null) return;
KernelSupportVectorMachine m = row.Tag as KernelSupportVectorMachine;
if (m == null) return;
double max = m.Weights.Max();
double min = m.Weights.Min();
dgvVectors.Rows.Clear();
for (int i = 0; i < m.SupportVectors.Length; i++)
{
var vector = m.SupportVectors[i];
var weight = m.Weights[i];
double[] f = vector.Apply(x => x * weight.Scale(min, max, -1, 1));
dgvVectors.Rows.Add(Features.Export(f), m.Weights[i]);
}
}