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

Учебная тетрадь

Посетите Jupyter Notebook, чтобы ознакомиться с концепциями, которые будут охватывать Создание моделей машинного обучения, и мой Medium Profile для других статей и руководств по науке о данных.

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

Шаблон для построения моделей машинного обучения

Эта записная книжка содержит шаблон кода, необходимого для создания основных алгоритмов машинного обучения. В рамках scikit-learn у нас есть несколько готовых алгоритмов. Просто настройте параметры, наполните их данными, проведите обучение, создайте модель и, наконец, сделайте прогнозы.

1. Линейная регрессия

Подводя итог: для линейной регрессии нам нужно импортировать linear_model из библиотеки sklearn. Подготавливаем обучающие и тестовые данные. Затем мы создаем прогностическую модель, помещая ее в объект с именем linear и алгоритмом LinearRegression, который является классом пакета linear_model. Позже мы обучили алгоритм с функцией подбора, а затем использовали оценку для оценки модели. Наконец, мы печатаем коэффициенты и делаем новые прогнозы с помощью модели.

# Import modules
from sklearn import linear_model 
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted_variable
x_test  = test_dataset_precictor_variables 
# Create linear regression object
linear = linear_model.LinearRegression()
# Train the model with training data and check the score
linear.fit(x_train, y_train)
linear.score(x_train, y_train)
# Collect coefficients
print('Coefficient: \n', linear.coef_)
print('Intercept: \n', linear.intercept_)
# Make predictions
predicted_values = linear.predict(x_test)

2. Логистическая регрессия

В этом случае единственное, что меняется от линейной регрессии к логистической регрессии, — это алгоритм, который мы собираемся использовать. Мы изменили линейную регрессию на логистическую регрессию.

# Import modules
from sklearn.linear_model import LogisticRegression
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted_variable
x_test  = test_dataset_precictor_variables 
# Create logistic regression object
model = LogisticRegression()
# Train the model with training data and checking the score
model.fit(x_train, y_train)
model.score(x_train, y_train)
# Collect coefficients
print('Coefficient: \n', model.coef_)
print('Intercept: \n', model.intercept_)
# Make predictions
predicted_vaues = model.predict(x_teste)

3. Деревья решений

В очередной раз мы изменили алгоритм на DecisionTreeRegressor:

# Import modules
from sklearn import tree
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted_variable
x_test  = test_dataset_precictor_variables 
# Create Decision Tree Regressor Object
model = tree.DecisionTreeRegressor() 
# Create Decision Tree Classifier Object
model = tree.DecisionTreeClassifier() 
# Train the model with training data and checking the score
model.fit(x_train, y_train)
model.score(x_train, y_train)
# Make predictions
predicted_values = model.predict(x_test)

4. Наивный Байес

На этот раз мы используем алгоритм GaussianNB:

# Import modules
from sklearn.naive_bayes import GaussianNB
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables   
# Create GaussianNB object
model = GaussianNB() 
# Train the model with training data 
model.fit(x_train, y_train)
# Make predictions
predicted_values = model.predict(x_test)

5. Машины опорных векторов

В этом случае мы используем класс SVC библиотеки SVM. Если бы это был SVR, это был бы регрессор:

# Import modules
from sklearn import svm
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables  
# Create SVM Classifier object  
model = svm.svc()
# Train the model with training data and checking the score
model.fit(x_train, y_train)
model.score(x_train, y_train)
# Make predictions
predicted_values = model.predict(x_test)

6. K-ближайшие соседи

В алгоритме KneighborsClassifier у нас есть гиперпараметр n_neighbors, вносящий коррективы в этот алгоритм.

# Import modules
from sklearn.neighbors import KNeighborsClassifier
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables 
# Create KNeighbors Classifier Objects  
KNeighborsClassifier(n_neighbors = 6) # default value = 5
# Train the model with training data
model.fit(x_train, y_train)
# Make predictions
predicted_values = model.predict(x_test)

7. К-средние

# Import modules
from sklearn.cluster import KMeans
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables  
# Create KMeans objects 
k_means = KMeans(n_clusters = 3, random_state = 0)
# Train the model with training data
model.fit(x_train)
# Make predictions
predicted_values = model.predict(x_test)

8. Случайный лес

# Import modules
from sklearn.ensemble import RandomForestClassifier
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables  
# Create Random Forest Classifier objects 
model = RandomForestClassifier()
# Train the model with training data 
model.fit(x_train, x_test)
# Make predictions
predicted_values = model.predict(x_test)

9. Уменьшение размерности

# Import modules
from sklearn import decomposition
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables   
# Creating PCA decomposition object
pca = decomposition.PCA(n_components = k) 
# Creating Factor analysis decomposition object
fa = decomposition.FactorAnalysis()
# Reduce the size of the training set using PCA
reduced_train = pca.fit_transform(train)
# Reduce the size of the training set using PCA
reduced_test = pca.transform(test)

10. Повышение градиента и AdaBoost

# Import modules
from sklearn.ensemble import GradientBoostingClassifier
# Create training and test subsets
x_train = train_dataset_predictor_variables
y_train = train_dataset_predicted variable
x_test  = test_dataset_precictor_variables  
# Creating Gradient Boosting Classifier object
model = GradientBoostingClassifier(n_estimators = 100, learning_rate = 1.0, max_depth = 1, random_state = 0)
# Training the model with training data 
model.fit(x_train, x_test)
# Make predictions
predicted_values = model.predict(x_test)

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

И вот оно. Я надеюсь, что вы нашли это полезным. Спасибо за чтение.

Леонардо Анелло
in/anello92