Сравните две диаграммы и получите процент сходства

0

вопрос: как сравнить два диапазона диаграмм и получить процент в результате.

Я хочу сравнить две части диаграммы (диапазон 60 значений), и в результате получить процент разницы. Поэтому я могу найти очень похожие графические кривые. (Пример: получить все диаграммы, которые на 90% похожи на этот)

Для каждого диапазона данные хранятся в 60 массивах чисел. Каждый диапазон начинается с 0, а все следующие числа представляют значение графика с этого момента (диаграмма "+" поднимается, и график "-" уменьшается)

$range1 = array(0.00,-0.90,2.10,0.10,-3.40,-4.30,-1.90,-0.30,0.00,0.10,-0.60,-0.20,-0.30,-0.30,1.00,-0.90,-0.50,1.00,2.80,5.00,5.50,5.20,6.70,5.50,5.70,7.30,6.00,5.10,5.30,11.10,10.90,9.00,7.10,6.60,7.00,5.50,5.50,12.60,15.60,14.30,18.50,16.60,16.60,20.30,20.60,18.10,16.10,19.10,14.40,18.70,17.40,17.80,17.20,19.90,20.60,17.70,17.00,17.50,16.70,14.70);
$range2 = array(0.00,-2.90,-3.60,-3.10,-3.90,-5.90,-11.80,-8.40,-8.00,-8.40,-8.20,-7.00,-7.60,-7.30,-5.10,-7.20,-7.30,-7.40,-7.70,-8.90,-9.30,-9.30,-9.90,-7.50,-11.70,-12.20,-19.80,-19.60,-19.90,-19.00,-22.10,-19.10,-20.10,-18.90,-19.70,-19.90,-16.50,-23.70,-26.60,-24.20,-28.30,-27.00,-28.60,-28.90,-22.90,-24.00,-25.10,-24.30,-18.40,-31.70,-29.80,-29.00,-29.50,-28.30,-35.50,-27.60,-34.00,-32.80,-36.00,-34.40,);


$result = some_specific_manual_written_function($range1, $range2);

//as a result i want get percentage or something else from what i can how similar charts are

Я сделаю это, прочитав csv файлы, а затем сохраню его на db, так что это можно сделать с помощью php или python.

  • 1
    Как вы определяете «похожий на 90%» в математических терминах и что вы пробовали до сих пор?
  • 1
    Вы ищете коэффициент корреляции между двумя наборами данных, это первый релевантный хит в google: mathbits.com/MathBits/TISection/Statistics2/correlation.htm, так что вы получаете +1 для совпадения 0 для отсутствия совпадения и -1 для сопоставления в противоположном направлении ... Я надеюсь, вы знаете, как конвертировать это в процентах :)
Показать ещё 3 комментария
Теги:
algorithm
math

2 ответа

0

Попробуй это

function some_specific_manual_written_function($range1, $range2)
{
    $match = 0;
    for($i=0; count($range1); $i++)
    {
        if(in_array($range[$i],$range2))
        {
            $match++;               
        }
    }

    $percentage_match = (count($range1)/$match ) * 100;

    echo "Perncetage Match is : ".$percentage_match."%";

    return $percentage_match;
}
0
function similiar($range1, $range2) {
    $i = 0;
    foreach ($range1 as $k => $v) {
        if ($range2[$k] == $v) {
            $i++;
        }
    }
    $return ($i/count($range1))*100);
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню