Pull to refresh
5
0

Пользователь

Send message

Расчет нулевой гипотезы, на примере анализа зарплат украинских программистов

Reading time5 min
Views20K
Решил поделиться, да бы и самому не забывать, как можно использовать простые статистические инструменты для анализа данных. В качестве примера использовался анонимный опрос относительно зарплат, стажа и позиций украинских программистов за 2014 и 2019 год. (1)

Этапы анализа


  • Препроцессинг данных и предварительный анализ (кому интересно код тут)
  • Графическое представление данных. Функция плотности распределения.
  • Формулируем нулевую гипотезу (H0) (2)
  • Выбираем метрику для анализа
  • Используем метод bootstraping для формирования нового массива данных
  • Рассчитываем p-value (3) для подтверждения или опровержения гипотезы

Препроцессинг данных


После некоторых манипуляций (код тут), приводим данные в следующий вид:

# Строка здесь это отдельный результат опроса, колонки переменные.

display(data_14_1.head(), data_19_1.head())
print('Всего опрошенных программистов: \n \
      {} чел. в 14 году и {} в 19 году'.format(len(data_14_1), len(data_19_1)))


Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments50

Ускорить сложные вычисления с минимальной загрузкой RAM

Reading time2 min
Views4.5K
В процессе освоения ML, СNN, NN на Python новичок почти всегда сталкивается с проблемой скорости вычислений, а иногда и нехватки оперативной памяти.

Особенно это заметно с большими базами, которые по размеру больше 50% свободной RAM. Мысли о покупке более достойного железа всего лишь одно из возможных решений.

Иной вариант использовать одну из возможностей в Python — итерации по самой функции.

Простой и наглядный пример. Допустим Вам необходимо возвести в 200 000 степень ряд чисел от 1 до 10 и сложить их сумму. В итоге вы должны получить число длинной 200 тыс знаков. это в 2 раза больше чем google)

Вот простой код такой функции:

from time import time # импорт модуля времени
# простая функция возведения в степень
def power_1(x):
    power_1 = 0 
    start = time()
    power_1 = x**200000
    end = time()
    total_1 = end - start
    return round(total_1,6)
# простые операции сложения, для того что бы посчитать отдельно время операции
power_1(1) + power_1(2) + power_1(3) + power_1(4) + power_1(5) + power_1(6) + power_1(7) + power_1(8) \
+ power_1(9) + power_1(10)

В итоге мы получаем достаточно «затратную» операцию для вашего компа, и например у моего это занимает более 13 мс. А что если таких операций может быть много? Тогда все усложняется, а возможно Вам просто не хватит RAM.

Но можно быть хитрее и использовать туже самую функцию, прогнав с помощью итерации по вашим переменным.
Читать дальше →
Total votes 16: ↑10 and ↓6+4
Comments10

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity