Фрагменты кода для быстрого запуска на python для начала работы с логистической регрессией, линейной регрессией, классификатором DecisionTree, RandomForest, lightboost, xgboost и catboost
О чем эта статья
Эта статья содержит 7 примеров начальных кодов и краткое объяснение, которое позволит вам начать работу с любым из следующих алгоритмов машинного обучения:
- Линейная регрессия (регрессия)
- Логистическая регрессия (классификация)
- DecisionTreeClassifier (классификация)
- RandomForest (классификатор)
- xgboost (классификатор)
- catboost (классификатор)
- lightGBM ( классификатор )
Предполагается, что у вас есть практические знания Python и вы можете ориентироваться в его синтаксисе.
О чем не эта статья
Эта статья не будет
- дать какое-либо представление об используемых алгоритмах
- объяснить используемые гиперпараметры или переменные (помимо стандартных)
- не содержит шагов/кодов предварительной обработки данных или разработки функций
Для подробного объяснения фрагментов кода ознакомьтесь с соответствующими постами для каждого из алгоритмов.
Используемые обозначения / соглашения об именах
Там, где это применимо, это обозначения и имена используемых переменных.
df_train
обозначает набор данных поездаdf_test
обозначает тестовый набор данныхdf_pred
обозначает набор данных, содержащий значения прогноза.cols
это список имен столбцов, представляющих зависимые переменныеtarget
имя столбца, представляющего целевую переменную
Как использовать эти фрагменты кода
Фрагмент кода состоит из двух частей
- исходный фрагмент кода для импорта данных и т. д.
- фактический алгоритм и часть предсказания
Если вы ищете конкретный алгоритм, перейдите прямо в подраздел и используйте код (вместе с исходным фрагментом кода)
Если вы используете ансамблевый алгоритм, вместе с начальным фрагментом кода используйте другие алгоритмы, которые вы собираетесь использовать, а затем создайте ансамблевый фрагмент кода для голосования (здесь не представлен).
Исходный фрагмент кода предназначен для —
- импорт данных
- определение x-переменных и y-переменных
- создание разделения тестового поезда
import pandas as pd from sklearn.model_selection import train_test_split df_train = pd.read_csv('train.csv') df_test = pd.read_csv('test.csv') cols = ['col1','col2','col3'] X = df_train[cols] y = df_train['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=1)
1. Линейная регрессия
Это единственный алгоритм регрессии, который мы показываем здесь, так как он наиболее часто используется. Пользователям может быть легко заставить этот код работать, а затем они могут внести необходимые изменения в начальные коды других алгоритмов классификации.
вторая половина кода (в зависимости от того, какой алгоритм вы используете)
#sklean package for Linear Regression from sklearn.linear_model import LinearRegression #Fitting the model lr_model = LinearRegression() lr_model.fit(X_train, y_train) lr_model.score(X_train, y_train) # R^2 score df_pred = pd.DataFrame(lr.predict(df_test[cols])) # prediction-test set
2. Логистическая регрессия
#sklean package for Logistic Regression from sklearn.linear_model import LogisticRegression log_model = LogisticRegression(random_state=42) log_model.fit(X_train, y_train) log_model.score(X_test, y_test) #accuracy of test-split df_pred= pd.DataFrame(log_model.predict(df_test[cols])) #test-prediction
3. Дерево решений (классификатор)
#sk-learn package for Decision Tree Classifier from sklearn.tree import DecisionTreeClassifier dt_model=DecisionTreeClassifier(criterion='entropy',random_state= 1) dt_model.fit(X_train, y_train) dt_model.score(X_test, y_test) #score = accuracy df_pred = pd.DataFrame(dt_model.predict(df_test[cols]))
4. RandomForest (классификатор)
#sk-learn package for RandomForest Classifier from sklearn.ensemble import RandomForestClassifier model_rf= RandomForestClassifier(n_estimators = 100, max_depth = 4 , max_features=11) model_rf.fit(X_train, y_train) model_rf.score(X_test, y_test) #score = accuracy df_pred = pd.DataFrame(model_rf.predict(df_test[cols]))
5. xgBoost (классификатор)
from xgboost import XGBClassifier xgb_model = XGBClassifier(gamma=0, subsample=0.8,colsample_bytree=0.8,objective= 'binary:logistic',nthread=4, scale_pos_weight=1, seed=27) xgb_model= xgb_model.fit(X_train, y_train) #To get 1 / 0 predictions df_pred = pd.DataFrame(xgb_model.predict(df_test[cols])) # To get probabilities of prediction across the different y-variable classes df_pred_proba = pd.DataFrame(xgb_model.predict_proba(df_test[cols]))
6. catboost (Классификатор)
from catboost import CatBoostClassifier
cat_model = CatBoostClassifier(iterations=2,learning_rate=1,depth=2) cat_model.fit(
X_train, y_train)
# Get predicted classes preds_class = cat_model.predict(
df_test[cols])
# Get predicted probabilities for each class preds_proba = cat_model.predict_proba(
df_test[cols])
# Get predicted RawFormulaVal preds_raw = model.predict(
df_test[cols],prediction_type='RawFormulaVal')
7. LightGBM (классификатор)
Вам нужно будет установить пакет lightgbm, так как он не встроен в другие пакеты, такие как scikit-learn.
Установка пакета
sudo pip install lightgbm or git clone --recursive https://github.com/Microsoft/LightGBM
Фрагмент кода
from lightgbm import LGBMClassifier lgbm_model = LGBMClassifier(num_leaves=31, max_depth=- 1, learning_rate=0.1, n_estimators=100 ) lgbm_model.fit( X_train, y_train) lgbm_model.predict(
df_test[cols])
использованная литература
[1] sklearn документация для RandomForestClassifier (версия: 3.2.4.3.1)
https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html