sklearn 分类运行时间
我正在尝试在一个数据集上运行分类算法,但在使用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个特征,结果输出也没有出现什么问题。