1 - 50 Flashcards

1
Q

Data Preprocessing

A

Data Exploration =>

Cleaning (Duplicates, Missing data, Outliers, Scaling, Encoding, Discretizing, Creating new features) =>

Feature Selection (Feature Correlation, Modelling, Feature selection, Remodel).

1) More than 30% of missing values: Potentially drop feature or row.
2) Less than 30% of values missing: impute a deal that makes sense e.g. Median, mean, mode.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

sklearn.linear_model.LogisticRegression(penalty=’l2’, *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver=’lbfgs’, max_iter=100, multi_class=’auto’, verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)

A

Supervised Learning → Linear Model. Метод построения линейного классификатора, позволяющий оценивать вероятности принадлежности объектов классам. Да или нет, False or True, холодно или тепло, —> без точной цифры.

👉 Advantages
💡 Interpretable and explainable
💡Less prone to overfitting when using regularization
💡Applicable for multi-class predictions

👉 Disadvantages
💡 Assumes linearity between inputs and outputs
💡 Can overfit with small, high-dimensional data

from sklearn.linear_model import LogisticRegression 

model = LogisticRegression() 
model.fit(X,y)
model.predict()
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

sklearn.metrics.mean_squared_error(y_true, y_pred, *, sample_weight=None, multioutput=’uniform_average’, squared=True)

A

Оценить выбор модели. Mean Squared Error (MSE). The measure of how close a fitted line is to data points.

from sklearn.metrics import mean_squared_error

Y_true = [1,1,2,2,4]
Y_pred = [0.6,1.29,1.99,2.69,3.4] 
mean_squared_error(Y_true,Y_pred) 

👉  Output: 0.21606
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

sklearn.neighbors.NearestNeighbors(*, n_neighbors=5, radius=1.0, algorithm=’auto’, leaf_size=30, metric=’minkowski’, p=2, metric_params=None, n_jobs=None)

A

Обучения на основе соседей.

from sklearn.neighbors import NearestNeighbors

samples = [[0, 0, 2], [1, 0, 0], [0, 0, 1]]
neigh = NearestNeighbors(n_neighbors=2, radius=0.4)
neigh.fit(samples)
neigh.kneighbors([[0, 0, 1.3]], 2, return_distance=False)

Предоставляет функциональные возможности для неконтролируемых и контролируемых методов обучения на основе соседей.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

sklearn.svm.SVC(*, C=1.0, kernel=’rbf’, degree=3, gamma=’scale’, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=’ovr’, break_ties=False, random_state=None)

A

C-Support Vector Classification. Подход «один против одного» для классификации по нескольким классам., каждый из которых обучает данные из двух классов.

X = [[0], [1], [2], [3]]
y = [0, 1, 2, 3] 
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, y) 
dec = clf.decision_function([[1]])

dec.shape[1] 
👉  6
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

sklearn.model_selection.cross_validate()

A

По сравнению с train_test_split мы получим более точную оценку качества классификатора.

from sklearn.model_selection import cross_validate

model = LinearRegression()
cv_results = cross_validate(model, X, y, cv=5, scoring= ['max_error','r2',  'neg_mean_absolute_error', 'neg_mean_squared_error']
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

sklearn.model_selection.KFold(n_splits=5, *, shuffle=False, random_state=None)

A

Разделяете весь набор данных на K равными размерами «складки», и каждая сводка используется один раз для тестирования модели и K-1 раз для обучения модели.

from sklearn.model_selection import KFold

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
y = np.array([1, 2, 1, 2])
cv = KFold(n_splits=3, random_state=0) 

for train_index, test_index in cv.split(X): 
    print("TRAIN:", train_index, "TEST:", test_index)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)

A

Случайным образом делит на обучающий и тестовый набор.

from sklearn.model_selection import train_test_split 

data=[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9],[10,10]] 
target=[1,2,3,4,5,6,7,8,9,10] 

x_train, x_test, y_train, y_test = train_test_split(data, target, test_size=0.3, random_state=0)

→ x_train is: [[10, 10], [2, 2], [7, 7], [8, 8], [4, 4], [1, 1], [6, 6]]

→ y_train is: [10, 2, 7, 8, 4, 1, 6] 

→ x_test is: [[3, 3], [9, 9], [5, 5]] 

→ y_test is: [3, 9, 5]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

pandas.DataFrame.agg(func=None, axis=0, *args, **kwargs)

A

The method allows you to apply a function or a list of function names to be executed along one of the axes of the DataFrame, default 0, which is the index (row) axis.

new_df["quality rating"].agg({"quality rating": lambda x: x-x if x < 6 else x-x+1})
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

sklearn.preprocessing.OrdinalEncoder(*, categories=’auto’, dtype=, handle_unknown=’error’, unknown_value=None, encoded_missing_value=nan)

A

Кодирует категорические признаки как целочисленный массив.

from sklearn.preprocessing import OrdinalEncoder 

enc = OrdinalEncoder() 
X = [['Male', 1], ['Female', 3], ['Female', 2]] 
enc.fit(X) 
enc.transform([['Female', 3], ['Male', 1]]) 

👉 array([[0., 2.], [1., 0.]])
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

sklearn.metrics.r2_score(y_true, y_pred, *, sample_weight=None, multioutput=’uniform_average’, force_finite=True)

A

Оценить выбор модели.

👉 Use R^2 when:
….. The unit of the error is not important
….. You want to compare different datasets.
….. Может принимать отрицательное значение.

from sklearn.metrics import r2_score 

y_true = [3, -0.5, 2, 7] 
y_pred = [2.5, 0.0, 2, 8] 
r2_score(y_true, y_pred) 

👉  0.94
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)

A

Evaluate the accuracy of classification.

from sklearn.metrics import confusion_matrix 

y_true = [2, 0, 2, 2, 0, 1] 
y_pred = [0, 0, 2, 2, 0, 2] 
print(confusion_matrix(y_true, y_pred)) 

👉 [[2, 0, 0], | [0, 0, 1], | [1, 0, 2]])
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

sklearn.metrics.mean_absolute_error(y_true, y_pred, *, sample_weight=None, multioutput=’uniform_average’)

A

Оценить выбор модели.

Mean absolute error(MAE):
…. 👉 Less sensitive to outliers
…. 👉 Do not want to over-penalize(наказывать) outliers
…. 👉 Use MAE when all errors, large or small, have equal importance.

from sklearn.metrics import mean_absolute_error 

y_true = [3, -0.5, 2, 7] 
y_pred = [2.5, 0.0, 2, 8] 
mean_absolute_error(y_true, y_pred) 

👉 0.5
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

sklearn.metrics.precision_score(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)

A

Оценить выбор модели.
Измеряет способность модели избежать False Alarm (False Positive, угадать 0ки).

from sklearn.metrics import precision_score 

y_true = [0, 1, 0, 0, 1, 0, 1, 1, 0, 1] 
y_pred = [0, 0, 0, 0, 1, 1, 1, 1, 1, 1] 

print(round(precision_score(y_true, y_pred), 2)) 
👉 0.67
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

sklearn.metrics.max_error(y_true, y_pred)

A

Max Error(ME) — biggest error made by the model when predicting.

from sklearn.metrics import max_error 

y_true = [3, 2, 7, 1] 
y_pred = [4, 2, 7, 1] 
max_error(y_true, y_pred) 

👉 1
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)

A

Для рисования кривой ROC - позволяющий оценить качество бинарной классификации, отображает соотношение между долей объектов от общего количества носителей признака.

y = [1, 1, 2, 2] 
pred = [0.1, 0.4, 0.35, 0.8] 
fpr, tpr, thresholds = roc_curve(y, pred, pos_label=2) 

👉fpr:[ 0. 0.5 0.5 1. ] 
👉tpr:[ 0.5 0.5 1. 1. ] 
👉hresholds:[ 0.8 0.4 0.35 0.1 ]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

sklearn.model_selection.learning_curve(estimator, X, y, *, groups=None, train_sizes=array([0.1, 0.33, 0.55, 0.78, 1.]), cv=None, scoring=None,
exploit_incremental_learning=False, n_jobs=None, pre_dispatch=’all’, verbose=0, shuffle=False, random_state=None, error_score=nan, return_times=False, fit_params=None)

A

Сan help to find the right amount of training data to fit our model with a good bias-variance trade-off.

from sklearn.model_selection import learning_curve 

train_sizes = [25,50,75,100,250,500,750,1000,1150] 
train_sizes, train_scores, test_scores = learning_curve(estimator=LinearRegression(), 
X=X, y=y, train_sizes=train_sizes, cv=5)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

sklearn.linear_model.SGDRegressor(loss=’squared_error’, *, penalty=’l2’, alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, epsilon=0.1, random_state=None, learning_rate=’invscaling’, eta0=0.01, power_t=0.25, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, warm_start=False, average=False)

A

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

loss = 
👉squared_error, 
👉huber, 
👉epsilon_insensitive,
👉squared_epsilon_insensitive
sgd = SGDRegressor(loss='squared_error') 

sgd_model_cv = cross_validate(sgd, X, y, cv = 10, scoring = ['r2', 'max_error']) 

r2 = sgd_model_cv['test_r2'].mean() 

max_error = abs(sgd_model_cv['test_max_error']).max()
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)

A

Оценить выбор модели. Находит отзыв, а отзыва это интуитивно понятная способность классификатора находить все положительные образцы. Ищет только 1, угадать 1ки!

y_true = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1] 
y_pred = [0, 0, 1, 1, 1, 1, 1, 1, 1, 1] 

print(round(recall_score(y_true, y_pred), 2)) 
👉  0.8 
y_true = [0, 0, 0, 0, 1] 
y_pred = [1, 1, 1, 1, 1] 

print(round(recall_score(y_true, y_pred), 2)) 
👉  1.0
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

sklearn.neighbors.KNeighborsRegressor(KNN)(n_neighbors=5, *, weights=’uniform’, algorithm=’auto’, leaf_size=30, p=2, metric=’minkowski’, metric_params=None, n_jobs=None)

A

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

from sklearn.neighbors import KNeighborsRegressor 

X = [[0], [1], [2], [3]] 
y = [0, 0, 1, 1] 
neigh = KNeighborsRegressor(n_neighbors=2) 
neigh.fit(X, y) 

print(neigh.predict([[1.5]])) 
👉 [0.5]
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

sklearn.metrics.roc_auc_score(y_true, y_score, *, average=’macro’, sample_weight=None, max_fpr=None, multi_class=’raise’, labels=None)

A

Вычислите область под кривой рабочих характеристик приемника (ROC AUC) из баллов прогноза.

from sklearn.metrics import roc_auc_score

X, y = load_breast_cancer(return_X_y=True)
model = LogisticRegression(solver="liblinear", random_state=0)
model.fit(X, y)

roc_auc_score(y,  model.predict_proba(X)[:, 1])
👉 0.99...

roc_auc_score(y, model.decision_function(X))
👉 0.99...
22
Q

sklearn.metrics.precision_recall_curve(y_true, probas_pred, *, pos_label=None, sample_weight=None)

A

Compare precision and recall across a variety of thresholds.

from sklearn.metrics import precision_recall_curve 

model = LogisticRegression() 

precision, recall, threshold = precision_recall_curve(data['price_range_encoded'], data['proba_expensive'])

scores = pd.DataFrame({'threshold':threshold, 'precision': precision[:-1], 'recall':recall[:-1]}
23
Q

sklearn.metrics.f1_score(y_true, y_pred, *, labels=None, pos_label=1, average=’binary’, sample_weight=None, zero_division=’warn’)

A

Оценить выбор модели. F1 = 2 * (precision * recall) / (precision + recall). Средневзвешенное значение точности и отзыва (Проверяет как угадал 0ки и 1ки).

from sklearn.metrics import f1_score 

y_true = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1] 

y_pred = [1, 0, 0, 0, 0, 0, 1, 1, 1, 1] 

print(f1_score(y_true, y_pred)) 
👉  0.8
24
Q

sklearn.linear_model.LinearRegression(*, fit_intercept=True, normalize=’deprecated’, copy_X=True, n_jobs=None, positive=False)

A

Supervised Learning → Linear Model → Один из наиболее широко используемых, быстрых✅ подходов, используемых для моделирования взаимосвязи между двумя или более переменными.

Disadvantages
👉 Assumes linearity between inputs and output
👉 Sensitive to outliers
👉 Can underfit with small, high-dimensional data

from sklearn.linear_model import LinearRegression 

model = LinearRegression() 
model.fit(X, y) 
model.score(X,y)
25
Q

sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)

A

Оценить выбор модели.

👉 соотношение количества корректных предсказаний и общее количество меток
👉или ненормализованной версии = просто количество верных предсказаний.

from sklearn.metrics import accuracy_score 

y_true = [0, 1, 2, 3] 
y_pred = [0, 1, 2, 2] 

print(accuracy_score(y_pred, y_true)) 
👉  0.75 

print(accuracy_score(y_pred, y_true, normalize=False)) 
👉  3
26
Q

sklearn.calibration.CalibratedClassifierCV(base_estimator=None, *, method=’sigmoid’, cv=None, n_jobs=None, ensemble=True)

A

Калибровка вероятности с помощью изотонической регрессии или логистической регрессии. Использует перекрестную проверку для оценки параметров.

from sklearn.calibration import CalibratedClassifierCV 

calibrated_model = CalibratedClassifierCV(base_estimator=model)

calibrated_model.fit(X_train, y_train) 

disp = CalibrationDisplay.from_estimator(calibrated_model, X_test, y_test, n_bins=7) 

calibrated_model.predict_proba([[1,0,0,15]])[0][1]
27
Q

sklearn.impute.SimpleImputer(*, missing_values=nan, strategy=’mean’, fill_value=None, verbose=’deprecated’, copy=True, add_indicator=False)

A

Tool to replace missing values by a strategy of your choice e.g. mean.

from sklearn.impute import SimpleImputer 

imputer = SimpleImputer(strategy="mean") 
imputer.fit(data[['Pesos']]) 
data['Pesos'] = imputer.transform(data[['Pesos']])
28
Q

sklearn.pipeline.Pipeline(steps, *, memory=None, verbose=False)

A

Позволяет автоматизировать предварительные преобразования данных перед обучением модели.

from sklearn.pipeline import Pipeline 

pipe = Pipeline([('KNN', KNNImputer()), ('MinMax', MinMaxScaler()), ("model_LG", LogisticRegression())])
29
Q

sklearn.compose.ColumnTransformer(*transformers, remainder=’drop’, sparse_threshold=0.3, n_jobs=None, verbose=False, verbose_feature_names_out=True)

A

Apply specific changes to specific columns in parallel.

from sklearn.compose import ColumnTransformer 

def multiply(df): 
....return pd.DataFrame(df['1'] * df['2'] * df['3']) 

volume_computer = Pipeline([('compute_volume', FunctionTransformer(multiply)), ('scale_volume', MinMaxScaler())]) 

final_preprocessor = ColumnTransformer([('num_encoder', MinMaxScaler(), make_column_selector(dtype_include="int64")), 
('cat_encoder', OneHotEncoder(handle_unknown='ignore', sparse=False), (make_column_selector(dtype_include="object")), 
('volume_computer', volume_computer, ['1','2','3'])])
30
Q

sklearn.preprocessing.FunctionTransformer(func=None, inverse_func=None, *, validate=False, accept_sparse=False, check_inverse=True, feature_names_out=None, kw_args=None, inv_kw_args=None)

A

Allow you to encapsulate a Python function in a scikit Transformer (→) object
They can be used with either Pipelines (→ → →) or ColumnTransformers (⑂)

from sklearn.preprocessing import FunctionTransformer 

transformer = FunctionTransformer(np.log1p) 
X = np.array([[0, 1], [2, 3]]) 
transformer.transform(X)
31
Q

sklearn.pipeline.FeatureUnion(transformer_list, *, n_jobs=None, transformer_weights=None, verbose=False)

A

Концентрирует результаты множества трансформаторных объектов. Этот оценщик применяет параллельно входным данным, а затем объединяет результаты.

from sklearn.pipeline import FeatureUnion 

bmi_age_ratio_constructor = FunctionTransformer(lambda df: pd.DataFrame(df["bmi"] / df["age"])) 

union = FeatureUnion([('preprocess', preprocessor), ('bmi_age_ratio', bmi_age_ratio_constructor)])
32
Q

sklearn.model_selection.GridSearchCV(estimator, param_grid, , scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch=’2n_jobs’, error_score=nan, return_train_score=False)

A

Поиск по сетке и перекрестная проверка, путем обхода цикла.

from sklearn.model_selection import GridSearchCV 

grid_search = GridSearchCV(pipeline, param_grid={'imputer\_\_n_neighbors': [2,5,10]}, cv=5, scoring="recall") grid_search.fit(data.drop(columns="malignant"), data['malignant'])
33
Q

trot.TPOTRegressor()

A

Автоматический выбора моделей машинного обучения scikit-learn и примера классификации параметров.

from tpot import TPOTRegressor 

X_train_preproc = preproc_basic.fit_transform(X_train) 
X_test_preproc = preproc_basic.transform(X_test) 

tpot = TPOTRegressor(generations=4, population_size=20, 
verbosity=2, scoring='r2', n_jobs=-1, cv=2) 

tpot.fit(X_train_preproc, y_train) 

print(tpot.score(X_test_preproc, y_test)) 

Best pipeline: RandomForestRegressor(input_matrix, bootstrap=True, max_features=0.7000000000000001, 
min_samples_leaf=7, min_samples_split=18, 
n_estimators=100) 

👉  0.8634093825452486
34
Q

sklearn.impute.KNNImputer(*, missing_values=nan, n_neighbors=5, weights=’uniform’, metric=’nan_euclidean’, copy=True, add_indicator=False)

A

Imputation for completing missing values using k-Nearest Neighbors. Each sample’s missing values are imputed using the mean value from n_neighbors nearest neighbors found in the training set.

from sklearn.impute import KNNImputer 

X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]] 
imputer = KNNImputer(n_neighbors=2) 
imputer.fit_transform(X)
35
Q

sklearn.model_selection.RandomizedSearchCV(estimator, param_distributions, , n_iter=10, scoring=None, n_jobs=None, refit=True, cv=None, verbose=0, pre_dispatch=’2n_jobs’, random_state=None, error_score=nan, return_train_score=False)

A

Фактически такой же, как и GridSearchCV, но он заменяет поиск на случайную выборку в пространстве параметров.

Использовать если количество параметров особенно велико, а масштабы влияния несбалансированные.

from sklearn.model_selection import RandomSearchCV 

rnd_search = RandomizedSearchCV(RandomForestClassifier(), param, n_iter =10, cv=9) 
rnd_search.fit(X,y)
36
Q

sklearn.ensemble.RandomForestRegressor or RandomForestClassifier(n_estimators=100, *, criterion=’squared_error’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=1.0, max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)

A

Supervised Learning → Tree-Based Models — An ensemble learning method that combines the output of multiple decision trees.

🚀🚀🚀
- Выбирается подвыборка обучающей выборки размера samplesize и по ней строится дерево.
- Для построения каждого расщепления в дереве просматриваем max_features случайных признаков.
- Выбираем наилучшие признак и расщепление по нему (по заранее заданному критерию). Дерево строится, как правило, до исчерпания выборки.

👉 use cases
�� Credit score modeling
�� Predicting housing prices

👉 Advantages
�� Reduces overfitting
�� Higher accuracy compared to other models

👉 Disadvantages
�� Training complexity can be high
�� Not very interpretable

from sklearn.ensemble import RandomForestRegressor

model =  RandomForestRegressor(n_estimators=10, oob_score=True, random_state=1)
model.fit(X, y)
37
Q

sklearn.ensemble.StackingRegressor(estimators, final_estimator=None, *, cv=None, n_jobs=None, passthrough=False, verbose=0)

A

Cуммирование результатов отдельных оценок и использовании регрессора для вычисления окончательного прогноза. Сложение позволяет использовать силу каждого отдельного оценщика, используя их выход в качестве входа для конечного оценщика.

from sklearn.ensemble import StackingRegressor

X, y = load_diabetes(return_X_y=True)
estimators = [('lr', RidgeCV()), ('svr', LinearSVR(random_state=42))]

reg = StackingRegressor(estimators=estimators, final_estimator=RandomForestRegressor(n_estimators=10, random_state=42))

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

reg.fit(X_train, y_train).score(X_test, y_test)
👉 0. 3...
38
Q

sklearn.linear_model.Lasso(alpha=1.0, *, fit_intercept=True, normalize=’deprecated’, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_state=None, selection=’cyclic’)

A

Регрессия лассо - это линейная регрессия с разреженными коэффициентами.

👉 Полезно, когда значение параметра небольшое

👉 Эффективно сокращая количество переменных

👉 (1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

regrL = Lasso()
regrL.fit(X, y)
39
Q

sklearn.ensemble.AdaBoostRegressor(base_estimator=None, *, n_estimators=50, learning_rate=1.0, loss=’linear’, random_state=None)

A

Это ансамбль, в котором обучается много копий более слабой модели (“weak learner”).

👉 Фокусируется на тех примерах из обучающего датасета, которые не смогли предсказать предыдущие weak learner.

👉 Для каждого weak learner’а рассчитывается вес.

from sklearn.ensemble import AdaBoostRegressor

X, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)

regr = AdaBoostRegressor(random_state=0, n_estimators=100)
regr.fit(X, y)

regr.predict([[0, 0, 0, 0]])
👉 array([4.7972...])

regr.score(X, y)
👉 0. 9771...
40
Q

sklearn.tree.DecisionTreeRegressor(*, criterion=’squared_error’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, ccp_alpha=0.0)

A

Supervised Learning → Tree-Based Models — Дерево решений - это вспомогательный инструмент принятия решений, который рисует узлы решений в виде дерева, метод рисования для нахождения оптимального решения.

👉 use cases
�� Customer churn prediction
�� Credit score modeling
�� Disease prediction

👉 Advantages
�� Explainable and interpretable
�� Can handle missing values

👉 Disadvantages
�� Prone to overfitting
�� Sensitive to outliers

from sklearn.tree import DecisionTreeRegressor

X, y = load_diabetes(return_X_y=True)

regressor = DecisionTreeRegressor(random_state=0)

cross_val_score(regressor, X, y, cv=10)
41
Q

sklearn.ensemble.VotingRegressor(estimators, *, weights=None, n_jobs=None, verbose=False)

A

Регрессор для голосования за предсказание для непригодных оценок.

👉 настраивает несколько базовых регрессоров, каждый на весь набор данных.

👉 Затем он усредняет отдельные прогнозы для формирования окончательного прогноза.

from sklearn.ensemble import VotingRegressor

r1 = LinearRegression()
r2 = RandomForestRegressor(n_estimators=10, random_state=1)

X = np.array([[1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36]])
y = np.array([2, 6, 12, 20, 30, 42])

er = VotingRegressor([('lr', r1), ('rf', r2)])

print(er.fit(X, y).predict(X))
👉 [ 3.3  5.7 11.8 19.7 28.  40.3]
42
Q

sklearn.ensemble.GradientBoostingRegressor(*, loss=’squared_error’, learning_rate=0.1, n_estimators=100, subsample=1.0, criterion=’friedman_mse’, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_depth=3, min_impurity_decrease=0.0, init=None, random_state=None, max_features=None, alpha=0.9, verbose=0, max_leaf_nodes=None, warm_start=False, validation_fraction=0.1, n_iter_no_change=None, tol=0.0001, ccp_alpha=0.0)

A

Employs boosting to make predictive models from an ensemble of weak predictive learners. На каждом этапе дерево регрессии помещается на отрицательный градиент заданной функции потерь.

👉 use cases
�� Predicting car emissions
�� Predicting ride-hailing fare amount

👉 Advantages
�� Better accuracy compared to other regression models
�� It can handle multicollinearity
�� It can handle non-linear relationships

👉 Disadvantages
�� Sensitive to outliers and can therefore cause overfitting
�� Computationally expensive and has high complexity

from sklearn.ensemble import GradientBoostingRegressor

X, y = make_regression(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

reg = GradientBoostingRegressor(random_state=0)
reg.fit(X_train, y_train)

reg.predict(X_test[1:2])
👉 array([-61...])

reg.score(X_test, y_test)
👉 0. 4...
43
Q

sklearn.feature_selection.SelectPercentile(score_func=, *, percentile=10)

A

Выбирайте функции в соответствии с процентилем самых высоких баллов.

from sklearn.feature_selection import SelectPercentile, chi2

X, y = load_digits(return_X_y=True)

X.shape
👉 (1797, 64)

X_new = SelectPercentile(chi2, percentile=10).fit_transform(X, y)
X_new.shape
👉 (1797, 7)
44
Q

sklearn.feature_selection.chi2(X, y)

A

Преобразование в категориальные данные путем

Измеряет зависимость между стохастическими переменными, поэтому использование этой функции «отсеивает» признаки, которые с наибольшей вероятностью будут независимыми от класса и, следовательно, не имеют отношения к классификации.

from sklearn.feature_selection import chi2

преобразования в целые числа.
X_categorical = X.astype(int)

Выбираем 3 признака с наивысшим "хи-квадрат".
chi2_features = SelectKBest(chi2, k = 3)

X_kbest_features = chi2_features.fit_transform(X_categorical, y)
45
Q

sklearn.feature_selection.VarianceThreshold(threshold=0.0)

A

Селектор функций, который удаляет все низкочастотные функции. Этот алгоритм выбора функций смотрит только на функции (X).

X = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]

selector = VarianceThreshold()
selector.fit_transform(X)

👉 array([[2, 0], [1, 4], [1, 1]])
46
Q

sklearn.decomposition.PCA(n_components=None, *, copy=True, whiten=False, svd_solver=’auto’, tol=0.0, iterated_power=’auto’, n_oversamples=10, power_iteration_normalizer=’auto’, random_state=None)

A

Линейное сокращение размерности с помощью Сингулярного разложения данных для проектирования его к более низкому размерному пространству.

👉 Используется для категориальных признаков в датасете.
👉 Входные данные центрируются, но не масштабируются.
👉 Позволяет ускорить алгоритм машинного обучения.
👉 Очень полезен для визуализации данных.
👉 PCA = finding the best linear combination of features.

from sklearn.decomposition import PCA

X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
pca = PCA(n_components=2)
pca.fit(X)

print(pca.explained_variance_ratio_)
👉 [0.9924... 0.0075...]

print(pca.singular_values_)
👉 [6.30061... 0.54980...]
47
Q

sklearn.metrics.make_scorer(score_func, *, greater_is_better=True, needs_proba=False, needs_threshold=False, **kwargs)

A

Make a scorer from a performance metric or loss function.

from sklearn.metrics import fbeta_score, make_scorer

ftwo_scorer = make_scorer(fbeta_score, beta=2)
make_scorer(fbeta_score, beta=2)

grid = GridSearchCV(LinearSVC(), param_grid={'C': [1, 10]}, scoring=ftwo_scorer)
48
Q

sklearn.cluster.KMeans(n_clusters=8, *, init=’k-means++’, n_init=10, max_iter=300, tol=0.0001, verbose=0, random_state=None, copy_x=True, algorithm=’lloyd’)

A

Unsupervised Learning → Clustering — один из наиболее широко используемых неконтролируемых алгоритмов машинного обучения.

👉 Формирует кластеры данных на основе сходства между экземплярами данных.
👉 Чтобы этот конкретный алгоритм работал, количество кластеров должно быть определено заранее.

👉 use cases
�� Customer segmentation
�� Recommendation systems

👉 Advantages
1. Scales to large datasets 2. Simple to implement and interpret 3. Results in tight clusters

👉 Disadvantages
1. Requires the expected number of clusters from the beginning
2. Has troubles with varying cluster sizes and densities

from sklearn.cluster import KMeans

X = np.array([[1, 2], [1, 4], [1, 0], [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)

kmeans.labels_
👉 array([1, 1, 1, 0, 0, 0], dtype=int32)

kmeans.predict([[0, 0], [12, 3]])
👉 array([1, 0], dtype=int32)

kmeans.cluster_centers_
👉 array([[10.,  2.], [ 1.,  2.]])
49
Q

sklearn.metrics.mean_squared_log_error(y_true, y_pred, *, sample_weight=None, multioutput=’uniform_average’, squared=True)

A

Среднеквадратическая логарифмическая ошибочная потеря регрессии.

from sklearn.metrics import mean_squared_log_error

y_true = [3, 5, 2.5, 7]
y_pred = [2.5, 5, 4, 8]

mean_squared_log_error(y_true, y_pred)
👉 0.039...
50
Q

matplotlib.subplots(nrows=1, ncols=1,*, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

A

Create a figure and a set of subplots.

👉 plt.subplot(1, 2, 1) — the figure has 1 row, 2 columns, and this plot is the first plot.
👉 plt.subplot(1, 2, 2) — the figure has 1 row, 2 columns, and this plot is the second plot.

x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

plt.subplot(1, 2, 1)
plt.plot(x,y)

x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.show()

matplotlib.subplots

x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

plt.subplot(2, 1, 1)
plt.plot(x,y)

x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

plt.subplot(2, 1, 2)
plt.plot(x,y)
plt.show()

matplotlib.subplots

x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

plt.subplot(2, 3, 1)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

plt.subplot(2, 3, 2)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

plt.subplot(2, 3, 3)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

plt.subplot(2, 3, 4)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

plt.subplot(2, 3, 5)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

plt.subplot(2, 3, 6)
plt.plot(x,y)
plt.show()

matplotlib.subplots