元组的取值范围叫什么_机器学习 第29集:什么是最大似然估计?( 含有笔记、代码、注释 )...

什么是最大似然估计?

① 最大似然估计简单来说就是模型参数的哪个取值能让实际测量出的 ( xi, yi ) 显得最可能出现,那我们就认为模型的参数是多少。

注:例如,w 和 b 的哪个取值能让我们现在观测的数据 {x, y} 显得最可能出现,那我们就认为 w 和 b 是多少。

b2ec75bb840f586543466a32d9ce7e58.png

② 我们记对 w 和 b 的估计值为

③ 那么在参数符合估计

的情况下,我们观测到一对值(xi,yi)的概率为

④ 而我们知道:

⑤ 可以在 w, xi, b 确定的情况下

,即

注:这里是已知 x_i 的情况,并没有已知 y_i。

注:

呈正态分布,测量值
在根据 x_i 算出的不含误差的测量值
周围呈正态分布,由于
会波动。

⑥ 也就是

注:上式公式是用已知假设参数

,以及误差
呈正态分布的情况下,观测到某一观测值 {xi, yi} 的概率。

注:这里的 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)

"♥每天积累一点点♥"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值