Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която фун
|
|
- Венко Вучков
- преди 4 години
- Прегледи:
Препис
1 Машинно обучение Лабораторно упражнение 4 Линейна регресия и градиентно спускане Целта на упражнението е да се реализира линейна регресия, в която функцията на цената се минимизира чрез градиентно спускане. Ще демонстрираме със средствата на Python следните основни етапи от линейна регресия: 1. Зареждане на данни 2. Изчисляване на ф-та на цената (cost function) 3. Градиентно спускане Ще приложим линейната регресия за предсказване на доходността на хранителен магазин в град с известен брой на населението. Обучителните данни се намират във файла ex1data1.txt. Данните представляват таблица от две колони: население на град (умножено по 10000) и доходност на хранителен магазин в града (умножена по 10000). Включваме следните пакети: Pandas за форматиране на данните и за четене на csv файлове Numpy за операции с масиви и матрици Matplotlib за графики на функции In [1]: import pandas as pd import numpy as np import matplotlib.pyplot as plt %matplotlib inline 1. Зареждане на данни от файла ex1.data1.txt In [2]: data = pd.read_csv('ex1data1.txt', names = ['population', 'profit']) In [3]: print(data.head())
2 Резултат: population profit Визуализиране на данните In [4]: ## Разделяме данните население (population) и доходност (profit) в X и y X_df = pd.dataframe(data.population) y_df = pd.dataframe(data.profit) ## Брой данни за доходността (y) m = len(y_df) In [5]: plt.figure(figsize=(10,8)) plt.plot(x_df, y_df, 'kx') plt.xlabel('population of City in 10,000s') plt.ylabel('profit in $10,000s') Резултатът е визуализиране на данните, които са обучителни примери в линейната регресия (фиг. 1):
3 Фиг. 1. Визуализиране на данните за население-доходност Целта на линейната регресия е да се намери връзката между променливата x и зависимата (изходна) променлива (y). Тази връзка се използва за предсказване на y за нови (непознати) стойности на променливата x., където: В разглежданата задача връзката е права линия, която се дефинира с уравнение: y = h θ (x) = θ 0 + θ 1 x h θ (x) модел на линейната регресия или хипотеза, получена в резултат от обучение θ 0, θ 1 са параметри на линейната регресия. Фиг. 2 показва, че са възможни много прави линии, апроксимиращи входните данни. Търсим правата, която минава най-близо до точките, представящи входните данни. In [6]: plt.figure(figsize=(10,8)) plt.plot(x_df, y_df, 'k.') plt.plot([5, 22], [6,6], '-') plt.plot([5, 22], [0,20], '-') plt.plot([5, 15], [-5,25], '-') plt.xlabel('population of City in 10,000s') plt.ylabel('profit in $10,000s')
4 Фиг. 2. Възможни прави линии, апроксимиращи данните 3. Функция на цената За да намерим най-близката линия до входните данни, трябва да намерим стойности на параметрите θ 0, θ 1, при които предсказаните стойности да са възможно най-близки до действителните стойности за y. С други думи е необходимо разстоянието между хипотезата h θ (x) и известната цена от обучителните примери y да бъде минимално. Дефинираме функция на цената (cost function), която използва т.нар. най-малки квадрати. Това е сума от квадратите на разликите между предсказаните и действителните стойности на y. Функцията изглежда по следния начин:, където m J(θ 0, θ 1 ) = 1 2m (h θ(x (i) ) y (i) ) 2 i=1 J(θ 0, θ 1 ) функцията на цената с параметри θ 0, θ 1 m брой входни данни x (i) i-та стойност за x (население) от обучителните данни y (i) i-та стойност за y (доходност) от обучителните данни h θ (x) е хипотезата, която търсим. Тя има следният линеен модел: h θ (x) = θ 0 + θ 1 x 1
5 Търсим стойностите на параметрите θ 0, θ 1, за които ф-та J има минимална стойност. За да намерим тези стойности, използваме алгоритъм, който се нар. градиентно спускане (gradient descent). Алгоритъмът се състои от итерации (повторения), като на всяка итерация се изпълняват следните операции:, където θ j θ j α 1 m m (h θ(x (i) ) y (i) (i) )x j i=1 θ j параметрите θ 0, θ 1 α скорост на обучението (learning rate) Градиентното спускане е прост алгоритъм, при който променяме параметрите на функцията с много малки стъпки до достигане на минимум на функцията. Пример за намиране на минимум на функция чрез градиентно спускане Ще демонстрираме алгоритъма за намиране на минимум за следната проста квадратна функция: y(x) = (x 4) Ще визуализираме алгоритъма чрез изобразяване на графиката на функцията със средствата на Python. In [7]: x_quad = [n/10 for n in range(0, 100)] y_quad = [(n-4)**2+5 for n in x_quad] In [8]: plt.figure(figsize = (10,7)) plt.plot(x_quad, y_quad, 'k--') plt.axis([0,10,0,30]) plt.plot([1, 2, 3], [14, 9, 6], 'ro') plt.plot([5, 7, 8],[6, 14, 21], 'bo') plt.plot(4, 5, 'ko')
6 plt.xlabel('x') plt.ylabel('f(x)') plt.title('quadratic Equation') Резултатът изобразява графиката на квадратната функция (фиг. 3). Фиг. 3. Графика на квадратната функция Ще определим стойността на x, при която функцията f(x) има минимална стойност (минимум). Ще приложим градиентно спускане, използвайки графиката на функцията (фиг. 3). Започваме с начална стойност за x и проверяваме графиката на функцията. Наклонът на кривата се нар. градиент. Променяме x и проверяваме дали кривата променя посоката си (т.е. дали градиентът променя стойността си). Стойността на x, след която кривата променя наклона си е стойността, съответстваща на минималната стойност y, т.е. това е търсеният минимум на функцията. Напр., ако започнем с начална стойност x=2, то в точката (2,9) градиентът е отрицателен (червена точка на фиг. 3). При x=3, градиентът в точката (3,6) отново е отрицателен (червена точка на фиг. 3), т.е. посоката на изменение на кривата се запазва. При x=4, y=5. За стойности x>4 кривата променя наклона си (сините точки на фиг. 3), т.е. градиентът става положителен. Това означава, че ф-та y(x) = (x 4) има минимум при x=4.
7 Скоростта на обучението α определя колко бързо се спускаме към минимума на ф- та. При много голяма скорост съществува риск от прескачане на търсения минимум. Ще реализираме градиентното спускане за задачата с население на град и доходност на хранителен магазин. В алгоритъма използваме следните променливи: iterations брой итерации в градиентното спускане alpha скорост на обучението np.dot се използва за умножение на матрици In [9]: iterations = 1500 alpha = 0.01 In [10]: ## Добавя колона от 1-ци към вектора X X_df['intercept'] = 1 ## Трансформира Numpy масивите за по-лесни операции с матриците X = np.array(x_df) y = np.array(y_df).flatten() theta = np.array([0, 0]) In [11]: def cost_function(x, y, theta): """ cost_function(x, y, theta) изчислява функцията на цената за стойности на параметрите theta """ ## брой обучителни примери m = len(y) ## Изчислява цената с въведени параметри
8 J = np.sum((x.dot(theta)-y)**2)/2/m return J In [12]: cost_function(x, y, theta) Резултат: Това е стойността на цената при θ 0 = 0, θ 1 = 0. Условно разделяме алгоритъма на градиентното спускане на следните стъпки: 1. Изчисляваме хипотеза hypothesis[97x1] = x[97x2] * theta[2x1] 2. Изчисляваме разликите loss [97x1] с изваждане елемент по елемент 3. Изчисляваме градиента gradient[2x1] = X' [2x97].loss [97x1] 4. Променяме стойностите на параметрите theta[2x1] 5. Намираме цената с извикване на cost_function() def gradient_descent(x, y, theta, alpha, iterations): """ Ф-та gradient_descent изпълнява градиентно спускане за обучаване на параметрите theta theta = gradient_descent(x, y, theta, alpha, iterations) променя стойностите на theta iterations брой итерации alpha - скорост на обучение """ cost_history = [0] * iterations for iteration in range(iterations): hypothesis = X.dot(theta) loss = hypothesis-y gradient = X.T.dot(loss)/m
9 theta = theta - alpha*gradient cost = cost_function(x, y, theta) cost_history[iteration] = cost return theta, cost_history In [14]: (t, c) = gradient_descent(x,y,theta,alpha, iterations) In [15]: ## Отпечатваме theta print(t) Резултат: [ ] Това са стойностите на параметрите θ 0, θ 1, при които цената J има минимум. Ще използваме намерените стойности, за да определим (т.е. да предскажем) доходността на магазин в градове с население съответно и жители. In [16]: ## Prediction print(np.array([3.5, 1]).dot(t)) print(np.array([7, 1]).dot(t)) Резултат: в град с население жители очакваната доходност е 4519 долара в град с население жители очакваната доходност е долара In [17]: ## Изчертаване на най-близката линия best_fit_x = np.linspace(0, 25, 20) best_fit_y = [t[1] + t[0]*xx for xx in best_fit_x] In [18]: plt.figure(figsize=(10,6)) plt.plot(x_df.population, y_df, '.') plt.plot(best_fit_x, best_fit_y, '-')
10 plt.axis([0,25,-5,25]) plt.xlabel('population of City in 10,000s') plt.ylabel('profit in $10,000s') plt.title('profit vs. Population with Linear Regression Line') Резултатът показва линията, преминаваща най-близо до обучителните данни (фиг. 4) Фиг. 4. Най-близката линия Задача 1: Начертайте графиката на функцията на цената. Наблюдавайте как се променя стойността на цената с увеличаване на итерациите в градиентното спускане. Задача 2: Във файла ex1data2.txt са дадени следните данни за къщи: Площ на къщата (feet 2 ) * 1000 Цена ($) *
11 Да се построи модел за предсказване на цената на къща с произволна площ чрез линейна регресия. С намерената хипотеза да се определи цената на къщи с площ 2*1000 и 4.5*1000 кв. фута.
Машинно обучение - въведение
Линейна регресия с една променлива Доц. д-р Ивайло Пенев Кат. Компютърни науки и технологии Пример 1 Данни за цени на къщи Площ (x) Означения: Цена в $ (y) 2104 460 000 1416 232 000 1534 315 000 852 178
ПодробноМашинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множ
Машинно обучение Лабораторно упражнение 9 Класификация с множество класове. Представяне на невронна мрежа Упражнението демонстрира класификация в множество класове чрез методи логаритмична регресия и невронни
ПодробноЛогаритмична регресия
Логаритмична регресия Доц. д-р Ивайло Пенев Кат. Компютърни науки и технологии Функция на хипотезата h θ x = g θ T x = 1 1 + e θt x Функция на цената J θ = 1 σ m i=1 m Cost(h θ x i, y i ), където Cost(h
ПодробноMicrosoft Word - Sem02_KH_VM2-19.doc
Семинар Действия с матрици. Собствени стойности и собствени вектори на матрици. Привеждане на квадратична форма в каноничен вид. Матрица k всяка правоъгълна таблица от k-реда и -стълба. Квадратна матрица
ПодробноПЛОВДИВСКИ УНИВЕРСИТЕТ
. Интерполиране с алгебрични полиноми - полином на Лагранж. Оценка на грешката. Метод на най-малките квадрати. Програмиране на методите и визуализация. Интерполационен полином на Лагранж Това е метод за
ПодробноМашинно обучение Лабораторно упражнение 3 Работа с функции, файлове и графики 1. Допълнителни сведения за функции 1.1. Стойности на аргументите по под
Машинно обучение Лабораторно упражнение 3 Работа с функции, файлове и графики 1. Допълнителни сведения за функции 1.1. Стойности на аргументите по подразбиране Пример за функция, която може да бъде извиквана
ПодробноMicrosoft Word - Lecture 14-Laplace Transform-N.doc
Лекция 4: Интегрално преобразувание на Лаплас 4.. Дефиниция и образи на елементарните функции. Интегралното преобразувание на Лаплас Laplac ranorm се дефинира посредством израза: Λ[ ] преобразувание на
ПодробноMicrosoft Word - seminar12.docx
Семинар 12 Линеен дискриминантен анализ В този семинар ще се запознаем с линейния дискриминантен анализ (ЛДА), който се използва в статистиката, разпознаването на образи и обучението на машини. От обектите
ПодробноПредефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически униве
Предефиниране на оператори. Копиращ конструктор. Оператор за присвояване Любомир Чорбаджиев Технологическо училище Електронни системи Технически университет, София lchorbadjiev@elsys-bg.org Revision :
ПодробноMicrosoft Word - stokdovo saprotivlenie.doc
Движения при наличие на Стоксово съпротивление При един често срещан вид движения неподвижно тяло започва да се движи под действие на сила с постоянна посока Ако върху тялото действа и Стоксова съпротивителна
ПодробноMicrosoft Word - KZ_TSG.doc
ПРИЛОЖЕНИЕ НА ТЕОРИЯТА НА СИГНАЛНИТЕ ГРАФИ ЗА АНАЛИЗ НА ЕЛЕКТРОННИ СХЕМИ С ОПЕРАЦИОННИ УСИЛВАТЕЛИ В теорията на електронните схеми се решават три основни задачи: ) анализ; ) синтез; ) оптимизация. Обект
ПодробноMicrosoft Word - PMS sec1212.doc
Лекция Екстремуми Квадратични форми Функцията ϕ ( = ( K се нарича квадратична форма на променливите когато има вида ϕ( = aij i j i j= За коефициентите предполагаме че a ij = a ji i j При = имаме ϕ ( =
ПодробноVocational Education Volume 19, Number 4, 2017 Професионално образование School for Teachers Училище за учители ГРАФИЧЕН МЕТОД ЗА РЕШАВАНЕ НА УРАВНЕНИ
Vocational Education Volume 19, Number 4, 2017 Професионално образование School for Teachers Училище за учители ГРАФИЧЕН МЕТОД ЗА РЕШАВАНЕ НА УРАВНЕНИЯ Информационните технологии инструментариум за решаване
ПодробноI
. Числено решаване на уравнения - метод на Нютон. СЛАУ - метод на проста итерация. Приближено решаване на нелинейни уравнения Метод на допирателните (Метод на Нютон) Това е метод за приближено решаване
ПодробноMathematica CalcCenter
Mathematica CalcCenter Основни възможности Wolfram Mathematica CalcCenter е разработен на базата на Mathematica Professional и първоначално е бил предназначен за технически пресмятания. Информация за този
Подробно110 (Глава 2. Тензорен анализ 12. Диференциални операции в криволинейни координати Градиент на скаларно поле. Дефиницията (11.5) на градиента чр
0 (Глава 2. Тензорен анализ 2. Диференциални операции в криволинейни координати 2.. Градиент на скаларно поле. Дефиницията (.5) на градиента чрез производната по направление позволява лесно да намерим
ПодробноSlide 1
Списъци. Структура и синтаксис. Създаване и показване. Основни операции(добавяне, изваждане на елемент или цял подсписък; подреждане). Трансформации. проф. дмн С. Христова Списъци Списъците / list са основна
Подробно17
ЩЕ ИЗЧЕЗНЕ ЛИ БЪЛГАРСКАТА НАЦИЯ ПРЕЗ XXI ВЕК? Доц. д-р Стефан Стефанов катедра "Математика и статистика" СА "Д. А. Ценов" - Свищов (Продължение от брой 4/2003) Резюме: В работата се разглеждат измененията
Подробно14
ЩЕ ИЗЧЕЗНЕ ЛИ БЪЛГАРСКАТА НАЦИЯ ПРЕЗ XXI ВЕК? Доц. д-р Стефан Стефанов катедра "Математика и статистика" СА "Д. А. Ценов" - Свищов (Продължение от брой 1/003) Резюме: В работата се разглеждат измененията
Подробно_5. ???????????? ?3????????? ?? ????????????? ?? ?????????? ?? 2005 ?.
ЩЕ ИЗЧЕЗНЕ ЛИ БЪЛГАРСКАТА НАЦИЯ ПРЕЗ XXI ВЕК? Гл. ас. д-р Стефан Стефанов Катедра "Математика и статистика", СА "Д. А. Ценов" - Свищов (Продължение от брой 3) Резюме: В работата се разглеждат измененията
ПодробноMicrosoft Word - VypBIOL-02-Kin-Okryznost.doc
ВЪПРОС КИНЕМАТИКА НА ДВИЖЕНИЕТО НА МАТЕРИАЛНА ТОЧКА ПО ОКРЪЖНОСТ Във въпроса Кинематика на движението на материална точка по окръжност вие ще се запознаете със следните величини, понятия и закони, както
ПодробноMicrosoft Word - ProectB.doc
Епидемиологичен модел Целта, към която се стремим тук, е да се изследва как се разпространява заразно заболяване като функция на времето, предизвикано от малка група инфектирани индивиди, намиращи се сред
ПодробноЛинейна алгебра 7. Умножение на матрици. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс
. Обратими матрици. Матрични уравнения специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Кратка история Матричното умножение е въведено от немския математик
ПодробноHomework 3
Домашно 3 по дисциплината Дискретни структури за специалност Информатика I курс летен семестър на 2015/2016 уч г в СУ ФМИ Домашната работа се дава на асистента в началото на упражнението на 25 26 май 2016
ПодробноKontrolno 5, variant 1
N P - П Ъ Л Н И З А Д А Ч И КОНТРОЛНО 5 ПО ДИЗАЙН И АНАЛИЗ НА АЛГОРИТМИ СУ, ФМИ ( ЗА СПЕЦИАЛНОСТ КОМПЮТЪРНИ НАУКИ, 1. ПОТОК; 3 МАЙ 018 Г. ) Задача 1. Разглеждаме задачата за разпознаване LongestCycle:
ПодробноMicrosoft PowerPoint - DBoyadzhieva
: Изграждане на висококвалифицирани млади изследователи по съвременни информационни технологии за оптимизация, разпознаване на образи и подпомагане вземането на решения Минимизиране на броя на признаците
ПодробноMicrosoft Word - VM-LECTURE06.doc
Лекция 6 6 Уравнения на права и равнина Уравнение на права в равнината Тук ще разглеждаме равнина в която е зададена положително ориентирана декартова координатна система O с ортонормиран базис i и j по
ПодробноЛинейна алгебра 11. Собствени стойности и собствени вектори на матрица и линейно преобразувание. Диагонализиране на матрица специалности: Математика,
на матрица и линейно преобразувание. Диагонализиране на матрица специалности: Математика, Бизнес математика, Приложна математика, I курс лектор: Марта Теофилова Собствени стойности и собствени вектори
ПодробноЛекция Приложение на линейната многопроменлива регресия за изчисляване на топлини на образуване на алкани Дефиниция на топлина на образуване Топлина н
Лекция Приложение на линейната многопроменлива регресия за изчисляване на топлини на образуване на алкани Дефиниция на топлина на образуване Топлина на образуване на едно химично съединение се нарича енталпията
ПодробноМашинно обучение - въведение
Машинно обучение - въведение Доц. д-р Ивайло Пенев Кат. Компютърни науки и технологии Примери за машинно обучение Извличане на данни (database mining) натрупване на данни от web, напр. действия на потребители
ПодробноРекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари
Рекурсия Трифон Трифонов Увод в програмирането, спец. Компютърни науки, 1 поток, спец. Софтуерно инженерство, 2016/17 г. 21 декември 2016 г. 4 януари 2017 г. Трифон Трифонов (УП 16/17) Рекурсия 21.12.16
ПодробноMicrosoft Word - Kursov_proekt_po_IO
ЗАДАНИЕ ЗА КУРСОВ ПРОЕКТ ПО ДИСЦИПЛИНАТА ИЗСЛЕДВАНЕ НА ОПЕРАЦИИТЕ, ОКС бакалавър, специалност Индустриален мениджмънт, редовно обучение. (1331) На фиг. 1 е дадена транспортна мрежа. В нея върховете са
ПодробноМОДУЛ 2 ВАРИАНТ НА ПРАКТИЧЕСКА ЗАДАЧА ЗА НАЦИОНАЛНО ОНЛАЙН ОЦЕНЯВАНЕ НА ДИГИТАЛНИ КОМПЕТЕНТНОСТИ X КЛАС от 2016 г. УСЛОВИЕ НА ЗАДАЧАТА За тази задача
МОДУЛ 2 ВАРИАНТ НА ПРАКТИЧЕСКА ЗАДАЧА ЗА НАЦИОНАЛНО ОНЛАЙН ОЦЕНЯВАНЕ НА ДИГИТАЛНИ КОМПЕТЕНТНОСТИ X КЛАС от 2016 г. УСЛОВИЕ НА ЗАДАЧАТА За тази задача са предоставени данни във файл Climate.xls, който ще
ПодробноMicrosoft Word - PRMAT sec99.doc
Лекция 9 9 Изследване на функция Растене, намаляване и екстремуми В тази лекция ще изследваме особеностите на релефа на графиката на дадена функция в зависимост от поведението на нейната производна Основните
Подробно15
ЩЕ ИЗЧЕЗНЕ ЛИ БЪЛГАРСКАТА НАЦИЯ ПРЕЗ XXI ВЕК? Доц. д-р Стефан Стефанов катедра "Математика и статистика" СА "Д. А. Ценов" - Свищов (Продължение от брой 2/2003) Резюме: В работата се разглеждат измененията
ПодробноMicrosoft Word - VypBIOL-01-kinematika.doc
ВЪПРОС 1 КИНЕМАТИКА НА МАТЕРИАЛНА ТОЧКА ОСНОВНИ ПОНЯТИЯ И ВЕЛИЧИНИ Във въпроса Кинематика на материална точка основни понятия и величини вие ще се запознаете със следните величини, понятия и закони, както
ПодробноЛекция Многокомпонентен анализ на смеси чрез техните УВ-Вид спектри.. Електронни спектри на смес от вещества. Обикновено UV/Vis спектър на едно вещест
Лекция Многокомпонентен анализ на смеси чрез техните УВ-Вид спектри.. Електронни спектри на смес от вещества. Обикновено UV/Vis спектър на едно вещество се измерва в региона от 200 до 900 nm. За коя да
Подробноmunss2.dvi
ОТГОВОРИ И РЕШЕНИЯ 3(x + y)(x xy + y )y(x y) 1. (Б) Преобразуваме: (x y)(x + y)(x + y ) x(x xy + y ) = 3y (x + y)(x y) x = (x + y ) 3 y x y x x + y = 3 y x (x y ) 1 ( x y ) + 1 = 3 ( 3 ) 1 9 3 ( 3 ) +
ПодробноСеминар Класификация по разстоянието до центроидите на извадката Задача От лекциите по Аналитична геометрия си припомнете уравнението за равнина в три
Семинар Класификация по разстоянието до центроидите на извадката От лекциите по Аналитична геометрия си припомнете уравнението за равнина в тримерното пространство. Обобщете уравнението за случая на N-мерно
ПодробноMicrosoft Word - VypBIOL-06-rabota.doc
ВЪПРОС 6 МЕХАНИЧНА РАБОТА И МОЩНОСТ КИНЕТИЧНА И ПОТЕНЦИАЛНА ЕНЕРГИЯ Във въпроса Механична работа и мощност Кинетична и потенциална енергия вие ще се запознаете със следните величини, понятия и закони,
Подробно(не)разложимост на полиноми с рационални коефициенти Велико Дончев Допълнителен материал за студентите по Висша алгебра и Алгебра 2 на ФМИ 1 Предварит
(не)разложимост на полиноми с рационални коефициенти Велико Дончев Допълнителен материал за студентите по Висша алгебра и Алгебра 2 на ФМИ 1 Предварителни сведения и твърдения Както е ясно от основната
ПодробноРешения на задачите от Тема на месеца за м. март 2018 Даден е многоъгълник, който трябва да бъде нарязан на триъгълници. Разрязването става от връх къ
Решения на задачите от Тема на месеца за м. март 2018 Даден е многоъгълник, който трябва да бъде нарязан на триъгълници. Разрязването става от връх към несъседен връх и открай до край, без линиите на разрезите
Подробно