基于@kikito 实现,但具有另一种风格:
def get_consistency(sequence)
proximity =
sequence.each_with_index.map do |element, index|
index > 0 ? distance(element, sequence[index-1]) : 0
end.reduce(:-)
proximity / sequence.length.to_f
end
def distance(value1, value2)
value1 == value2 ? -1 : 1 # Categorical variable
end
结果:
0.7500 <- 1,1,1,1
0.4000 <- 1,1,1,1,2
0.5714 <- 1,1,1,1,2,2,2
0.2857 <- 1,1,1,1,2,2,3
0.0000 <- 1
0.0000 <- 2
-0.5000 <- 1,2
-0.7500 <- 1,2,3,4
-0.2500 <- 1,2,2,3
0.9000 <- 1,1,1,1,1,1,1,1,1,1
0.9900 <- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
0.9703 <- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2
-0.9000 <- 1,2,3,4,5,6,7,8,9,10
-0.9000 <- 1,0,1,0,1,0,1,0,1,0
0.7000 <- 1,1,1,1,1,0,0,0,0,0
0.2500 <- 1,1,0,0