Методы в науке о данных: очистка данных, EDA, выбор функций, построение моделей и развертывание с примерами кода

Вот несколько методов, обычно используемых в науке о данных, а также примеры кода:

  1. Очистка данных.
    Очистка данных включает в себя обработку пропущенных значений, выбросов и несоответствий в наборе данных. Одним из популярных методов является вменение среднего значения, при котором пропущенные значения заменяются средними значениями имеющихся данных.
import pandas as pd
# Mean imputation
df['column_name'].fillna(df['column_name'].mean(), inplace=True)
  1. Исследовательский анализ данных (EDA):
    EDA выполняется для понимания данных и выявления закономерностей, взаимосвязей и аномалий. Одним из методов является визуализация данных с использованием таких библиотек, как Matplotlib или Seaborn.
import matplotlib.pyplot as plt
import seaborn as sns
# Histogram of a numerical variable
sns.histplot(data=df, x='column_name')
plt.show()
  1. Выбор функций.
    Выбор функций направлен на определение наиболее подходящих функций для построения прогнозных моделей. Одним из подходов является рекурсивное устранение функций (RFE) с использованием scikit-learn.
from sklearn.feature_selection import RFE
from sklearn.linear_model import LinearRegression
# Create a linear regression model
model = LinearRegression()
# Initialize RFE with the model and desired number of features
rfe = RFE(model, n_features_to_select=5)
# Fit RFE on the dataset
rfe.fit(X, y)
# Selected features
selected_features = X.columns[rfe.support_]
  1. Построение и оценка моделей.
    Построение моделей машинного обучения — важнейшая часть науки о данных. Вот пример обучения случайного лесного регрессора с помощью scikit-learn:
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
# Split data into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# Create a random forest regressor model
model = RandomForestRegressor()
# Train the model
model.fit(X_train, y_train)
# Make predictions on the test set
predictions = model.predict(X_test)
# Evaluate the model using mean squared error
mse = mean_squared_error(y_test, predictions)
  1. Развертывание модели.
    После разработки модели ее можно использовать для прогнозирования новых данных. Пример использования веб-фреймворка Flask для создания конечной точки API для модели:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/predict', methods=['POST'])
def predict():
    data = request.get_json()
    input_data = preprocess_data(data)  # Preprocess input data
    prediction = model.predict(input_data)  # Make predictions
    response = {'prediction': prediction.tolist()}
    return jsonify(response)
if __name__ == '__main__':
    app.run()