scikit learn train_test_split () неожиданно ведет себя при разбиении данных - PullRequest
2 голосов
/ 08 июля 2020

Я столкнулся с этой проблемой, когда 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. Я пробовал изменить случайное состояние, удалить случайное состояние, переместить набор данных в новое место, но проблема кажется такой же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...