我已经解决了多个问题,这些问题有助于将数据帧分为训练和测试,使用 scikit 或不使用 scikit 等。
但我的问题是我有 2 个不同的 csv(来自不同年份的 2 个不同的数据帧)。我想用一个作为火车,另一个作为测试?
对于线性回归/任何模型如何做到这一点?
python linear-regression training-data scikit-learn data-science
我有一个非常不平衡的数据集,我需要在此基础上构建一个模型来解决分类问题。该数据集有大约 30000 个样本,其中大约 1000 个样本被标记为\xe2\x80\x941\xe2\x80\x94,其余为 0。我通过以下几行构建模型:
\n\nX_train=training_set\ny_train=target_value\nmy_classifier=GradientBoostingClassifier(loss=\'deviance\',learning_rate=0.005)\nmy_model = my_classifier.fit(X_train, y_train)\nRun Code Online (Sandbox Code Playgroud)\n\n由于这是一个不平衡的数据,因此像上面的代码一样简单地构建模型是不正确的,所以我尝试使用类权重,如下所示:
\n\nclass_weights = compute_class_weight(\'balanced\',np.unique(y_train), y_train)\nRun Code Online (Sandbox Code Playgroud)\n\n现在,我不知道如何使用 class_weights(基本上包括 0.5 和 9.10 值)来训练和构建模型GradientBoostingClassifier。
任何想法?我如何使用加权类或其他技术处理这些不平衡的数据?
\n我可以使用此代码计算每个时期后的准确性。但是,我想最后计算每个班级的准确性。我怎样才能做到这一点?我有两个文件夹 train 和 val 。每个文件夹有 7 个不同类别的 7 个文件夹。train 文件夹用于训练。否则 val 文件夹用于测试
def train_model(model, criterion, optimizer, lr_scheduler, num_epochs=25):
since = time.time()
best_model = model
best_acc = 0.0
for epoch in range(num_epochs):
print('Epoch {}/{}'.format(epoch, num_epochs - 1))
print('-' * 10)
# Each epoch has a training and validation phase
for phase in ['train', 'val']:
if phase == 'train':
mode='train'
optimizer = lr_scheduler(optimizer, epoch)
model.train() # Set model to training mode
else:
model.eval()
mode='val'
running_loss = 0.0
running_corrects = 0
counter=0
# …Run Code Online (Sandbox Code Playgroud) classification loss training-data conv-neural-network pytorch
我试图开发某种方法来在格式之间转换注释,并且很难找到信息,但在这里我有:
这是PASCAL VOC
<width>800</width>
<height>450</height>
<depth>3</depth>
<bndbox>
<xmin>474</xmin>
<ymin>2</ymin>
<xmax>726</xmax> <!-- shape_width = 252 -->
<ymax>449</ymax> <!-- shape_height = 447 -->
</bndbox>
Run Code Online (Sandbox Code Playgroud)
转换为YOLO 暗网
2 0.750000 0.501111 0.315000 0.993333
Run Code Online (Sandbox Code Playgroud)
注意开头2它是一个类别
我正在尝试构建一个应用程序来检测来自网页的广告图像.一旦我发现了那些,我就不会允许那些在客户端显示.
从我对Stackoverflow问题的帮助,我认为SVM是达到我目标的最佳方法.
所以,我自己编写了SVM和SMO.我从UCI数据存储库获得的数据集有3280个实例(链接到数据集),其中大约400个来自表示广告图像的类,其余表示非广告图像.
现在我正在使用前2800个输入集并训练SVM.但在查看准确率后,我意识到这2800个输入集中的大多数来自非广告图像类.因此,我对该课程的准确性非常高.
那我该怎么办?关于我要给SVM培训多少输入集,以及每个类有多少输入集?
谢谢.干杯.(基本上提出了一个新问题,因为上下文与我之前的问题不同.优化神经网络输入数据)
谢谢回复.我想检查一下我是否正确得出广告和非广告类的C值.请给我反馈.

或者你可以在这里看到doc版本.
你可以在这里看到y1 eqaul到y2的图形

并且y1在这里不等于y2

public void addStudent(String student) {
String [] temp = new String[students.length * 2];
for(int i = 0; i < students.length; i++){
temp[i] = students[i];
}
students = temp;
students[numberOfStudents] = student;
numberOfStudents++;
}
Run Code Online (Sandbox Code Playgroud)
public String[] getStudents() {
String[] copyStudents = new String[students.length];
return copyStudents;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试让方法getStudents返回我在addStudent方法中创建的数组的副本.我不知道该如何解决这个问题.
我正在使用helen 数据集训练DLIB的194个面部地标的shape_predictor,该数据集用于通过face_landmark_detection_ex.cppdlib库检测面部地标.
现在它给了我一个sp.dat大约45 MB的二进制文件,与给出的68个面部标志的文件(http://sourceforge.net/projects/dclib/files/dlib/v18.10/shape_predictor_68_face_landmarks.dat.bz2)相比较少.在培训中
当我使用经过训练的数据获得面部地标位置时,结果我得到了......
这与68个地标的结果非常不同
68地标图片:
为什么?
我主要了解 k 折交叉验证的工作原理,并已开始将其实现到我的 MATLAB 脚本中,但是我有两个问题。
当使用它来选择网络特征时(在我的例子中,隐藏单元、权重衰减和无迭代)。我应该在每次“折叠”后重新初始化权重,还是应该将我的下一次训练折叠输入已经训练好的网络(它的权重已经针对前一次折叠进行了优化)?
似乎做后者应该给出较低的错误,因为前一折叠数据将是下一个数据折叠的良好近似,因此权重将比从高斯分布随机初始化的权重更接近。
此外,使用 k-fold 验证验证了网络,并选择了网络超参数等,我想开始使用该网络,我认为我应该停止使用 k-fold 验证并只训练一次,使用所有可用的数据?
非常感谢您的帮助。
我正在尝试使用 TensorFlow 的估算器。在文档中,以下代码用于训练和评估网络。
# Fit
nn.fit(x=training_set.data, y=training_set.target, steps=5000)
# Score accuracy
ev = nn.evaluate(x=test_set.data, y=test_set.target, steps=1)
loss_score = ev["loss"]
print("Loss: %s" % loss_score)
Run Code Online (Sandbox Code Playgroud)
整个训练集都传入了,但是我们有steps=5000. 这是否意味着只考虑集合中的前 5000 个示例?
batch_size参数在这种情况下是什么意思,它如何与 交互steps?
谢谢!
python machine-learning training-data neural-network tensorflow
我正在尝试从 2 组数据移动到 3 组数据,如上述问题中所述。以下是我使用的脚本:
set.seed(125)
d <- sample(x = nrow(db), size = nrow(db) * 0.60, )
train60 <-db[d, ]
valid40 <-db[-d, ]
Run Code Online (Sandbox Code Playgroud)
有没有办法修改上面的脚本?我试图创建另一行:
valid40 <- db[-d] * 0.2 这不起作用。
当前数据集有几个因子变量。
我曾尝试在函数上使用Frank 的解决方案cut,但不知何故我设法得到
cut.default(seq(nrow(df)), nrow(df) * cumsum(c(0, spec)), labels = names(spec)) 中的错误:'breaks' 和 'labels' 的长度不同
即使在网上搜索帮助后我也不明白。
training-data ×10
python ×3
scikit-learn ×2
validation ×2
arrays ×1
boosting ×1
c++ ×1
coco ×1
data-science ×1
dataset ×1
dlib ×1
java ×1
loss ×1
matlab ×1
pytorch ×1
r ×1
return ×1
split ×1
svm ×1
tensorflow ×1
voc ×1
yolo ×1