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

Как я изучаю машину обучения – неделю 7: Организация данных с Scikit-Learn

Теперь, когда мы знаем основы пакетов Python, посвященные изучению машины, мы можем посмотреть на S … с меткой программирования, Python, MachineLearning, Ai.

Теперь, когда мы знаем Основы пакетов Python, посвященные изучению машины, мы можем изучить Scikit Surlection, чтобы начать делать что-то практическое и увидеть некоторые модели

Таблица контента:

  • Организация данных
  • Разделение данных
  • Одна горячая кодировка
  • Отсутствующие значения
  • Последние мысли

Организация данных

Перед началом проекта важно Организовать Наши данные сначала. Как мы уже знаем Мы разделяем наш набор набора набор на 3 части: Обучение , Валидация и задавать . Мы собираем данные из CSV, поэтому мы начнем импортировать все пакеты, которые нам нужны:

# imports:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

Ибо тогда быстро посмотреть набор данных:

Разделение данных

Теперь, когда мы знаем наш набор данных, пришло время разделить их на тренировку и тест. Для этого мы впервые повторно организуем данные:

Мы создали ось X в качестве нашего DataFrame без столбца высоты, используя функцию Drop, а затем создали ось Y как только в колонке высоты

Теперь мы можем Сплит Наш набор данных в тренировках и тестовых наборах с использованием специализированной функции Scikit-Learn rain_test_split. :

Одна горячая кодировка

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

После того, как одна горячая закодирована, это было бы похоже на это:

Теперь мы можем приступить к одному горячему кодированию, наш код будет:

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer
categorical_features = ['Position', 'Team']
# transforming the columns
transformer = ColumnTransformer([('one_hot',
                                  OneHotEncoder(),
                                  categorical_features)])
encoded_features = transformer.fit_transform(x_axis)
encoded_features

Сначала мы создаем трансформатор Используя выделенную функцию, которая принимает аргумент, на массиве кортежей (в этом случае только один), где каждый кортеж имеет параметры имени, объект, в нашем случае кодировщик и столбцы, которые мы собрали вместе в список. Затем мы используем fit_transform Функция на растунат Все результаты, чтобы положить их в переменную. Выход из него будет похоже на:

<1033x39 sparse matrix of type ''
    with 2066 stored elements in Compressed Sparse Row format>

Если мы хотим увидеть, что действительно произошло, мы могли бы сделать то же самое, но с пандами get_dummies Функция:

Оба решения будут привести к тому же кодированию, которое нам нужно.

Отсутствующие значения

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

Как всегда, мы начинаем импортировать наш набор данных, ссылку здесь Ибо тогда быстро посмотри на это

Мы можем тогда ConcateNate Две функции, чтобы узнать, сколько отсутствующих значений в наборе данных:

  • ISNA () Возвращает dataframe с каждым значением, замененным на True или false, отсутствует ли элемент отсутствует
  • сумма () Сумма того, сколько значений отсутствует

Теперь мы должны разделить dataframe в ось x и y на тренировку и тестируйте для того, чтобы иметь возможность обрабатывать недостающие значения:

Теперь, когда наши данные готовы, мы можем вменять (заполнение) наши данные. Наш код будет похож на это:

# imputing is a term used to fill missing values
from sklearn.impute import SimpleImputer
from sklearn.compose import ColumnTransformer

# filling the numerical values with their mean
num_imputer = SimpleImputer(strategy = 'mean')

# defining the columns
num_features = ['Prefix', 'Assignment', 'Tutorial','Midterm', 'TakeHome']

# creating the imputer
imputer = ColumnTransformer([
    ('num_features', num_imputer, num_features)
])

# filling train and test
filled_x_train = imputer.fit_transform(x_train)
filled_x_test = imputer.transform(x_test)

#checking the result
filled_x_train[:5]

После импортированных библиотеки мы заполнили в среднем каждой столбце) Установка трансформатор Ибо тогда создание массива со всеми столбцами, которые мы должны заполнить. Затем мы можем создать Имиссивчик С помощью функции ColumnTransformer принимает в качестве параметра массив кортежей (то же самое, что и раньше), где каждый кортеж имеет три элемента: имя, трансформатор и где применить трансформатор (имя столбцов) Наконец, мы создаем переменные, где мы трансформируем и помещаем тест для проверки наших результатов.

Таким образом, мы имеем наш набор набора данных с каждым пропущенным значением. Если бы у нас будет какая-либо строка, мы бы создали бы трансформатор, похожий на

name_imputer = SimpleImputer(strategy="constant", fill_value="missing")

заполнить все нетостные строки с отсутствием. Хорошая статья, которая идет глубже в столбценцер, это этот Мастерство машинного обучения

Последние мысли

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

Оригинал: “https://dev.to/gabrieleboccarusso/how-i-am-learning-machine-learning-week-7-scikit-learn-part-one-1m2g”