标签: classification

来自URL的内容分类

给定n个原始URL,我希望能够通过以下方式对它们进行分类:新闻,博客,照片和视频.

例如,如果链接将用户定向到照片,是否足以说原始链接包含图像的文件扩展名,以便能够将原始URL分类为照片?

至于视频,博客和新闻,似乎还不足以拥有一组将原始URL分类的域(如http://www.youtube.com).

可以通过检查网络内容来完成分类吗?或者是否有任何开源工具?

url open-source classification web-content taxonomy

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

如何根据Python中的正则表达式规则对字符串进行分类/分类

我正在用Python编写一个ETL脚本,用于获取CSV文件中的数据,验证和清理数据,以及根据某些规则对每一行进行分类或分类,最后将其加载到postgresql数据库中.

数据看起来像这样(简化):

ColA, ColB, Timestamp, Timestamp, Journaltext, AmountA, AmountB

每行都是金融交易.我想要做的是根据一些规则对交易进行分类或分类.规则基本上是与Journaltext列中的文本匹配的正则表达式.

所以我想做的是这样的:

transactions = []
for row in rows:
    t = Transaction(category=classify(row.journaltext))
    transactions.append(t)

我不确定如何有效地编写classify()函数.

这就是分类规则的工作原理:

  • 有许多类别(更多可以并将在以后添加)
  • 每个类别都有一组子字符串或正则表达式,如果事务的Journaltext与此表达式匹配或包含此子字符串,则此事务属于此类别.
  • 交易只能在一个类别上
  • 如果一个类别FOO具有子串'foo'和'Foo',而另一个类别BAR具有子串'足球',那么具有Journaltext ='food'的交易必须放在类别FOO中,因为它只匹配FOO,但是使用Journaltext ='footballs'的交易必须放在BAR类别中.我认为这意味着我必须在每个类别上加优先权或类似优先权.
  • 如果事务与任何表达式都不匹配,则它在类别中为None,或者将放在名为"UNKNOWN"或类似的占位符类别中.这无关紧要.

好.那么如何在Python中表示这些类别和相应的规则呢?

我非常感谢你的意见.即使你无法提供完整的解决方案.任何暗示我朝着正确方向发展的事情都会很棒.谢谢.

python regex etl classification data-warehouse

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

使用naiveBayes(e1071)进行分类不起作用($ levels返回NULL)

我使用naiveBayes(e1071 http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Classification/Na%C3%AFve_Bayes)对我的数据集进行分类(Classification class:"class"0/1).这是我做的:

library(e1071)
arrhythmia <- read.csv(file="/home/.../arrhythmia.csv", head=TRUE, sep=",")

#devide into training and test data 70:30
trainingIndex <- createDataPartition(arrhythmia$class, p=.7, list=F)
arrhythmia.training <- arrhythmia[trainingIndex,]
arrhythmia.testing <- arrhythmia[-trainingIndex,]

nb.classifier <- naiveBayes(class ~ ., data = arrhythmia.training)
predict(nb.classifier,arrhythmia.testing[,-260])
Run Code Online (Sandbox Code Playgroud)

分类器不起作用,这是我得到的:

> predict(nb.classifier,arrhythmia.testing[,-260])
factor(0)
Levels: 

> str(arrhythmia.training)
'data.frame':   293 obs. of  260 variables:
 $ age                         : int  75 55 13 40 44 50 62 54 30 46 ...
 $ sex                         : int  0 0 0 1 0 1 0 1 0 1 ... …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning

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

在scikit-learn中实现K Neighbors Classifier,每个对象有3个特征

我想用scikit-learn模块实现一个KNeighborsClassifier(http://scikit-learn.org/dev/modules/generated/sklearn.neighbors.KNeighborsClassifier.html)

我从我的图像中检索坚固性,伸长率和Humoments功能.我如何准备这些数据进行培训和验证?我必须为从我的图像中检索到的每个对象创建一个包含3个特征[Hm,e,s]的列表(从1个图像中有更多对象)?

我读了这个例子(http://scikit-learn.org/dev/modules/generated/sklearn.neighbors.KNeighborsClassifier.html):

X = [[0], [1], [2], [3]]
y = [0, 0, 1, 1]
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X, y) 

print(neigh.predict([[1.1]]))
print(neigh.predict_proba([[0.9]]))
Run Code Online (Sandbox Code Playgroud)

X和y是2个特征?

samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5]]
from sklearn.neighbors import NearestNeighbors
neigh = NearestNeighbors(n_neighbors=1)
neigh.fit(samples) 

print(neigh.kneighbors([1., 1., 1.])) 
Run Code Online (Sandbox Code Playgroud)

为什么在第一个例子中使用X和y并现在采样?

python classification machine-learning nearest-neighbor scikit-learn

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

R:Naives贝叶斯分类器仅基于先验概率决定

我试图根据他们的情绪将推文分为三类(买入,持有,卖出).我正在使用R和e1071包.

我有两个数据框:一个训练集和一组新推文,需要预测情绪.

训练集数据框:

   +--------------------------------------------------+

   **text | sentiment**

   *this stock is a good buy* | Buy

   *markets crash in tokyo* | Sell

   *everybody excited about new products* | Hold

   +--------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

现在我想使用推文文本trainingset[,2]和情绪类别来训练模型 trainingset[,4].

classifier<-naiveBayes(trainingset[,2],as.factor(trainingset[,4]), laplace=1)
Run Code Online (Sandbox Code Playgroud)

用分析查看分类器的元素

classifier$tables$x

我发现条件概率是计算出来的.每一条有关买入,持有和卖出的推文都有不同的概率.太好了.

但是当我预测训练集时:

predict(classifier, trainingset[,2], type="raw")

我得到的分类基于先验概率,这意味着每条推文都被归类为Hold(因为"Hold"在情绪中占有最大份额).所以每条推文都有相同的买入,持有和卖出概率:

      +--------------------------------------------------+

      **Id | Buy | Hold | Sell**

      1  |0.25 | 0.5  | 0.25

      2  |0.25 | 0.5  | 0.25

      3  |0.25 | 0.5  | 0.25

     ..  |..... | ....  | ...

      N  |0.25 …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning text-mining

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

如何使用Apache Mahout对图像进行分类?

如何从mahout执行图像分类?如何将图像转换为mahout分类算法接受的形式?是否有任何入门代码?请分享一些入门教程.mahout是图像分类的好库吗?

classification machine-learning image-processing mahout

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

为什么scikit-learn的随机森林使用了如此多的内存?

我正在使用scikit的Random Forest实现:

sklearn.ensemble.RandomForestClassifier(n_estimators=100, 
                                        max_features="auto", 
                                        max_depth=10)
Run Code Online (Sandbox Code Playgroud)

调用之后rf.fit(...),进程的内存使用量增加了80MB,或者每棵树增加了0.8MB(我还尝试了许多其他类似结果的设置.我使用toppsutil监视内存使用情况)

深度为10的二叉树最多应该有一个2^11-1 = 2047元素,这些元素都可以存储在一个密集的数组中,这样程序员就可以轻松地找到任何给定元素的父元素和子元素.

每个元素都需要分割和截止中使用的特征的索引,或6-16个字节,具体取决于程序员的经济程度.在我的情况下,这转化为每棵树0.01-0.03MB.

为什么scikit的实现使用20-60x的内存来存储随机森林的树?

classification machine-learning decision-tree random-forest scikit-learn

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

如何在R中为决策树模型创建增益图表?

我在R中创建了一个决策树模型.目标变量是Salary,我们试图根据其他输入变量来预测一个人的工资是高于还是低于50k

df<-salary.data 

train = sample(1:nrow(df), nrow(df)/2)
train = sample(1:nrow(df), size=0.2*nrow(df))
test = - train
training_data = df[train, ]
testing_data = df[test, ]

fit <- rpart(training_data$INCOME ~ ., method="class", data=training_data)##generate tree
testing_data$predictionsOutput = predict(fit, newdata=testing_data, type="class")##make prediction
Run Code Online (Sandbox Code Playgroud)

之后,我尝试通过执行以下操作创建增益图表

# Gain Chart
pred <- prediction(testing_data$predictionsOutput, testing_data$INCOME)
gain <- performance(pred,"tpr","fpr")
plot(gain, col="orange", lwd=2)
Run Code Online (Sandbox Code Playgroud)

通过查看引用,我无法理解如何使用ROCR包通过使用"预测"功能来构建图表.这仅适用于二进制目标变量吗?我收到的错误是"预测格式无效"

任何帮助都将非常感谢帮助我为上述模型构建增益图表.谢谢!!

  AGE          EMPLOYER     DEGREE             MSTATUS            JOBTYPE     SEX C.GAIN C.LOSS HOURS
1  39         State-gov  Bachelors       Never-married       Adm-clerical    Male   2174      0    40
2  50  Self-emp-not-inc  Bachelors  Married-civ-spouse    Exec-managerial    Male      0      0 …
Run Code Online (Sandbox Code Playgroud)

r classification machine-learning decision-tree rstudio

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

在原始数据缺失信息时测量精度和召回

试图改善我的聊天应用程序:

使用我的域中的先前(预处理)聊天交互,我构建了一个工具,为用户提供给定聊天上下文的5种可能的话语,例如:

Raw:"嗨,约翰."

上下文:嗨[[USER_NAME]]
话语:[嗨,你好,你好,你好,再次问好你好]


当然,结果并不总是相关的,例如:

Raw:"嗨,约翰.你好吗?我很好,你在办公室吗?"

背景:嗨[[USER_NAME]]你怎么样我在办公室你很好
话语:[是,不,你好,我是,你好,你好 ]

我使用Elasticsearch与TF/IDF相似性模型和索引结构如下:

{
  "_index": "engagements",
  "_type": "context",
  "_id": "48",
  "_score": 1,
  "_source": {
    "context": "hi [[USER_NAME]] how are you i am fine are you in the office",
    "utterance": "Yes I am"
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:我肯定知道,对于上下文"hi [[USER_NAME]]你怎么样我很好你在办公室"说话"是的我是"是相关的,但是"是","否"也是相关的因为他们出现在类似的背景下.

尝试使用这个优秀的视频,作为一个起点

问:如果我所知道的(根据我的原始数据)只是一个真实的话语,我怎样才能衡量精确度和召回率?

chat classification tf-idf elasticsearch precision-recall

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

如何在TensorFlow中计算CNN的准确性

我是TensorFlow的新手.我正在使用自己的数据集进行二进制分类.但是我不知道如何计算准确度.有人可以帮我这么做吗?

我的分类器有5个卷积层,后面是2个完全连接的层.最终的FC层的输出维度为2,我使用过:

prob = tf.nn.softmax(classification_features, name="output")
Run Code Online (Sandbox Code Playgroud)

classification convolution tensorflow

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