当前位置: 首页 > 知识库问答 >
问题:

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

邹缪文
2023-03-14

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

我已经定义了-

  1. X=df。iloc[:,1:13]——由特征值组成

两者的长度相同,X是由13列组成的数据帧,shape(159880,13),y是具有shape(159880,)的数组类型

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

下面是简单的代码-

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

分裂后,X_train和X_test都有形状(119910,13)。y_train有形状(39970,13),y_test有形状(39970,)

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

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

import pandas as pd

将numpy作为np从sklearn导入。从adspy导入决策树分类工具\u共享工具\u从sklearn导入绘图\u功能\u重要性。型号选择从sklearn导入列车测试。线性回归模型

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)

共有2个答案

盛骏祥
2023-03-14
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' )
松旭
2023-03-14

你把train_test_split结果搞混了,应该是

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=0)
 类似资料:
  • 问题内容: 样本数据: 我使用以下查询将’ ‘’分隔的字符串分成几行: 我的查询存在问题,我不想为每个拆分的电子邮件地址创建新行-我想为其添加新列。 email_address列中最多有3个单独的电子邮件地址。有什么建议?如果它的大小超过3,最好是答案可以占n列。 问题答案: 测试数据 询问 结果

  • 我有下面的spark数据框架。 我必须将上面的数据帧列拆分为多个列,如下所示。 我尝试使用分隔符进行拆分;和限制。但是它也将主题拆分为不同的列。姓名和年龄被组合在一起成一列。我要求所有主题在一列中,只有姓名和年龄在单独的列中。 这在Pyspark有可能实现吗?

  • 问题内容: 我有一个火花时间序列数据框。我想将其拆分为80-20(训练测试)。由于这是 时间序列数据帧 ,因此我不想进行随机拆分。为了将第一个数据帧传递到训练中并传递第二个数据帧进行测试,我该如何做? 问题答案: 您可以用来获取按时间戳/日期列排序的DataFrame的百分位排名。然后选择所有列作为训练集,其余作为测试集。 例如,如果您具有以下DataFrame: 您需要训练集中的前4行和训练集中

  • 我有2个数据集,应用了5个不同的ML模型。 数据集1: 形状是。(int64,float64)。 数据集2: 形状是。(int64,float64)。 我使用不同的型号。代码是 但是我得到了一个常见的错误,比如这个,这个,还有这个。我已经浏览了所有这些帖子,但对错误一无所知。我使用了和

  • 问题内容: 如果我们在python中有一个,并且想要基于一些特殊的条件创建子列表,我们应该怎么做? 例如: 会产生: 问题答案: itertools.groupby是一种方法(通常是这样): 由于这种特殊情况,我们甚至可以作弊:

  • 我有列。 如何根据值将其拆分为2? 第一个将包含