我在matlab中编写梯度下降.对于两个功能,我得到了更新步骤:
Run Code Online (Sandbox Code Playgroud)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));
这很好看,但是当我尝试时,我意识到它不适用于梯度下降,因为参数不会同时更新.
然后,我如何矢量化此代码并确保参数并同时更新?
我正在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)术语).
有什么建议吗?
使用/或?能够在vim中找到单词的匹配项.但是我怎样才能找到完全匹配?例如,我的文本包含以下单词:a aa aaa aaaa aa和我输入/aa这将找到包含模式aa的所有字符串,但如果我想要找到确切的aa而不是aaaa aaaa什么?
我希望在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]等,但它没有返回最后一行.
我想在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值的平均次数.
这不会带来任何无限的价值.但是,这是一种有效的方法吗?为什么这种方式不会产生任何无限的价值而计算概率呢?
在Kernighan和Ritchie(C编程语言)中:
'写一个程序来打印EOF的价值'
我写:
#include <stdio.h>
main(){
int c;
c = getchar();
if ((c = getchar()) == EOF)
putchar(c);
}
Run Code Online (Sandbox Code Playgroud)
但它没有输出什么为什么?
在应用正则化逻辑回归时:我将数据分成训练,交叉验证和测试集.我想应用正则化并正在选择正则化参数lambda.为此,我尝试不同的lambda值,并在训练集上拟合我的假设的参数theta.然后,我选择lambda的值,它给出了验证集上最低成本函数.为此,我是否应该使用惩罚条件计算验证集的成本函数?
使用python的networkx库,可以从图G中提取k-core.但是有可能提取某个k的所有k核吗?我想做图形聚类,我的想法是为大的k值提取k核并定义像这样的聚类.
我想使用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)
如果需要,数字用制表符分隔
我正在使用 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)