我正在使用scikit进行机器学习。虽然我完全按照官方文件中提到的步骤进行,但我遇到了两个问题。这里是代码的主要部分:python scikit中更快的数据拟合(或学习)功能
1)trdata是使用sklearn.train_test_split创建的训练数据。 2)p试验和NTEST是分别阳性的测试数据和底片
## Preprocessing
scaler = StandardScaler(); scaler.fit(trdata);
trdata = scaler.transform(trdata)
ptest = scaler.transform(ptest); ntest = scaler.transform(ntest)
## Building Classifier
# setting gamma and C for grid search optimization, RBF Kernel and SVM classifier
crange = 10.0**np.arange(-2,9); grange = 10.0**np.arange(-5,4)
pgrid = dict(gamma = grange, C = crange)
cv = StratifiedKFold(y = tg, n_folds = 3)
## Threshold Ranging
clf = GridSearchCV(SVC(),param_grid = pgrid, cv = cv, n_jobs = 8)
## Training Classifier: Semi Supervised Algorithm
clf.fit(trdata,tg,n_jobs=8)
问题1)当我使用n_jobs = 8在GridSearchCV,代码运行直到GridSearchCV但挂起或说需要非常长的时间,而不结果在执行'clf.fit',即使是非常小的数据集。当我删除它,然后执行,但clf.fit花费很长时间来收敛大数据集。我的数据大小为600 x 12矩阵的正面和负面。你能告诉我什么n_jobs会做什么以及如何使用它?还有什么更快的拟合技术或代码修改,可以用来使其更快?
问题2)StandardScaler也应该结合使用正数据还是负数据?我想它必须结合使用,因为只有我们可以在测试集上使用定标器参数。
您problem2,使用定标器上的P/N数据完全 – lennon310
好的,谢谢你。 .. 你能不能更新我的一个更多的信息。尺寸为 m样本x n特征的数据是沿行还是沿着列进行归一化的?我想它是沿着列完成的,但是建议在用分类器对它进行分类或预测之前对用户输入进行规范化。那么考虑到输入将具有1个样本x n个特征的事实,单个输入是如何归一化的呢?显然,规范化不能沿着按行排列的功能进行。 – Ashutosh
还有一件事...用户输入规范化与训练数据的规模相同。 – Ashutosh