gpt4 book ai didi

python - Pandas : ValueError ( any way to convert Sparse[float64, 0.0] dtypes 到 float64 数据类型)

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:28 30 4
gpt4 key购买 nike

我有一个数据帧 X_train,我正在将另一个数据帧连接到其中。第二个和第三个数据帧是从 TF-IDF Vectorizer 生成的稀疏矩阵中获得的

q1_train_df = pd.DataFrame.sparse.from_spmatrix(q1_tdidf_train,index=X_train.index,columns=q1_features)
q2_train_df = pd.DataFrame.sparse.from_spmatrix(q2_tdidf_train,index=X_train.index,columns=q2_features)
X_train_final = pd.concat([X_train,q1_train_df,q2_train_df],axis=1)

X_train_final dtypes 如下所示


X_train_final.dtypes

cwc_min float64
cwc_max float64
csc_min float64
csc_max float64
ctc_min float64
...
q2_zealand Sparse[float64, 0.0]
q2_zero Sparse[float64, 0.0]
q2_zinc Sparse[float64, 0.0]
q2_zone Sparse[float64, 0.0]
q2_zuckerberg Sparse[float64, 0.0]
Length: 10015, dtype: object

我正在使用 XGBoost 来训练这个最终的数据帧,这在尝试拟合数据时抛出错误

model.fit( X_train_final,y_train)


ValueError: DataFrame.dtypes for data must be int, float or bool.
Did not expect the data types in fields q1_04, q1_10, q1_100, q

我认为该错误是由于其中存在 Sparse[float64,0.0] dtypes 造成的。您能帮我解决一下,不知道如何摆脱这个错误吗?

最佳答案

我实际上刚刚遇到了同样的问题。我有一个使用 TF-IDF 矢量生成器生成的列列表,并且我尝试在数据集上使用 XGBoost。

这最终对我有用:

import xgboost as xgb


train_df = train_df.apply(pd.to_numeric, errors='coerce')

train_df[tf_idf_column_names] = train_df[tf_idf_column_names].sparse.to_dense()

train_x = train_df.iloc[:,1:]

train_y = train_df.iloc[:,:1]

dtrain= xgb.DMatrix(data=train_x, label=train_y)

param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}

num_round = 2

bst = xgb.train(param, dtrain, num_round)

preds = bst.predict(dtest)

关于python - Pandas : ValueError ( any way to convert Sparse[float64, 0.0] dtypes 到 float64 数据类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60030633/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com