什么是最大似然估计?
① 最大似然估计简单来说就是模型参数的哪个取值能让实际测量出的 ( xi, yi ) 显得最可能出现,那我们就认为模型的参数是多少。
注:例如,w 和 b 的哪个取值能让我们现在观测的数据 {x, y} 显得最可能出现,那我们就认为 w 和 b 是多少。
② 我们记对 w 和 b 的估计值为
③ 那么在参数符合估计
⑤ 可以在 w, xi, b 确定的情况下
注:这里是已知 x_i 的情况,并没有已知 y_i。
注:
⑥ 也就是
注:上式公式是用已知假设参数
注:这里的 yi 是为任意某一值时,所对应的概率情况 ( 这里是 yi 的概率分布情况 )。
⑦ 综合所有的观测值 {xi, yi} 的概率,可得
注:这里是将观测到的 yi 对应的概率值 ( 是一个确定的值 ) 联合起来。
⑧ 目标是要使得实际得到的一组观测值 {xi, yi} 概率最大,即
注:若仅有一个点使得f(x)取得最大值,那么argmax(f(x))的结果就是这个最大值对应的x。
注:若有多个点使得f(x)取得相同的最大值,那么argmax(f(x))的结果就是一个点集。
注:换句话说,argmax(f(x))是使得 f(x) 取得最大值所对应的变量点x(或x的集合)。
注:arg即argument,此处意为 "自变量"。
Python基础积累
元组
names=('alex','jack','alex','jack')
print(names.count('alex'))
print(names.index('jack'))
运行结果:
2
1
注:数一数alex的次数。
注:数出第一个jack的次数。
# 购物篮程序
# 产品列表里面的元素是元组,元组里面是名词和价格。
product_list=[('Iphone', 5800),
('Mac Pro', 9800),
('Bike', 5800),
('Watch', 10600),
('Coffee', 31),
('Alex Python', 120),]
# 购物列表初始化为空
shopping_list=[]
# 输入资金是多少钱
salary=input("Input your salary:")
if salary.isdigit(): # 判断输入的资金字符串是不是只有数字,如果只有数字,则返回Ture,查询函数库03。
salary=int(salary) # 强制转换,将input输入的字符串转换为int型。
while True: # 恒成立
#for item in product_list:
# print(product_list.index(item),item)
# enumerate多用于在for循环中得到计数,利用它可以同时获得索引和值,即需要index和value值的时候可以使用enumerate
for index,item in enumerate(product_list):
print(index,item)
user_choice=input("选择要买嘛?>>:")
if user_choice.isdigit(): # 判断输入的资金字符串是不是只有数字,如果只有数字,则返回Ture,查询函数库03。
user_choice=int(user_choice) # 强制转换,将input输入的字符串转换为int型。
if user_choice<len(product_list) and user_choice>=0: # 用户输入的数字大于等于0,小于数组长度,则进行下一步
p_item=product_list[user_choice] # 物品为产品列表中的数据序号,前面product_list实际上仅仅只是一个列表而已
if p_item[1]<=salary: # p_item[1]表示该物品对应的价格小于当前所拥有的资金
shopping_list.append(p_item) # 空集的购物列表添加该物品以及资金
salary-=p_item[1] # 资金减去已经花费的价格
print("Added %s into shopping cart, your current balance is 033[31;1m%s033[0m"%(p_item,salary))
else: #033[31;1m XX 033[0m、033[41;1m YYY 033[0m 这就是对中间字的进行上颜色
print("033[41;1m你的余额只剩[%s]啦,还买个毛线033[0m"%salary) #
else:
print("product code[%s] is not exist!"%user_choice) # 打印用户选择不对
elif user_choice=='q': # 如果用户输入q
print('-----------shopping list----------------') # 打印已选购物列表清单
for p in shopping_list:
print(p) # 打印每一个购物列表清单中的元素,该元素为元组
print("Your current balance:",salary) # 打印现在剩余的资金
exit() # 退出,由于while恒成立,所以退出后继续再让你选择要买什么
else:
print("invalid option")
运行结果:
Input your salary:4230
0 ('Iphone', 5800)
1 ('Mac Pro', 9800)
2 ('Bike', 5800)
3 ('Watch', 10600)
4 ('Coffee', 31)
5 ('Alex Python', 120)
选择要买嘛?>>:5
Added ('Alex Python', 120) into shopping cart, your current balance is [31;1m4110[0m
0 ('Iphone', 5800)
1 ('Mac Pro', 9800)
2 ('Bike', 5800)
3 ('Watch', 10600)
4 ('Coffee', 31)
5 ('Alex Python', 120)
选择要买嘛?>>:5
Added ('Alex Python', 120) into shopping cart, your current balance is [31;1m3990[0m
0 ('Iphone', 5800)
1 ('Mac Pro', 9800)
2 ('Bike', 5800)
3 ('Watch', 10600)
4 ('Coffee', 31)
5 ('Alex Python', 120)
选择要买嘛?>>:2
[41;1m你的余额只剩[3990]啦,还买个毛线[0m
0 ('Iphone', 5800)
1 ('Mac Pro', 9800)
2 ('Bike', 5800)
3 ('Watch', 10600)
4 ('Coffee', 31)
5 ('Alex Python', 120)