结合 ML 算法的文本和数字列
Combining Text and Numerical Columns for ML Algorithm
这里我正在处理一个情绪分类问题,我必须在其中预测推文是正面的、负面的还是中立的。这是我的数据集的一瞥:
tweet_id airline_sentiment_confidence negativereason negativereason_confidence airline name retweet_count text tweet_created tweet location user_timezone airline_sentiment
Tr_tweet_1 1.000 NaN NaN Virgin America 0 tweets date Location Time Positive
Tr_tweet_2 0.3846 NaN 0.7033 Virgin America 0 tweets date Location Time Negative
Tr_tweet_3 0.6837 Bad flight 0.3342 Virgin America 0 tweets date Location Time Negative
Tr_tweet_4 1.000 Can't tell 1.000 Virgin America 0 tweets date Location Time Neutral
Tr_tweet_5 1.000 NaN NaN Virgin America 0 tweets date Location Time Neutral
然而,text
是我在 TfIdf_Vectorizer
中使用的专栏,并使用 logreg
来预测情绪。但是,我得到的 ~68%
的准确性非常低,结果证明这是一个纯粹的 NLP 问题。然而,如果我能以某种方式使用它们,其他功能肯定会提高我的准确性。
我想知道如何将 negativereason
等其他数字列和文本列作为特征与我的 text
列相结合,以提高准确性。
或者这里有什么堆叠的方法吗?就像结合 Tfidf
的预测,然后再次用其余数字列进行预测?
TL;DR 如何将数字列和文本列作为特征进行处理以做出良好的预测?
如您所述,解决此问题的一种方法是堆叠。您可以将每条推文表示为特征向量,其中向量中的每个位置代表一个 word/term,其值是该词的 tf-idf 值。然后,您可以将每条推文的 tf-idf 向量与您拥有的剩余数字列连接起来,并将这些向量中的每一个堆叠在一起以获得矩阵(一旦有了矩阵,您就可以开始尝试不同的机器学习模型!)
一些注意事项,一旦每条推文都有一个 tf-idf 向量,运行 降维算法(如 PCA)可能有意义,因为你将处理一个大而稀疏的向量.此外,根据您的数据,规范化每个连接的向量可能是有意义的(例如,使所有内容都具有 0-1 的值)。最后,通常个别推文的文本信息不够丰富。您可能需要考虑将相似的推文聚合在一起以获得更好的结果。
这里我正在处理一个情绪分类问题,我必须在其中预测推文是正面的、负面的还是中立的。这是我的数据集的一瞥:
tweet_id airline_sentiment_confidence negativereason negativereason_confidence airline name retweet_count text tweet_created tweet location user_timezone airline_sentiment
Tr_tweet_1 1.000 NaN NaN Virgin America 0 tweets date Location Time Positive
Tr_tweet_2 0.3846 NaN 0.7033 Virgin America 0 tweets date Location Time Negative
Tr_tweet_3 0.6837 Bad flight 0.3342 Virgin America 0 tweets date Location Time Negative
Tr_tweet_4 1.000 Can't tell 1.000 Virgin America 0 tweets date Location Time Neutral
Tr_tweet_5 1.000 NaN NaN Virgin America 0 tweets date Location Time Neutral
然而,text
是我在 TfIdf_Vectorizer
中使用的专栏,并使用 logreg
来预测情绪。但是,我得到的 ~68%
的准确性非常低,结果证明这是一个纯粹的 NLP 问题。然而,如果我能以某种方式使用它们,其他功能肯定会提高我的准确性。
我想知道如何将 negativereason
等其他数字列和文本列作为特征与我的 text
列相结合,以提高准确性。
或者这里有什么堆叠的方法吗?就像结合 Tfidf
的预测,然后再次用其余数字列进行预测?
TL;DR 如何将数字列和文本列作为特征进行处理以做出良好的预测?
如您所述,解决此问题的一种方法是堆叠。您可以将每条推文表示为特征向量,其中向量中的每个位置代表一个 word/term,其值是该词的 tf-idf 值。然后,您可以将每条推文的 tf-idf 向量与您拥有的剩余数字列连接起来,并将这些向量中的每一个堆叠在一起以获得矩阵(一旦有了矩阵,您就可以开始尝试不同的机器学习模型!)
一些注意事项,一旦每条推文都有一个 tf-idf 向量,运行 降维算法(如 PCA)可能有意义,因为你将处理一个大而稀疏的向量.此外,根据您的数据,规范化每个连接的向量可能是有意义的(例如,使所有内容都具有 0-1 的值)。最后,通常个别推文的文本信息不够丰富。您可能需要考虑将相似的推文聚合在一起以获得更好的结果。