在张量流MNIST教程中,该mnist.train.next_batch(100)功能非常方便.我现在正试图自己实现一个简单的分类.我的训练数据是一个numpy数组.我如何为自己的数据实现类似的功能,以便为我提供下一批?
sess = tf.InteractiveSession()
tf.global_variables_initializer().run()
Xtr, Ytr = loadData()
for it in range(1000):
batch_x = Xtr.next_batch(100)
batch_y = Ytr.next_batch(100)
Run Code Online (Sandbox Code Playgroud) 我是R的新手,我在R中使用该e1071软件包进行SVM分类.
我使用了以下代码:
data <- loadNumerical()
model <- svm(data[,-ncol(data)], data[,ncol(data)], gamma=10)
print(predict(model, data[c(1:20),-ncol(data)]))
Run Code Online (Sandbox Code Playgroud)
的loadNumerical是用于装载数据,并且将数据的形式为(第一8列被输入并且最后一列是分类):
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
1 39 1 -1 43 -1 1 0 0.9050497 0
2 23 -1 -1 30 -1 -1 0 1.6624974 1
3 50 -1 -1 49 1 1 2 1.5571429 0
4 46 -1 1 19 -1 -1 0 1.3523685 0
5 36 1 1 29 -1 1 1 1.3812029 1
6 27 -1 -1 …Run Code Online (Sandbox Code Playgroud) 我有一个逻辑回归和一个随机森林,我想通过取平均值将它们(整体)组合起来进行最终的分类概率计算.
在sci-kit学习中是否有内置的方法可以做到这一点?在某些方面我可以使用两者的集合作为分类器本身?或者我需要滚动自己的分类器?
有没有办法预测根据参数和数据集从sci-kit学习运行分类器需要多长时间?我知道,非常好,对吗?
一些分类器/参数组合非常快,有些需要很长时间,以至于我最终会杀死进程.我想要一种预先估计需要多长时间的方法.
或者,我接受一些关于如何设置公共参数以减少运行时间的指针.
我正在尝试通过阅读在线提供的资料来了解GMM.我已经使用K-Means实现了聚类,并且看到GMM将如何与K-means进行比较.
这是我所理解的,如果我的概念错了,请告诉我:
GMM就像KNN一样,在这两种情况下都实现了聚类.但在GMM中,每个群集都有自己独立的均值和协方差.此外,k-means执行数据点到集群的硬分配,而在GMM中,我们得到一组独立的高斯分布,并且对于每个数据点,我们有一个它属于其中一个分布的概率.
为了更好地理解它,我使用MatLab对其进行编码并实现所需的聚类.我使用SIFT功能进行特征提取.并使用k-means聚类来初始化值.(这来自VLFeat文档)
%images is a 459 x 1 cell array where each cell contains the training image
[locations, all_feats] = vl_dsift(single(images{1}), 'fast', 'step', 50); %all_feats will be 128 x no. of keypoints detected
for i=2:(size(images,1))
[locations, feats] = vl_dsift(single(images{i}), 'fast', 'step', 50);
all_feats = cat(2, all_feats, feats); %cat column wise all features
end
numClusters = 50; %Just a random selection.
% Run KMeans to pre-cluster the data
[initMeans, assignments] = vl_kmeans(single(all_feats), numClusters, ...
'Algorithm','Lloyd', ...
'MaxNumIterations',5); …Run Code Online (Sandbox Code Playgroud) matlab classification cluster-analysis machine-learning mixture-model
我正在尝试使用深度学习来预测来自约会网站的15个自我报告属性的收入.
我们得到的结果相当奇怪,我们的验证数据比我们的训练数据更准确,损失更低.这在不同大小的隐藏层中是一致的.这是我们的模型:
for hl1 in [250, 200, 150, 100, 75, 50, 25, 15, 10, 7]:
def baseline_model():
model = Sequential()
model.add(Dense(hl1, input_dim=299, kernel_initializer='normal', activation='relu', kernel_regularizer=regularizers.l1_l2(0.001)))
model.add(Dropout(0.5, seed=seed))
model.add(Dense(3, kernel_initializer='normal', activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='adamax', metrics=['accuracy'])
return model
history_logs = LossHistory()
model = baseline_model()
history = model.fit(X, Y, validation_split=0.3, shuffle=False, epochs=50, batch_size=10, verbose=2, callbacks=[history_logs])
Run Code Online (Sandbox Code Playgroud)
这就是准确性和损失的一个示例: 精度与250个神经元的隐含层和损失.
我们试图消除正规化和辍学,这正如预期的那样,以过度拟合结束(培训acc:~85%).我们甚至尝试用相似的结果大幅降低学习率.
有没有人见过类似的结果?
classification machine-learning neural-network keras tensorflow
有人可以解释(举例说明)scikit-learn中OneVsRestClassifier和MultiOutputClassifier之间的区别是什么?
我已阅读文档,我知道我们使用:
我已经使用OneVsRestClassifier进行多标签分类,我可以理解它是如何工作的,但后来我找到了MultiOutputClassifier,并且无法理解它与OneVsRestClassifier的工作方式有何不同.
python classification scikit-learn multilabel-classification multiclass-classification
我需要能够识别日期字符串.如果我无法区分月份和日期(例如12/12/10)并不重要,我只需要将字符串分类为日期,而不是将其转换为Date对象.所以,这实际上是一个分类而不是解析问题.
我会有一些文字,例如:
"bla bla bla bla 12 Jan 09 bla bla bla 01/04/10 bla bla bla"
我需要能够识别每个日期字符串的开始和结束边界.
我想知道是否有人知道任何可以做到这一点的java库.到目前为止,我的google-fu还没有提出任何建议.
更新:我需要能够识别出最广泛的表示日期的方法.当然,天真的解决方案可能是为每种可想到的格式编写一个if语句,但是模式识别方法,使用训练有素的模型,理想情况下是我所追求的.
我试图使用XGBoosts分类器来分类一些二进制数据.当我做最简单的事情并只使用默认值(如下)
clf = xgb.XGBClassifier()
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
Run Code Online (Sandbox Code Playgroud)
我得到了相当不错的分类结果.
我的下一步是尝试调整我的参数.从参数指南猜测... https://github.com/dmlc/xgboost/blob/master/doc/parameter.md 我想从默认开始并从那里工作......
# setup parameters for xgboost
param = {}
param['booster'] = 'gbtree'
param['objective'] = 'binary:logistic'
param["eval_metric"] = "error"
param['eta'] = 0.3
param['gamma'] = 0
param['max_depth'] = 6
param['min_child_weight']=1
param['max_delta_step'] = 0
param['subsample']= 1
param['colsample_bytree']=1
param['silent'] = 1
param['seed'] = 0
param['base_score'] = 0.5
clf = xgb.XGBClassifier(params)
metLearn=CalibratedClassifierCV(clf, method='isotonic', cv=2)
metLearn.fit(train, trainTarget)
testPredictions = metLearn.predict(test)
Run Code Online (Sandbox Code Playgroud)
结果是预测的一切都是条件而不是其他条件.
奇怪的是,如果我设置
params={}
Run Code Online (Sandbox Code Playgroud)
我期望给我相同的默认值,因为没有提供任何参数,我得到同样的事情发生
那么有谁知道XGBclassifier的默认值是什么?这样我才能开始调音?
我正在尝试探索使用GBM h2o进行分类问题来替换逻辑回归(GLM).我的数据中的非线性和相互作用使我认为GBM更合适.
我已经运行了基线GBM(见下文),并将AUC与逻辑回归的AUC进行了比较.GBM的表现要好得多.
在经典线性逻辑回归中,人们将能够看到每个预测变量(x)对结果变量(y)的方向和影响.
现在,我想以同样的方式评估估算GBM的变量重要性.
如何获得每个(两个)类的变量重要性?
我知道变量重要性与逻辑回归中的估计系数不同,但它有助于我理解哪个预测因子会影响哪个类.
其他人提出了类似的问题,但提供的答案对H2O对象不起作用.
任何帮助深表感谢.
example.gbm <- h2o.gbm(
x = c("list of predictors"),
y = "binary response variable",
training_frame = data,
max_runtime_secs = 1800,
nfolds=5,
stopping_metric = "AUC")
Run Code Online (Sandbox Code Playgroud) classification ×10
python ×5
scikit-learn ×4
r ×2
tensorflow ×2
analytics ×1
date ×1
gbm ×1
h2o ×1
java ×1
keras ×1
matlab ×1
numpy ×1
svm ×1
xgboost ×1