|
|
1 month ago | |
|---|---|---|
| .. | ||
| solution | 7 months ago | |
| README.md | 1 month ago | |
| assignment.md | 7 months ago | |
| notebook.ipynb | 12 months ago | |
README.md
Започнете с Python и Scikit-learn за регресионни модели
Скицник от Tomomi Imura
Квиз преди лекцията
Този урок е наличен и на R!
Въведение
В тези четири урока ще откриете как да изграждате регресионни модели. Скоро ще обсъдим за какво служат те. Но преди да започнете каквото и да е, уверете се, че имате правилните инструменти за започване на процеса!
В този урок ще научите как да:
- Конфигурирате вашия компютър за локални задачи за машинно обучение.
- Работите с Jupyter Notebooks.
- Използвате Scikit-learn, включително инсталация.
- Изследвате линейната регресия чрез практически упражнение.
Инсталации и конфигурации
🎥 Кликнете върху изображението горе за кратко видео със стъпките за конфигуриране на компютъра за ML.
-
Инсталирайте Python. Уверете се, че на вашия компютър е инсталиран Python. Ще използвате Python за много задачи в науката за данни и машинното обучение. Повечето компютърни системи вече включват инсталация на Python. Има полезни Python пакети за кодиране, които улесняват настройката за някои потребители.
Някои употреби на Python обаче изискват една версия на софтуера, а други - различна версия. Поради тази причина е полезно да работите в виртуална среда.
-
Инсталирайте Visual Studio Code. Уверете се, че имате инсталиран Visual Studio Code на компютъра си. Следвайте тези инструкции, за да инсталирате Visual Studio Code. Ще използвате Python във Visual Studio Code в този курс, затова може да искате да научите как да конфигурирате Visual Studio Code за Python разработка.
Запознайте се с Python чрез този сбор от учебни модули
🎥 Кликнете върху изображението горе за видео: използване на Python във VS Code.
-
Инсталирайте Scikit-learn, като следвате тези инструкции. Тъй като трябва да използвате Python 3, препоръчително е да използвате виртуална среда. Забележете, ако инсталирате тази библиотека на M1 Mac, има специални инструкции на гореспоменатия сайт.
-
Инсталирайте Jupyter Notebook. Трябва да инсталирате пакета Jupyter.
Вашата среда за разработка на ML
Ще използвате notebooks за разработка на Python код и създаване на модели за машинно обучение. Този тип файлове е общ инструмент за специалисти по данни, и могат да бъдат разпознати по суфикса или разширението .ipynb.
Notebooks са интерактивна среда, която позволява на разработчика както да кодира, така и да добавя бележки и документация около кода, което е много полезно за експериментални или изследователски проекти.
🎥 Кликнете върху изображението горе за кратко видео с упражнението.
Упражнение - работа с notebook
В тази папка ще намерите файла notebook.ipynb.
-
Отворете notebook.ipynb във Visual Studio Code.
Ще стартира Jupyter сървър с Python 3+. Ще намерите области на notebook-а, които могат да се
изпълнят, парчета код. Можете да стартирате блок код, като изберете иконата, която прилича на бутон за пускане. -
Изберете иконата
mdи добавете малко markdown с текста # Добре дошли във вашия notebook.След това добавете малко Python код.
-
Въведете print('hello notebook') в блока с код.
-
Изберете стрелката, за да стартирате кода.
Трябва да видите отпечатаното изявление:
hello notebook
Можете да редувате вашия код с коментари, за да документирате notebook-а.
✅ Помислете за момент колко различна е работната среда на уеб разработчик спрямо тази на специалист по данни.
Натам и с Scikit-learn
Сега, когато Python е настроен във вашата локална среда и сте уверени с Jupyter Notebooks, нека се запознаем и с Scikit-learn (произнася се 'сай', както в 'science'). Scikit-learn предоставя обширен API, който да ви помогне с машинно-обучителни задачи.
Според техния уебсайт, "Scikit-learn е библиотека с отворен код за машинно обучение, която поддържа надзирано и ненадзирано обучение. Тя също така предоставя различни инструменти за настройка на модели, предварителна обработка на данни, избор и оценка на модели и много други."
В този курс ще използвате Scikit-learn и други инструменти за изграждане на модели за машинно обучение, които изпълняват това, което наричаме 'традиционни задачи за машинно обучение'. Целенасочено сме избегнали невронните мрежи и дълбокото обучение, понеже те се разглеждат по-добре в предстоящия ни курс 'ИИ за начинаещи'.
Scikit-learn улеснява изграждането и оценката на модели за използване. Тя е основно фокусирана върху числови данни и включва няколко готови набора от данни за учене. Също така включва предварително изградени модели за изпробване от студенти. Нека първо да разгледаме процеса на зареждане на предварително пакетирани данни и използване на вграден оценител - първи ML модел със Scikit-learn с някои основни данни.
Упражнение - вашият първи Scikit-learn notebook
Този урок е вдъхновен от пример за линейна регресия на уебсайта на Scikit-learn.
🎥 Кликнете върху изображението горе за кратко видео с упражнението.
Във файла notebook.ipynb, свързан с този урок, изчистете всички клетки, като натиснете иконата на 'кошче'.
В тази секция ще работите с малък набор от данни за диабет, вграден в Scikit-learn за учебни цели. Представете си, че искате да тествате лечение за диабетни пациенти. Моделите за машинно обучение може да ви помогнат да определите кои пациенти биха реагирали по-добре на лечението, базирайки се на комбинации от променливи. Дори много основен регресионен модел, визуализиран, може да покаже информация за променливи, която би помогнала при организирането на теоретични клинични изпитвания.
✅ Има много видове регресионни методи, и кой ще изберете зависи от въпроса, който търсите да отговорите. Ако искате да предскажете вероятна височина за човек на определена възраст, ще използвате линейна регресия, тъй като търсите числова стойност. Ако ви интересува дали даден тип кухня трябва да се счита за веганска или не, търсите класовa принадлежност, затова ще използвате логистична регресия. Ще научите повече за логистичната регресия по-нататък. Помислете малко за някои въпроси, които можете да зададете на данни, и кой от тези методи би бил по-подходящ.
Нека започнем с тази задача.
Импортиране на библиотеки
За тази задача ще импортираме някои библиотеки:
- matplotlib. Полезен инструмент за графики, който ще използваме за създаване на линейна графика.
- numpy. numpy е полезна библиотека за работа с числови данни в Python.
- sklearn. Това е библиотеката Scikit-learn.
Импортирайте някои библиотеки, за да помогнете с вашите задачи.
-
Добавете импорти, като въведете следния код:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionПо-горе импортирате
matplotlib,numpyи импортиратеdatasets,linear_modelиmodel_selectionотsklearn.model_selectionсе използва за разделяне на данните на обучителен и тестов комплект.
Наборът от данни за диабет
Вграденият набор от данни за диабет включва 442 проби с данни за диабет с 10 характеристични променливи, някои от които са:
- възраст: възраст в години
- bmi: индекс на телесна маса
- bp: средно кръвно налягане
- s1 tc: T-клетки (вид бели кръвни клетки)
✅ Този набор от данни включва концепцията „пол“ като важна характеристична променлива за изследвания, свързани с диабета. Много медицински набори от данни включват този вид бинарна класификация. Помислете как такива категоризации могат да изключат определени части от населението от лечението.
Сега заредете данните X и y.
🎓 Запомнете, че това е надзиравано обучение, и ни трябва именована цел 'y'.
В нов кодов блок заредете набора от данни за диабет, като извикате load_diabetes(). Параметърът return_X_y=True указва, че X ще бъде матрица от данни, а y ще бъде целят за регресия.
-
Добавете някои команди за печат, за да покажете размера на матрицата и първия й елемент:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Това, което връщате като отговор, е кортеж. Това, което правите, е да присвоите първите две стойности на кортежа на
Xиyсъответно. Научете повече за кортежите.Можете да видите, че този набор има 442 елемента, подредени в масиви с по 10 елемента:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Помислете малко за връзката между данните и целта на регресията. Линейната регресия предсказва връзки между характеристика X и целева променлива y. Можете ли да намерите цела за набора от данни за диабет в документацията? Какво демонстрира този набор от данни, предвид тази цел?
-
След това изберете част от този набор за изобразяване, като изберете 3-тата колона на набора. Можете да го направите, като използвате оператора
:за избиране на всички редове, след което изберете 3-тата колона с индекс (2). Можете също да преформатирате данните в 2D масив - както е необходимо за изчертаване - чрез използване наreshape(n_rows, n_columns). Ако един от параметрите е -1, съответното измерение се изчислява автоматично.X = X[:, 2] X = X.reshape((-1,1))✅ По всяко време отпечатвайте данните, за да проверите формата им.
-
Сега, когато имате данни, готови за изобразяване, можете да видите дали машината може да помогне за определяне на логично разделяне между числата в набора. За целта трябва да разделите както данните (X), така и целта (y) на тестови и обучителни множества. Scikit-learn има лесен начин да направите това; можете да разделите тестовите си данни в даден момент.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Сега сте готови да обучите модела! Заредете линейния регресионен модел и го обучете с вашите обучителни множества X и y, използвайки
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()е функция, която ще срещнете в много ML библиотеки като TensorFlow -
След това направете прогноза, използвайки тестовите данни, с функцията
predict(). Това ще се използва за изчертаване на линия между групите данни.y_pred = model.predict(X_test) -
Сега е време да покажете данните в графика. Matplotlib е много полезен инструмент за тази задача. Създайте scatterplot на всички тестови данни X и y и използвайте прогнозата, за да нарисувате линия на най-подходящото място между групите данни на модела.
plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show()✅ Помислете малко върху това, което се случва тук. Една права линия преминава през множество малки точки с данни, но какво точно прави тя? Виждате ли как трябва да можете да използвате тази линия, за да предскажете къде нова, ненаблюдавана точка данни би трябвало да се разположи спрямо оста y на графиката? Опитайте да изразите с думи практическото приложение на този модел.
Поздравления, създадохте първия си модел за линейна регресия, направихте прогноза с него и го визуализирахте в графика!
🚀Предизвикателство
Начертайте друга променлива от този набор от данни. Подсказка: редактирайте този ред: X = X[:,2]. Като имате предвид целта на този набор от данни, какво можете да откриете за прогресията на диабета като заболяване?
Куиз след лекцията
Преглед и Самостоятелно обучение
В този урок работихте с проста линейна регресия, а не с унарна или множествена линейна регресия. Прочетете малко за разликите между тези методи или разгледайте това видео
Прочетете повече за концепцията за регресия и помислете какви въпроси могат да бъдат отговорени чрез тази техника. Вземете този урок, за да задълбочите разбирането си.
Задача
Отказ от отговорност: Този документ е преведен с помощта на AI преводачески услуга Co-op Translator. Въпреки че се стремим към точност, моля имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да е недоразумения или неправилни тълкувания, произтичащи от използването на този превод.






