Skip to content

Commit b3003ef

Browse files
committed
1 parent 03be4f3 commit b3003ef

30 files changed

Lines changed: 18090 additions & 8 deletions

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,3 +335,8 @@ coverage/
335335
/Math/school_theory
336336

337337
SENATOROV/
338+
339+
countries.csv
340+
temperature.csv
341+
test.csv
342+
train.csv

README.md

Lines changed: 182 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,193 @@
77
- [Тестирование функционала](https://github.com/SENATOROVAI/intro/issues/11), спасибо [smrnvdn](https://github.com/smrnvdn)
88
- Улучшено описание [3 группы](https://github.com/SENATOROVAI/Math-Data-Analysis/issues/1), добавлены этапы пайплана, спасибо [savemysoul382](https://github.com/savemysoul382)
99
- Исправлена опечатка **where** [ишьюс Cpython](https://github.com/SENATOROVAI/intro-cs/issues/16), спасибо [SERG-1613](https://github.com/SERG-1613)
10+
- Обновлён pre-commit **codespell** [ишьюс](https://github.com/SENATOROVAI/Data-Science-For-Beginners-from-scratch-SENATOROV/issues/551), [pull](https://github.com/SENATOROVAI/Data-Science-For-Beginners-from-scratch-SENATOROV/pull/552), спасибо [gorop51-2](https://github.com/gorop51-2)
11+
- Идея создания новой ветки при сдаче ДЗ, [ишьюс](https://github.com/SENATOROVAI/Data-Science-For-Beginners-from-scratch-SENATOROV/issues/545), спасибо [dshilin](https://github.com/dshilin)
12+
- Реализация создания новой ветки при сдаче ДЗ, [ишьюс](https://github.com/SENATOROVAI/Data-Science-For-Beginners-from-scratch-SENATOROV/issues/557), спасибо [SERG-1613](https://github.com/SERG-1613)
13+
- Убрать из ишьюс python ссылку на инструкцию ревью, [ишьюс](https://github.com/SENATOROVAI/intro/issues/17), спасибо [stokato](https://github.com/stokato)
1014

1115

12-
# Другие улучшения
16+
# Улучшения курсов
1317
- Опечатка в курсе по [множественной регрессии](https://stepik.org/lesson/1792642/step/10?auth=login&unit=1818331), некорректная формулировка, спасибо [rizespbya](https://github.com/rizespbya)
14-
- Опечатка в курсе по [множественной регрессии](https://stepik.org/lesson/1792746/step/1?unit=1818436), формула обратной матрицы, спасибо [rizespbya](https://github.com/rizespbya)
18+
- неправильно раскрывается (X@θ).T [множественной регрессии](https://stepik.org/lesson/1792813/step/1?discussion=12716622&unit=1818503), [ишьюс](https://github.com/SENATOROVAI/multy-linear-regression-stepik/issues/1), спасибо [rizespbya](https://github.com/rizespbya)
19+
- Формула обратной матрицы [множественная регрессия](https://stepik.org/lesson/1792746/step/1?unit=1818436), [ишьюс](https://github.com/SENATOROVAI/multy-linear-regression-stepik/issues/2), спасибо [rizespbya](https://github.com/rizespbya)
1520
- Улучшение курса [множественной регрессии](https://stepik.org/lesson/1792746/step/1?unit=1818436), внедрение хэлперов и курса академ. математики, спасибо [rizespbya](https://github.com/rizespbya)
16-
- Улучшение курса [простая регрессия](https://stepik.org/lesson/1734634/step/3?unit=1758544), внедрение лупы и доп. заданий python, спасибо [Jazzyflavor](https://github.com/Jazzyflavor) доп. акк [Jazzyflavor](https://github.com/J4zzyflavor)
17-
- Обновление интро,внедрение раздела о нас, договора, средства коммуникации, спасибо [ViktorVinogradov89](https://github.com/ViktorVinogradov89)
21+
- Улучшение курса [простая регрессия](https://stepik.org/lesson/1734634/step/3?unit=1758544), внедрение лупы и доп. заданий python, спасибо [J4zzyflavor](https://github.com/J4zzyflavor) доп. акк [Jazzyflavor](https://github.com/Jazzyflavor)
22+
1823
- Улучшение курса [множественная регрессия](https://stepik.org/lesson/1792608/step/10?unit=1818297), внедрение Data Leakage, спасибо [smrnvdn](https://github.com/smrnvdn)
1924
- Улучшение курса [множественной регрессии](https://stepik.org/lesson/1792810/step/2?auth=login&unit=1818500), внедрение логической связи вывода матричной формы SSE, спасибо [rizespbya](https://github.com/rizespbya)
2025
- Улучшение курса, [множественной регрессии](https://stepik.org/lesson/1792848/step/2?unit=1818537), внедрён аудиопересказ, спасибо [Ekubbo](https://github.com/Ekubbo)
2126
- Улучшение курса [SVD](https://stepik.org/lesson/1863889/step/1?unit=1889025), исправлена опечатка подстановки, спасибо [rizespbya](https://github.com/rizespbya)
22-
- Опечатка в курсе по [Линтерам](https://stepik.org/lesson/1711770/step/13?unit=1735194), "автоматически", спасибо [dshilin](https://github.com/dshilin)
23-
https://t.me/RuslanSenatorov
24-
https://t.me/SENATOROVAI
27+
- Нет V^T в итоговой записи и у 2 айгенвелью 3 компонента без "-" [SVD](https://stepik.org/lesson/1832067/step/1?unit=1857101),[ишьюс](https://github.com/SENATOROVAI/svd-stepik/issues/1), спасибо [rizespbya](https://github.com/rizespbya)
28+
- Неправильно посчитан вектор u1 [SVD](https://stepik.org/lesson/1863989/step/2?unit=1889127),[ишьюс](https://github.com/SENATOROVAI/svd-stepik/issues/2), спасибо [Svetankova](https://github.com/Svetankova)
29+
- Матрица сигма не mxn [SVD](https://stepik.org/lesson/1865202/step/1?auth=login&unit=1890345),[ишьюс](https://github.com/SENATOROVAI/svd-stepik/issues/3), спасибо [Svetankova](https://github.com/Svetankova)
30+
- Опечатка "автоматически" в курсе по [линтерам](https://stepik.org/lesson/1711770/step/13?unit=1735194), спасибо [dshilin](https://github.com/dshilin)
31+
- Внедрение контейнера UBUNTU в курс по [линтерам](https://stepik.org/lesson/1719986/step/1?unit=1743519), [ишьюс](https://github.com/SENATOROVAI/python-from-zero-to-open-source-stepik/issues/3), спасибо [stokato](https://github.com/stokato/)
32+
- Не рабочий сервис в курсе [линтеры](https://stepik.org/lesson/1719986/step/1?unit=1743519), [ишьюс](https://github.com/SENATOROVAI/python-from-zero-to-open-source-stepik/issues/4), , спасибо [dshilin](https://github.com/dshilin)
33+
- Нерабочая ссылка [Холецкий](https://stepik.org/lesson/1886776/step/3?unit=1912268), [ишьюс](https://github.com/SENATOROVAI/cholesky-stepik/issues/2), спасибо [J4zzyflavor](https://github.com/J4zzyflavor) доп. акк [Jazzyflavor](https://github.com/Jazzyflavor)
34+
- 10:15 добавил описание для тэта нулевое θ0 [Холецкий](https://stepik.org/lesson/1886772/step/1?unit=1912264),[ишьюс](https://github.com/SENATOROVAI/cholesky-stepik/issues/4), спасибо [rizespbya](https://github.com/rizespbya)
35+
- Дублирование заданий [Холецкий](https://stepik.org/lesson/1886776/step/3?unit=1912268), [ишьюс](https://github.com/SENATOROVAI/cholesky-stepik/issues/3), спасибо [J4zzyflavor](https://github.com/J4zzyflavor) доп. акк [Jazzyflavor](https://github.com/Jazzyflavor)
36+
- Ошибка в описании задания [Градиентный спуск](https://stepik.org/lesson/1829058/step/2?unit=1855081), [ишьюс](https://github.com/SENATOROVAI/multy-linear-regression-gradient-descent-stepik/issues/1), спасибо [J4zzyflavor](https://github.com/J4zzyflavor) доп. акк [Jazzyflavor](https://github.com/Jazzyflavor)
37+
- Ошибка в выводе задания [Холецкий](https://stepik.org/lesson/1886772/step/4?unit=1912264), [ишьюс](https://github.com/SENATOROVAI/cholesky-stepik/issues/1), спасибо [J4zzyflavor](https://github.com/J4zzyflavor) доп. акк [Jazzyflavor](https://github.com/Jazzyflavor)
38+
- Опечатка в слове "константа", курс [GD](https://stepik.org/lesson/1829077/step/13?unit=1855099), [ишьюс](https://github.com/SENATOROVAI/multy-linear-regression-gradient-descent-stepik/issues/2), спасибо [Lookmir](https://github.com/Lookmir)
39+
- Опечатка в слове "ортогонализации", курс [QR](https://stepik.org/lesson/1880356/step/3?unit=1905773), [ишьюс](https://github.com/SENATOROVAI/qr-stepik/issues/1), спасибо [svetlana-s88](https://github.com/svetlana-s88)
40+
41+
# Улучшение организации
42+
- Обновление интро,внедрение раздела о нас, договора, средства коммуникации, спасибо [ViktorVinogradov89](https://github.com/ViktorVinogradov89)
43+
- Структурированна информация об организации, [ишьюс](https://github.com/SENATOROVAI/Data-Science-For-Beginners-from-scratch-SENATOROV/issues/547), спасибо [svetlana-s88](https://github.com/svetlana-s88)
44+
45+
---
46+
47+
# Data Science For Beginners 🚀
48+
49+
> Beginner-friendly course and practical materials for learning Data Science from scratch with Python, Machine Learning, and Mathematics.
50+
51+
## 📌 About This Repository
52+
53+
This repository contains structured materials, exercises, and practical examples for learning **Data Science from beginner to intermediate level**.
54+
55+
You will learn:
56+
57+
- Python for Data Science
58+
- NumPy & Pandas
59+
- Data Visualization
60+
- Statistics for Data Science
61+
- Machine Learning Basics
62+
- Supervised & Unsupervised Learning
63+
- Regression & Classification
64+
- Optimization Algorithms
65+
- Gradient Descent
66+
- Linear Models
67+
- Regularization (L1 / L2)
68+
- Model Evaluation
69+
- Practical ML Projects
70+
71+
---
72+
73+
## 🎯 Who Is This For?
74+
75+
✅ Beginners in Data Science
76+
✅ Python developers who want to learn ML
77+
✅ Students learning Machine Learning
78+
✅ Developers moving into AI / Data Analytics
79+
80+
---
81+
82+
## 🛠 Technologies Used
83+
84+
- Python 🐍
85+
- NumPy
86+
- Pandas
87+
- Matplotlib
88+
- Seaborn
89+
- Scikit-Learn
90+
- Jupyter Notebook
91+
- Machine Learning Algorithms
92+
93+
---
94+
95+
## 📂 Repository Structure
96+
97+
```
98+
99+
Data-Science-For-Beginners/
100+
101+
├── math/
102+
├── statistics/
103+
├── python/
104+
├── data_analysis/
105+
├── machine_learning/
106+
│ ├── regression/
107+
│ ├── classification/
108+
│ ├── optimization/
109+
110+
├── projects/
111+
└── notebooks/
112+
113+
```
114+
115+
---
116+
117+
## 📈 Topics Covered
118+
119+
### 🔵 Python for Data Science
120+
- Data types
121+
- Functions
122+
- OOP basics
123+
- Working with files
124+
125+
### 🔵 Data Analysis
126+
- Data cleaning
127+
- Feature engineering
128+
- Exploratory Data Analysis (EDA)
129+
130+
### 🔵 Statistics
131+
- Probability
132+
- Distributions
133+
- Hypothesis testing
134+
- Confidence intervals
135+
136+
### 🔵 Machine Learning
137+
- Linear Regression
138+
- Logistic Regression
139+
- Gradient Descent
140+
- L1 & L2 Regularization
141+
- Decision Trees
142+
- KNN
143+
- Model evaluation metrics
144+
145+
---
146+
147+
## 🚀 Practical Projects
148+
149+
You will build:
150+
151+
- House price prediction model
152+
- Classification model
153+
- Data analysis project
154+
- Real dataset experiments
155+
156+
---
157+
158+
## 🔎 SEO Keywords (Optimized for Search)
159+
160+
Data Science course
161+
Data Science for beginners
162+
Machine Learning Python
163+
ML from scratch
164+
Data Analysis Python
165+
Statistics for Machine Learning
166+
Python Machine Learning projects
167+
Gradient Descent implementation
168+
Linear Regression from scratch
169+
170+
---
171+
172+
## ⭐ Why This Repository?
173+
174+
This repository is designed for:
175+
176+
- Deep understanding of algorithms
177+
- Practical implementation
178+
- Mathematical foundation
179+
- Production-ready mindset
180+
181+
---
182+
183+
## 📬 Contact
184+
185+
Course page:
186+
https://stepik.org/users/308359458/profile
187+
188+
YouTube:
189+
https://youtube.com/SENATOROV
190+
191+
Telegram School:
192+
https://t.me/SENATOROVAI
193+
194+
Telegram Founder:
195+
https://t.me/RuslanSenatorov
196+
197+
---
198+
199+
⭐ If this project helps you — give it a star!

log.ipynb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,15 @@
8282
"27/01/26\n",
8383
"1. Сделал ишью: https://github.com/SENATOROVAI/intro-cs/issues/8"
8484
]
85+
},
86+
{
87+
"cell_type": "markdown",
88+
"id": "4883c1e7",
89+
"metadata": {},
90+
"source": [
91+
"22/02/26\n",
92+
"1. Сделал ишью: https://github.com/SENATOROVAI/python/issues/1"
93+
]
8594
}
8695
],
8796
"metadata": {
@@ -100,7 +109,7 @@
100109
"name": "python",
101110
"nbconvert_exporter": "python",
102111
"pygments_lexer": "ipython3",
103-
"version": "3.13.9"
112+
"version": "3.12.11"
104113
}
105114
},
106115
"nbformat": 4,

log.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,6 @@
3838

3939
# 27/01/26
4040
# 1. Сделал ишью: https://github.com/SENATOROVAI/intro-cs/issues/8
41+
42+
# 22/02/26
43+
# 1. Сделал ишью: https://github.com/SENATOROVAI/python/issues/1

python/clean-code/h.4.names.ipynb

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": null,
6+
"id": "21a5b555",
7+
"metadata": {},
8+
"outputs": [],
9+
"source": [
10+
"\"\"\"Понятные имена в Python. Конспект главы.\"\"\""
11+
]
12+
},
13+
{
14+
"cell_type": "markdown",
15+
"id": "0d05b31d",
16+
"metadata": {},
17+
"source": [
18+
"Конспект главы **«Выбор понятных имён»**:\n",
19+
"\n",
20+
"---\n",
21+
"\n",
22+
"### **Основная идея**\n",
23+
"Удачный выбор имён для переменных, функций, классов и прочих сущностей — один из важнейших аспектов написания читаемого, поддерживаемого и понятного кода. Задача субъективная, но ответственная.\n",
24+
"\n",
25+
"---\n",
26+
"\n",
27+
"### **Ключевые принципы**\n",
28+
"\n",
29+
"1. **Имена должны быть содержательными, но не избыточными** \n",
30+
" - Не используйте слишком короткие (`a`, `b`, `g`) и слишком общие (`data`, `var`, `temp`) имена.\n",
31+
" - Длинные имена лучше коротких, если они повышают ясность (в первую очередь для глобальных сущностей).\n",
32+
" - Имя должно отражать назначение: в Python лучше `user_email`, чем просто `email`.\n",
33+
"\n",
34+
"2. **Следуйте соглашениям PEP 8 по стилю именования** \n",
35+
" - **Классы**: `PascalCase` (например, `MyClass`).\n",
36+
" - **Функции, методы, переменные**: `snake_case` (например, `calculate_total`).\n",
37+
" - **Константы**: `UPPER_SNAKE_CASE` (например, `MAX_SIZE`).\n",
38+
" - **Приватные атрибуты**: с префиксом `_` (например, `_internal_var`).\n",
39+
" - **Аргументы методов**: `self` для экземпляров, `cls` для классов.\n",
40+
"\n",
41+
" Главный фактор удобочитаемости — не сама схема, а последовательность её применения.\n",
42+
"\n",
43+
"3. **Избегайте вредных практик**\n",
44+
" - **Не используйте встроенные имена Python** (`list`, `str`, `open`, `id` и т.п.) в качестве имён переменных — это приводит к трудноуловимым ошибкам.\n",
45+
" - **Не применяйте венгерскую нотацию** (префиксы вроде `strName`, `iCount`) — она устарела.\n",
46+
" - **Не используйте шутки, каламбуры и культурные отсылки** (`gooseDownload()`) — они непонятны коллегам, особенно не носителям языка.\n",
47+
"\n",
48+
"4. **Делайте имена пригодными для поиска**\n",
49+
" - Уникальные и конкретные имена удобнее искать (Ctrl+F), и они реже дают ложные срабатывания.\n",
50+
"\n",
51+
"5. **Избегайте бессмысленных числовых суффиксов**\n",
52+
" - Имена вида `payment1`, `payment2` — признак слабой структуры. Лучше вынести данные в коллекцию (`payments = [...]`) или параметризовать вызов (`make_payment(priority=1)`).\n",
53+
"\n",
54+
"6. **Учитывайте единицы измерения**\n",
55+
" - Если величина имеет размерность, отражайте её в имени: `weight_kg`, `timeout_sec`. Это помогает избежать серьёзных ошибок (как в случае Mars Climate Orbiter).\n",
56+
"\n",
57+
"7. **Используйте префиксы `is_`, `has_` для булевых значений**\n",
58+
" - Например: `is_ready`, `has_permission` — код читается почти как обычная фраза.\n",
59+
"\n",
60+
"---\n",
61+
"\n",
62+
"### **Исключения**\n",
63+
"- Однобуквенные имена уместны в ограниченных контекстах: `i`, `j`, `k` — для индексов циклов; `x`, `y` — для координат.\n",
64+
"- Варианты вроде `w` и `h` (width, height) или `n` (number) компактны, но неочевидны для других — используйте их только в очень коротких блоках.\n",
65+
"\n",
66+
"---\n",
67+
"\n",
68+
"### **Заключение**\n",
69+
"Хорошие имена — фундамент качественного кода. Они делают код понятным и коллегам, и вам самим через время. Следование рекомендациям (прежде всего PEP 8) и здравый смысл помогают писать код, который удобно читать, поддерживать и развивать.\n",
70+
"\n",
71+
"Подбирайте формулировки так, чтобы код читался как фраза: например, `number_of_trials` читается естественнее, чем `number_trials`."
72+
]
73+
},
74+
{
75+
"cell_type": "markdown",
76+
"id": "fb7be2d7",
77+
"metadata": {},
78+
"source": []
79+
}
80+
],
81+
"metadata": {
82+
"language_info": {
83+
"name": "python"
84+
}
85+
},
86+
"nbformat": 4,
87+
"nbformat_minor": 5
88+
}

0 commit comments

Comments
 (0)