我想将短信分为几类,如"建立关系","协调","信息共享","知识共享"和"冲突解决".我正在使用NLTK库来处理这些数据.我想知道在nltk中哪个分类器对于这个特定的多类分类问题更好.
我打算使用朴素贝叶斯分类,是否可取?
嘿,这是我的问题,
给定一组文档,我需要将每个文档分配给预定义的类别.
我将使用n-gram方法来表示每个文档的文本内容,然后在我拥有的训练数据上训练SVM分类器.
如果我想念一些东西,请纠正我.
现在的问题是类别应该是动态的.意思是,我的分类器应该处理新类别的新训练数据.
因此,例如,如果我训练分类器将给定文档分类为类别A,类别B或类别C,然后我获得了类别D的新训练数据.我应该能够通过提供它来增量训练我的分类器. "D类"的新培训数据.
总而言之,我不想将旧的训练数据(包括3个类别)和新的训练数据(使用新的/看不见的类别)组合在一起并再次训练我的分类器.我想在飞行中训练我的分类器
这可以用SVM实现吗?如果没有,你能推荐我几种分类算法吗?或任何可以帮助我的书/纸.
提前致谢.
algorithm classification machine-learning document-classification
我正在尝试使用randomForest进行分类,但我反复收到一条错误消息,似乎没有明显的解决方案(randomForest对我来说在过去做回归效果很好).我在下面粘贴了我的代码."成功"是一个因素,所有因变量都是数字.有关如何正确运行此分类的任何建议?
> rf_model<-randomForest(success~.,data=data.train,xtest=data.test[,2:9],ytest=data.test[,1],importance=TRUE,proximity=TRUE)
Error in randomForest.default(m, y, ...) :
NA/NaN/Inf in foreign function call (arg 1)
Run Code Online (Sandbox Code Playgroud)
另外,这是一个数据集的示例:
头(数据)
success duration goal reward_count updates_count comments_count backers_count min_reward_level max_reward_level
True 20.00000 1500 10 14 2 68 1 1000
True 30.00000 3000 10 4 3 48 5 1000
True 24.40323 14000 23 6 10 540 5 1250
True 31.95833 30000 9 17 7 173 1 10000
True 28.13211 4000 10 23 97 2936 10 550
True 30.00000 6000 16 16 130 2043 25 …Run Code Online (Sandbox Code Playgroud) 我的数据库中有大约1600篇文章,每篇文章都已经预先标记了以下类别之一:
Technology
Science
Business
World
Health
Entertainment
Sports
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用sci-kit学习构建一个分类新文章的分类器.(我想我会将训练数据分成两半,用于训练和测试?)
我希望使用tf-idf,因为我没有停止词的列表(我可以使用NLTK仅提取形容词和名词,但我宁愿给scikit - 学习完整的文章).
我已经阅读了关于scikit-learn的所有文档,但是他们的例子涉及单词出现和N-gram(很好),但他们从未指定如何将一段数据绑定到标签.
我已经尝试过查看他们的示例代码了,但是它太难以理解了.
有人可以帮我解决这个问题,还是指出我正确的方向?
谢谢.
我在多类设置中看到了关于类不平衡的几个问题.但是,我有一个多标签问题,所以在这种情况下你会怎么处理?
我有一组约300k文本示例.如标题中所述,每个示例至少有一个标签,并且只有100个可能的唯一标签.我已经通过利用命名空间将这个问题简化为Vowpal Wabbit的二进制分类,例如
从:
healthy fruit | bananas oranges jack fruit
evil monkey | bipedal organism family guy
...
Run Code Online (Sandbox Code Playgroud)
至:
1 |healthy bananas oranges jack fruit
1 |fruit bananas oranges jack fruit
0 |evil bananas oranges jack fruit
0 |monkey bananas oranges jack fruit
0 |healthy bipedal organism family guy
0 |fruit bipedal organism family guy
1 |evil bipedal organism family guy
1 |monkey bipedal organism family guy
...
Run Code Online (Sandbox Code Playgroud)
我正在使用大众提供的默认选项(我认为是在线SGD,具有平方损失功能).我正在使用平方损失,因为它非常类似汉明损失.
在训练之后,当我在相同的训练集上进行测试时,我注意到所有的例子都是用'0'标签预测的 ......这是一种最小化损失的方法,我想.在这一点上,我不知道该怎么做.我正在考虑使用成本敏感的一对一分类来尝试平衡类,但是由于存在2 ^ 100个标签组合,因此将多标签减少到多类是不可行的.我想知道是否有其他人有任何建议.
编辑:我终于有机会测试类失衡,特别是vw …
classification machine-learning vowpalwabbit text-classification
有人为我的matlab程序发光吗?我有来自两个传感器的数据,我正在kNN分别对它们进行分类.在这两种情况下,训练集看起来像一组总共42行的向量,如下所示:
[44 12 53 29 35 30 49;
54 36 58 30 38 24 37;..]
Run Code Online (Sandbox Code Playgroud)
然后我得到一个样本,例如[40 30 50 25 40 25 30],我想将样本分类到最近的邻居.作为接近度的标准,我使用欧几里德度量,sqrt(sum(Y 2)),其中Y是每个元素之间的差异,它给出了Sample和每个训练集类别之间的距离数组.
那么,有两个问题:
补充:到目前为止我正在使用公式:probability = distance/sum of distances但我无法绘制正确的cdf或直方图.这给了我一些分布,但我看到了一个问题,因为如果距离很大,例如700,那么最接近的类将获得最大的概率,但它是错的,因为距离太大而不能与任何课程相比.
任何帮助或评论都非常感谢.
matlab classification knn euclidean-distance probability-density
我有两组重叠的数据(见下图).我需要找到这些集合之间的点,人们会猜测未知数据点属于特定类别.
如果我有一个新的数据点(让我们说5000),并且不得不打赌$$$是否属于A组或B组,我怎样才能计算出让我最有把握的点?
参见下面的样本数据集和附图,其中这些组之间的近似点(通过眼睛计算).
GROUP A
[385,515,975,1136,2394,2436,4051,4399,4484,4768,4768,4849,4856,4954,5020,5020,5020,5020,5020,5020,5020,5020,5020,5052,5163,5200,5271,5421,5421,5442,5746,5765,5903,5992,5992,6046,6122,6205,6208,6239,6310,6360,6416,6512,6536,6543,6581,6609,6696,6699,6752,6796,6806,6855,6859,6886,6906,6911,6923,6953,7016,7072,7086,7089,7110,7232,7278,7293,7304,7309,7348,7367,7378,7380,7419,7453,7454,7492,7506,7549,7563,7721,7723,7731,7745,7750,7751,7783,7791,7813,7813,7814,7818,7833,7863,7875,7886,7887,7902,7907,7935,7942,7942,7948,7973,7995,8002,8013,8013,8015,8024,8025,8030,8038,8041,8050,8056,8060,8064,8071,8081,8082,8085,8093,8124,8139,8142,8167,8179,8204,8214,8223,8225,8247,8248,8253,8258,8264,8265,8265,8269,8277,8278,8289,8300,8312,8314,8323,8328,8334,8363,8369,8390,8397,8399,8399,8401,8436,8442,8456,8457,8471,8474,8483,8503,8511,8516,8533,8560,8571,8575,8583,8592,8593,8626,8635,8635,8644,8659,8685,8695,8695,8702,8714,8715,8717,8729,8732,8740,8743,8750,8756,8772,8772,8778,8797,8828,8840,8840,8843,8856,8865,8874,8876,8878,8885,8887,8893,8896,8905,8910,8955,8970,8971,8991,8995,9014,9016,9042,9043,9063,9069,9104,9106,9107,9116,9131,9157,9227,9359,9471]
GROUP B
[12,16,29,32,33,35,39,42,44,44,44,45,45,45,45,45,45,45,45,45,47,51,51,51,57,57,60,61,61,62,71,75,75,75,75,75,75,76,76,76,76,76,76,79,84,84,85,89,93,93,95,96,97,98,100,100,100,100,100,102,102,103,105,108,109,109,109,109,109,109,109,109,109,109,109,109,110,110,112,113,114,114,116,116,118,119,120,121,122,124,125,128,129,130,131,132,133,133,137,138,144,144,146,146,146,148,149,149,150,150,150,151,153,155,157,159,164,164,164,167,169,170,171,171,171,171,173,174,175,176,176,177,178,179,180,181,181,183,184,185,187,191,193,199,203,203,205,205,206,212,213,214,214,219,224,224,224,225,225,226,227,227,228,231,234,234,235,237,240,244,245,245,246,246,246,248,249,250,250,251,255,255,257,264,264,267,270,271,271,281,282,286,286,291,291,292,292,294,295,299,301,302,304,304,304,304,304,306,308,314,318,329,340,344,345,356,359,363,368,368,371,375,379,386,389,390,392,394,408,418,438,440,456,456,458,460,461,467,491,503,505,508,524,557,558,568,591,609,622,656,665,668,687,705,728,817,839,965,1013,1093,1126,1512,1935,2159,2384,2424,2426,2484,2738,2746,2751,3006,3184,3184,3184,3184,3184,4023,5842,5842,6502,7443,7781,8132,8237,8501]
Run Code Online (Sandbox Code Playgroud)

数据统计:
Group A Group B
Total Numbers 231 286
Mean 7534.71 575.56
Standard Deviation 1595.04 1316.03
Run Code Online (Sandbox Code Playgroud) 我正在使用sklearn中的Pipeline对文本进行分类.
在这个例子中,Pipeline我有一个TfIDF矢量化器和一些用FeatureUnion包装的自定义特征和一个分类器作为Pipeline步骤,然后我拟合训练数据并进行预测:
from sklearn.pipeline import FeatureUnion, Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.svm import LinearSVC
X = ['I am a sentence', 'an example']
Y = [1, 2]
X_dev = ['another sentence']
# load custom features and FeatureUnion with Vectorizer
features = []
measure_features = MeasureFeatures() # this class includes my custom features
features.append(('measure_features', measure_features))
countVecWord = TfidfVectorizer(ngram_range=(1, 3), max_features= 4000)
features.append(('ngram', countVecWord))
all_features = FeatureUnion(features)
# classifier
LinearSVC1 = LinearSVC(tol=1e-4, C = 0.10000000000000001)
pipeline = Pipeline(
[('all', all_features ),
('clf', …Run Code Online (Sandbox Code Playgroud) python pipeline classification machine-learning scikit-learn
我正在使用RandomForest.featureImportances但我不理解输出结果.
我有12个功能,这是我得到的输出.
我知道这可能不是一个特定于apache-spark的问题,但我无法找到解释输出的任何地方.
// org.apache.spark.mllib.linalg.Vector = (12,[0,1,2,3,4,5,6,7,8,9,10,11],
[0.1956128039688559,0.06863606797951556,0.11302128590305296,0.091986700351889,0.03430651625283274,0.05975817050022879,0.06929766152519388,0.052654922125615934,0.06437052114945474,0.1601713590349946,0.0324327322375338,0.057751258970832206])
Run Code Online (Sandbox Code Playgroud) classification random-forest apache-spark apache-spark-mllib
我是命名实体识别的新手,我在理解用于此任务的功能/功能方面遇到了一些麻烦.
到目前为止我读过的一些论文提到了使用的功能,但没有真正解释它们,例如在 CoNLL-2003共享任务简介:与语言无关的命名实体识别中,提到了以下功能:
参与CoNLL-2003共享任务的16个系统使用的主要功能按英语测试数据的性能排序.Aff:附加信息(n-gram); 包:一袋字; cas:全球案例信息; chu:chunk标签; doc:全球文件信息; gaz:地名录; lex:词汇特征; ort:正交信息; pat:正交模式(如Aa0); pos:词性标签; pre:先前预测的NE标签; quo:标记该单词在引号之间; 三:触发词.
不过,我对其中一些人感到有些困惑.例如:
我认为我在这里需要的只是查看一个示例表,其中每个功能都作为列,并查看它们的值以了解它们是如何工作的,但到目前为止,我找不到易于阅读的数据集.
有人可以澄清或指出我使用这些功能的一些解释或示例吗?
nlp classification machine-learning named-entity-recognition feature-selection
classification ×10
algorithm ×2
nlp ×2
python ×2
scikit-learn ×2
apache-spark ×1
arrays ×1
knn ×1
matlab ×1
nltk ×1
pipeline ×1
r ×1
sorting ×1
vowpalwabbit ×1