Как да приложим линейна регресия за машинно обучение?



Тази статия обхваща концепцията за линейна регресия за машинно обучение с различни терминологии и случай на употреба за реализиране на линейна регресия.

Фокусът на се върти около входните и изходните променливи, използвайки алгоритъм за прогнозиране на резултата. Ако в картината се появи нова входна променлива. Алгоритъм на линейна регресия в е контролирана техника за обучение за сближаване на функцията за картографиране, за да получите най-добрите прогнози. В тази статия ще научим за линейната регресия за машинно обучение. Следните теми са обсъдени в този блог.

Какво е регресия?

Основната цел на регресията е изграждането на ефективен модел за прогнозиране на зависимите атрибути от куп променливи на атрибутите. Проблем с регресията е, когато изходната променлива е или реална, или непрекъсната стойност, т.е. заплата, тегло, площ и т.н.





Можем също така да определим регресията като статистическо средство, което се използва в приложения като жилища, инвестиции и др. Използва се за прогнозиране на връзката между зависима променлива и куп независими променливи. Нека да разгледаме различните видове техники на регресия.

пример-линейна регресия в машинното обучение - edureka

Видове регресия

Следват типовете регресия.



  1. Проста линейна регресия
  2. Полиномиална регресия
  3. Подкрепете векторната регресия
  4. Регресия на дървото на решенията
  5. Случайна горска регресия

Проста линейна регресия

Една от най-интересните и често срещани техники на регресия е простата линейна регресия. В това, ние прогнозираме резултата от зависима променлива въз основа на независимите променливи, връзката между променливите е линейна. Следователно думата линейна регресия.

Полиномиална регресия

В тази техника на регресия ние трансформираме оригиналните характеристики в полиномиални характеристики на дадена степен и след това извършваме регресия върху нея.

Подкрепете векторната регресия

За регресия или SVR, ние идентифицираме хиперплан с максимален марж, така че максималният брой точки от данни да е в рамките на тези полета. Той е доста подобен на алгоритъма за класификация на машината за поддръжка на вектор.



Регресия на дървото на решенията

ДА СЕ може да се използва както за регресия, така и за . В случай на регресия използваме алгоритъма ID3 (Итеративен дихотомайзер 3), за да идентифицираме разделителния възел чрез намаляване на стандартното отклонение.

как да направите свързан списък в c

Случайна горска регресия

В случайна регресия на горите, ние събираме предсказанията на няколко регресии на дървото на решенията. Сега, когато знаем за различните видове регресия, нека разгледаме подробно простата линейна регресия.

Какво е линейна регресия?

Простата линейна регресия е техника на регресия, при която независимата променлива има линейна връзка със зависимата променлива. Правата линия в диаграмата е най-подходящата линия. Основната цел на простата линейна регресия е да се разгледат дадените точки от данни и да се начертае най-подходящата линия, която да пасне на модела по възможно най-добрия начин.

Преди да преминем към начина на работа на алгоритъма за линейна регресия, нека разгледаме няколко важни терминологии в простата линейна регресия.

Терминологии с линейна регресия

Следните терминологии са важни, за да бъдат запознати, преди да преминете към алгоритъма за линейна регресия.

Функция на разходите

Най-подходящата линия може да се основава на линейното уравнение, дадено по-долу.

  • Зависимата променлива, която трябва да се предскаже, се обозначава с Y.
  • Правата, която докосва оста y, се обозначава с пресичането b0.
  • бедине наклонът на линията, x представлява независимите променливи, които определят прогнозата на Y.
  • Грешката в резултантното прогнозиране се обозначава с e.

Функцията за разходи предоставя най-добрите възможни стойности за b0и бединза да направите най-подходящата линия за точките с данни. Правим го, като преобразуваме този проблем в проблем за минимизиране, за да получим най-добрите стойности за b0и бедин. Грешката е сведена до минимум при този проблем между действителната стойност и прогнозираната стойност.

Избираме горната функция, за да минимизираме грешката. Квадратираме разликата в грешките и сумираме грешката по всички точки от данните, разделяйки между общия брой точки от данни. След това, произведената стойност предоставя усреднената квадратна грешка за всички точки от данни.

Той е известен също като MSE (средна квадратична грешка) и променяме стойностите на b0и бединтака че стойността на MSE да бъде уредена на минимум.

Градиентно спускане

Следващата важна терминология за разбиране на линейната регресия е градиентно спускане. Това е метод за актуализиране на b0и бединстойности за намаляване на MSE. Идеята зад това е да продължи да повтаря b0и бединстойности, докато намалим MSE до минимум.

За актуализиране b0и бедин, вземаме градиенти от функцията за разходи. За да намерим тези градиенти, вземаме частични производни по отношение на b0и бедин. Тези частични производни са градиентите и се използват за актуализиране на стойностите на b0и бедин.

По-ниската скорост на обучение се доближава до минимума, но отнема повече време и в случай на по-голяма степен на обучение. Времето е по-рано, но има шанс да се надхвърли минималната стойност. След като приключихме с терминологиите в линейната регресия, нека разгледаме няколко предимства и недостатъци на линейната регресия за машинно обучение.

Предимства и недостатъци

Предимства Недостатъци
Линейната регресия се представя изключително добре за линейно разделими данниДопускането за линейност между зависими и независими променливи
По-лесно за изпълнение, тълкуване и ефективно обучениеЧесто е доста склонен към шум и пренастройване
Той се справя доста добре с преоборудването, използвайки техники за редукция на размерите, регуларизация и кръстосано валидиранеЛинейната регресия е доста чувствителна към отклоненията
Още едно предимство е екстраполацията извън определен набор от данниСклонна е към мултиколинеарност

Случаи на използване на линейна регресия

  • Прогнозиране на продажбите

  • Анализ на риска

  • Приложения за жилища за прогнозиране на цените и други фактори

    стойност по подразбиране на char в java
  • Финансови приложения за прогнозиране на цените на акциите, оценка на инвестициите и др.

Основната идея зад линейната регресия е да се намери връзката между зависимите и независимите променливи. Използва се за получаване на най-подходящата линия, която би предсказала резултата с най-малка грешка. Можем да използваме линейна регресия в прости ситуации от реалния живот, като например предсказване на SAT резултатите по отношение на броя часове на обучение и други решаващи фактори.

Имайки предвид това, нека да разгледаме един случай на употреба.

Случай на употреба - Прилагане на линейна регресия

Процесът се извършва в следните стъпки:

  1. Зареждане на данните
  2. Проучване на данните
  3. Нарязване на данните
  4. Данни за влак и разделяне
  5. Генериране на модела
  6. Оценете точността

Нека да влезем в детайлите на всяка от стъпките за прилагане на линейна регресия.

1. Зареждане на данните

Можем да започнем с основния набор от данни за диабета, който вече присъства в модула за набори от данни sklearn (scikit-learn), за да започнем нашето пътуване с линейна регресия.

от sklearn импортиране на набори от данни болест = datasets.load_diabetes () print (болест)

Изход:

2. Проучване на данните

След като приключим с зареждането на данните, можем да започнем да изследваме, като просто проверим етикетите, като използваме следния код.

импортиране на sqoop от oracle към hdfs
печат (болест.клавиши ())

Изход:

Горният код дава всички етикети от набора от данни, след това можем да нарязваме данните, така че да можем да начертаем реда в края. Също така ще използваме всички точки от данни, засега ще отрежем колона 2 от данните.

импортиране на numpy като np disease_X = disease.data [:, np.newaxis, 2] print (disease_X)

Изход:

След тази стъпка ще разделим данните на тренировъчен и тестов набор.

3. Разделяне на данните

болест_X_train = болест_X [: - 30] болест_X_test = болест_X [-20:] болест_Y_train = болест.цел [: - 30] болест_Y_test = болест.цел [-20:]

Следващата част включва генериране на модела, който ще включва импортиране на linear_model от sklearn.

4. Генериране на модела

от sklearn импортиране linear_model reg = linear_model.LinearRegression () reg.fit (болест_X_train, болест_Y_train) y_predict = reg.predict (болест_X_test)

За да оценим точността на модела, ще използваме средната квадратична грешка от scikit-learn.

5. Оценка

точност = средна_квадратична грешка (болест_Y_test, y_predict,) печат (точност) тежести = reg.coef_ intercept = reg.intercept_ print (тежести, прихващане)

Изход:

За да бъдем по-ясни как изглеждат точките с данни на графиката, нека начертаем и графиките.

импортирайте matplotlib.pyplot като plt plt.scatter (болест_X_test, болест_Y_test) plt.plot (болест_X_test, y_predict) plt.show ()

Изход:

За да получим по-точен модел в този сценарий, можем да използваме всички данни вместо само колона 2. Това би дало точност, както е показано по-долу:

# направете малка промяна в кода по-горе и премахнете кода за начертаване, за да избегнете грешки disease_X = disease.data

Изход:

Това ни води до края на тази статия, където научихме за линейната регресия за машинно обучение. Надявам се, че сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Линейна регресия за машинно обучение“ подходяща, разгледайте доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Линейна регресия за машинно обучение“ и нашият екип ще се радва да отговори.