Python 列车\u测试\u拆分而不是拆分数据

Python 列车\u测试\u拆分而不是拆分数据,python,scikit-learn,train-test-split,Python,Scikit Learn,Train Test Split,有一个数据帧,它总共由14列组成,最后一列是整数值为0或1的目标标签 我已界定— X=df.iloc[:,1:13]-这包括特征值 Ly=df.iloc[:,-1]——它由相应的标签组成 两者的长度都与所需长度相同,X是由13列组成的数据帧,形状159880,13,y是具有形状159880的数组类型 但是,当我在X,y上执行列车测试分割时,该功能无法正常工作 下面是简单的代码- X_序列,y_序列,X_测试,y_测试=序列测试分割X,y,随机状态=0 分割后,X_系列和X_测试的形状均为1199

有一个数据帧,它总共由14列组成,最后一列是整数值为0或1的目标标签

我已界定—

X=df.iloc[:,1:13]-这包括特征值 Ly=df.iloc[:,-1]——它由相应的标签组成 两者的长度都与所需长度相同,X是由13列组成的数据帧,形状159880,13,y是具有形状159880的数组类型

但是,当我在X,y上执行列车测试分割时,该功能无法正常工作

下面是简单的代码-

X_序列,y_序列,X_测试,y_测试=序列测试分割X,y,随机状态=0

分割后,X_系列和X_测试的形状均为119910,13。y_列车的形状为39970,13,y_试验的形状为39970

这很奇怪,即使定义了test_size参数,结果仍然是一样的

请告知,可能出了什么问题

import pandas as pd
将numpy作为np导入 从sklearn.tree导入DecisionTreeClassifier 从adspy\u共享\u实用程序导入绘图\u要素\u重要性 从sklearn.model\u选择导入列车\u测试\u拆分 从sklearn.linear_模型导入逻辑回归

def型号:

df = pd.read_csv('train.csv', encoding = 'ISO-8859-1')
df = df[np.isfinite(df['compliance'])]
df = df.fillna(0)
df['compliance'] = df['compliance'].astype('int')
df = df.drop(['grafitti_status', 'violation_street_number','violation_street_name','violator_name',
              'inspector_name','mailing_address_str_name','mailing_address_str_number','payment_status',
              'compliance_detail', 'collection_status','payment_date','disposition','violation_description',
              'hearing_date','ticket_issued_date','mailing_address_str_name','city','state','country',
              'violation_street_name','agency_name','violation_code'], axis=1)
df['violation_zip_code'] = df['violation_zip_code'].replace(['ONTARIO, Canada',', Australia','M3C1L-7000'], 0)
df['zip_code'] = df['zip_code'].replace(['ONTARIO, Canada',', Australia','M3C1L-7000'], 0)
df['non_us_str_code'] = df['non_us_str_code'].replace(['ONTARIO, Canada',', Australia','M3C1L-7000'], 0)
df['violation_zip_code'] = pd.to_numeric(df['violation_zip_code'], errors='coerce')
df['zip_code'] = pd.to_numeric(df['zip_code'], errors='coerce')
df['non_us_str_code'] = pd.to_numeric(df['non_us_str_code'], errors='coerce')
#df.violation_zip_code = df.violation_zip_code.replace('-','', inplace=True)
df['violation_zip_code'] = np.nan_to_num(df['violation_zip_code'])
df['zip_code'] = np.nan_to_num(df['zip_code'])
df['non_us_str_code'] = np.nan_to_num(df['non_us_str_code'])
X = df.iloc[:,0:13]
y = df.iloc[:,-1]
X_train, y_train, X_test, y_test = train_test_split(X, y, random_state = 0)    
print(y_train.shape)

你把列车测试结果搞混了,应该是

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=0)
if args.mode == "train":

    # Load Data
    data, labels = load_dataset('C:/Users/PC/Desktop/train/k')

    # Train ML models
    knn(data, labels,'C:/Users/PC/Desktop/train/knn.pkl' )