В чем разница между интерполяцией и вменением? - PullRequest
3 голосов
/ 06 ноября 2019

Я только что узнал, что вы можете обрабатывать недостающие данные / NaN с помощью вменения и интерполяции, я только что обнаружил, что интерполяция - это тип оценки, метод построения новых точек данных в диапазоне дискретного набора известных точек данных, в то время какВменение заменяет отсутствующие данные среднего значения столбца. Но есть ли различия больше, чем это? Когда лучше всего использовать каждый из них?

1 Ответ

4 голосов
/ 06 ноября 2019

Интерполяция

Интерполяция (линейная) - это, по сути, прямая линия между двумя заданными точками, где отсутствуют точки данных между этими двумя:

  • Известны две красные точки
  • Синяя точка отсутствует

источник: википедия


Хорошо объясните, но покажите мне данные.

Прежде всего формула для линейной интерполяции этоследующее:

(y2-y0) / (x2-x0)

Допустим, у нас есть три точки данных из приведенного выше графика:

df = pd.DataFrame({'Value':[0, np.NaN, 3]})

   Value
0    0.0
1    NaN
2    3.0

Как мы видим, строка 1 (синяя точка) отсутствует. Итак, следующая формула сверху:

(3-0) / (2-0) = 1.5

Если мы интерполируем их, используя метод панд Series.interpolate:

df['Value'].interpolate()

0    0.0
1    1.5
2    3.0
Name: Value, dtype: float64

Для большего набора данных это будет выглядеть следующим образом:

df = pd.DataFrame({'Value':[1, np.NaN, 4, np.NaN, np.NaN,7]})

   Value
0    1.0
1    NaN
2    4.0
3    NaN
4    NaN
5    7.0
df['Value'].interpolate()

0    1.0
1    2.5
2    4.0
3    5.0
4    6.0
5    7.0
Name: Value, dtype: float64

Импутация

Когда мы вменяем данные с помощью (arithmetic) mean, мы следуем следующей формуле:

sum(all points) / n

Так что для нашего второго кадра данных мыполучить:

(1 + 4 + 7) / 3 = 4

Так что, если мы вменяем наш фрейм данных с Series.fillna:

df['Value'].fillna(df['Value'].mean())

0    1.0
1    4.0
2    4.0
3    4.0
4    4.0
5    7.0
Name: Value, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...