我有一个具有800列的pandas DataFrame:
结果,我的DataFrame是一个稀疏矩阵。
现在我应该应用XGBClassifier来解决多类分类问题。但是,我认为压缩此DataFrame是一个好主意。
我找到了这种方法:
from numpy import array
from scipy.sparse import csr_matrix
A = array([[1, 0, 0, 1, 0, 0], [0, 0, 2, 0, 0, 1], [0, 0, 0, 2, 0, 0]])
# convert to sparse matrix (CSR method)
B = csr_matrix(A)
但是,尚不清楚如何将其与sklearn分类器一起使用。 一般来说,压缩我的DataFrame是个好主意吗?
答案 0 :(得分:0)
您可以将Pandas DataFrame与XGBoost一起使用(已通过XGBoost版本0.81测试)。
在假设df
是带有列target
的Pandas DataFrame中进行示例代码。
import pandas as pd
import xgboost as xgb
from sklearn.model_selection import train_test_split
// ... your code in here ...
// Train-Test Split
train, test = train_test_split(df)
y_train = train["target"]
X_train = train.drop(["target"],axis=1)
y_test = test["target"]
X_test = test.drop(["target"],axis=1)
// Train model
model = xgb.XGBClassifier()
model.fit(X_train, y_train)
preds = model.predict(X_test)
希望对您有帮助。