sklearn 分类运行时间

0 投票
1 回答
730 浏览
提问于 2025-04-18 13:29

我正在尝试在一个数据集上运行分类算法,但在使用sklearn的PCA模块时遇到了一些问题。

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.decomposition import PCA

train = pd.DataFrame.from_csv('testData.csv')
target = train['is_exciting']
test.drop(['is_exciting'], axis = 1, inplace = True)

np.shape(train)

>>>(619326, 62)

model = RandomForestClassifier(n_estimators=100)

如果我直接把原始训练数据输入到分类器中,运行时间大约是20分钟:

model.fit(train, target)

但是,当我尝试另一个版本,先用PCA转换我的数据时,它在3小时内都没有完成运行。(最后我只好强制结束它。)

pca = PCA(n_components=10)
x = pca.fit_transform(train)

print np.shape(x)

>>>(619326L, 10L)

model.fit(x, target)

这是怎么回事呢?我以为用PCA减少了52个变量后,运行会快很多,但看起来根本不想运行!这是不是和传入numpy数组和pandas数据框有关?我的数据框里要么是1和0的标志(整数),要么是z分数值(我想是浮点数)。我有点困惑,任何帮助都很欢迎!

1 个回答

0

我能做的最好的事情就是减少PCA数据集中的特征数量。当我使用7个特征时,运行得比较快,但一旦我增加到10个特征,就一直没能完成。我不太确定这是否跟数据的开发有关,但最后我还是选择了7个特征,结果输出也没有出现什么问题。

撰写回答