机器学习基础复习

本文回顾了机器学习的基础知识,包括k-means聚类、逻辑回归和线性回归的公式推导,以及Python中的深拷贝和浅拷贝、正则表达式和散列表的应用。还探讨了AUC作为评估指标的重要性,以及ROC与PR曲线的选择。同时,介绍了Word2vec、概率统计概念和线性模型中的L1正则化处理。文章还涉及到了一些概率问题的解决和随机数生成的策略。
摘要由CSDN通过智能技术生成

2021-字节春招实习-data广告-推荐算法-实习面经

手推公式,现场造轮子

kmeans

#coding=utf-8
def distance(pt1,pt2):
    m=len(pt1)
    ans=0
    for i in range(m):
        ans+=(pt1[i]-pt2[i])**2
    return ans
        
# 构造样本
pts=[]
for i in range(10):
    for j in range(10):
        pts.append([i,j])

# 初始中心
centers=[[0,2],[3,3]]
k=len(centers)
m=2
# 迭代
print(centers)
for i in range(5):
    # 给每个样本分配对应的标签
    labels=[]
    for pt in pts:
        best_i=-1
        best_dis=100000
        for i, center in enumerate(centers):
            dis=distance(pt,center)
            if dis<best_dis:
                best_i=i
                best_dis=dis
        labels.append(best_i)
    # 重新计算中心点
    cts=[[] for _ in range(k)]
    centers=[[0]*m for _ in range(k)]
    for pt,label in zip(pts, labels):
        cts[label].append(pt)
    for label in range(k):
        n_samples=len(cts[label])
        for dim in range(m):
            sm=0
            for sample in range(n_samples):
                sm+=cts[label][sample][dim]
            sm/=n_samples
            centers[label][dim]=sm
    print(centers)
print(labels)
    

logistic regression

主要背这几个代码

  • 交叉熵
loss = -(y @ np.log(y_hat) + (1 - y) @ np.log(1 - y_hat)) / n
  • y_hat 计算

就sigmoid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值