Я столкнулся с этой проблемой, когда train_test_split () sklearn резко разделяет наборы данных в случае больших наборов данных. Я пытаюсь загрузить весь набор данных в 118 МБ, и он назначает тестовые данные в 10 раз меньше, чем ожидается от кода.
Случай 1: 60 000 точек данных
#loading the data
import pandas
data = pandas.read_csv('preprocessed_data.csv',nrows=60000)
data.shape
y=data['project_is_approved'] #
X=data.drop(['project_is_approved'],axis=1)
X.shape,y.shape
# train test split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, stratify=y,random_state=0)
print(X_train.shape, y_train.shape)
#print(X_cv.shape, y_cv.shape)
print(X_test.shape, y_test.shape)
Вывод: (40200, 8) (40200,) (19800, 8) (19800,)
Случай 2: 109 000 точек данных
#loading the data
import pandas
data = pandas.read_csv('preprocessed_data.csv')
print(data1.shape)
y=data['project_is_approved'] #
X=data.drop(['project_is_approved'],axis=1)
X.shape,y.shape
# train test split
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, stratify=y,random_state=123)
print(X_train.shape, y_train.shape)
#print(X_cv.shape, y_cv.shape)
print(X_test.shape, y_test.shape)
Вывод: (109248, 9) (90552, 8) (90552,) (1460, 8) (1460,)
Что-нибудь еще чем 60K точек данных резко превращаются, как в случае 2, в 90K и 1,4K. Я пробовал изменить случайное состояние, удалить случайное состояние, переместить набор данных в новое место, но проблема кажется такой же.