我有一个R数据框,有两个字段:
ID WORD
1 AAAAABBBBB
2 ABCAAABBBDDD
3 ...
Run Code Online (Sandbox Code Playgroud)
我想通过重复字母简化字母,而不是重复字母而不是重复字母:
例如:AAAAABBBBB应该给我AB
并且 ABCAAABBBDDD应该给我ABCABD
任何人都知道如何做到这一点?
这是一个后续问题:
为了对新的10维测试数据进行分类,我是否还必须将训练数据减少到10维?
我试过了:
X = bsxfun(@minus, trainingData, mean(trainingData,1));
covariancex = (X'*X)./(size(X,1)-1);
[V D] = eigs(covariancex, 10); % reduce to 10 dimension
Xtrain = bsxfun(@minus, trainingData, mean(trainingData,1));
pcatrain = Xtest*V;
Run Code Online (Sandbox Code Playgroud)
但是使用带有此分类器和10维测试数据会产生非常不可靠的结果吗?我做的事情根本就是错误吗?
编辑:
X = bsxfun(@minus, trainingData, mean(trainingData,1));
covariancex = (X'*X)./(size(X,1)-1);
[V D] = eigs(covariancex, 10); % reduce to 10 dimension
Xtrain = bsxfun(@minus, trainingData, mean(trainingData,1));
pcatrain = Xtest*V;
X = bsxfun(@minus, pcatrain, mean(pcatrain,1));
covariancex = (X'*X)./(size(X,1)-1);
[V D] = eigs(covariancex, 10); % reduce to 10 dimension
Xtest = bsxfun(@minus, test, …Run Code Online (Sandbox Code Playgroud) python中有没有可用的程序包来执行独立组件分析(ICA)?
请提供一些指针和链接,以便我可以从python开始。
我在100张图片上使用PCA.我的训练数据是442368x100 double矩阵.442368是特征,100是图像的数量.这是我找到特征向量的代码.
[ rows, cols] = size(training);
maxVec=rows;
maxVec=min(maxVec,rows);
train_mean=mean(training,2);
A=training-train_mean*ones(1,cols);
A=A'*A;
[evec,eval]=eig(A);
[eval ind] = sort(-1*diag(eval));
evec= evec(:, ind(1:100));
Run Code Online (Sandbox Code Playgroud)
现在evec是一个100x100倍的特征向量矩阵,现在我有100个特征向量排序.
问题:
现在,如果我想使用上面计算的特征向量转换我的测试数据,那么我该如何使用这些特征向量?我的测试数据是442368x50 double我的特征向量矩阵100x100 double.内部矩阵尺寸不一致.如何找到测试数据和特征向量矩阵的点积?
散列减少了维度,而单热编码通过将多分类变量转换为许多二进制变量来实质上炸毁了特征空间.所以看起来他们有相反的效果.我的问题是:
在同一数据集上执行这两个操作有什么好处?我读了一些关于捕捉互动但没有详细说明的内容 - 有人可以详细说明吗?
哪一个首先出现,为什么?
hash machine-learning dimensionality-reduction one-hot-encoding
我看attributes的skbio's PCoA方法(见下表).我是新来这个API,我希望能够得到eigenvectors投射到新中轴线和原始点相似.fit_transform的sklearn.decomposition.PCA,所以我可以创造一些PC_1 vs PC_2式的情节.我想出了如何获得eigvals,proportion_explained但features回来了None.
这是因为它处于测试阶段吗?
如果有任何教程使用它,那将非常感激.我是一个狂热的粉丝,scikit-learn并希望开始使用更多的scikit's产品.
| Attributes
| ----------
| short_method_name : str
| Abbreviated ordination method name.
| long_method_name : str
| Ordination method name.
| eigvals : pd.Series
| The resulting eigenvalues. The index corresponds to the ordination
| axis labels
| samples : pd.DataFrame
| The position of the samples …Run Code Online (Sandbox Code Playgroud) machine-learning linear-algebra dimensionality-reduction scikits skbio
我正在对从CNN的不同层提取的特征使用主成分分析.我从这里下载了降维工具箱.
我总共有11232个训练图像,每个图像的特征是6532.所以特征矩阵就像那样11232x6532
如果我想要90%的顶级特征,我可以很容易地做到这一点,使用SVM减少数据的训练精度是81.73%这是公平的.但是,当我尝试具有2408个图像的测试数据时,每个图像的特征是6532.因此用于测试数据的特征矩阵是2408x6532.在这种情况下,前90%功能的输出显示不正确2408x2408.测试精度为25%.不使用降维,训练精度为82.17%,测试精度为79%.
更新:X数据
在何处,no_dims是输出时所需的维数.该PCA功能的输出是可变的mappedX和结构mapping.
% Make sure data is zero mean
mapping.mean = mean(X, 1);
X = bsxfun(@minus, X, mapping.mean);
% Compute covariance matrix
if size(X, 2) < size(X, 1)
C = cov(X);
else
C = (1 / size(X, 1)) * (X * X'); % if N>D, we better use this matrix for the eigendecomposition
end
% Perform eigendecomposition of C
C(isnan(C)) = 0; …Run Code Online (Sandbox Code Playgroud) matlab machine-learning computer-vision pca dimensionality-reduction
我知道PCA和ICA都用于减少维数,而PCA主成分是正交的(不一定是独立的),但在ICA中它们是独立的.任何人都可以澄清何时使用ICA而不是PCA更好?
我已经完成了Microsoft的课程DAT210X-使用Python进行数据科学编程。
在创建SVC用于机器学习的模型时,我们建议在执行eg 和eg 之前使用from 将数据集X分成test和train集。我在下面提供了一个代码示例,其中部分代码是我使用这种处理方式针对给定问题编写的解决方案的一部分。train_test_splitsci-kit learnpreprocessingscalingdimension reductionPCA/Isomap
但是,在将X拆分为and 之前,它在X 上preprocess和PCA/IsoMapX上看起来要快得多,并且得分更高。testtrainaccuracy
我的问题是:
1)是否有原因,我们不能在分割进行测试和训练之前将标签(y)切成薄片并对所有X进行预处理和缩小尺寸?
2)在所有X上进行预处理和降维的分数(减y)要比拆分X然后进行预处理和降维的分数更高。为什么会这样呢?
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=0.30, random_state=7)
step_c = .05
endpt_c = 2 + step_c
startpt_c = .05
step_g = .001
endpt_g = .1 + step_g
startpt_g = .001
bestscore = 0.0
best_i = 0.0
best_j = 0.0
pre_proc = [
preprocessing.Normalizer(),
preprocessing.MaxAbsScaler(),
preprocessing.MinMaxScaler(),
preprocessing.KernelCenterer(),
preprocessing.StandardScaler()
] …Run Code Online (Sandbox Code Playgroud) python machine-learning svm dimensionality-reduction scikit-learn
我试图通过显着的P值来对变量进行子集化,并尝试使用以下代码,但它只选择所有变量而不是按条件选择.任何人都可以帮我纠正这个问题吗?
myvars <- names(summary(backward_lm)$coefficients[,4] < 0.05)
happiness_reduced <- happiness_nomis[myvars]
Run Code Online (Sandbox Code Playgroud)
谢谢!
pca ×4
matlab ×3
r ×2
dataframe ×1
eigenvector ×1
extraction ×1
hash ×1
image ×1
p-value ×1
python ×1
python-3.x ×1
scikit-learn ×1
scikits ×1
skbio ×1
string ×1
subset ×1
svm ×1