Кросс-валидация в sklearn
from sklearn.model_selection import cross_val_score
cross_val_score(model, features, target, cv=7)
model обучается в процессе валидации, на вход подаётся до обучения
cv — число блоков
Пример для дерева решений
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import cross_val_score
df = pd.read_csv('/folder_name/data.csv')
features = df.drop(['target'], axis=1)
target = df['target']
model = DecisionTreeClassifier(random_state=0)
# Функция cross_val_score создает 7 блоков и возвращает список оценок, в данном случае accuracy
scores = cross_val_score(model, features, target, cv=7)
#Чтобы посчитать среднюю оценку, делим сумму всех оценок (всех элементов массива scores) на его длину
mean_score = sum(scores) / len(scores)
print('Средняя оценка качества модели accuracy:', mean_score)