Advertisement
GeorgiLukanov87

ai-ml-guide-1

Feb 6th, 2025 (edited)
529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 64.70 KB | None | 0 0
  1. I. Основи на AI и Machine Learning
  2. ✅ Изкуствен интелект (AI) – Машини, които изпълняват интелигентни задачи (разпознаване на изображения, NLP, предсказания).
  3. ✅ Машинно обучение (ML) – Модели, които се учат от данни, вместо да бъдат ръчно програмирани.
  4. ✅ Основни видове ML:
  5. • Supervised Learning (Надзиравано обучение) – Данните имат „правилни“ отговори (напр. линейна регресия, SVM).
  6. • Unsupervised Learning (Ненадзиравано обучение) – Няма правилни отговори, моделът открива структури (K-Means, PCA).
  7. • Reinforcement Learning (Обучение чрез подсилване) – Моделът учи чрез награди и наказания (AlphaGo, самоуправляващи се коли).
  8. ________________________________________
  9. II. Регресия (Regression)
  10. ✅ Регресията се използва за предсказване на непрекъснати стойности.
  11. ✅ Видове регресия:
  12. • Линейна регресия – Y=wX+bY = wX + bY=wX+b, намиране на най-добрата права линия.
  13. • Полиномна регресия – Използва X2,X3X^2, X^3X2,X3 за по-сложни модели.
  14. • Ridge & Lasso – Регуляризация за избягване на overfitting.
  15. ✅ Основни метрики за оценка на моделите: MAE, MSE,.
  16. ________________________________________
  17. III. Decision Trees (Решаващи дървета)
  18. ✅ Структура за вземане на решения, използвана за класификация и регресия.
  19. ✅ Разделя данните на подмножества чрез условия (splitting criteria).
  20. ✅ Важно:
  21. • Gini Impurity → Използва се за класификация.
  22. • Entropy (Information Gain) → Мярка за разпределение на данни.
  23. • Random Forest → Използва много дървета за по-добра точност.
  24. ________________________________________
  25. IV. Cross-Validation (Крос-валидация)
  26. ✅ Оценка на моделите чрез разделяне на данните на различни подгрупи.
  27. ✅ Видове:
  28. • K-Fold (най-често K=5 или K=10) – Разделя данните на K части, обучава на K-1 части, тества на останалата.
  29. • Leave-One-Out (LOOCV) – Тества върху всяка отделна проба.
  30. ________________________________________
  31. V. Големи езикови модели (Large Language Models - LLMs)
  32. ✅ LLMs (GPT-4, BERT) използват трансформери за обработка на текст.
  33. ✅ Ключови концепции:
  34. • Tokenization (Токенизация) – Разбиване на текст на по-малки части.
  35. • Self-Attention (Само-внимание) – Определя важността на думите в контекста.
  36. • Prompt Engineering – Оптимизиране на входния текст за по-добри резултати.
  37. ________________________________________
  38. VI. Calculus (Калкулус)
  39. ✅ Производни (Derivatives) → Използват се за оптимизация.
  40. ✅ Градиентно спускане (Gradient Descent) → Метод за намиране на минимални грешки на модели.
  41. ✅ Частни производни (Partial Derivatives) → Нужни за невронни мрежи и оптимизация.
  42. ________________________________________
  43. VII. Probability & Statistics (Вероятности и Статистика)
  44. ✅ Вероятностни разпределения:
  45. • Нормално (Normal Distribution) – Често срещано в ML (разпределение на стойности).
  46. • Бернулиево (Bernoulli Distribution) – Двоични събития (Да/Не).
  47. ✅ Теорема на Байес (Bayes' Theorem) → Позволява изчисляване на обратни вероятности.
  48. ✅ Основни статистически концепции:
  49. • Средна стойност (Mean) – Усреднена стойност на данни.
  50. • Медиана (Median) – Средното число в подредени данни.
  51. • Дисперсия (Variance) & Стандартно отклонение (Standard Deviation) – Мярка за разпределението на стойностите.
  52. ________________________________________
  53. 🔥 Най-важни въпроси за интервюто 🔥
  54. 1️⃣ Какво е overfitting и underfitting?
  55. ✅ Overfitting: Моделът се „научава“ прекалено добре върху тренировъчните данни, но не работи добре върху нови.
  56. ✅ Underfitting: Моделът не улавя важни зависимости.
  57. 2️⃣ Как работи градиентното спускане?
  58. ✅ Метод за минимизиране на загубите чрез стъпково обновяване на параметрите.
  59. 3️⃣ Каква е разликата между L1 и L2 регуляризация?
  60. ✅ L1 (Lasso): Обнулва неважните параметри (прави моделите по-опростени).
  61. ✅ L2 (Ridge): Намалява стойността на параметрите, но не ги обнулва.
  62. 4️⃣ Каква е разликата между Decision Tree и Random Forest?
  63. ✅ Decision Tree: Едно дърво, което взема решения.
  64. ✅ Random Forest: Множество дървета → по-добра точност и стабилност.
  65. 5️⃣ Как работи Self-Attention в трансформерите?
  66. ✅ Определя кои думи в даден контекст са най-важни за разбирането на изречението.
  67.  
  68. ------------------------------------------------------------------------------------------------
  69.  
  70. 1. Какво е изкуствен интелект (Artificial Intelligence - AI)?
  71. • Обяснение:
  72. Изкуственият интелект (AI) е област в компютърните науки, която се фокусира върху създаването на машини, които могат да изпълняват задачи, изискващи човешки интелект. Това включва разпознаване на реч (speech recognition), разбиране на естествен език (Natural Language Understanding - NLU), генериране на текст (Natural Language Generation - NLG), анализ на изображения (computer vision), автоматизирани решения (decision-making systems) и др.
  73. • Пример:
  74. o   AI се използва в чатботове като ChatGPT, в препоръчителни системи (например на Netflix и YouTube) и в автономни автомобили.
  75. ________________________________________
  76.  
  77. 2. Какво представлява машинното обучение (Machine Learning - ML) и как се различава от AI?
  78. • Обяснение:
  79. Машинното обучение е подобласт на AI, която се фокусира върху създаването на алгоритми, които се учат от данни вместо да бъдат изрично програмирани.
  80. Традиционно програмиране:
  81. o   Човекът пише правила и логика.
  82. o   Входове → Програма → Изходи.
  83. Машинно обучение:
  84. o   Моделът се обучава върху данни и открива модели сам.
  85. o   Входове + Изходи → Обучаващ алгоритъм → Програма (модел).
  86. • Пример:
  87. o   При традиционното програмиране бихме създали списък с всички възможни спам думи, за да откриваме спам имейли.
  88. o   При ML моделът анализира огромен брой спам и валидни имейли и сам открива кои думи и изрази са най-характерни за спама.
  89. ________________________________________
  90.  
  91. 3. Основни видове машинно обучение (Types of Machine Learning)
  92. Тип на ML  Обяснение  Пример
  93. Supervised Learning (Надзиравано обучение)   Данните са етикетирани (labeled data) – всяка входна стойност има правилен отговор (output). Моделът се обучава върху примери.   Прогнозиране на цената на недвижими имоти въз основа на площ, местоположение и брой стаи.
  94. Unsupervised Learning (Ненадзиравано обучение) Няма предварително зададени изходи (output labels). Алгоритъмът сам открива зависимости и групира данните.    Групиране на клиенти според тяхното поведение при пазаруване (Customer Segmentation).
  95. Reinforcement Learning (Обучение чрез подсилване) Моделът участва в среда (environment), изпълнява действия и получава награди или наказания. Учи се чрез проба-грешка.  Обучение на робот да ходи, игра на шах, самоуправляващи се коли.
  96. ________________________________________
  97.  
  98. 4. Основни алгоритми за машинно обучение (Core ML Algorithms)
  99. (A) Алгоритми за надзиравано обучение (Supervised Learning Algorithms)
  100.     1.  Линейна регресия (Linear Regression)
  101.         o   Използва се за прогнозиране на числови стойности (например цена на жилище).
  102.         o   Формула: y=w0+w1x1+w2x2+...+wnxn+ϵy = w_0 + w_1x_1 + w_2x_2 + ... + w_nx_n + \epsilony=w0+w1x1+w2x2+...+wnxn+ϵ
  103.         o   Пример: Прогнозиране на цената на жилище въз основа на квадратурата му.
  104.     2.  Логистична регресия (Logistic Regression)
  105.         o   Използва се за класификация (например дали даден имейл е „спам“ или „не спам“).
  106.         o   Формула: P(y=1∣x)=11+e−(w0+w1x1+w2x2)P(y=1|x) = \frac{1}{1 + e^{-(w_0 + w_1x_1 + w_2x_2)}}P(y=1∣x)=1+e−(w0+w1x1+w2x2)1
  107.     3.  Поддръжка на векторни машини (Support Vector Machines - SVM)
  108.         o   Използва хиперплоскости (hyperplanes) за разделяне на класове.
  109.     4.  Невронни мрежи (Neural Networks)
  110.         o   Основата на Deep Learning.
  111.         o   Структурирана като мрежа от неврони, която преминава информация през различни слоеве.
  112.         (B) Алгоритми за ненадзиравано обучение (Unsupervised Learning Algorithms)
  113.     1.  K-Means Clustering
  114.         o   Групира точки по сходство.
  115.         o   Пример: Разделяне на клиенти на банка по поведение.
  116.     2.  Principal Component Analysis (PCA)
  117.         o   Намалява размерността на данни, като запазва най-важната информация.
  118.         o   Пример: Визуализация на високодименсионални данни.
  119. ________________________________________
  120.  
  121. II. Математика за изкуствения интелект (Math for AI)
  122. 1. Линейна алгебра (Linear Algebra)
  123. • Какво трябва да знаеш?
  124. o   Вектори (Vectors) – Представят характеристики на данните (например: възраст, доход).
  125. o   Матрици (Matrices) – Използвани за представяне на големи масиви от числа.
  126. • Пример:
  127. o   Матрично умножение (Matrix Multiplication) в невронните мрежи: [1234]×[56]=[(1∗5+2∗6)(3∗5+4∗6)]\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \times \begin{bmatrix} 5 \\ 6 \end{bmatrix} = \begin{bmatrix} (1*5 + 2*6) \\ (3*5 + 4*6) \end{bmatrix}[1324]×[56]=[(1∗5+2∗6)(3∗5+4∗6)]
  128. 2. Вероятности и статистика (Probability & Statistics)
  129. • Разпределения (Distributions):
  130. o   Нормално разпределение (Normal Distribution): f(x)=1σ2πe−(x−μ)22σ2f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}f(x)=σ2π1e−2σ2(x−μ)2
  131. o   Бернулиево разпределение (Bernoulli Distribution): Двоични резултати (да/не, 1/0).
  132. • Пример:
  133. o   Вероятността клиент да закупи продукт, ако е от определена възрастова група.
  134. ________________________________________
  135.  
  136. III. Големи езикови модели (Large Language Models - LLMs)
  137. 1. Какво представляват LLMs и как работят?
  138. • Обяснение:
  139. Големите езикови модели (LLMs) са базирани на дълбоки невронни мрежи (Deep Neural Networks) и използват трансформерни архитектури (Transformer Architectures) за обработка на естествен език. Те са обучени върху огромни текстови корпуси и могат да разбират и генерират текст в различни контексти.
  140. • Пример:
  141. o   GPT-4 може да отговаря на въпроси, да пише статии и да генерира код.
  142. o   BERT (Bidirectional Encoder Representations from Transformers) използва двупосочен контекст за анализ на езика.
  143. ________________________________________
  144.  
  145. 2. Как работи трансформерната архитектура (Transformer Architecture)?
  146. Основни компоненти:
  147. 1.  Tokenization (Токенизация) – Разбиване на входния текст на по-малки единици (токени).
  148. o   Пример: „Hello, world!“ → [Hello], [world], [!]
  149. 2.  Embeddings (Вграждания) – Преобразуване на думите в числови вектори.
  150. o   Пример: „cat“ → [0.23, -0.11, 0.75, ...]
  151. 3.  Self-Attention (Механизъм за внимание) – Позволява на модела да разбира контекста на думите в изречението.
  152. o   Пример: В изречението „Ябълката е червена. Тя е вкусна.“ → „тя“ се отнася до „ябълката“.
  153. 4.  Positional Encoding (Позиционно кодиране) – Добавя информация за реда на думите.
  154. 5.  Feed Forward Networks (Напредващи невронни мрежи) – Прилагат нелинейни трансформации за извеждане на резултати.
  155. 6.  Decoder (Декодер) – Генерира отговор, използвайки learned репрезентации.
  156. ________________________________________
  157.  
  158. 3. Какво е Prompt Engineering и защо е важно?
  159. • Обяснение:
  160. Prompt Engineering е изкуството да създаваме ефективни заявки (prompts), за да получаваме по-добри отговори от LLMs.
  161. • Пример:
  162. o   Лош prompt: „Как да напиша код?“
  163. o   Добър prompt: „Напиши Python скрипт, който използва NumPy за изчисляване на средната стойност от списък с числа.“
  164. ________________________________________
  165.  
  166. IV. Практически умения за AI инженерия (Hands-on AI Skills)
  167. 1. Python за машинно обучение
  168. • Библиотеки, които трябва да знаеш:
  169. o   NumPy – Работа с многомерни масиви.
  170. o   Pandas – Обработка на таблични данни.
  171. o   Matplotlib и Seaborn – Визуализация на данни.
  172. o   Scikit-learn – Базови ML алгоритми.
  173. o   TensorFlow и PyTorch – Дълбоки невронни мрежи.
  174. ________________________________________
  175.  
  176. 2. Работа с AI модели
  177. Процес на създаване на ML модел
  178. 1.  Събиране и подготовка на данни (Data Preprocessing)
  179. o   Изчистване на липсващи стойности.
  180. o   Нормализация на данните.
  181. 2.  Избор и обучение на модел (Model Training)
  182. o   Избор на правилния алгоритъм.
  183. o   Разделяне на данните на train/test.
  184. 3.  Оценка на представянето (Model Evaluation)
  185. o   Метрики като точност (accuracy), прецизност (precision), recall.
  186. 4.  Фино настройване (Fine-Tuning)
  187. o   Използване на Hyperparameter Tuning за подобряване на резултатите.
  188. • Пример:
  189. python
  190. КопиранеРедактиране
  191. from sklearn.model_selection import train_test_split
  192. from sklearn.linear_model import LinearRegression
  193.  
  194. X = df[['sqft_living', 'bedrooms']]
  195. y = df['price']
  196.  
  197. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
  198.  
  199. model = LinearRegression()
  200. model.fit(X_train, y_train)
  201. print(model.score(X_test, y_test))
  202. ________________________________________
  203.  
  204. V. Подготовка за техническо интервю (Technical Interview Preparation)
  205. 1. Въпроси за машинно обучение
  206. (A) Основи на ML
  207. • Какво е overfitting и underfitting?
  208. o   Overfitting (Прекалено научаване) – моделът запомня шума от данните.
  209. o   Underfitting (Недостатъчно научаване) – моделът не успява да улови зависимостите.
  210. • Какво е cross-validation и защо се използва?
  211. o   Разделяне на данните на тренировъчни и тестови множества за по-добра оценка.
  212. (B) Алгоритми
  213. • Как работи Random Forest?
  214. o   Използва множество решаващи дървета (decision trees) и взема средно аритметично от резултатите им.
  215. • Какво е Principal Component Analysis (PCA)?
  216. o   Метод за намаляване на размерността на данни.
  217.  
  218. ________________________________________
  219. 2. Въпроси за LLMs
  220. • Как работи трансформерният модел?
  221. o   Използва self-attention, за да прецени кои думи са важни.
  222. • Каква е разликата между GPT и BERT?
  223. o   GPT генерира текст от ляво надясно (авторегресивен модел).
  224. o   BERT разбира контекста в двете посоки.
  225. ________________________________________
  226.  
  227. 3. Практически задачи
  228. • Напиши Python функция, която обработва текст с NLP.
  229. python
  230. КопиранеРедактиране
  231. from nltk.tokenize import word_tokenize
  232.  
  233. text = "Machine Learning is fascinating!"
  234. tokens = word_tokenize(text)
  235. print(tokens)
  236. • Имплементирай прост AI модел с TensorFlow.
  237. python
  238. КопиранеРедактиране
  239. import tensorflow as tf
  240. from tensorflow import keras
  241.  
  242. model = keras.Sequential([
  243.    keras.layers.Dense(64, activation='relu'),
  244.    keras.layers.Dense(1)
  245. ])
  246.  
  247. model.compile(optimizer='adam', loss='mse')
  248.  
  249. ================================================
  250.  
  251. 1. Какво е Decision Trees (Решаващо дърво)?
  252. Обяснение:
  253. Decision Tree (Решаващо дърво) е структура за вземане на решения, която прилича на йерархична дървовидна структура. Използва се както за класификация (classification), така и за регресия (regression).
  254. • Работи чрез разделяне (splitting) на данните на по-малки подмножества (nodes) въз основа на условия.
  255. • Всеки вътрешен възел (internal node) представя въпрос (разделящо условие), а листата (leaf nodes) съдържат крайни решения или класове.
  256. ________________________________________
  257.  
  258. Как работи алгоритъмът?
  259. 1.  Избира се атрибут за разделяне (Feature Selection)
  260. o   Обикновено се избира най-добрият атрибут чрез метрики като:
  261.  Gini Impurity – измерва несигурността в даден възел.
  262.  Entropy (Information Gain) – използва се в ID3 алгоритъма.
  263.  Variance Reduction – използва се за регресионни задачи.
  264. 2.  Разделяне на данните (Splitting)
  265. o   Въз основа на избраната характеристика, данните се разделят на две или повече части.
  266. 3.  Рекурсивно прилагане на стъпките 1 и 2 върху всяка нова група.
  267. 4.  Дървото расте, докато не достигне „крайни листа“ (terminal nodes).
  268. ________________________________________
  269.  
  270. Пример: Класификация на плодове
  271. Ако имаме плодове с характеристики цвят, размер и текстура, едно възможно решаващо дърво може да изглежда така:
  272. javascript
  273. КопиранеРедактиране
  274.                     Цветът жълт?
  275.                     /       \
  276.                  Да          Не
  277.                 /              \
  278.            Банан?          Голям размер?
  279.            /     \         /             \
  280.         Да      Не      Да           Малък?
  281.         🍌      🍏      🍉         🍒
  282. • Ако плодът е жълт → може да е банан или зелена ябълка.
  283. • Ако не е жълт, но е голям → може да е диня.
  284. • Ако е малък → може да е череша.
  285. ________________________________________
  286.  
  287. Пример с Python (Sklearn)
  288. python
  289. КопиранеРедактиране
  290. from sklearn.tree import DecisionTreeClassifier
  291. from sklearn.datasets import load_iris
  292. from sklearn.model_selection import train_test_split
  293.  
  294. # Зареждаме данни
  295. iris = load_iris()
  296. X = iris.data
  297. y = iris.target
  298.  
  299. # Разделяме данните
  300. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
  301.  
  302. # Създаваме и обучаваме модела
  303. model = DecisionTreeClassifier()
  304. model.fit(X_train, y_train)
  305.  
  306. # Предсказване
  307. predictions = model.predict(X_test)
  308.  
  309. # Оценка на модела
  310. accuracy = model.score(X_test, y_test)
  311. print(f"Точност: {accuracy:.2f}")
  312. ________________________________________
  313.  
  314. 2. Какво е Cross-Validation? (Крос валидация)
  315. Обяснение:
  316. Cross-Validation е техника за оценка на модели, която помага да се избегне overfitting (прекалено напасване). Вместо да разделим данните само на train/test, използваме различни комбинации от данните за обучение и тестване.
  317. ________________________________________
  318.  
  319. Видове Cross-Validation
  320. 1. K-Fold Cross-Validation
  321. • Разделя dataset-а на K части (folds).
  322. • Изпълнява K итерации, където всеки път една част е тестова, а останалите K-1 са тренировъчни.
  323. Пример с K = 5:
  324. Итерация    Train Folds Test Fold
  325. 1   2,3,4,5 1
  326. 2   1,3,4,5 2
  327. 3   1,2,4,5 3
  328. 4   1,2,3,5 4
  329. 5   1,2,3,4 5
  330. • След това усредняваме резултатите от всичките K итерации.
  331. 2. Leave-One-Out Cross-Validation (LOOCV)
  332. • Взима само една проба за тест, а останалите се използват за обучение.
  333. • Полезно за малки набори от данни.
  334. ________________________________________
  335.  
  336. Пример с Python
  337. python
  338. КопиранеРедактиране
  339. from sklearn.model_selection import cross_val_score
  340. from sklearn.ensemble import RandomForestClassifier
  341. from sklearn.datasets import load_iris
  342.  
  343. # Зареждаме данни
  344. iris = load_iris()
  345. X = iris.data
  346. y = iris.target
  347.  
  348. # Създаваме модел
  349. model = RandomForestClassifier()
  350.  
  351. # K-Fold Cross Validation с K=5
  352. scores = cross_val_score(model, X, y, cv=5)
  353.  
  354. # Усредняваме резултатите
  355. print(f"Средна точност: {scores.mean():.2f}")
  356. ________________________________________
  357.  
  358. 3. Какво е Self-Attention (Механизъм за внимание)?
  359. Обяснение:
  360. Self-Attention (само-внимание) е механизъм в трансформерните модели (напр. GPT-4, BERT), който позволява на модела да определя важността на думите в даден контекст.
  361. ________________________________________
  362.  
  363. Как работи Self-Attention?
  364. 1.  Входен текст:
  365. o   „Котката седи на килима.“
  366. 2.  Всяка дума се превръща във вектор (Embedding Vector).
  367. 3.  Изчислява се внимание към другите думи в изречението чрез три основни матрици:
  368. o   Query (Запитване): „Коя дума трябва да е важна?“
  369. o   Key (Ключ): „Каква е връзката на другите думи с текущата дума?“
  370. o   Value (Стойност): „Каква информация трябва да се пренесе?“
  371. ________________________________________
  372.  
  373. Примерен пример с изречението:
  374. „Ябълката падна от дървото, защото беше узряла.“
  375. • Ако разгледаме думата „тя“, механизмът Self-Attention ще ѝ даде висока тежест (weight) към „ябълката“, защото тя е правилната препратка.
  376. • Таблица на вниманието (Attention Scores):
  377. Думa Ябълката    падна  дървото  беше    узряла
  378. "тя"  0.9 0.1 0.2 0.3 0.8
  379. Така моделът разбира, че „тя“ се отнася до „ябълката“.
  380. ________________________________________
  381.  
  382. Пример с Python (Simple Self-Attention Mechanism)
  383. python
  384. КопиранеРедактиране
  385. import torch
  386. import torch.nn.functional as F
  387.  
  388. # Случайни входни данни (матрици Query, Key, Value)
  389. query = torch.rand(1, 3)  # 3-мерен вектор за една дума
  390. key = torch.rand(3, 3)    # 3 думи с 3-мерни представяния
  391. value = torch.rand(3, 3)  # Същото като key
  392.  
  393. # Изчисляваме вниманието
  394. attention_scores = torch.matmul(query, key.T) / (3 ** 0.5)
  395. attention_weights = F.softmax(attention_scores, dim=-1)
  396.  
  397. # Получаваме финалния изход
  398. output = torch.matmul(attention_weights, value)
  399. print(output)
  400. ________________________________________
  401.  
  402. Обобщение
  403. ✅ Decision Trees – Йерархична структура за класификация и регресия.
  404. ✅ Cross-Validation – K-Fold методът разделя данните, за да предотврати overfitting.
  405. ✅ Self-Attention – Изчислява взаимовръзките между думите в трансформерните модели.
  406. ====================================================
  407.  
  408. Какво е регресия? (Regression in Machine Learning)
  409. 1. Обяснение
  410. Регресия (Regression) е един от основните видове надзиравано обучение (Supervised Learning) в машинното обучение (Machine Learning).
  411. Тя се използва, когато изходната променлива (dependent variable) е непрекъсната (continuous) – т.е. може да приема безкрайно много стойности в даден диапазон (например цена на жилище, температура, заплата, времетраене на пътуване).
  412. ➡️ Целта на регресията е да намери зависимост (математическа функция) между входните и изходните данни, за да направи прогноза върху нови, невиждани примери.
  413. ________________________________________
  414.  
  415. 2. Разлика между регресия и класификация
  416. Фактор    Регресия (Regression)   Класификация (Classification)
  417. Изходни стойности   Непрекъснати (числа, стойности)   Категории (класове)
  418. Пример    Прогнозиране на цената на къща    Определяне дали имейлът е спам или не
  419. Цел  Прогнозиране на числови стойности Класифициране в определена група
  420. Примерен алгоритъм Линейна регресия, Ridge, Lasso   Decision Trees, SVM, Logistic Regression
  421. ________________________________________
  422.  
  423. 3. Видове регресия
  424. (A) Линейна регресия (Linear Regression)
  425. • Най-простият модел на регресия.
  426. • Описва линейна зависимост между X (входните променливи) и Y (изходната променлива).
  427. • Формула на линейната регресия:
  428. Y=w0+w1X1+w2X2+...+wnXn+ϵY = w_0 + w_1X_1 + w_2X_2 + ... + w_nX_n + \epsilonY=w0+w1X1+w2X2+...+wnXn+ϵ
  429. o   YYY – изходна променлива (например цена на къща).
  430. o   X1,X2,...,XnX_1, X_2, ..., X_nX1,X2,...,Xn – входни характеристики (напр. площ, брой стаи).
  431. o   w0,w1,...w_0, w_1, ...w0,w1,... – коефициенти (weights).
  432. o   ϵ\epsilonϵ – грешка (error).
  433. • Пример:
  434. Прогнозиране на цената на жилище въз основа на квадратурата.
  435. Графика на линейна регресия:
  436.  
  437. • Примерен код с Python (Sklearn):
  438. python
  439. КопиранеРедактиране
  440. from sklearn.linear_model import LinearRegression
  441. import numpy as np
  442.  
  443. # Примерни входни и изходни данни
  444. X = np.array([[50], [60], [80], [100], [120]])  # Квадратура
  445. y = np.array([150000, 180000, 240000, 300000, 360000])  # Цена
  446.  
  447. # Създаваме и обучаваме модел
  448. model = LinearRegression()
  449. model.fit(X, y)
  450.  
  451. # Прогноза за къща с 90 кв.м
  452. prediction = model.predict([[90]])
  453. print(f"Прогнозна цена: {prediction[0]:.2f}")
  454. ________________________________________
  455.  
  456. (B) Множествена линейна регресия (Multiple Linear Regression)
  457. • Използва повече от една входна променлива.
  458. • Формула:
  459. Y=w0+w1X1+w2X2+w3X3+⋯+wnXn+ϵY = w_0 + w_1X_1 + w_2X_2 + w_3X_3 + \dots + w_nX_n + \epsilonY=w0+w1X1+w2X2+w3X3+⋯+wnXn+ϵ
  460. • Пример:
  461. Прогнозиране на цената на жилище, но този път използваме:
  462. o   X1 = квадратура на имота.
  463. o   X2 = брой стаи.
  464. o   X3 = близост до центъра.
  465. • Примерен код с Python (Sklearn):
  466. python
  467. КопиранеРедактиране
  468. from sklearn.linear_model import LinearRegression
  469.  
  470. # Входни характеристики: площ (X1), брой стаи (X2)
  471. X = np.array([[50, 2], [60, 3], [80, 3], [100, 4], [120, 5]])
  472. y = np.array([150000, 180000, 240000, 300000, 360000])
  473.  
  474. # Създаваме и обучаваме модел
  475. model = LinearRegression()
  476. model.fit(X, y)
  477.  
  478. # Прогноза за жилище с 90 кв.м и 3 стаи
  479. prediction = model.predict([[90, 3]])
  480. print(f"Прогнозна цена: {prediction[0]:.2f}")
  481. ________________________________________
  482.  
  483. (C) Полиномна регресия (Polynomial Regression)
  484. • Използва квадратични или по-високи степенни зависимости.
  485. • Полезна, когато данните не са линейни.
  486. • Формула за квадратична регресия:
  487. Y=w0+w1X+w2X2+w3X3+⋯+wnXnY = w_0 + w_1X + w_2X^2 + w_3X^3 + \dots + w_nX^nY=w0+w1X+w2X2+w3X3+⋯+wnXn
  488. • Примерна графика:
  489. • Примерен код с Python:
  490. python
  491. КопиранеРедактиране
  492. from sklearn.preprocessing import PolynomialFeatures
  493. from sklearn.pipeline import make_pipeline
  494.  
  495. # Преобразуваме входните данни в полиномни стойности
  496. poly_model = make_pipeline(PolynomialFeatures(2), LinearRegression())
  497. poly_model.fit(X, y)
  498.  
  499. # Прогноза
  500. prediction = poly_model.predict([[90]])
  501. print(f"Прогнозна цена (полиномна регресия): {prediction[0]:.2f}")
  502. ________________________________________
  503.  
  504. (D) Ridge и Lasso регресия (Regularized Regression)
  505. • Ridge Regression: Използва L2 регуляризация, за да предотврати overfitting.
  506. • Lasso Regression: Използва L1 регуляризация, за да елиминира неважните характеристики.
  507. • Примерен код:
  508. python
  509. КопиранеРедактиране
  510. from sklearn.linear_model import Ridge, Lasso
  511.  
  512. ridge = Ridge(alpha=1.0)
  513. ridge.fit(X, y)
  514.  
  515. lasso = Lasso(alpha=1.0)
  516. lasso.fit(X, y)
  517. ________________________________________
  518.  
  519. 4. Метрики за оценка на регресия
  520. Метрика  Обяснение
  521. Mean Absolute Error (MAE)   Средната абсолютна разлика между прогнозираните и истинските стойности.
  522. Mean Squared Error (MSE)    Средноквадратичната грешка – дава по-голямо наказание за големи грешки.
  523. R² (R-Squared Score)   Мярка за това колко добре моделът обяснява вариацията в данните.
  524. • Примерен код:
  525. python
  526. КопиранеРедактиране
  527. from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
  528.  
  529. predictions = model.predict(X_test)
  530.  
  531. print("MAE:", mean_absolute_error(y_test, predictions))
  532. print("MSE:", mean_squared_error(y_test, predictions))
  533. print("R^2 Score:", r2_score(y_test, predictions))
  534. ________________________________________
  535.  
  536. Заключение
  537. ✅ Регресията е мощна техника за прогнозиране на числови стойности.
  538. ✅ Линейна регресия – намира права линия, която най-добре пасва на данните.
  539. ✅ Полиномна регресия – използва квадратични зависимости за по-сложни връзки.
  540. ✅ Ridge & Lasso регресия – справят се с overfitting чрез регуляризация.
  541. Регресионните модели са основни за машинното обучение и се използват в финанси, медицина, икономика и AI приложения!
  542. =================================================================
  543.  
  544. Разширено ръководство за Calculus (Калкулус), Probability (Вероятности) и Statistics (Статистика) в Машинното Обучение
  545. ________________________________________
  546.  
  547. Тези три области на математиката са фундаментални за машинното обучение, тъй като те ни помагат да разберем как работят алгоритмите, как се оптимизират моделите и как да анализираме данните правилно.
  548. I. Calculus (Калкулус)
  549. Калкулусът е математическият апарат, който се използва за анализ на промяната. В контекста на машинното обучение, той е изключително важен за оптимизация на модели, най-вече чрез градиентно спускане (Gradient Descent).
  550. 1. Основни концепции в калкулуса
  551. (A) Производна (Derivative)
  552. • Определение: Производната на функция f(x)f(x)f(x) описва колко бързо се променя стойността на функцията спрямо промяната в xxx.
  553. • Формула: f′(x)=lim⁡h→0f(x+h)−f(x)hf'(x) = \lim_{{h \to 0}} \frac{f(x+h) - f(x)}{h}f′(x)=h→0limhf(x+h)−f(x)
  554. • Пример:
  555. Нека f(x)=x2f(x) = x^2f(x)=x2, тогава производната е: f′(x)=2xf'(x) = 2xf′(x)=2x Ако x=3x = 3x=3,
  556. това означава, че в тази точка наклонът на кривата е 2(3)=62(3) = 62(3)=6.
  557. ________________________________________
  558.  
  559. (B) Частни производни (Partial Derivatives)
  560. • При многомерни функции (например при невронни мрежи), трябва да изчислим производната по всяка една от входните променливи.
  561. • Формула: ∂f∂x\frac{\partial f}{\partial x}∂x∂f
  562. • Пример:
  563. Ако f(x,y)=x2+y2f(x, y) = x^2 + y^2f(x,y)=x2+y2,
  564. частните производни са: ∂f∂x=2x,∂f∂y=2y\frac{\partial f}{\partial x} = 2x, \quad \frac{\partial f}{\partial y} = 2y∂x∂f=2x,∂y∂f=2y
  565. Това ни казва колко бързо се променя функцията спрямо всяка отделна променлива.
  566. ________________________________________
  567.  
  568. (C) Градиентно спускане (Gradient Descent)
  569. • Използва се за оптимизация на модели – например за минимизиране на грешката в невронни мрежи.
  570. • Формула за обновяване на параметрите: θ=θ−α⋅∂J∂θ\theta = \theta - \alpha \cdot \frac{\partial J}{\partial \theta}θ=θ−α⋅∂θ∂J където:
  571. o   θ\thetaθ – параметър на модела.
  572. o   α\alphaα – скорост на обучение (learning rate).
  573. o   JJJ – функция на загубите (loss function).
  574. • Пример:
  575. o   Ако обучаваме линейна регресия, използваме градиентно спускане, за да намерим оптималните коефициенти.
  576. ________________________________________
  577.  
  578. 2. Често срещани въпроси за калкулуса
  579. ❓ Защо производните са важни в машинното обучение?
  580. ✅ Производните се използват за намиране на оптимални стойности на параметрите, чрез минимизиране на грешките на моделите.
  581. ❓ Каква е връзката между градиентното спускане и невронните мрежи?
  582. ✅ Невронните мрежи използват backpropagation (обратна пропагация), за да изчислят градиентите и да актуализират теглата.
  583. ________________________________________
  584.  
  585. II. Probability (Вероятности)
  586. Вероятностите са ключова част от машинното обучение, защото моделите работят със статистически зависимости.
  587. 1. Основни концепции в теорията на вероятностите
  588. (A) Вероятностно пространство
  589. • Вероятностите се измерват в интервала [0,1][0,1][0,1], където:
  590. o   0 – събитието никога не се случва.
  591. o   1 – събитието винаги се случва.
  592. • Пример:
  593. o   Вероятността да се хвърли ези (heads) при хвърляне на монета е: P(H)=12P(H) = \frac{1}{2}P(H)=21
  594. ________________________________________
  595.  
  596. (B) Условна вероятност (Conditional Probability)
  597. • Вероятността дадено събитие AAA да се случи, при условие че е настъпило друго събитие BBB.
  598. • Формула: P(A∣B)=P(A∩B)P(B)P(A | B) = \frac{P(A \cap B)}{P(B)}P(A∣B)=P(B)P(A∩B)
  599. • Пример:
  600. o   Ако 60% от студентите учат програмиране, а 30% от тях също учат AI, каква е вероятността ученик, който учи програмиране, да учи и AI? P(AI∣Programming)=P(AI∩Programming)P(Programming)=0.30.6=0.5P(AI | Programming) = \frac{P(AI \cap Programming)}{P(Programming)} = \frac{0.3}{0.6} = 0.5P(AI∣Programming)=P(Programming)P(AI∩Programming)=0.60.3=0.5
  601. ________________________________________
  602.  
  603. (C) Теорема на Байес (Bayes' Theorem)
  604. • Позволява да изчислим обратни вероятности.
  605. • Формула: P(A∣B)=P(B∣A)P(A)P(B)P(A | B) = \frac{P(B | A) P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)P(A)
  606. • Пример:
  607. o   Ако даден медицински тест е 90% точен и болестта се среща при 1% от населението, каква е вероятността човек с положителен тест наистина да има заболяването? (Използва се Байесова теорема.)
  608. ________________________________________
  609.  
  610. III. Statistics (Статистика)
  611. Статистиката се използва за анализ и интерпретация на данни.
  612. 1. Основни понятия в статистиката
  613. (A) Средна стойност (Mean)
  614. μ=∑XiN\mu = \frac{\sum X_i}{N}μ=N∑Xi
  615. • Пример:
  616. o   Ако заплатите на 5 служители са: [2000, 3000, 2500, 4000, 3500], тогава: Mean=2000+3000+2500+4000+35005=3000Mean = \frac{2000 + 3000 + 2500 + 4000 + 3500}{5} = 3000Mean=52000+3000+2500+4000+3500=3000
  617. ________________________________________
  618.  
  619. (B) Медиана (Median)
  620. • Средната стойност в подреден списък.
  621. • Пример:
  622. o   За данните [2000, 2500, 3000, 3500, 4000] медианата е 3000.
  623. ________________________________________
  624.  
  625. (C) Дисперсия и стандартно отклонение (Variance & Standard Deviation)
  626. • Дисперсия (Variance, σ2\sigma^2σ2): σ2=(Xi−μ)2N\sigma^2 = \frac{\sum (X_i - \mu)^2}{N}σ2=N∑(Xi−μ)2
  627. • Стандартно отклонение (Standard Deviation, σ\sigmaσ): σ=σ2\sigma = \sqrt{\sigma^2}σ=σ2
  628. • Пример:
  629. o   Ако заплатите са [2000, 3000, 2500, 4000, 3500], стандартното отклонение показва колко са разпръснати стойностите около средната стойност.
  630. ________________________________________
  631.  
  632. Заключение
  633. ✅ Калкулус → Използва се за оптимизация на модели (градиентно спускане).
  634. ✅ Вероятности → Необходима за стохастични модели и Bayesian алгоритми.
  635. ✅ Статистика → Основна за анализ на данни и моделиране.
  636.  
  637. ________________________________________
  638.  
  639. Корелация (Correlation) – Подробно обяснение и примери
  640. 1. Какво е корелация?
  641. ✅ Корелация (Correlation) измерва връзката между две променливи – дали и как се променя една променлива, когато се промени другата.
  642. ✅ Корелацията не означава причинно-следствена връзка (Causation) – ако две неща са свързани, не означава, че едното причинява другото!
  643.  
  644. 2. Видове корелация
  645. 🔹 Положителна корелация (+1) – Когато едната променлива се увеличава, другата също се увеличава.
  646. 🔹 Отрицателна корелация (-1) – Когато едната променлива се увеличава, другата намалява.
  647. 🔹 Нулева корелация (0) – Няма връзка между променливите.
  648.  
  649. Тип корелация   Графично представяне Пример
  650. Положителна (+1) 📈 Нагоре   Доходът и разходите – колкото повече печелиш, толкова повече харчиш.
  651. Отрицателна (-1) 📉 Надолу   Колкото повече тренираш, толкова по-ниско е теглото ти.
  652. Нулева (0)    🔀 Без връзка    Броят чадъри, продадени в Лондон, и цената на златото.
  653. 3. Как се измерва корелацията?
  654. (A) Корелационен коефициент на Пиърсън (Pearson Correlation)
  655. 📌 Най-често използваната метрика – измерва линейната зависимост между две променливи.
  656.  
  657. между -1 и 1.
  658. 4. Пример с Python – Изчисляване на корелация
  659. ✅ Използваме NumPy и Pandas за изчисляване на Pearson Correlation.
  660.  
  661. python
  662. Копиране
  663. Редактиране
  664. import numpy as np
  665. import pandas as pd
  666.  
  667. # Данни: Учене (часове) и резултати на тест (точки)
  668. study_hours = np.array([1, 2, 3, 4, 5, 6, 7])
  669. exam_scores = np.array([50, 55, 60, 65, 70, 75, 80])
  670.  
  671. # Изчисляване на корелация с NumPy
  672. correlation = np.corrcoef(study_hours, exam_scores)[0, 1]
  673. print(f"Корелация между учене и резултат: {correlation:.2f}")
  674. 📌 Ако резултатът е 1.0, значи перфектна положителна корелация – повече учене → по-добър резултат.
  675.  
  676. 5. Често срещани грешки при интерпретация на корелация
  677. 🚨 Корелация ≠ Причинност (Causation)!
  678. ✅ Ако две неща се променят заедно, не означава, че едното причинява другото.
  679.  
  680. 🔹 Пример за фалшива корелация:
  681. ✅ Броят продадени сладоледи и броят нападения от акули имат висока корелация.
  682. ✅ Но това не означава, че яденето на сладолед причинява нападения от акули!
  683. ✅ Истинската причина е топлото време, което кара повече хора да плуват в морето.
  684.  
  685. 6. Видове корелационни методи
  686. Метод  Кога се използва?
  687. Пиърсън (Pearson)    За линейна зависимост между две променливи.
  688. Спиърман (Spearman) За монотонни зависимости (дори и да не са линейни).
  689. Кендал (Kendall Tau)  За малки набори от данни или рангови зависимости.
  690. Пример за Spearman Correlation с Pandas:
  691.  
  692. python
  693. Копиране
  694. Редактиране
  695. df = pd.DataFrame({"X": study_hours, "Y": exam_scores})
  696. print(df.corr(method='spearman'))
  697. 📌 Spearman е полезен, когато данните не са линейни.
  698.  
  699. 🔥 Често задавани въпроси
  700. 1️⃣ Каква е разликата между Pearson и Spearman корелация?
  701. ✅ Pearson измерва линейна връзка, докато Spearman измерва обща зависимост (дори нелинейна).
  702.  
  703. 2️⃣ Как да разбера дали корелацията е значима?
  704. ✅ Трябва да проверим p-value (статистическа значимост). Ако p < 0.05, корелацията е статистически значима.
  705.  
  706. 🚀 Заключение
  707. ✅ Корелацията показва връзка между две променливи, но НЕ означава причинно-следствена връзка!
  708. ✅ Pearson – за линейни зависимости, Spearman – за нелинейни.
  709. ✅ Корелацията може да бъде положителна, отрицателна или нулева.
  710.  
  711. 🔥 Това е ключова концепция в анализа на данни и машинното обучение! 🚀
  712.  
  713. Защо корелацията е важна и какво следва след като я открием?
  714. ✅ Корелацията е ключова в анализа на данни, машинното обучение, финансите, науката и почти всяка сфера, където работим с данни.
  715. ✅ Ако знаем дали и как две променливи са свързани, можем да направим информирани решения и да предскажем бъдещи тенденции.
  716.  
  717. 1. Какво можем да направим, след като установим корелация?
  718. След като установим дали две променливи са свързани, имаме няколко възможности:
  719.  
  720. Ситуация    Какво можем да направим?    Пример
  721. Силна положителна корелация    Използваме едната променлива за прогнозиране на другата.   Повече часове учене → по-висок резултат на теста.
  722. Силна отрицателна корелация    Намаляваме ефекта на негативната връзка. Повече пушене → по-ниска продължителност на живота.
  723. Няма корелация Спираме да търсим връзка или търсим други фактори.    Дължината на косата няма връзка със заплатата.
  724. Корелация, но не причинност  Откриваме скрити фактори (confounders).   Продажбите на сладолед и нападенията от акули се увеличават заедно → истинската причина е топлото време.
  725. 2. Корелация в машинното обучение
  726. ✅ Корелацията помага при избора на характеристики (Feature Selection)
  727.  
  728. Ако две характеристики са много свързани, можем да използваме само една от тях.
  729. Намалява излишната информация (redundancy) и подобрява производителността на моделите.
  730. Пример:
  731. Ако предсказваме цената на жилище и имаме две характеристики:
  732.  
  733. Площ в квадратни метри.
  734. Брой стаи.
  735. Ако те са много силно корелирани, можем да използваме само едната характеристика, за да избегнем дублиране на информация.
  736. 📌 Пример с Python – Проверка на корелация между променливи в dataset:
  737.  
  738. python
  739. Копиране
  740. Редактиране
  741. import pandas as pd
  742.  
  743. # Примерни данни за продажби
  744. data = {
  745.     "Цена_на_жилище": [200000, 250000, 300000, 350000, 400000],
  746.     "Площ_в_кв.м": [60, 80, 100, 120, 140],
  747.     "Брой_стаи": [2, 3, 4, 5, 6]
  748. }
  749.  
  750. df = pd.DataFrame(data)
  751.  
  752. # Изчисляваме корелационната матрица
  753. correlation_matrix = df.corr()
  754. print(correlation_matrix)
  755. ✅ Ако корелацията между "Площ в кв.м" и "Брой стаи" е почти 1, можем да използваме само една от двете.
  756.  
  757. 3. Корелация във финансите и икономиката
  758. ✅ Ако две финансови променливи са свързани, можем да правим прогнози.
  759.  
  760. 📌 Пример:
  761.  
  762. Ако цената на петрола и инфлацията имат висока положителна корелация, можем да очакваме, че увеличаването на цената на петрола ще доведе до по-висока инфлация.
  763. 4. Корелация в медицината
  764. ✅ Ако знаем, че една променлива влияе върху друга, можем да предотвратим проблеми.
  765.  
  766. 📌 Пример:
  767.  
  768. Корелацията между пушене и рак на белите дробове → Ако разберем, че пушенето има силна връзка с болестта, можем да предприемем превантивни мерки.
  769. 5. Как да използваме липсата на корелация?
  770. ❌ Ако две неща не са свързани, няма смисъл да ги анализираме заедно.
  771.  
  772. 📌 Пример:
  773.  
  774. Ако няма връзка между приема на витамини и интелигентността, няма нужда да инвестираме в изследвания в тази област.
  775. Ако няма корелация между честотата на земетресенията и цените на акциите, няма нужда да правим прогнози на фондовия пазар на база земетресения.
  776. 🔥 Заключение
  777. ✅ Корелацията е важен инструмент за анализ на данни и прогнозиране.
  778. ✅ Ако има силна корелация, можем да използваме една променлива за предсказване на друга.
  779. ✅ Ако няма корелация, можем да спестим време и ресурси, като не анализираме несвързани фактори.
  780. ✅ Но! Корелацията не означава причинност (Causation) → винаги проверяваме скритите фактори.
  781.  
  782. 🔥 Това е ключова концепция за Data Science, AI и бизнес анализи! 🚀
  783.  
  784. ________________________________________
  785.  
  786. Други важни концепции, свързани с корелацията, в контекста на AI/ML
  787. Корелацията е само една част от анализа на зависимостите между променливите в машинното обучение (ML) и изкуствения интелект (AI).
  788. 👉 Освен корелацията, има други важни концепции, които трябва да разберем, за да анализираме и изграждаме добри ML модели.
  789.  
  790. 1. Ковариация (Covariance)
  791. ✅ Какво е ковариация?
  792. Ковариацията измерва как две променливи се променят заедно.
  793. Разлика между корелация и ковариация:
  794.  
  795. Ковариацията ни казва посоката на връзката (положителна/отрицателна), но не дава нормализирана стойност.
  796. Корелацията е стандартизирана версия на ковариацията, която винаги е между -1 и 1.
  797.  
  798. 👉 Ако Cov(X, Y) > 0 → Променливите са положително свързани.
  799. 👉 Ако Cov(X, Y) < 0 → Променливите са отрицателно свързани.
  800. 👉 Ако Cov(X, Y)0 → Липса на връзка.
  801.  
  802. 📌 Python пример за ковариация:
  803.  
  804. python
  805. Копиране
  806. Редактиране
  807. import numpy as np
  808.  
  809. X = [1, 2, 3, 4, 5]
  810. Y = [2, 4, 6, 8, 10]
  811.  
  812. cov_matrix = np.cov(X, Y)
  813. print("Ковариационна матрица:\n", cov_matrix)
  814. ✅ Ковариацията тук е положителна, което означава, че двете променливи растат заедно.
  815.  
  816. 2. Mutual Information (Взаимна информация)
  817. ✅ Какво е Mutual Information (MI)?
  818. Измерва колко информация дава една променлива за друга.
  819. 📌 Използва се в Feature Selection (избор на характеристики за ML модели).
  820.  
  821. 👉 Ако MI е висока → едната променлива дава много информация за другата.
  822. 👉 Ако MI ≈ 0 → няма връзка между тях.
  823.  
  824. 📌 Пример с Python (sklearn)
  825.  
  826. python
  827. Копиране
  828. Редактиране
  829. from sklearn.feature_selection import mutual_info_regression
  830. import numpy as np
  831.  
  832. X = np.array([[1], [2], [3], [4], [5]])
  833. Y = np.array([2, 4, 6, 8, 10])
  834.  
  835. mi = mutual_info_regression(X, Y)
  836. print("Mutual Information:", mi)
  837. ✅ MI се използва за избор на най-важните характеристики в моделите.
  838.  
  839. 3. Causation (Причинно-следствена връзка)
  840. ✅ Какво е Causation?
  841. 👉 Корелация ≠ Причинност (Causation)!
  842. ✅ Ако две променливи са корелирани, не означава, че едната причинява другата.
  843. 📌 Пример за фалшива корелация:
  844.  
  845. Продажбите на сладолед и нападенията от акули са корелирани, но сладоледът не причинява нападенията.
  846. Истинската причина: Топлото време → повече хора в морето → повече нападения от акули.
  847. ✅ Как се измерва причинно-следствена връзка?
  848.  
  849. Granger Causality – Проверява дали една променлива може да предскаже друга.
  850. Do-Calculus (Pearl's Causal Model) – Графичен модел за анализ на причинността.
  851. 📌 Пример с Granger Causality:
  852.  
  853. python
  854. Копиране
  855. Редактиране
  856. from statsmodels.tsa.stattools import grangercausalitytests
  857. import pandas as pd
  858.  
  859. # Генерираме примерни данни
  860. data = {'X': [1, 2, 3, 4, 5], 'Y': [2, 4, 6, 8, 10]}
  861. df = pd.DataFrame(data)
  862.  
  863. # Проверка дали X причинява Y
  864. grangercausalitytests(df, maxlag=2)
  865. ✅ Ако резултатът е статистически значим, може да има причинно-следствена връзка.
  866.  
  867. 4. Колинеарност (Multicollinearity)
  868. ✅ Какво е Multicollinearity?
  869. 👉 Колинеарността се появява, когато две или повече характеристики са много силно корелирани, което затруднява ML моделите.
  870.  
  871. ✅ Защо е проблем?
  872.  
  873. Увеличава вариацията на коефициентите в линейната регресия.
  874. Води до нестабилни модели.
  875. ✅ Как се открива?
  876.  
  877. Variance Inflation Factor (VIF) – измерва степента на мултиколинеарност.
  878. Корелационна матрица – ако две характеристики имат
  879. 𝑟
  880. >
  881. 0.9
  882. r>0.9, може да премахнем едната.
  883. 📌 Пример за VIF с Python
  884.  
  885. python
  886. Копиране
  887. Редактиране
  888. from statsmodels.stats.outliers_influence import variance_inflation_factor
  889. import numpy as np
  890.  
  891. X = np.array([[1, 2, 3], [2, 4, 6], [3, 6, 9], [4, 8, 12]])
  892. vif = [variance_inflation_factor(X, i) for i in range(X.shape[1])]
  893. print("VIF:", vif)
  894. ✅ Ако VIF > 5, значи имаме мултиколинеарност и трябва да премахнем характеристиката.
  895.  
  896. 5. Feature Importance (Значимост на характеристиките)
  897. ✅ Какво е Feature Importance?
  898. Измерва кои характеристики (features) са най-важни за ML модел.
  899.  
  900. ✅ Методи за измерване:
  901.  
  902. Mutual Information (MI) – Измерва зависимостта между характеристиките и целевата променлива.
  903. SHAP (SHapley Additive Explanations) – Обяснява приноса на всяка характеристика.
  904. Random Forest Feature Importance – Измерва важността на характеристиките чрез дървета.
  905. 📌 Пример с RandomForestRegressor в Python
  906.  
  907. python
  908. Копиране
  909. Редактиране
  910. from sklearn.ensemble import RandomForestRegressor
  911. import numpy as np
  912.  
  913. X = np.random.rand(100, 3)  # 100 примера, 3 характеристики
  914. y = X[:, 0] * 2 + X[:, 1] * 3 + np.random.rand(100)  # Генерираме зависимост
  915.  
  916. model = RandomForestRegressor()
  917. model.fit(X, y)
  918.  
  919. print("Feature Importance:", model.feature_importances_)
  920. ✅ Feature Importance помага да премахнем ненужните променливи и да направим по-ефективен модел.
  921.  
  922. 🔥 Обобщение
  923. Концепция  Какво измерва?  Защо е важна?
  924. Корелация (Correlation)    Линейна зависимост между две променливи  Полезна за откриване на връзки в данните
  925. Ковариация (Covariance)   Взаимната промяна между две променливи    Подобна на корелацията, но без стандартизация
  926. Mutual Information (MI) Колко информация съдържа една променлива за друга    Използва се в Feature Selection
  927. Причинност (Causation)    Дали едно събитие причинява друго  Важно за анализ на реални зависимости
  928. Мултиколинеарност (Multicollinearity)  Силна зависимост между две характеристики  Може да направи ML моделите нестабилни
  929. Feature Importance  Колко важна е дадена характеристика за модела    Помага за избиране на най-добрите променливи
  930. ✅ Разбирането на тези концепции помага да изграждаш по-добри AI/ML модели, които са по-точни, по-ефективни и по-обясними! 🚀
  931.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement