标签: classification

新手:从哪里开始给出一个问题来预测未来的成功与否

我们有一个基于生产网络的产品,允许用户对商品的未来价值(或需求)做出预测,历史数据包含大约10万个例子,每个例子有大约5个参数;

考虑一类称为谓词的数据:

prediction {
    id: int
    predictor: int    
    predictionDate: date
    predictedProductId: int
    predictedDirection: byte  (0 for decrease, 1 for increase)
    valueAtPrediciton: float
}
Run Code Online (Sandbox Code Playgroud)

以及测量预测结果的配对结果类:

predictionResult {
    id: int
    valueTenDaysAfterPrediction: float
    valueTwentyDaysAfterPrediction: float
    valueThirtyDaysAfterPrediction: float
}
Run Code Online (Sandbox Code Playgroud)

我们可以定义一个成功的测试用例,其中如果任何两个未来的值检查点在预测时考虑方向和值时是有利的.

success(p: prediction, r: predictionResult): bool = 
    count: int 
    count = 0

    // value is predicted to fall
    if p.predictedDirection = 0 then
       if p.valueAtPrediciton > r.valueTenDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton > r.valueTwentyDaysAfterPrediction then count = count + 1
       if p.valueAtPrediciton …
Run Code Online (Sandbox Code Playgroud)

pattern-recognition classification machine-learning data-mining

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

KNN算法在matlab中

我正在研究拇指识别系统.我需要实现KNN算法来分类我的图像.根据这个,它只有2个测量值,通过它计算找到最近邻居的距离,但在我的情况下,我有400张25 X 42的图像,其中200个用于训练,200个用于测试.我正在寻找几个小时,但我找不到找到点之间距离的方法.

编辑:我已将前200幅图像重新塑造成1 X 1050并将其存储在trainingData200 X 1050 的矩阵中.同样我制作了testingData.

matlab classification machine-learning distance knn

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

使用StratifiedShuffleSplit和稀疏矩阵

我试图复制StratifiedShuffleSplitX 的例子,不是数组而是稀疏矩阵.在下面的示例中,此矩阵是通过DictVectorizer拟合混合名义和数字要素的数组创建的.

from sklearn.feature_extraction import DictVectorizer
from sklearn.preprocessing import LabelEncoder
from sklearn.cross_validation import StratifiedShuffleSplit

X = [{"a":1, "b":"xx"}, {"a":2, "b":"yx"}, {"a":2, "b":"yx"}, {"a":1, "b":"xx"}]
y = ["A", "B", "B", "A"]

X = DictVectorizer().fit_transform(X)
y = LabelEncoder().fit_transform(y)

sss = StratifiedShuffleSplit(y, 3, test_size=0.5, random_state=0)

for train_index, test_index in sss:
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
Run Code Online (Sandbox Code Playgroud)

当我运行脚本时,抛出以下错误:

Traceback (most recent call last):
  File ".../test.py", line 22, in <module>
    X_train, X_test = X[train_index], X[test_index]
TypeError: only …
Run Code Online (Sandbox Code Playgroud)

python numpy classification scikit-learn

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

使用Weka在Java中记录文档聚类

我正在尝试用Java编写一组关于特定主题的新闻文章.我使用Crawler4J抓取了有关特定主题的新闻网站,将我自己的TF/IDF实现与语料库进行比较(有理由说我没有使用内置的Weka或TF/IDF的其他实现,但它们可能已经出来了这个问题的范围)并应用了一些其他特定于域的逻辑,这些逻辑为每个文档留下了一袋单词+权重(我将其存储在值为0到1之间的Map中).我想通过查看单词权重来聚类关于类似主题的文章,所以我开始使用Weka的EM和SimpleKMeans群集.问题是我得到了相当不起眼的结果,而且我

例如,在约300篇文章的玩具数据集中,如果我将每个文档中的单词修剪为前20,然后使用完整的单词作为特征,我最终得到~2k独特的特征.我正在使用每篇文章作为训练实例,并尝试使用一些不同的参数来调整SimpleKMeans聚类器(例如~20-30个聚类,100个最大迭代).当我一目了然地看到数据时,我发现很多文章的关键词看起来非常密切相关,所以我期望高质量的结果和一堆包含~5-10篇文章的集群.不幸的是,结果通常是一个集群,其中有一半的文章,一堆集群各有一篇文章,还有一些散落者有2-5篇左右的文章.

这些结果是预期的,还是有办法获得更高质量的结果?请注意,我还研究了LingPipe和其他提供集群功能的框架,并使用滚动我自己的EM实现(具有适度但不是很大的成功).在此先感谢您的帮助!

java classification cluster-analysis weka k-means

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

此数据集的Logistic回归和朴素贝叶斯

朴素贝叶斯和Logistic回归都可以对这两个数据集进行完美分类吗?我的理解是,朴素贝叶斯(Naive Bayes)可以,带有复杂项的Logistic回归可以对这些数据集进行分类。如果我错了,请帮忙。

数据集的图像在这里:

在此处输入图片说明

classification machine-learning dataset data-mining logistic-regression

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

使用高斯混合模型对图像进行聚类

我想使用GMM(高斯混合模型来聚类二进制图像,并且还想在二进制图像本身上绘制聚类质心).

我使用它作为我的参考:http: //in.mathworks.com/help/stats/gaussian-mixture-models.html

这是我的初始代码

 I=im2double(imread('sil10001.pbm'));
  K = I(:);
  mu=mean(K);
  sigma=std(K);
  P=normpdf(K, mu, sigma);
   Z = norminv(P,mu,sigma);
  X = mvnrnd(mu,sigma,1110);
  X=reshape(X,111,10);


 scatter(X(:,1),X(:,2),10,'ko');

options = statset('Display','final');
gm = fitgmdist(X,2,'Options',options);



idx = cluster(gm,X);
cluster1 = (idx == 1);
cluster2 = (idx == 2);


 scatter(X(cluster1,1),X(cluster1,2),10,'r+');
 hold on

  scatter(X(cluster2,1),X(cluster2,2),10,'bo');
  hold off
  legend('Cluster 1','Cluster 2','Location','NW')


  P = posterior(gm,X);

 scatter(X(cluster1,1),X(cluster1,2),10,P(cluster1,1),'+')
 hold on
 scatter(X(cluster2,1),X(cluster2,2),10,P(cluster2,1),'o')
 hold off
 legend('Cluster 1','Cluster 2','Location','NW')
 clrmap = jet(80); colormap(clrmap(9:72,:))
 ylabel(colorbar,'Component 1 Posterior Probability')
Run Code Online (Sandbox Code Playgroud)

但问题是我无法在主二进制图像中绘制从GMM接收的聚类质心.我该怎么做? 在此输入图像描述

**现在假设我有一个序列中的10个这样的图像我想将它们的平均位置的信息存储在两个单元格数组中然后我该怎么做.这是我的代码我的新问题**

    images=load('gait2go.mat');%load the matrix file
    for i=1:10

   I{i}=images.result{i}; …
Run Code Online (Sandbox Code Playgroud)

matlab classification cluster-analysis machine-learning mixture-model

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

如何在python中进行PCA和SVM分类

我正在做分类,我有一个像这样的两个大小的列表;

Data=[list1,list2]
Run Code Online (Sandbox Code Playgroud)

list1是1000*784大小.这意味着已将1000张图像从28*28大小重新整形为784.

list2是1000*1大小.它显示每个图像所属的标签.使用以下代码,我应用了PCA:

from matplotlib.mlab import PCA
results = PCA(Data[0])
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

Out[40]: <matplotlib.mlab.PCA instance at 0x7f301d58c638>
Run Code Online (Sandbox Code Playgroud)

现在,我想使用SVM作为分类器.我应该添加标签.所以我为SVm提供了这样的新数据:

newData=[results,Data[1]]
Run Code Online (Sandbox Code Playgroud)

我不知道如何在这里使用SVM.

python classification svm pca

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

sklearn使用prob_a进行逻辑二进制分类

有没有办法报告sklearn模型二元分类模型的期望值?在之前的问题中有人推荐predict_proba.我期待一个类似于xgboost包"objective": "binary:logistic"参数的输出.但是,似乎这不会产生预期的结果.我的Y列车价值是谨慎的.

我对输出感到困惑predict_proba.因为我只有一个目标,所以我期待返回一个列预测.但是,这会返回两列,这些列总和为一列.这些值似乎与模型实际预测的值不对应:

In [27]: modl.predict(X_test)
Out[27]: array([0, 0, 0, ..., 0, 0, 0])

In [28]: modl.predict_proba(X_test)
Out[28]: 
array([[ 0.6,  0.4],
       [ 0.7,  0.3],
       [ 1. ,  0. ],
       ..., 
       [ 1. ,  0. ],
       [ 0.9,  0.1],
       [ 0.8,  0.2]])
Run Code Online (Sandbox Code Playgroud)

python classification scikit-learn

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

设置分类器的参数并使用它而不进行拟合

我正在使用pythonscikit-learn做一些分类.

是否可以重用分类器学习的参数?

例如:

from sklearn.svm import SVC

cl = SVC(...)    # create svm classifier with some hyperparameters
cl.fit(X_train, y_train)
params = cl.get_params()
Run Code Online (Sandbox Code Playgroud)

让我们把它params作为字符串字典存储在某处,甚至写入文件json.假设,我们希望以后使用这种训练有素的分类器对某些数据做出一些预测.尝试恢复它:

params = ...  # retrieve these parameters stored somewhere as a dictionary
data = ...    # the data, we want make predictions on
cl = SVC(...)
cl.set_params(**params)
predictions = cl.predict(data)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我会得到NonFittedError以下的堆栈跟踪:

File "C:\Users\viacheslav\Python\Python36-32\lib\site-packages\sklearn\svm\base.py", line 548, in predict
    y = super(BaseSVC, self).predict(X)
  File "C:\Users\viacheslav\Python\Python36-32\lib\site-packages\sklearn\svm\base.py", line 308, in predict
    X = …
Run Code Online (Sandbox Code Playgroud)

python classification machine-learning scikit-learn

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

使用fit()函数时,Scikit学习GaussianProcessClassifier内存错误

我有X_train和y_train作为2 numpy.ndarrays的大小分别为(32561,108)和(32561,)。

每次我调用适合GaussianProcessClassifier的函数时,都会收到内存错误。

>>> import pandas as pd
>>> import numpy as np
>>> from sklearn.gaussian_process import GaussianProcessClassifier
>>> from sklearn.gaussian_process.kernels import RBF
>>> X_train.shape
(32561, 108)
>>> y_train.shape
(32561,)
 >>> gp_opt = GaussianProcessClassifier(kernel=1.0 * RBF(length_scale=1.0))
>>> gp_opt.fit(X_train,y_train)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/retsim/.local/lib/python2.7/site-packages/sklearn/gaussian_process/gpc.py", line 613, in fit
    self.base_estimator_.fit(X, y)
  File "/home/retsim/.local/lib/python2.7/site-packages/sklearn/gaussian_process/gpc.py", line 209, in fit
    self.kernel_.bounds)]
  File "/home/retsim/.local/lib/python2.7/site-packages/sklearn/gaussian_process/gpc.py", line 427, in _constrained_optimization
    fmin_l_bfgs_b(obj_func, initial_theta, bounds=bounds)
  File "/home/retsim/anaconda2/lib/python2.7/site-packages/scipy/optimize/lbfgsb.py", line 199, in fmin_l_bfgs_b
    **opts) …
Run Code Online (Sandbox Code Playgroud)

python classification pandas scikit-learn sklearn-pandas

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