小编big*_*ree的帖子

矢量化梯度下降算法

我在matlab中编写梯度下降.对于两个功能,我得到了更新步骤:

temp0 = theta(1,1) - (alpha/m)*sum((X*theta-y).*X(:,1));
temp1 = theta(2,1) - (alpha/m)*sum((X*theta-y).*X(:,2));
theta(1,1) = temp0;
theta(2,1) = temp1;
Run Code Online (Sandbox Code Playgroud)

但是,我想要对此代码进行矢量化,并能够将其应用于任意数量的功能.对于矢量化部分,有人向我指出,我想要做的是矩阵乘法

theta = theta - (alpha/m) * (X' * (X*theta-y));
Run Code Online (Sandbox Code Playgroud)

这很好看,但是当我尝试时,我意识到它不适用于梯度下降,因为参数不会同时更新.

然后,我如何矢量化此代码并确保参数并同时更新?

matlab machine-learning linear-algebra gradient-descent

17
推荐指数
2
解决办法
1万
查看次数

梯度下降代码的矢量化

我正在Matlab上实现批量梯度下降.我的更新步骤有问题theta. theta是两个组件(两行)的向量. X是包含m行(训练样本数)和n=2列(特征数)的矩阵.Y是m行向量.

在更新步骤中,我需要将每个设置theta(i)

theta(i) = theta(i) - (alpha/m)*sum((X*theta-y).*X(:,i))
Run Code Online (Sandbox Code Playgroud)

这可以通过for循环完成,但我无法弄清楚如何对其进行矢量化(因为该X(:,i)术语).

有什么建议吗?

matlab gradient-descent

15
推荐指数
1
解决办法
1万
查看次数

在vim中找到完全匹配

使用/?能够在vim中找到单词的匹配项.但是我怎样才能找到完全匹配?例如,我的文本包含以下单词:a aa aaa aaaa aa和我输入/aa这将找到包含模式aa的所有字符串,但如果我想要找到确切的aa而不是aaaa aaaa什么?

vim

11
推荐指数
2
解决办法
1万
查看次数

获得pca中的累积比例

我希望在R中的pca之后summary(pca)将最终解释的方差的累积比例返回到最后一行,但是如何提取该行呢?

summary(prcomp(USArrests, scale = TRUE))
Importance of components:
                          PC1    PC2     PC3     PC4
Standard deviation     1.5749 0.9949 0.59713 0.41645
Proportion of Variance 0.6201 0.2474 0.08914 0.04336
Cumulative Proportion  0.6201 0.8675 0.95664 1.00000
Run Code Online (Sandbox Code Playgroud)

我尝试了s <- summary(prcomp(USArrests, scale = TRUE)) s [3]等,但它没有返回最后一行.

r

11
推荐指数
3
解决办法
1万
查看次数

计算大数的二项式概率

我想在python上计算二项式概率.我试着应用这个公式:

probability = scipy.misc.comb(n,k)*(p**k)*((1-p)**(n-k))
Run Code Online (Sandbox Code Playgroud)

我得到的一些概率是无限的.我检查了一些p = inf的值.对于其中一个,n = 450,000,k = 17.该值必须大于1e302,这是浮点数处理的最大值.

然后我试着用 sum(np.random.binomial(n,p,numberOfTrials)==valueOfInterest)/numberOfTrials

这将绘制numberOfTrials样本并计算绘制valueOfInterest值的平均次数.

这不会带来任何无限的价值.但是,这是一种有效的方法吗?为什么这种方式不会产生任何无限的价值而计算概率呢?

python algorithm numpy probability binomial-coefficients

8
推荐指数
3
解决办法
3951
查看次数

打印EOF的值

在Kernighan和Ritchie(C编程语言)中:

'写一个程序来打印EOF的价值'

我写:

#include <stdio.h>

main(){

    int c;
    c = getchar();
    if ((c = getchar()) ==  EOF)
        putchar(c);
}
Run Code Online (Sandbox Code Playgroud)

但它没有输出什么为什么?

c putchar

6
推荐指数
3
解决办法
2万
查看次数

选择正则化参数

在应用正则化逻辑回归时:我将数据分成训练,交叉验证和测试集.我想应用正则化并正在选择正则化参数lambda.为此,我尝试不同的lambda值,并在训练集上拟合我的假设的参数theta.然后,我选择lambda的值,它给出了验证集上最低成本函数.为此,我是否应该使用惩罚条件计算验证集的成本函数?

machine-learning regularized logistic-regression

4
推荐指数
1
解决办法
3856
查看次数

使用networkx提取所有k核

使用python的networkx库,可以从图G中提取k-core.但是有可能提取某个k的所有k核吗?我想做图形聚类,我的想法是为大的k值提取k核并定义像这样的聚类.

python cluster-analysis machine-learning

4
推荐指数
1
解决办法
2000
查看次数

在vim中删除列

我想使用vim删除文本文件的第一列。我在使用可视模式的情况下阅读了这些SO答案,但是它们仅删除了第一个字符(至于使用模式的答案,我听不懂,因此我很难适应他们的情况)。

我的文件包含许多数字,我想删除第一列中的数字,而不仅仅是第一个元素。

例如

12 34 43143 1
131234 1 
1 3443 132
Run Code Online (Sandbox Code Playgroud)

我想拥有

34 43143 1
1 
3443 132
Run Code Online (Sandbox Code Playgroud)

但目前,我得到了

2 34 43143 1
31234 1 
 3443 132
Run Code Online (Sandbox Code Playgroud)

如果需要,数字用制表符分隔

vim

3
推荐指数
2
解决办法
3007
查看次数

DictReader 的类型错误

我正在使用 DictReader 和 DictWriter 处理 csv 文件。

我尝试根据此处找到的以下代码进行工作:

import csv

fieldnames = ['Node', 'ID', 'Test Description', 'file-name',
              'module', 'view', 'path1','path2'] # defines order in output file

with open('testdata.txt', 'rb') as csvinput:
    with open('testdata2.txt', 'wb') as csvoutput:
        csvwriter = csv.DictWriter(csvoutput, fieldnames, delimiter=',')
        csvwriter.writeheader()
        nodecount = 0
        for row in csv.DictReader(csvinput):
            nodecount +=1
            row['Node'] = 'node %s' % nodecount  # add 'Node' entry to row data
            csvwriter.writerow(row)
Run Code Online (Sandbox Code Playgroud)

我使用 python 3.2 并收到以下错误:

  File "/usr/lib/python3.2/csv.py", line 153, in writerow
  return self.writer.writerow(self._dict_to_list(rowdict))
TypeError: …
Run Code Online (Sandbox Code Playgroud)

python csv

2
推荐指数
1
解决办法
828
查看次数