标签: classification

MATLAB中的特征选择

我有一个文本分类数据集,可以在MATLAB中使用.每个文档都是此数据集中的向量,此向量的维度非常高.在这些情况下,peopl通常会在向量上进行一些特征选择,例如您实际找到WEKA工具包的那些.在MATLAB中有类似的东西吗?如果没有,你可以建议和算法让我这样做吗?谢谢

matlab classification

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

opencv_traincascade的参数

我一直在使用旧版OpenCV的haartraining实现了很长一段时间.现在,在最终转向OpenCV 2.3之后,我想知道如何设置参数,就像我使用旧实现一样.据我所知,还没有opencv_traincascade的文档.

我错过了"-nonsym"开关和"-nsplits".现在,只有"maxDepth"参数具有描述"max_depth_of_weak_tree".是一个弱三个树桩?现在所有的哈尔特征都被认为是非现实的吗?

非常感谢!

opencv classification face-detection

6
推荐指数
2
解决办法
5162
查看次数

文本分类到类别

我正在研究文本分类问题,我正在尝试将一组单词分类为类别,是的,有很多库可用于分类,所以如果您建议使用它们,请不要回答.

让我解释一下我想要实施的内容.(以身份为例)

单词列表:

  1. java的
  2. 程序设计
  3. 语言
  4. C-尖锐

类别清单.

  1. java的
  2. C-尖锐

在这里我们将训练该组,如:

  1. java映射到类别1. java
  2. 编程映射到类1.java
  3. 编程映射到类别2.c-sharp
  4. 语言映射到类1.java
  5. 语言映射到类别2.c-sharp
  6. c-sharp映射到类别2.c-sharp

现在我们有一个短语" 最好的java编程书 "来自给定的短语,下面的单词与我们的"单词列表"匹配.:

  1. java的
  2. 程序设计

"编程"有两个映射类别"java"和"c-sharp",因此它是一个常用词.

"java"仅映射到"java"类别.

所以这个短语的匹配类别是"java"

这就是我想到的,这个解决方案很好,可以实现,你的建议是什么,我错过的任何东西,缺陷等等.

classification machine-learning bayesian

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

机器学习任务:使用什么工具?

我目前正在尝试一项涉及分类模型的监督培训的ML任务.到目前为止,我已经有大约500万个训练样例和~5M交叉验证示例.目前,每个示例都有46个功能,但我可能希望在不久的将来再生成10个功能,因此任何解决方案都应留有一些改进空间.

我的问题如下:我用什么工具来解决这个问题?我想使用随机森林或SVM,但我担心后者可能在我的情况下太慢.我已经考虑了Mahout,但是因为看起来需要一定的配置以及搞乱命令行脚本而转过身去.我宁愿直接对某些(记录良好的!)库进行编码,也可以使用GUI定义我的模型.

我还应该指出我正在寻找可以在Windows上运行的东西(没有像cygwin这样的东西),并且非常感谢那些与.NET兼容的解决方案.

您可以想象,当时间到来时,代码将在Amazon EC 2上的Cluster Compute Eight Extra Large Instance上运行,因此欢迎任何广泛使用RAM和多核CPU的内容.

最后但并非最不重要的是,我将指定我的数据集是密集的(因为没有缺失值/所有列都有每个向量的值)

cloud classification machine-learning amazon-ec2

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

计算稀疏矩阵的相似性

我正在使用Python与numpy,scipy和scikit-learn模块.

我想用非常大的稀疏矩阵对数组进行分类.(100,000*100,000)

矩阵中的值等于0或1.我唯一拥有的是value = 1的索引.

a = [1,3,5,7,9] 
b = [2,4,6,8,10]
Run Code Online (Sandbox Code Playgroud)

意思是

a = [0,1,0,1,0,1,0,1,0,1,0]
b = [0,0,1,0,1,0,1,0,1,0,1]
Run Code Online (Sandbox Code Playgroud)

如何在scipy中将索引数组更改为稀疏数组?

如何快速对这些阵列进行分类?

非常感谢你.

python numpy classification scipy sparse-matrix

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

如何检测照片是否为海报(不现实)?

我有很多来自音乐家网站的.jpeg.这些图像由即将上映的海报和乐队照片(现实生活中的乐队照片)组成.

这是一个示例海报:

在此输入图像描述

我不熟悉任何现代技术或算法(如果它们存在?),但这是我认为我可能会寻找的:

  • 图像中的文字通常是海报的死亡赠品.
  • 也许真实的照片(即非海报)遵循不同的颜色分布?
  • 海报可能不太可能有面孔 - 但这是一个相当弱的断言.

是否有任何分类算法可以检测图像是否是海报?

artificial-intelligence classification machine-learning image-processing

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

大型数据集的多标签分类

我正在解决多标签分类问题.我有大约6百万行要处理,这些行是巨大的文本块.它们在单独的列中标记有多个标记.

关于scikit库可以帮助我扩展代码的任何建议.我在其中使用One-vs-Rest和SVM.但它们的规模不超过90-100k行.

classifier = Pipeline([
('vectorizer', CountVectorizer(min_df=1)), 
('tfidf', TfidfTransformer()),
('clf', OneVsRestClassifier(LinearSVC()))])
Run Code Online (Sandbox Code Playgroud)

python nlp classification machine-learning scikit-learn

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

OpenCV阳性样品尺寸?

所以我遇到了很多关于OpenCV的haartraining和级联培训工具的教程.特别是我有兴趣使用createsamples工具训练汽车分类器,但是关于-w和-h参数的地方似乎存在冲突的声明,所以我很困惑.我指的是这个命令:

$ createsamples -info samples.dat -vec samples.vec -w 20 -h 20
Run Code Online (Sandbox Code Playgroud)

我有以下三个问题:

  • 我知道正样本的宽高比应该与从上面的-w和-h参数得到的宽高比相同.但是,所有正样本的-w和-h参数也必须是相同的大小吗?例如.我有接近1000张图片.裁剪后所有尺寸都必须相同吗?

  • 如果不是大小而是纵横比,那么与OpenCV工具中提到的-w和-h参数相比,正面样本的纵横比必须精确匹配吗?我的意思是,分类器是非常敏感的,所以即使是这里和那里的几个像素也会影响它的性能?或者你会说使用图像是安全的,只要它们的眼睛比例大致相同.

  • 我已经裁剪了几张相同尺寸的图像.但是在尝试使它们具有相同的大小时,它们中的一些在边界框中包含的背景比其他的更多,并且一些具有略微不同的边缘.(例如,请看下面的两张图片.较大的汽车占据了更多的图像,但较小的汽车周围有更宽的余量).我只是想知道是否有这样的图像集合是好的,或者它是否会降低分类器的准确性,因此我应该确保所有感兴趣的对象(在这种情况下,汽车)周围更紧的边界框?

大车 小车

opencv classification image-processing computer-vision training-data

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

Spark ML VectorAssembler()处理数据帧中的数千列

我正在使用spark ML管道在真正的宽桌上设置分类模型.这意味着我必须自动生成处理列的所有代码,而不是精确地键入每个列.我几乎是scala和spark的初学者.当我尝试执行以下操作时,我被困在VectorAssembler()部分:

val featureHeaders = featureHeader.collect.mkString(" ")
//convert the header RDD into a string
val featureArray = featureHeaders.split(",").toArray
val quote = "\""
val featureSIArray = featureArray.map(x => (s"$quote$x$quote"))
//count the element in headers
val featureHeader_cnt = featureHeaders.split(",").toList.length


// Fit on whole dataset to include all labels in index.
import org.apache.spark.ml.feature.StringIndexer
val labelIndexer = new StringIndexer().
  setInputCol("target").
  setOutputCol("indexedLabel")

val featureAssembler = new VectorAssembler().
  setInputCols(featureSIArray).
  setOutputCol("features")

val convpipeline = new Pipeline().
  setStages(Array(labelIndexer, featureAssembler))

val myFeatureTransfer = convpipeline.fit(df)
Run Code Online (Sandbox Code Playgroud)

显然它没有用.我不知道我该怎么办才能使整个事情更加自动化,或者ML管道在这个时刻不会占用那么多列(我怀疑)?

pipeline scala classification apache-spark

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

获得较低的ROC AUC分数,但准确度较高

航班延误数据集的版本中使用LogisticRegression类.scikit-learn

pandas用来选择一些列:

df = df[["MONTH", "DAY_OF_MONTH", "DAY_OF_WEEK", "ORIGIN", "DEST", "CRS_DEP_TIME", "ARR_DEL15"]]
Run Code Online (Sandbox Code Playgroud)

NaN用0 填写值:

df = df.fillna({'ARR_DEL15': 0})
Run Code Online (Sandbox Code Playgroud)

确保分类列标有"类别"数据类型:

df["ORIGIN"] = df["ORIGIN"].astype('category')
df["DEST"] = df["DEST"].astype('category')
Run Code Online (Sandbox Code Playgroud)

然后调用get_dummies()来自pandas:

df = pd.get_dummies(df)
Run Code Online (Sandbox Code Playgroud)

现在我训练和测试我的数据集:

from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()

test_set, train_set = train_test_split(df, test_size=0.2, random_state=42)

train_set_x = train_set.drop('ARR_DEL15', axis=1)
train_set_y = train_set["ARR_DEL15"]

test_set_x = test_set.drop('ARR_DEL15', axis=1)
test_set_y = test_set["ARR_DEL15"]

lr.fit(train_set_x, train_set_y)
Run Code Online (Sandbox Code Playgroud)

一旦我调用该score方法,我就会得到0.867.但是,当我调用该roc_auc_score方法时,我得到的数字大约低于0.583

 probabilities = lr.predict_proba(test_set_x)

 roc_auc_score(test_set_y, …
Run Code Online (Sandbox Code Playgroud)

classification machine-learning scikit-learn logistic-regression auc

6
推荐指数
2
解决办法
7681
查看次数