文本类型自变量到数字类型spark naive bayes

时间:2016-06-17 06:19:31

标签: apache-spark apache-spark-mllib naivebayes

我对带有数字和非数字功能的朴素贝叶有疑问。就像我有5个独立的独立参数这些我想分类数据。

男性,怀疑酒精,平日,上午12点至凌晨4点,75,30-39 男性,移动交通违规,平日,上午12点至凌晨4点,0,20-24 男性,怀疑酒精,周末,上午4点至早上8点,12,40-49 男性,怀疑酒精,平日,上午12点至凌晨4点,0,50-59 女性,道路交通碰撞,周末,12 pm-4pm,0,20-24 男性,道路交通碰撞,平日,下午12点至下午4点,0,25-29 男性,道路交通碰撞,平日,晚上8点至12点,0,其他 男,其他,平日,8 AM-12PM,23,60-69 男性,移动交通违规,周末,中午12点至下午4点,26,30-39 女性,道路交通碰撞,周末,上午4点至8点,61,16-19 男性,移动交通违规,周末,下午4点至晚上8点,74,25-29 男性,道路交通碰撞,平日,上午12点至凌晨4点,其他 男性,移动交通违规,工作日,晚上8点至12点,0,16-19 男性,道路交通碰撞,平日,晚上8点至12点,0,其他 男性,移动交通违规,周末,凌晨4点到8点,0,30-39

你可以看到一些参数是数字的,有些是非数字的。任何人都知道如何将非数字数据转换为数字数据。

  1. 如何将非数字转换为数字
  2. 如果我使用TF那么它是对还是
  3. 如果TF是对的那么为什么

1 个答案:

答案 0 :(得分:0)

您可以从以下内容开始:

  • 通过应用factorizer将每个要素转换为分类值。一个例子:

  • Feature1:Male = 0 Female = 1

  • Feature2:Alcohol = 0 collision = 1 Moving-Violation = 2
  • ..

等等。

一个“列”的每个不同的可能值应该在您的分解结果中具有其自己的特定数值表示。希望像4pm-8pm这样的东西是不重叠的:但是如果它们是你可以开始忽略那个细节,如果时间允许,你可以稍后做一些更聪明的手动特征。

输入中的每个条目/行都包含大约十几个“功能”。然后,您可以从每一行创建一个特征向量。结果现在是tf-idf ready(TM)。您可以将NB算法应用于新建的特征向量 - 并找到相对的相似性。