Мы уже видели категории контролируемого, неконтролируемого обучения и обучения с подкреплением, основные алгоритмы машинного обучения и процесс построения прогностических моделей. Теперь мы увидим все это на практике на языке 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)
Поэтому нашей задачей будет превратить каждый блок этих алгоритмов в проект. Во-первых, определение бизнес-проблемы, предварительная обработка данных, обучение алгоритма, корректировка гиперпараметров, проверяемые результаты и повторение этого процесса, пока мы не достигнем удовлетворительной точности для получения желаемых прогнозов.
И вот оно. Я надеюсь, что вы нашли это полезным. Спасибо за чтение.