Particionamento
Para avaliar um modelo corretamente, você pode particionar os dados em conjuntos de treino e teste. O conjunto de treino contém os dados usados para construir o modelo, e o conjunto de teste é usado para avaliá-lo. Essa divisão é feita aleatoriamente, mas quando a incidência do alvo é baixa, pode ser necessário estratificar, ou seja, garantir que os conjuntos de treino e teste tenham a mesma porcentagem de alvos.
Neste exercício, você vai particionar os dados com estratificação e verificar se os conjuntos de treino e teste têm a mesma incidência do alvo. O método train_test_split já foi importado, e os DataFrames X e y estão disponíveis no seu ambiente de trabalho.
Este exercício faz parte do curso
Introdução à Análise Preditiva em Python
Instruções do exercício
- Estratifique esses DataFrames usando o método
train_test_split. Garanta que os conjuntos de treino e teste tenham o mesmo tamanho e a mesma incidência do alvo. - Calcule a incidência do alvo no conjunto de treino. Isso é o número de alvos no conjunto de treino dividido pelo número de observações no conjunto de treino.
- Calcule a incidência do alvo no conjunto de teste.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Load the partitioning module
from sklearn.model_selection import train_test_split
# Create DataFrames with variables and target
X = basetable.drop("target", 1)
y = basetable["target"]
# Carry out 50-50 partititioning with stratification
X_train, X_test, y_train, y_test = ____(X, y, test_size = ____, stratify = ____)
# Create the final train and test basetables
train = pd.concat([X_train, y_train], axis=1)
test = pd.concat([X_test, y_test], axis=1)
# Check whether train and test have same percentage targets
print(round(sum(train[____])/len(____), 2))
print(round(sum(test[____])/len(____), 2))