我正在在房地产网站上工作,我想编写一个程序 可以找出(分类)图像是平面图还是公司徽标. 由于我在PHP中写作,因此我更喜欢PHP解决方案,但是任何C ++或OPENCV解决方案也可以. 平面图样本: alt Text http://wwwww.rentingtime.com/uploads./listing/l0050/0000050930/68614.jpg Alt Text http http://wwwwwwwww.rentingtime.com/uploads./listing/l0031/0000031701/44199.jpg 徽标样本: alt Text http://www.rentingtime.com/uploads/upploads/listing/l0091/0000091285/95205.jpg 解决方案 一如既往,有一个用于此的内置php函数.只是开玩笑. =) 我看到的所有平面图都是单色的,我认为您可以使用
以下是关于 classification 的编程技术问答
在Stackoverflow上使用的各种帖子中,我正在尝试实现自己的PHP Classier,以将推文分类为正面,中性和负面类别.在编码之前,我需要进行流程.我的思考列车和一个例子如下: p(class) * p(words|class) Bayes theorem: p(class|words) = ------------------------- with p(words) assumption that p(words) is the same for every class leads to calculating arg max p(class) * p(words|class) with p(words|class) = p(word1|class) * p(word2|topic) * ... and
我目前正在使用C5.0构建分类器.我有一个8000个条目的数据集,每个条目都有其自己的I.D号(1-8000).在测试分类器的性能时,我必须进行5次10:90(训练数据:测试数据)拆分.当然,任何培训案例都不能在测试案例中再次出现,并且在这两个集合中都不能出现重复. 要随机选择示例以获取训练数据的问题,并确保无法为测试数据选择相同的问题,我已经开发了一种可怕的缓慢方法; 在单独的行上填写1-8000的数字的文件. 随机选择一条线号(从1-8000范围内),并将行的内容用作训练示例的ID号. 将所有未挑选的数字写入新文件 将随机数发生器的范围减少1 重做 然后将所有未销售的数字用作测试数据.它起作用,但速度很慢.为了加快速度,我可以使用list :: util'shuffle'只是"随机"随机洗牌和这些数字的数组.但是"洗牌"有多随机?保持相同水平的准确性至关重要.对此文章感到抱歉,但是有人知道"洗牌"实际上是如何工作的.任何帮助都很棒 解决
我已经实现了多层感知器来预测输入向量的罪过.向量由随机选择的四个-1,0,1组成,并设置为1.网络应预测向量内容的总和. eg输入= output = sin(0+1+(-1)+0+1) 我遇到的问题是,网络永远不会预测负值,许多向量的罪值为负.它可以完美地预测所有正或零输出.我认为更新权重的问题是一个问题,在每个时期之后都会更新.有没有人以前遇到过NN的问题?任何帮助都很棒! 注意:该网络在1个隐藏层中有5个输入,6个被限制的单元. 解决方案 自从我研究多层感知以来已经很长时间了. 我会将您的问题域重新为[0,1]域而不是[-1,1].如果您查看Logistic函数图: 它在[0,1]之间生成值.我不期望它会产生负面结果.我可能错了,坚韧. 编辑: 您实际上可以将逻辑函数扩展到问题域.使用概括性逻辑曲线将A和K参数设置为域的边界. 另一个选项是双曲线切线,它从[-1,+1]从没有常数设置. 其他解决方案 有许多不同种类的激活功能,其中
我正在研究数据挖掘,更确切地说是决策树. 我想知道是否有多种算法可以构建决策树(或仅一个?),哪个是根据 等标准更好的 性能 复杂性 决策中的错误 以及更多. 解决方案 决策树的实现主要沿这些轴差异: 分裂标准 (即如何计算"方差") 它是否建立了 回归的模型 (连续变量,例如,a 得分)以及 分类 (离散变量,例如,类 标签) 消除/减少 过拟合的技术 它是否可以处理 不完整的数据 主要决策树的实现是: ID3 或迭代二分法器是三个决策树中的第一个 罗斯·奎兰(Ross Quinlan)开发的实施(Quinlan,J.R.,1986年.决策树的归纳. 购物车或分类和回归树通常用作通用 术语决策树的缩写,尽管它显然具有更具体的含义.总而言之,购物车实施与C4.5非常相似.一个值得注意的区别是,CART基于递归应用于数据的数值拆分标准构造树,而C4.5包括构造 rule set sets.s. C4.5 ,昆兰的下一个迭代
我有一个庞大的培训数据集,其中有4个课程.这些类是非紧张的标签.为了应用顺序的神经网络,必须对类进行重新标记,以便类中的唯一值是连续的.此外,在脚本的结尾,我必须将它们重新标记为旧值. 我知道如何用循环重新标记它们: def relabel(old_classes, new_classes): indexes=[np.where(old_classes ==np.unique(old_classes)[i]) for i in range(len(new_classes))] for i in range(len(new_classes )): old_classes [indexes[i]]=new_classes[i] return old_classes >>> old_classes = np.array([0,1,2,6,6,2,6,1,1,0]) >>> new_classes = np.arange(len(np.uni
我的大小为RGB uint8(576,720,3),我想将每个像素分类为一组颜色.我已经使用rgb2lab从RGB转换为实验室空间,然后删除了L层,因此它由AB. 组成. 现在,我想将其分类为我在另一个图像上训练的一些颜色,并将它们各自的AB代表计算为: Cluster 1: -17.7903 -13.1170 Cluster 2: -30.1957 40.3520 Cluster 3: -4.4608 47.2543 Cluster 4: 46.3738 36.5225 Cluster 5: 43.3134 -17.6443 Cluster 6: -0.9003 1.4042 Cluster 7: 7.3884 11.5584 现在,为了将每个像素分类/标记为群集1-7,我当前执行以下(伪代码): clusters; for each x for each y ab = im(x,y,2:3); dist =
我正在使用RandomForestClassifier实施具有二进制结果的分类任务,我知道数据预处理对提高准确性得分的重要性.特别是,我的数据集包含100多个功能和几乎4000个实例,我想执行降低降低技术,以免由于数据中存在噪声高而过度拟合. 对于这些任务,我通常使用经典的功能选择方法(过滤器,包装器,功能重要性),但我最近阅读了有关组合主成分分析(PCA)(第一步),然后在转换的数据集中进行功能选择./p> 我的问题是:在数据上执行PCA后我应该使用特定的特征选择方法吗?特别是,我想了解的是,在我的数据上使用PCA是使用某些特定功能选择技术或效率不高. 解决方案 让我们从什么时候开始使用PCA? 当您不确定数据的哪个组件会影响准确性时,PCA最有用. 让我们考虑面部识别任务.我们可以一目了然地说最关键的像素吗? 例如:奥利维蒂的面孔. 40个人,深色同质背景,改变照明,面部表情(睁开/闭合的眼睛,微笑/不微笑)和面部细节(眼镜/无眼镜). 因此,
我有多类标签,想计算模型的准确性. 我对需要使用哪种Sklearn功能感到困惑. 据我了解,以下代码仅用于二进制分类. # dividing X, y into train and test data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25,random_state = 0) # training a linear SVM classifier from sklearn.svm import SVC svm_model_linear = SVC(kernel = 'linear', C = 1).fit(X_train, y_train) svm_predictions = svm_model_linear.predict(X_test) # model accuracy for X_test accuracy = svm_model_linear.score(X_
步骤0:问题描述 我有一个分类问题,即我想根据数值特征集合,使用逻辑回归来预测一个二进制目标,并在运行主组件分析(PCA)后. . 我有2个数据集:df_train和df_valid(分别训练集和验证集)作为熊猫数据框架,包含功能和目标.作为第一步,我使用get_dummies pandas函数将所有分类变量转换为布尔值.例如,我将有: n_train = 10 np.random.seed(0) df_train = pd.DataFrame({"f1":np.random.random(n_train), \ "f2": np.random.random(n_train), \ "f3":np.random.randint(0,2,n_train).astype(bool),\ "target":np.random.ra
在MATLAB中执行SVM培训后,如何可视化SVM分类? 到目前为止,我只对: 培训了SVM % Labels are -1 or 1 groundTruth = Ytrain; d = xtrain; model = svmtrain(groundTruth, d); 解决方案 如果您使用的是libsvm,则可以绘制分类结果: % Labels are -1 or 1 groundTruth = Ytrain; d = xtrain; figure % plot training data hold on; pos = find(groundTruth==1); scatter(d(pos,1), d(pos,2), 'r') pos = find(groundTruth==-1); scatter(d(pos,1), d(pos,2), 'b') % now plot support vectors hold on; sv = full(model.SV
进行回归或分类时,预处理数据的正确(或更好)方法是什么? 将数据标准化 - > PCA->培训 PCA->归一化PCA输出 - >培训 将数据标准化 - > PCA->归一化PCA输出 - >培训 以上哪种更正确,还是预处理数据的"标准化"方法?通过"归一化",我的意思是标准化,线性缩放或其他一些技术. 解决方案 您应该在执行PCA之前将数据归一化.例如,考虑以下情况.我使用已知的相关矩阵C创建数据集X: >> C = [1 0.5; 0.5 1]; >> A = chol(rho); >> X = randn(100,2) * A; 如果我现在执行PCA,我正确地发现主组件(权重矢量的行)与坐标轴的角度定向: >> wts=pca(X) wts = 0.6659 0.7461 -0.7461 0.6659 如果我现在将数据集的第一个功能扩展为100,则直觉上,我们认为主要组件不应更改: >> Y = X; >>
我的数据: data=cbind(c(1,1,2,1,1,3),c(1,1,2,1,1,1),c(2,2,1,2,1,2)) colnames(data)=paste("item",1:3) rownames(data)=paste("method",1:6) 我希望根据多数投票,有两个社区(及其要素).类似:group1={item1, item2},group2={item3}. 解决方案 此函数通过一个矩阵,其中每列是一个项目,并且每行是根据聚类方法对应于项目分区的成员资格向量.组成每一行的元素(数字)除了指示成员身份外没有任何含义,并且在行之间进行回收.该功能返回多数投票分区.当一项不存在共识时,第一行给出的分区会获胜.这允许通过降低模块化值来订购分区. consensus.final
我试图从Scikit-Learn中的向量中获得最高的频率项. 从示例中可以使用每个类别使用此操作来完成,但我希望为类别中的每个文件. 中的每个文件. if opts.print_top10: print "top 10 keywords per class:" for i, category in enumerate(categories): top10 = np.argsort(clf.coef_[i])[-10:] print trim("%s: %s" % ( category, " ".join(feature_names[top10]))) 我想从测试数据集而不是每个类别中的每个文件执行此操作. 我应该在哪里看? 谢谢 编辑:S/歧视/最高频率/G(对不起,困惑) 解决方案 您可以将转换的结果与get_feature_names一起使用,以获取给定文档的术语计数. X = vectorizer.transform(docs) terms
我是MATLAB中的并行计算的新手.我有一个创建分类器(SVM)的函数,我想用几个数据集对其进行测试.我有一个2个核心工作站,所以我想并行进行测试.有人可以向我解释: dataset_array={dataset1, dataset2} matlabpool open 2 spmd my_function(dataset(labindex)); end 和 dataset_array={dataset1, dataset2} matlabpool open 2 parfor i:1=2 my_function(dataset(i)); end 解决方案 SPMD是一个并行区域,而Parfor是环的平行区域.不同之处在于,在SPMD区域中,您的灵活性在可以并行执行的任务方面具有更大的灵活性.您可以编写循环,可以在分布式阵列和向量上操作.您可以对整个工作流进行编程,这通常包括循环更多.这是有代价的:您需要更多地了解有关在线程之间分
我以前问过这个问题,但是我得到的答案并没有像我想的那样奏效,所以我在这里. 上一个问题:我正在尝试定义一个功能,在其中它将在其中使用dataframe并更改列中的值以创建多个新数据范围. 作为一个例子,来自DF1看起来像: df1: class colB colC 0 1 1b 1c 1 2 2b 2c 2 3 3b 3c 3 1 4b 4c 4 2 5b 5c 我正在尝试创建多个二进制类来实现单VS-ALL分类.因此该功能将创建... df2: class colB colC 0 1 1b 1c 1 -1 2b 2c 2 -1 3b 3c 3 1 4b 4c 4 -1 5b 5c d
我有一个带有2列(数据框)的CSV文件 第1列包含一个句子,我爱香蕉 和第2列包含一个classe i有5 classes 我需要每个班级的WordCloud 实际上,每个参议员都与每个classe相对应的所有参议员都可以做到吗? 它尝试此代码,但ID不起作用 import matplotlib.pyplot as plt cloud = WordCloud(background_color="white", max_words=20, stopwords=stopwords) tuples = tuple([tuple(x) for x in df.Phrase.value_counts().reset_index().values]) a = cloud.generate_from_frequencies(tuples) plt.imshow(a) plt.axis("off") plt.title("a") plt.show() 数据集的示例 text
介绍 我有一个pandas数据框架,代表不同用户的分段时间序列(即用户1和用户2).我想通过上述数据范围训练Scikit-Learn分类器,但我不了解我必须创建的Scikit-Learn数据集的形状. 由于我的系列被分割,因此我的数据帧具有包含特定段的ID的" segid"列.我会跳过细分的描述,因为它由算法.. 让我们以一个示例 user1 和 user2 有2个段:print df username voltage segID 0 user1 -0.154732 0 1 user1 -0.063169 0 2 user1 0.554732 1 3 user1 -0.641311 1 4 user1 -0.653732 1 5 user2 0