我正在尝试在数据集上运行分类算法,但是我在使用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)
是什么给出的?减少52个变量,我认为PCA版本可以更快地完成,但它似乎根本不想运行!是否与传递numpy数组与pandas数据帧有关?我的数据帧有1,0个标志(整数)或z分数值(浮点数我相信)。我在这里有点难过 - 欢迎任何帮助!
答案 0 :(得分:0)
所以我能做的最好的事情就是减少PCA数据集运行的功能数量。在7个功能上,它运行得相对较快,但是一旦我输入了10个功能,我从来没有完成它,我不确定它是否与正在开发的数据有关,但我最终还是以7开始,并没有在我的输出中看到任何不利的结果。