2021.3.16面试准备

AI:
1、LR的损失函数
LR为逻辑回归模型预估,某个分类的概率
其损失函数可以用均方差,对数,概率等来表示。
均方差作为LR模型的距离衡量标准,最“预估错误”的惩罚太过柔和。
LR模型预估的是概率,损失函数可以用联合概率分布来衡量。

2、手写K-means算法
k-means聚类算法:
在这里插入图片描述

import numpy as np
def k_means(x,k=4,epochs=500,delta=1e-3):
    # 随机选取k个样本点作为中心
    indices = np.random.randit(0,len(x),size=k)
    centers = x[indices]

    # 保存分类结果
    results =[]
    for i in range(k):
        results.append([])
    step = 1
    flag = True
    while flag:
        if step > epochs:
            return  centers,results
        else:
            for i in range(k):
                results[i] = []
        # 将所有样本划分到离它最近的中心簇
        for i in range(len(x)):
            current = x[i]
            min_dis = np.inf
            tmp = 0

            for j in range(k):
                distance = dis(current,centers[i])
                if distance  < min_dis:
                    min_dis = distance
                    tmp = j
            results[tmp].append(current)
       # 更新中心
        for i in range(k):
            old_center = centers[i]
            new_center = np.array(results[i]).mean(axis=0)
           # 如果新,旧中心不等,更新
            if dis(old_center,new_center) > delta:
                centers[i]=new_center
                flag = False

        if flag:
            break
        # 需要更新flag重设为True
        else:
            flag = True
        step+=1
    return  centers,results


# 采用欧式距离
def dis(x,y):
    return np.sqrt(np.sum(np.power(x-y,2)))

3、机器学习算法中 GBDT 和 XGBOOST 的区别有哪些?
从最优化的角度来看:
GBDT采用的是数值优化的思维, 用的最速下降法去求解Loss Function的最优解, 其中用CART决策树去拟合负梯度, 用牛顿法求步长.
XGboost用的解析的思维, 对Loss Function展开到二阶近似, 求得解析解, 用解析解作为Gain来建立决策树, 使得Loss Function最优.

xgboost相比传统gbdt不同:xgboost快,xgboost支持并行

①传统GBDT以CART作为基分类器,xgboost还支持线性分类器
②传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数
③xgboost在代价函数里加入了正则项,用于控制模型的复杂度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值