我编写了代码来创建模型并保存它.它工作正常.我的理解是,默认情况下,数据分为10倍.我想在创建模型时将数据分成两组(训练和测试).在Weka UI上,我可以使用"Percentage split"单选按钮来完成.我想知道如何通过代码来完成它.我希望它分为两部分,80%是培训,20%是测试.这是我的代码.
FilteredClassifier model = new FilteredClassifier();
model.setFilter(new StringToWordVector());
model.setClassifier(new NaiveBayesMultinomial());
try {
model.buildClassifier(trainingSet);
} catch (Exception e1) { // TODO Auto-generated catch block
e1.printStackTrace();
}
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream(
"/Users/me/models/MyModel.model"));
oos.writeObject(model);
oos.flush();
oos.close();
Run Code Online (Sandbox Code Playgroud)
trainingSet这里已经填充了Instances对象.有人可以帮我弄这个吗?
提前致谢!
我有以下正则表达式:
pattern = '^[a-zA-Z0-9-_]*_(?P<pos>[A-Z]\d\d)_T\d{4}(?P<fID>F\d{3})L\d{2}A\d{2}(?P<zID>Z\d{2})(?P<cID>C\d{2})\.tif$'
Run Code Online (Sandbox Code Playgroud)
匹配如下文件名:
filename = '151006_655866_Z01_T0001F015L01A02Z01C03.tif'
Run Code Online (Sandbox Code Playgroud)
与团体:
m = re.match(pattern, filename)
print m.group("pos") # Z01
print m.group("fID") # F015
print m.group("zID") # Z01
Run Code Online (Sandbox Code Playgroud)
如何在 Python 中仅用给定字符串替换指定组?
我尝试与函数调用一起使用re.sub,但不知道这个函数应该是什么样子:
def replace_function(matchobj):
# how to replace only a given match group?
# (the following replaces *all* occurrences of "Z01" in this example)
return matchobj.group(0).replace(matchobj.group("slice"), "---")
print re.sub(pattern, replace_function, filename)
Run Code Online (Sandbox Code Playgroud)
我想要的结果是:
151006_655866_Z01_T0001F015L01A02---C03.tif
Run Code Online (Sandbox Code Playgroud) 我正在尝试转换具有相同中心的多个圆圈的图像,从笛卡儿到极地(这样新图像将是圆形而不是圆形,请参见下图),这样就可以了以下代码:
[r, c] = size(img);
r=floor(r/2);
c=floor(c/2);
[X, Y] = meshgrid(-c:c-1,-r:r-1);
[theta, rho] = cart2pol(X, Y);
subplot(221), imshow(img), axis on;
hold on;
subplot(221), plot(xCenter,yCenter, 'r+');
subplot(222), warp(theta, rho, zeros(size(theta)), img);
view(2), axis square;
Run Code Online (Sandbox Code Playgroud)
问题是,我不明白它为什么会起作用?(显然这不是我的代码),我的意思是,当我使用函数cart2pol时,我甚至不使用图像,它只是从meshgrid函数生成的一些向量x和y ..另一个问题是,我想要某种方式有一个新的图像(不仅仅是能够用环绕功能绘制它),这是原始图像,但是通过theta和rho坐标(意思是相同的像素,但重新排列)...我甚至不确定如何问这个,最后我想要一个矩阵的图像,以便我可以对每一行求和并将矩阵转换为列向量...
我正在尝试使用ImageJ中的批处理脚本批量转换200多个原始.img文件.我的剧本:
//-----------Code starts here---------------------
dir1 = getDirectory("path/source");
dir2 = getDirectory("path/target");
list = getFileList(dir1);
setBatchMode(true);
for (i=0; i<list.length; i++) {
showProgress(i+1, list.length);
if(endsWith(list[i],".IMG"))
run("Raw...", open=["+dir1+list[i]+"] image=[16-bit Unsigned] width=2048 height=2048 offset=359 number=1 gap=0");
else
open(dir1+list[i]);
saveAs(format, dir2+list[i]);
close();
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试运行它时,我收到以下错误:
我不知道为什么,因为我有一个; 关闭线...