我正在观看Udacity的AI类简介视频,我似乎无法将一个想法包裹在我的脑海中。
据说,对于长度为n 2的字符串, n-1 分段是可能的。当我们采用朴素贝叶斯假设时,最佳分割s * 可以定义为最大化分割
产品(P(w i ))
可以写出最好的相同:
s * = argmax s P(first_word)* s * (rest_of_words)
我明白为什么以上是真的。讲师说,由于上述等式,我们不必列举所有2个 n-1 案例。我无法理解这个原因。
我也明白找到P(single_word)比学习n-gram的相同概率简单,这也有助于计算。
答案 0 :(得分:0)
由于我们正在处理单个单词,因此我们必须每次选择一个单词而不是它们的所有组合,从而减少了搜索空间。考虑字符串:
“Iliketennis”
该字符串有11个字符,因此2 ^ 11 = 2048个案例。如果我们开始查看最可能的第一个词,那就是:
“我”,“Il”,“Ili”,“Ilik”等等。 11种可能的情况。现在我们已经掌握了所有可能的第一句话,我们寻找最可能的:
等等。
发现最可能的是“我”,我们把它作为第一个词,现在我们可以专注于剩余的10个字符/案例:
“liketennis”
重复相同的过程,您现在将有10个可能的单词案例,概率为:
等等。
所以我们选择“喜欢”。现在,对最后6个字符重复搜索。如果不重新编写过程,则会拾取“网球”并且不会留下字符,因此分段结束。
由于我们已经按字词进行了分析,我们考虑的可能性是
11 + 10 + 6 = 27
远远超过2048年可能的分裂。
答案 1 :(得分:0)
我推荐一个由Mathematicalmonk制作的视频, 此视频:https://youtu.be/qX7n53NWYI4?t=9m43s
他解释说,如果没有条件独立性假设(朴素贝叶斯),当您从数据中学习时,需要更多样本来估计概率。但是,如果你假设(即使它不正确)功能之间的独立性,使用较少的训练数据,你可以估计概率分布。
为什么呢?让我们简单一点,没有天真的假设,预测x_1
的二维特征向量的概率为:
通过仅假设x_2
和y
要素的二进制值,您需要按照从样本数据中学习的P(x_1=0|y), P(x_1=1|y), P(x_2=0|x_1=0,y), P(x_2=0|x_1=1,y), P(x_2=1|x_1=0,y), P(x_2=1|x_1=1,y)
存储这些值:
y
换句话说,您需要存储个参数。您可以将其推广到d维二进制特征向量:
如果您采用天真的假设并假设这些特征是独立的,那么您将拥有以下公式:
这意味着您只需要按X
存储这些参数,以便预测所有可能的P(x_1=0|y), P(x_1=1|y), P(x_2=0|y), P(x_2=1|y)
:
a = 10
b = 20
c = a + b
#Normal string concatenation
print("sum of", a , "and" , b , "is" , c)
#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c))
# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))
#New style string formatting
print("sum of {} and {} is {}".format(a,b,c))
#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))
EDIT :
#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')
或将其概括为: