weightage attributes
Yes, it is possible. You don't really need a new column, you could just convert your existing columns to their representative weights.

I would suggest for you to:


Convert your [0,1] to [-1,1];
Multiply by a float weight in the range [0.0, 1.0].


I suggest you change the range from [0, 1] to [-1,1] because of the following example where it is not possible to differentiate the two:

attribute_value = 0
weight = 1.0
final_value = attribute_value × weight = 0.0

attribute_value = 1
weight = 0.0
final_value = attribute_value × weight = 0.0


However, if you change the range, you get:

attribute_value = 0
attribute_value_new = -1
weight = 1.0
final_value = attribute_value_new × weight = -1.0

attribute_value = 1
attribute_value_new = 1
weight = 0.0
final_value = attribute_value_new × weight = 0.0


A full example would be:

X = [
    [0, 1, 0, 1],
    [0, 0, 1, 1]
]

X_transformed = [
    [-1,  1, -1, 1],
    [-1, -1,  1, 1]
]

column_weights = [1, 0, 0.5, 0.25]

weighted_X = [
    [-1, 0, -0.5, 0.25],
    [-1, 0,  0.5, 0.25]
]