{"id":24791617,"url":"https://github.com/georgiivoyakin/mirea-big-data","last_synced_at":"2026-04-10T07:45:52.062Z","repository":{"id":166001247,"uuid":"531980324","full_name":"GeorgiiVoyakin/mirea-big-data","owner":"GeorgiiVoyakin","description":"Python Big Data programming tasks for institute","archived":false,"fork":false,"pushed_at":"2022-12-07T22:21:51.000Z","size":9988,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-29T09:02:45.418Z","etag":null,"topics":["apriori-algorithm","apriori-algorithm-python","fpgrowth","jupyter-notebook","numpy","pandas","plotly","python","python3","scipy","sklearn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GeorgiiVoyakin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-02T15:27:13.000Z","updated_at":"2024-12-11T17:11:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"9519c65f-ba71-4ef2-839f-9d149ac5511b","html_url":"https://github.com/GeorgiiVoyakin/mirea-big-data","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GeorgiiVoyakin/mirea-big-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiiVoyakin%2Fmirea-big-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiiVoyakin%2Fmirea-big-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiiVoyakin%2Fmirea-big-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiiVoyakin%2Fmirea-big-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GeorgiiVoyakin","download_url":"https://codeload.github.com/GeorgiiVoyakin/mirea-big-data/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeorgiiVoyakin%2Fmirea-big-data/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262566830,"owners_count":23329680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apriori-algorithm","apriori-algorithm-python","fpgrowth","jupyter-notebook","numpy","pandas","plotly","python","python3","scipy","sklearn"],"created_at":"2025-01-29T19:17:31.961Z","updated_at":"2026-04-10T07:45:47.004Z","avatar_url":"https://github.com/GeorgiiVoyakin.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mirea-big-data\nPython Big Data programming tasks for institute\n\n## Task 1\n* Написать программу, которая вычисляет площадь фигуры, параметры которой подаются на вход. Фигуры, которые подаются на вход: треугольник, прямоугольник, круг. Результатом работы является словарь, где ключ – это название фигуры, а значение – это площадь.\n* Написать программу, которая на вход получает: 1) два числа; 2) операцию, которую к ним нужно применить. Должны быть реализованы следующие операции: +, -, /, //, **. Результатом работы программы является одно число.\n* Написать программу, вычисляющую площадь треугольника по переданным длинам трёх его сторон по формуле Герона. На вход программе подаются целые числа, выводом программы должно являться вещественное число, соответствующее площади треугольника.\n\n## Task 2\n* Написать программу, которая считывает с консоли числа (по одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и после этого выводит сумму квадратов всех считанных чисел.\n* Написать программу, которая выводит последовательность чисел, длинною N, где каждое число повторяется столько раз, чему оно равно. На вход программе передаётся неотрицательное целое число N. Например, если N = 7, то программа должна вывести 1 2 2 3 3 3 4.\n* Матрицу произвольного размера вытянуть в один вектор, не применяя встроенные методы Python.\n* Даны два списка:\n```python3\nА = [1, 2, 3, 4, 2, 1, 3, 4, 5, 6, 5, 4, 3, 2]\nВ = ['a', 'b', 'c', 'c', 'c', 'b', 'a', 'c', 'a', 'a', 'b', 'c', 'b', 'a']\n```\nСоздать словарь, в котором ключи – это содержимое списка В, а значения для ключей словаря – это сумма всех элементов списка А в соответствии с буквой, содержащийся на той же позиции в списке В. Пример результата программы: \n```python3\n{'a' : 10, 'b' : 15, 'c' : 6}\n```\n* Скачать и загрузить данные о стоимости домов в калифорнии, используя библиотеку sklearn.\n* Используя метод pd.concat([датафрейм1, датафрейм2], axis = 1), добавить к данным столбец, содержащий информацию о медианной стоимости дома.\n* Использовать метод info().\n* Узнать, есть ли пропущенные значения, используя isna().sum().\n* Вывести записи, где средний возраст домов в районе более 50 лет и население более 2500 человек, используя метод loc().\n* Узнать максимальное и минимальное значения медианной стоимости дома (max(), min()).\n* Используя метод apply(), вывести на экран название признака и его среднее значение.\n\n## Task 3\n* Найти и выгрузить многомерные данные с использованием библиотеки pandas. (Данные взяты отсюда: https://www.kaggle.com/datasets/kevinmorgado/us-energy-generation-2001-2022)\n* Вывести информацию о данных при помощи методов ```.info()```, ```.head()```. Проверить данные на наличие пустых значений. В случае их наличия удалить данные строки или интерполировать пропущенные значения. При необходимости дополнительно предобработать данные для дальнейшей работы с ними.\n* Построить столбчатую диаграмму (.bar) с использованием библиотеки Plotly со следующими параметрами:\n  * По оси Х указать дату или название, по оси У указать количественный показатель.\n  * Сделать так, чтобы столбец принимал цвет в зависимости от количественного показателя.\n  * Отобразить заголовок диаграммы, разместив его по центру, с 20 размером текста.\n  * Добавить подписи для осей X и Y с размером текста, равным 16. Для оси абсцисс развернуть метки так, чтобы они читались снизу вверх. Для оси ординат шаг меток участить в 1.5 раза.\n  * Размер текста меток осей сделать равным 14.\n  * Обрезать график снизу по минимальному значению количественного показателя, вычтя из него 10%.\n* Построить круговую диаграмму, использовав данные и оформление из предыдущего графика.\n* Построить линейный график с накопленными значениями количественного показателя от даты (названия).\n  * Сделать график с линиями и маркерами, цвет линии 'crimson', цвет точек 'darkblue', цвет границ точек 'black'.\n  * Добавить легенду на график в нижнем левом углу.\n  * Добавить сетку на график, сделать цвет 'azure'.\n  * Остальное оформление сохранить с предыдущих графиков.\n* Построить ящик с усами, сохранив оформление с предыдущих графиков.\n* Постараться создать аналогичные графики с использованием библиотеки matplotlib.\n\n## Task 6\n* Загрузить данные из файла ECDCCases.csv.\n* Проверить в данных наличие пропущенных значений. Вывести количество пропущенных значений в процентах. Удалить два признака, в которых больше всех пропущенных значений. Для оставшихся признаков обработать пропуски: для категориального признака использовать заполнение значением по умолчанию (например, 'other'), для числового признака использовать заполнение медианным значением. Показать, что пропусков больше в данных нет.\n* Посмотреть статистику по данным, используя describe(). Сделать выводы о том, какие признаки содержат выбросы. Посмотреть, для каких стран количество смертей в день превысило 3000 и сколько таких дней было.\n* Найти дублирование данных. Удалить дубликаты.\n* Загрузить данные из файла \"bmi.csv\". Взять оттуда две выборки. Одна выборка – это индекс массы тела людей c региона northwest, вторая выборка – это индекс массы тела людей с региона southwest. Сравнить средние значения этих выборок, используя t-критерий Стьюдента. Предварительно проверить выборки на нормальность (критерий Шопиро-Уилка) и на гомогенность дисперсии (критерий Бартлетта).\n* Кубик бросили 600 раз, получили следующие результаты:\n\n| N | Количество выпадений  |\n|---|---|\n| 1 | 97  |\n| 2 | 98  |\n| 3 | 109 |\n| 4 | 95  |\n| 5 | 97  |\n| 6 | 104 |\n\nС помощью критерия Хи-квадрат проверить, является ли полученное распределение равномерным.\n* С помощью критерия Хи-квадрат проверить, являются ли переменные зависимыми. Создать датафрейм, используя следующий код:\n```python3\ndata = pd.DataFrame({'Женат': [89,17,11,43,22,1],\n                     'Гражданский брак': [80,22,20,35,6,4],\n                     'Не состоит в отношениях': [35,44,35,6,8,22]})\ndata.index = ['Полный рабочий день',\n              'Частичная занятость',\n              'Временно не работает',\n              'На домохозяйстве',\n              'На пенсии',\n              'Учёба']\n```\n\n## Task 7\n* Определить два вектора, представляющие собой число автомобилей, припаркованных в течении 5 рабочих дней у бизнес- центра на уличной стоянке и в подземном гараже.\n\n| День | Улица | Гараж |\n| --- | --- | --- |\n| Понедельник | 80 | 100 |\n| Вторник | 98 | 82 |\n| Среда | 75 | 105 |\n| Четверг | 91 | 89 |\n| Пятница | 78 | 102 |\n\nНайти и интерпретировать корреляцию между переменными «Улица» и «Гараж» (подсчитать корреляцию по Пирсону).\n\n* Построить диаграмму рассеяния для вышеупомянутых переменных.\n* Загрузить bitcoin.csv.\n* Скрыть последние 14 дней.\n```python3\nprojection = 14\ndf['predict'] = df['close'].shift(-projection)\n```\n* 'close' – это цена закрытия, признак, который мы подаем на вход модели. 'predict' – это данные, которые мы хотим получить на выход. Произвести нормализацию для нормального среза.\n* Сделать срез по 14 дням.\n```python3\nx = x[:-projection]\ny = y[:-projection]\n```\n* Построить линейную регрессию.\n* Вывести угол наклона и y-перехват.\n* Предсказать стоимость криптовалюты за последние 14 дней с помощью функции \"predict\".\n```python3\nmodel.predict(np.array(pd.DataFrame(df, columns=['close']))[-projection:])\n```\n* Определить точность прогнозируемой цены закрытия с помощью функции \"score\".\n```python3\nmodel.score(x, y)\n```\n* Сравнить скрытые значения с предсказанными. Сделать вывод о том, насколько они схожи.\n* Загрузить housePrice.csv.\n* Произвести предобработку.\n* Реализовать линейную регрессию вручную, без использования библиотеки. За основу взять два признака: \"Area\" и \"Price(USD)\".\n* Вывести угол наклона и y-перехват.\n* Визуализировать линию регрессии на диаграмме рассеяния.\n\n## Task 9\nДанные взяты отсюда: https://www.kaggle.com/datasets/uciml/mushroom-classification\n\n## Task 10\nДанные взяты отсюда: https://www.kaggle.com/datasets/thedevastator/fifa-world-cup-anomaly-detection-in-player-ratin\n\n## Task 11\nДанные взяты отсюда: https://www.kaggle.com/datasets/sidhus/crab-age-prediction\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgiivoyakin%2Fmirea-big-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorgiivoyakin%2Fmirea-big-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgiivoyakin%2Fmirea-big-data/lists"}