如何利用dask数据帧进行降维?

2024-04-23 08:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对我的dask数据帧执行降维,因为它有25088个特性。 我想从我的数据帧中提取90-95%的信息或前4000-5000个数据特征。 必须根据“销售价格”信息提取数据,该信息仅在数据框中可用。你知道吗

数据帧的视图是:

image_features_df.head(3)
   feat1   feat2   feat3  ...  feat25087    feat25088   fid   selling_price
0   0.0    0.0     0.0    ...   0.0          0.0         2       269.00
4   0.3    0.1     0.0    ...   0.0          0.8         26      1720.00    
6   0.8    0.0     0.0    ...   0.0          0.1         50      18145.25

这里只有前25088个特征必须用于维数缩减。 我想要缩小尺寸的输出,这样我就可以在上面训练一个模型。你知道吗

编辑:

数据帧是100000行和25088列,所以请告诉一个解决方案,不给内存错误。你知道吗


Tags: 数据image视图信息df特征特性head
1条回答
网友
1楼 · 发布于 2024-04-23 08:29:07

我假设主成分分析对你来说“足够好”,因为你没有指定算法。请注意,首先需要缩放功能。你知道吗

from dask_ml.decomposition import PCA
from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()
image_features_df = scaler.fit_transform(image_features_df)

pca = PCA(n_components=5000)
pca.fit(image_features_df)

既然你已经找到了合适的方法,你可以用90%来寻找解释方差的pca.explained_variance_ratio_,即

explained_variance = 0.9
cumsum_var = pca.explained_variance_ratio_.cumsum() > explained_variance
idx = cumsum_var.argmax()
print(f'Number of components needed for having at least {explained_variance} is equal to {idx})

相关问题 更多 >