В тази конкретна публикация ще научим как да внедрим прост прогнозен модел за линейна регресия на House Price scikit в платформата на Google AI.
Използват се следните технологии и системи:
- Набор от данни [Справка от уебсайта на Kaggle]
- Google Colab [преносима среда на Jupyter за разработване на модела]
- Google Cloud Shell [За взаимодействие с компонентите на платформата Google Cloud]
- Google Cloud AI Platform [За внедряване на разработения прогнозен модел]
Една от полезните възможности на Google AI Platform е да управлява предсказуемите модели за машинно обучение по икономически ефективен начин. Специфичните за клиента приложения са отделени от работните процеси на ML. Това е ефективен начин за обслужване на моделите. Платформата AI се грижи за автоматичното мащабиране.
Разработете прогнозен модел от набора от данни
Разработването на ефективен модел е извън обхвата на тази публикация. Ще се позоваваме на процеса от четири стъпки — подготовка на данни, анализ на данни, разработване на модел и внедряване на модел
Стъпка 1: Вземете набора от данни
От набора от данни идентифицирайте характеристиките, които определят цената на къщата. В този пример използвайте следния набор от данни за цените на жилищата от уебсайта на Kaggle.
Стъпка 2: Използвайте Google Colab за разработване на модела
За разработването на модела използвайте сътрудничеството на Google, което е среда на преносим компютър Jupyter. Вижте по-долу относно настройката и достъпа:
Стъпка 3: Ключови изводи от разработването на модела
а. Идентифицирайте основните характеристики, които влияят на цените на жилищата
b. Изграждане на модел
Подготовка на данните
Идентифицирайте ключовите характеристики, които влияят върху цените на жилищата, и адресирайте проблемите, присъстващи в набора от данни.
Забележка: Импортирайте набора от данни в устройството на Google и го монтирайте към бележника.
Импортирайте съответните пакети на Python и заредете набора от данни
Анализ на данни
Идентифицирайте типовете данни [числови и категорични], налични в набора от данни
- В коя държава са къщите?
- В какво състояние са тези къщи?
- Средната цена на къщата?
Намерете връзката между броя на спалните и цената на къщата. Като цяло, колкото по-голям е броят на спалните, толкова по-висока е цената.
Получете ценова разбивка за всяка група спални
Извод от горната стъпка:
- Има 2 къщи с 0 спални
- Има максимално отклонение в няколко спални с 3
- Има само една къща с 9 спални и може да е далече от града. Ако искаме да разгледаме няколко спални като предиктор в нашия модел, тогава трябва да направим нещо
- Някои къщи имат цена нула
Нека се справим с проблема: Къщи с нулеви цени
Извод от горната стъпка:
- Blueline е разпределението на цените
- Черната линия е нормалното разпределение
Имаме 3 проблема:
- Къщи с 0 спални
- Огромна разлика от почти 27 милиона долара — 50 пъти повече от цената на нормална къща
- 49 Къщи без цена
Разработете нова рамка с данни без проблем 1, 2 и 3
Разработване на модел
Преместете съответните характеристики в рамката с данни X и предвидете етикети в рамката с данни y
Разделете y и X в набори от данни за обучение и тестване
Обучете основния модел на множествена регресия и отпечатайте коефициентите
Извод от горната стъпка:
Въз основа на коефициентите:
- Има печалба от $170k [1,712 x (10⁵)] за една промяна на стойността в изгледа
- Очевидно не е страхотен модел
Внедряване на модел
Експортирайте модел като pkl файл
Разположете модела в Google AI Platform
Стъпка 1: Инсталирайте Google Cloud SDK
Вижте по-долу относно инсталирането на Google Cloud SDK
Стъпка 2: Създайте и качете модела в кофата за съхранение в облак
Създайте отделна кофа за съхранение, специфична за региона, за да съхранявате файловете на модела. За целите на разбирането дайте ai-модели като точка на разширение на кофата.
gsutil mb -c standard -l us-east1 gs://BUCKET_NAME-ai-models
Уверете се, че файлът на модела е във формат pickle [model.pkl] или във формат на joblib [model.joblib].
Отидете до папката с изтегления модел и изпълнете командата за копиране
gsutil cp ./model.pkl gs://YOUR_BUCKET/model.pkl
Забележка: Уверете се, че акаунтът за IAM услуга има достъп до кофата за съхранение
gsutil -m acl ch -u [email protected]:R -r gs://YOUR_BUCKET
Стъпка 3: Създайте модела в платформата на Google AI
Следващата команда създава модел.
gcloud ai-platform models create HousePriceLinearRegression --region=us-east1
Проверете същото в Google Cloud Console
Стъпка 4: Създайте изпълнимо състояние на версия на модел
Изпълнете следната команда, за да създадете модела
Забележка: Атрибутите са според създадения модел. Рамка — scikit-learn, версия на python — 3.7
gcloud ai-platform versions create HousePricePredV1 --model=HousePriceLinearRegression --origin=gs://YOUR_BUCKET/HousePricePrediction --runtime-version=2.2 --framework=scikit-learn --python-version=3.7 --region=us-east1 --machine-type=n1-standard-2
Проверете внедрената версия в Google Cloud Console
Тествайте разгърнатия прогнозен модел
- Щракнете върху внедрената версия на модела и отворете раздела Тестване и използване
- Предоставете входните json данни на модела
Поздравления за успешното внедряване на прост модел за прогнозиране на scikit-learn в Google AI Platform :)