我有一个文本分类数据集,可以在MATLAB中使用.每个文档都是此数据集中的向量,此向量的维度非常高.在这些情况下,peopl通常会在向量上进行一些特征选择,例如您实际找到WEKA工具包的那些.在MATLAB中有类似的东西吗?如果没有,你可以建议和算法让我这样做吗?谢谢
我一直在使用旧版OpenCV的haartraining实现了很长一段时间.现在,在最终转向OpenCV 2.3之后,我想知道如何设置参数,就像我使用旧实现一样.据我所知,还没有opencv_traincascade的文档.
我错过了"-nonsym"开关和"-nsplits".现在,只有"maxDepth"参数具有描述"max_depth_of_weak_tree".是一个弱三个树桩?现在所有的哈尔特征都被认为是非现实的吗?
非常感谢!
我正在研究文本分类问题,我正在尝试将一组单词分类为类别,是的,有很多库可用于分类,所以如果您建议使用它们,请不要回答.
让我解释一下我想要实施的内容.(以身份为例)
单词列表:
类别清单.
在这里我们将训练该组,如:
现在我们有一个短语" 最好的java编程书 "来自给定的短语,下面的单词与我们的"单词列表"匹配.:
"编程"有两个映射类别"java"和"c-sharp",因此它是一个常用词.
"java"仅映射到"java"类别.
所以这个短语的匹配类别是"java"
这就是我想到的,这个解决方案很好,可以实现,你的建议是什么,我错过的任何东西,缺陷等等.
我目前正在尝试一项涉及分类模型的监督培训的ML任务.到目前为止,我已经有大约500万个训练样例和~5M交叉验证示例.目前,每个示例都有46个功能,但我可能希望在不久的将来再生成10个功能,因此任何解决方案都应留有一些改进空间.
我的问题如下:我用什么工具来解决这个问题?我想使用随机森林或SVM,但我担心后者可能在我的情况下太慢.我已经考虑了Mahout,但是因为看起来需要一定的配置以及搞乱命令行脚本而转过身去.我宁愿直接对某些(记录良好的!)库进行编码,也可以使用GUI定义我的模型.
我还应该指出我正在寻找可以在Windows上运行的东西(没有像cygwin这样的东西),并且非常感谢那些与.NET兼容的解决方案.
您可以想象,当时间到来时,代码将在Amazon EC 2上的Cluster Compute Eight Extra Large Instance上运行,因此欢迎任何广泛使用RAM和多核CPU的内容.
最后但并非最不重要的是,我将指定我的数据集是密集的(因为没有缺失值/所有列都有每个向量的值)
我正在使用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中将索引数组更改为稀疏数组?
如何快速对这些阵列进行分类?
非常感谢你.
我有很多来自音乐家网站的.jpeg.这些图像由即将上映的海报和乐队照片(现实生活中的乐队照片)组成.
这是一个示例海报:

我不熟悉任何现代技术或算法(如果它们存在?),但这是我认为我可能会寻找的:
是否有任何分类算法可以检测图像是否是海报?
artificial-intelligence classification machine-learning image-processing
我正在解决多标签分类问题.我有大约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) 所以我遇到了很多关于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
我正在使用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管道在这个时刻不会占用那么多列(我怀疑)?
在航班延误数据集的版本中使用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
classification ×10
opencv ×2
python ×2
scikit-learn ×2
amazon-ec2 ×1
apache-spark ×1
auc ×1
bayesian ×1
cloud ×1
matlab ×1
nlp ×1
numpy ×1
pipeline ×1
scala ×1
scipy ×1