Что такое Machine Learning
Machine Learning — это область искусственного интеллекта, которая позволяет компьютерам учиться на данных. scikit-learn — основная библиотека ML в Python.
▸Типы ML
Регрессия
▸Линейная регрессия
1from sklearn.linear_model import LinearRegression2from sklearn.model_selection import train_test_split3from sklearn.metrics import mean_squared_error, r2_score4import numpy as np56# Данные7X = np.array([[1], [2], [3], [4], [5]])8y = np.array([2, 4, 5, 4, 5])910# Разделение на train/test11X_train, X_test, y_train, y_test = train_test_split(12 X, y, test_size=0.2, random_state=4213)1415# Обучение модели16model = LinearRegression()17model.fit(X_train, y_train)1819# Предсказание20y_pred = model.predict(X_test)2122# Оценка23mse = mean_squared_error(y_test, y_pred)24r2 = r2_score(y_test, y_pred)25print(f"MSE: {mse}, R2: {r2}")
▸Полиномиальная регрессия
1from sklearn.preprocessing import PolynomialFeatures2from sklearn.pipeline import make_pipeline34model = make_pipeline(5 PolynomialFeatures(degree=2),6 LinearRegression()7)8model.fit(X_train, y_train)
Классификация
▸Логистическая регрессия
1from sklearn.linear_model import LogisticRegression2from sklearn.metrics import accuracy_score, classification_report34# Данные5X = [[1, 2], [2, 3], [3, 4], [4, 5]]6y = [0, 0, 1, 1]78# Модель9model = LogisticRegression()10model.fit(X_train, y_train)1112# Предсказание13y_pred = model.predict(X_test)1415# Оценка16accuracy = accuracy_score(y_test, y_pred)17print(classification_report(y_test, y_pred))
▸Random Forest
1from sklearn.ensemble import RandomForestClassifier23model = RandomForestClassifier(n_estimators=100, random_state=42)4model.fit(X_train, y_train)56# Важность признаков7importances = model.feature_importances_
Кластеризация
▸K-Means
1from sklearn.cluster import KMeans2from sklearn.metrics import silhouette_score34# Данные5X = [[1, 2], [1.5, 1.8], [5, 8], [8, 8], [1, 0.6], [9, 11]]67# Кластеризация8kmeans = KMeans(n_clusters=2, random_state=42)9labels = kmeans.fit_predict(X)1011# Оценка12silhouette = silhouette_score(X, labels)13print(f"Silhouette Score: {silhouette}")
Предобработка данных
▸Масштабирование
1from sklearn.preprocessing import StandardScaler, MinMaxScaler23# StandardScaler (среднее=0, std=1)4scaler = StandardScaler()5X_scaled = scaler.fit_transform(X)67# MinMaxScaler (от 0 до 1)8scaler = MinMaxScaler()9X_scaled = scaler.fit_transform(X)
▸Кодирование категорий
1from sklearn.preprocessing import LabelEncoder, OneHotEncoder23# Label Encoding4le = LabelEncoder()5y_encoded = le.fit_transform(['cat', 'dog', 'bird'])67# One-Hot Encoding8ohe = OneHotEncoder()9X_encoded = ohe.fit_transform([['cat'], ['dog'], ['bird']])
▸Заполнение пропусков
1from sklearn.impute import SimpleImputer23# Заполнение средним4imputer = SimpleImputer(strategy='mean')5X_imputed = imputer.fit_transform(X)67# Заполнение медианой8imputer = SimpleImputer(strategy='median')
Pipeline
1from sklearn.pipeline import Pipeline2from sklearn.preprocessing import StandardScaler3from sklearn.linear_model import LogisticRegression45# Создание pipeline6pipeline = Pipeline([7 ('scaler', StandardScaler()),8 ('classifier', LogisticRegression())9])1011# Обучение12pipeline.fit(X_train, y_train)1314# Предсказание15y_pred = pipeline.predict(X_test)
Кросс-валидация
1from sklearn.model_selection import cross_val_score, GridSearchCV23# Кросс-валидация4scores = cross_val_score(model, X, y, cv=5)5print(f"Mean accuracy: {scores.mean():.2f} (+/- {scores.std():.2f})")67# Grid Search8param_grid = {9 'n_estimators': [100, 200],10 'max_depth': [None, 10, 20]11}12grid_search = GridSearchCV(13 RandomForestClassifier(),14 param_grid,15 cv=5,16 scoring='accuracy'17)18grid_search.fit(X_train, y_train)19print(f"Best params: {grid_search.best_params_}")
Сохранение моделей
1import joblib23# Сохранение4joblib.dump(model, 'model.pkl')56# Загрузка7model = joblib.load('model.pkl')
Заключение
scikit-learn — основная библиотека ML в Python. Понимание основных алгоритмов, предобработки данных и оценки моделей критически важно для работы с данными. На собеседовании спрашивают про типы ML, метрики оценки, переобучение и кросс-валидацию.