train_test_split具有多种功能

时间:2018-04-14 07:36:36

标签: python python-3.x pandas dataframe scikit-learn

我目前正在尝试使用决策树分类器训练数据集,但我无法使train_test_split工作。

从下面的代码中CS是目标输出,EN SN JT FT PW YR LO LA是功能输入。

所有通过OHL的变量都是稀疏矩阵格式,而另一个是从数据帧中直接取得的数组。

def OHL(x, column): #OneHotEncoder
    le = LabelEncoder()
    enc = OneHotEncoder()
    Labeled = le.fit_transform(x[column].astype(str))
    return enc.fit_transform(Labeled.reshape(-1,1))

###------------------------------------------------------------------------

df = pd.read_csv('h1b_kaggle.csv')
df = df.drop(['Unnamed: 0','WORKSITE'],1)

###------------------------------------------------------------------------

CS = OHL(df, 'CASE_STATUS')
EN = OHL(df, 'EMPLOYER_NAME')
SN = OHL(df, 'SOC_NAME')
JT = OHL(df, 'JOB_TITLE')
FT = OHL(df, 'FULL_TIME_POSITION')
PW = np.array(df['PREVAILING_WAGE'])
YR = OHL(df, 'YEAR')
LO = np.array(df['lon'])
LA = np.array(df['lat'])

1 个答案:

答案 0 :(得分:3)

如果查看sklearn.model_selection.train_test_split,您会发现它需要*arrays个参数。因此,要分割前三个参数,可以使用

CS_tr, CS_te, EN_tr, EN_te, SN_tr, SN_te = train_test_split(CS, EN, SN)

(当然,您可以传递更多数组)。

请注意,当给定稀疏数组时,sklearn的当前版本会返回稀疏数组。