Рубрики
Без рубрики

30 дней Python 👨💻 – день 28- ML & Data Science II

Сегодня я исследовал библиотеку Scikit-Learn и создал проект ноутбука, чтобы пройти некоторые из основных … Помечено Python, науки о данных, машинном обучении, вызове.

Сегодня я исследовал Scikit – Учите Библиотека и создали проект ноутбука, чтобы пройти некоторые основы и попробуйте создать модель машинного обучения. SCIKIT-SULL – это огромная библиотека, и требует много практики и разведки, чтобы получить об этом. Я следовал некоторым учебным пособиям и статьям, чтобы попробовать создать простой классификатор модели, чтобы выяснить, как она работает. Это выглядело немного запугивать для меня Но я решил создать базовый рабочий процесс в ноутбуке Jupyter, чтобы я мог использовать его в качестве ссылки, когда я решаю погрузиться глубоко в домену ML и Data Data.

Scikit-Surve – популярная библиотека Python для изучения машины. Scikit-Suarn может обработать данные, предоставляемые ему, и создают модели обучения машин для изучения шаблонов в данных и предоставляют прогнозы, используя его инструменты.

Почему Scikit – учись?

  • Построен сверху Numpy и Matplotlib библиотек
  • Имеет тонны встроенных моделей машин
  • Много методов для оценки моделей машинного обучения
  • Легко понять и Хорошо спроектированная API

Обычно машинное обучение может быть немного подавляющим, поскольку он включает в себя сложные алгоритмы и статистику для анализа данных. Scikit – узнайте резонацию этой сложности и облегчает создание моделей и обучать их без необходимости знать о математике и статистике.

Вот тетрадь, которую я создал сегодня. Ссылка на репозиторий GitHub – https://github.com/arindamdawn/jupyter_notebooks.

Эта ноутбука охватывает некоторые основы удивительной библиотеки Python Scikit-Suart. Некоторые из важных случаев использования библиотеки были перечислены в этом ноутбуке, который можно использовать в качестве чит-листа для справки.

Некоторые из охваченных тем:

  1. Получать данные готов
  2. Выбор соответствующего алгоритма/оценки для конкретной проблемы
  3. Соответствовать модели/алгоритму, чтобы использовать его, чтобы сделать прогнозы на данные
  4. Оценка модели
  5. Улучшить модель
  6. Сохранение загрузки обученной модели

Получать данные готов

Данные, используемые для этого проекта, будут набор данных о заболевании сердца, доступные из https://www.kaggle.com/ronitf/heart-disease-uci.

import pandas as pd
import numpy as np
heart_disease = pd.read_csv('data/heart.csv')
heart_disease.head()
0 3 63 1 1 233 1 0 0 1 2.3 0 150 145 0
0 2 37 0 1 250 2 0 0 1 3.5 1 187 130 1
0 1 41 0 0 204 2 0 2 1 1.4 0 172 130 2
0 1 56 0 1 236 2 0 2 1 0.8 1 178 120 3
0 0 57 0 0 354 2 1 2 1 0.6 1 163 120 4

Цель состоит в том, чтобы предсказать на основе вышеуказанных данных, имеет ли у пациента болезнь сердца или нет. цель столбец определяет результат, а другие столбцы называются Особенности

# Create Features Matrix (X)
X = heart_disease.drop('target', axis=1)

# Create Labels (Y)
y = heart_disease['target']

Выберите подходящую модель/оценку для проблемы

Для этой проблемы мы будем использовать RandomForestClassifier Модель форма Sklenn, которая представляет собой классификационную модель машины обучения.

from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier()
clf.get_params() # lists the hyperparameters
{'bootstrap': True,
 'ccp_alpha': 0.0,
 'class_weight': None,
 'criterion': 'gini',
 'max_depth': None,
 'max_features': 'auto',
 'max_leaf_nodes': None,
 'max_samples': None,
 'min_impurity_decrease': 0.0,
 'min_impurity_split': None,
 'min_samples_leaf': 1,
 'min_samples_split': 2,
 'min_weight_fraction_leaf': 0.0,
 'n_estimators': 100,
 'n_jobs': None,
 'oob_score': False,
 'random_state': None,
 'verbose': 0,
 'warm_start': False}

Установите модель к учебным данным

На этом этапе модель разделена на обучение и тестирование данных

# fit the model to data
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2) 
# Means 20% of the data will be used as testing data
clf.fit(X_train, y_train);
# make prediction
y_label = clf.predict(np.array([0,2,3,4]))
y_preds = clf.predict(X_test)
y_preds
array([1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0,
       1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0,
       1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1], dtype=int64)
y_test.head()
72     1
116    1
107    1
262    0
162    1
Name: target, dtype: int64

Оценить модель

На этом шаге Модель в оценении в обучении данных и тестовых данных

clf.score(X_train, y_train)
1.0
clf.score(X_test, y_test)
0.7704918032786885
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score

print(classification_report(y_test, y_preds))
              precision    recall  f1-score   support

           0       0.77      0.71      0.74        28
           1       0.77      0.82      0.79        33

    accuracy                           0.77        61
   macro avg       0.77      0.77      0.77        61
weighted avg       0.77      0.77      0.77        61
print(confusion_matrix(y_test, y_preds))
[[20  8]
 [ 6 27]]
print(accuracy_score(y_test, y_preds))
0.7704918032786885

Улучшить модель

Этот шаг включает в себя улучшение модели, чтобы получить более точные результаты

# Try different amount of n_estimators
np.random.seed(42)
for i in range(1, 100, 10):
    print(f'Trying model with {i} estimators')
    clf = RandomForestClassifier(n_estimators=i).fit(X_train, y_train)
    print(f'Model accuracy on test set: {clf.score(X_test, y_test) * 100:.2f}%')
    print('')
Trying model with 1 estimators
Model accuracy on test set: 72.13%

Trying model with 11 estimators
Model accuracy on test set: 83.61%

Trying model with 21 estimators
Model accuracy on test set: 78.69%

Trying model with 31 estimators
Model accuracy on test set: 78.69%

Trying model with 41 estimators
Model accuracy on test set: 75.41%

Trying model with 51 estimators
Model accuracy on test set: 75.41%

Trying model with 61 estimators
Model accuracy on test set: 75.41%

Trying model with 71 estimators
Model accuracy on test set: 73.77%

Trying model with 81 estimators
Model accuracy on test set: 73.77%

Trying model with 91 estimators
Model accuracy on test set: 75.41%

Сохраните модель и загрузите ее

Будет использовать Парил Библиотека из Python, чтобы сохранить модель

import pickle

pickle.dump(clf, open('random_forest_model_1.pkl', 'wb'))

#load the model
loaded_model = pickle.load(open('random_forest_model_1.pkl','rb'))
loaded_model.score(X_test, y_test)
0.7540983606557377

Это все на сегодня. Поскольку машинное обучение и наука о данных – сама по себе океан, я решил посмотреть в нее более подробно, как после того, как после того, как после того, как после того, как после того, как после того, как будьте более искусными с его инструментами и концепциями поделитесь своим опытом в качестве постов и проектов в блоге. Для оставшихся двух частей этой проблемы я хотел бы исследовать такие домены, как тестирование автоматизации с Python, используя Selenium и создать еще один пост на компиляции ресурсов Python.

Иметь отличный!

Оригинал: “https://dev.to/arindamdawn/30-days-of-python-day-28-ml-data-science-ii-2739”