Questions tagged «classification»

有监督学习的实例,用于标识新数据集实例所属的一个或多个类别。


6
余弦相似度与点积作为距离量度
看起来两个特征的余弦相似度只是它们的点乘积按其大小的乘积缩放。何时余弦相似度比点乘积能提供更好的距离度量?即在不同情况下,点积和余弦相似度是否有不同的优点或缺点?

1
什么是用于多类分类的最佳Keras模型?
我正在研究,如果需求三个赛事冠军的分类一个=( ,win,)drawlose WINNER LEAGUE HOME AWAY MATCH_HOME MATCH_DRAW MATCH_AWAY MATCH_U2_50 MATCH_O2_50 3 13 550 571 1.86 3.34 4.23 1.66 2.11 3 7 322 334 7.55 4.1 1.4 2.17 1.61 我当前的模型是: def build_model(input_dim, output_classes): model = Sequential() model.add(Dense(input_dim=input_dim, output_dim=12, activation=relu)) model.add(Dropout(0.5)) model.add(Dense(output_dim=output_classes, activation='softmax')) model.compile(loss='categorical_crossentropy', optimizer='adadelta') return model 我不确定这是否适用于多类别分类 二进制分类的最佳设置是什么? 编辑:#2-那样吗? model.add(Dense(input_dim=input_dim, …

5
深度学习与梯度提升:什么时候使用?
我有一个大数据集的大数据问题(例如,有5000万行和200列)。该数据集由大约100个数字列和100个分类列以及代表二进制类问题的响应列组成。每个分类列的基数小于50。 我想先验地知道我应该选择深度学习方法还是基于集成树的方法(例如,梯度增强,adaboost或随机森林)。是否有一些探索性的数据分析或其他一些技术可以帮助我确定一种方法而不是另一种方法?

1
为什么xgboost比sklearn GradientBoostingClassifier快得多?
我正在尝试通过50个具有100个数字特征的示例训练一个梯度提升模型。XGBClassifier我的机器43秒内把手500棵树,而GradientBoostingClassifier只处理10棵(!)以1分2秒:(我没有理会试图种植500棵树,因为它会需要几个小时。我使用的是相同的learning_rate,并max_depth设置, 见下文。 是什么使XGBoost如此之快?它是否使用了sklearn家伙不知道的用于梯度增强的新颖实现方式?还是“偷工减料”并种植浅树? ps我知道这个讨论:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey,但是那里找不到答案... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

4
培训高度不平衡的数据集的快速指南
我在训练集中有大约1000个正样本和10000个负样本的分类问题。因此,该数据集非常不平衡。普通随机森林只是试图将所有测试样本标记为多数类。 这里给出了有关子采样和加权随机森林的一些很好的答案:用高度偏向的数据集训练树群有什么意义? 除RF之外,还有哪些分类方法可以最好地解决问题?


4
我应该使用什么算法来基于简历数据进行工作分类?
请注意,我正在R中做所有事情。 问题如下: 基本上,我有一份简历列表。有些候选人以前有工作经验,有些则没有。这里的目标是:基于简历的文字,我想将其分类为不同的工作领域。在候选人没有任何经验/是学生的情况下,我尤其如此,我想做出一个预测,以分类该候选人毕业后最有可能属于哪个工作领域。 问题1:我知道机器学习算法。但是,我以前从未做过NLP。我在互联网上遇到了潜在的Dirichlet分配。但是,我不确定这是否是解决我的问题的最佳方法。 我的初衷是: 使这成为有监督的学习问题。假设我们已经有大量带标签的数据,这意味着我们已经正确标记了职位列表中的求职者。我们使用ML算法(即最近的邻居...)对模型进行训练,并输入那些没有工作经验的候选人/没有学生的未标记数据,并尝试预测他们将属于哪个工作领域。 更新 问题2:通过提取简历中的所有内容并在文本文件中打印这些数据来创建文本文件,这样每个简历都与一个包含非结构化字符串的文本文件相关联,是一个好主意吗?将文本挖掘技术应用于文本文件,并使数据结构化,甚至创建文本文件中使用的术语频率矩阵?例如,文本文件可能看起来像这样: I deployed ML algorithm in this project and... Skills: Java, Python, c++ ... 这就是我所说的“非结构化”的意思,即将所有内容折叠成一个单行字符串。 这种方法是错误的吗?如果您认为我的方法有误,请纠正我。 问题3:棘手的部分是:如何识别和提取关键字?tm在R中使用包?tm 软件包基于什么算法?我应该使用NLP算法吗?如果是,我应该看什么算法?请为我指出一些很好的资源以供参考。 任何想法都很棒。


4
如何获得keras模型的准确性,F1,准确性和召回率?
我想为我的二进制KerasClassifier模型计算精度,召回率和F1分数,但找不到任何解决方案。 这是我的实际代码: # Split dataset in train and test data X_train, X_test, Y_train, Y_test = train_test_split(normalized_X, Y, test_size=0.3, random_state=seed) # Build the model model = Sequential() model.add(Dense(23, input_dim=45, kernel_initializer='normal', activation='relu')) model.add(Dense(1, kernel_initializer='normal', activation='sigmoid')) # Compile model model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) tensorboard = TensorBoard(log_dir="logs/{}".format(time.time())) time_callback = TimeHistory() # Fit the model history …



2
文字分类:结合不同种类的功能
我要解决的问题是将短文本分为多个类别。我目前的方法是使用tf-idf加权词频,并学习一个简单的线性分类器(逻辑回归)。这相当有效(测试集上的宏F-1约为90%,训练集上接近100%)。一个大问题是看不见的单词/ n-gram。 我正在尝试通过添加其他功能(例如,使用分布相似性(由word2vec计算)计算出的固定大小的矢量)或示例中的其他分类功能来改进分类器。我的想法是仅从单词袋中将功能添加到稀疏输入功能中。但是,这会导致测试和训练集的性能变差。附加功能本身可以在测试装置上提供大约80%的F-1,因此它们不是垃圾。扩展功能也没有帮助。我目前的想法是,这类功能与(稀疏的)单词功能组合得不太好。 所以问题是:假设附加功能提供了附加信息,那么将它们合并的最佳方法是什么?是否可以训练单独的分类器并将它们组合在一起以进行某种整体工作(这可能会有一个缺点,即无法捕获不同分类器的特征之间的交互)?我还应该考虑其他更复杂的模型吗?

4
什么时候使用曼哈顿距离与欧几里得距离相反?
我正在尝试寻找一个很好的论据,说明为什么在机器学习中为什么要使用曼哈顿距离而不是欧几里得距离。 到目前为止,我发现与一个很好的论点最接近的事情是在麻省理工学院的这次演讲中。 在36:15,您可以在幻灯片上看到以下语句: “通常使用欧几里德度量;如果不同维度之间不具有可比性,则曼哈顿可能是合适的。 ” 在教授说之后不久,由于爬行动物的腿数从0到4变化(而其他特征是二进制的,仅从0到1变化),因此“腿数”特征最终将具有更高的特征如果使用欧氏距离,则为重量。果然,这确实是对的。但是如果使用曼哈顿距离,也会有一个问题(只是因为我们不会像欧几里德距离那样对差进行平方处理,所以该问题会得到稍微缓解)。 解决上述问题的一种更好的方法是将“支路数”特征规格化,以便其值始终在0到1之间。 因此,由于有更好的解决方法,至少在我看来,在这种情况下使用曼哈顿距离的论点缺乏要点。 有人真的知道为什么以及何时有人会在欧几里得上使用曼哈顿距离吗?谁能给我一个使用曼哈顿距离会产生更好结果的例子吗?

2
如何提高分类器的准确性?
我正在使用OpenCV letter_recog.cpp示例来对随机树和其他分类器进行实验。此示例具有六个分类器的实现-随机树,boosting,MLP,kNN,朴素贝叶斯和SVM。使用具有20000个实例和16个功能的UCI字母识别数据集,我将其分为两半进行训练和测试。我具有SVM的经验,因此我迅速将其识别错误设置为3.3%。经过一些试验,我得到的是: UCI字母识别: RTrees-5.3% 提升-13% MLP-7.9% kNN(k = 3)-6.5% 贝叶斯-11.5% 支持向量机-3.3% 使用的参数: RTrees-max_num_of_trees_in_the_forrest = 200,max_depth = 20,min_sample_count = 1 提升-boost_type = REAL,weak_count = 200,weight_trim_rate = 0.95,max_depth = 7 MLP-method = BACKPROP,param = 0.001,max_iter = 300(默认值-太慢无法进行实验) kNN(k = 3)-k = 3 贝叶斯-无 SVM-RBF内核,C = 10,gamma = 0.01 之后,我使用相同的参数并通过首先提取梯度特征(向量大小为200个元素)对Digits和MNIST数据集进行了测试: 位数: RTrees-5.1% 提升-23.4% …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.