#math #mathematical-expressions
Вопрос:
Учитывая список автомобилей и их максимальную скорость, MPG и стоимость автомобиля. Я хочу их ранжировать. При скорости «вес» 50%, » вес » MPG 30% и стоимость автомобиля 20%.
Чем быстрее машина, тем лучше.. Чем выше MPG, тем лучше… Чем ниже СТОИМОСТЬ, тем лучше…
Какую математическую формулу я могу использовать для ранжирования автомобилей по порядку на основе этого критерия?
Итак, учитывая этот список. Как я могу их ранжировать? Учитывая, что диапазон каждого из них различен?
CAR SPEED MPG COST A 135 20 50,000 B 150 15 60,000 C 170 18 80,000 D 120 30 40,000
Комментарии:
1. Переверните вопрос: если я отсортирую этот список и верну его вам, как вы подтвердите, что я использовал веса 50-30-20, а не 50-40-10? Что означают веса?
Ответ №1:
Более общим термином для вашей проблемы был бы «Анализ многокритериальных решений», который является хорошо изученным предметом, и вы сможете найти разные модели для разных случаев использования.
Давайте возьмем простую модель для вашего случая, где мы создадим оценку на основе веса и рассчитаем ее для каждого автомобиля:
import pandas as pd data = pd.DataFrame({ 'CAR': ['A','B','C','D'], 'SPEED': [135, 150, 170, 120], 'MPG': [20, 15, 18, 30], 'COST': [50000, 60000, 80000, 4000] }) def Score(df): return 0.5*df['SPEED'] 0.3*df['MPG'] 0.2*df['COST'] data['SCORE'] = data.apply(lambda x: Score(x), axis=1) data = data.sort_values(by=['SCORE'], ascending=False) print(data)
Это дало бы нам:
CAR SPEED MPG COST SCORE 2 C 170 18 80000 16090.4 1 B 150 15 60000 12079.5 0 A 135 20 50000 10073.5 3 D 120 30 40000 8069.0
Как вы можете видеть в функции "SCORE"
, мы просто умножаем значение на вес и суммируем их, чтобы получить новое значение, на основе которого мы перечисляем элементы.
Здесь важно учитывать, довольны ли вы формулой, которую мы использовали при подсчете очков, или нет. Вы можете изменить его так, как вы хотите, и для какой бы цели вы ни строили свою модель.
Комментарии:
1. спасибо за сеанс