In my application users specify a number of different classifications (approx. 3 - 10), supply some data which is already assigned to those classifications, and then my application reclassifies their data to satisfy some constraints. In general, users would prefer that things were not reclassified but they accept that they must be in order to satisfy the constraints. Their dislike for certain reclassifications is, however, variable.
For example, lets say there are three classifications: Red, Green and Blue. If a data point is Red, I need to know how badly they would like the data point to remain Red, or turn Green or turn Blue. If they would rather it turn Green than Blue they could tell me something like Red->Red: 1.0, Red->Green: 0.5, Red->Blue: 0.0. But the user needs to supply this information for all possible reclassifications.
Right now I have the user input numbers into a matrix like this:
(forgive the poor mockup in excel, the actual interface looks cleaner, but is functionally the same)
This is the perfect input for my algorithm. It perfectly specifies the problem, but is not very easy to use. I get a lot of questions about how to fill it in and what the numbers represent (they only matter relative to one another.). People get the rows / columns mixed up. And when you have 10 or so classifications it's pretty intimidating.
I would like to hear any suggestions for a better interface! I would accept some reduced functionality to make it easier to use, I could retain the full matrix as an advanced option.