2026年机器学习工程师招聘面试题目及高频考点含答案.docxVIP

  • 1
  • 0
  • 约5.86千字
  • 约 16页
  • 2026-02-10 发布于福建
  • 举报

2026年机器学习工程师招聘面试题目及高频考点含答案.docx

第PAGE页共NUMPAGES页

2026年机器学习工程师招聘面试题目及高频考点含答案

一、编程题(3题,每题15分,共45分)

1.题目(15分):

编写一个Python函数,实现K近邻(K-NearestNeighbors,KNN)算法的核心逻辑,即根据输入样本和训练数据,返回每个样本的类别预测。假设数据集为二维特征,类别标签为整数(如0和1),使用欧氏距离计算最近邻。

要求:

-输入:训练数据集(列表形式,每个元素为[特征1,特征2,标签])、待预测样本(列表形式[特征1,特征2])、K值(整数)。

-输出:待预测样本的类别预测(多数投票结果)。

示例:

python

data=[[1.0,2.0,0],[2.0,3.0,0],[6.0,7.0,1],[7.0,8.0,1]]

predict=[5.0,6.0]

k=3

输出应为1

答案:

python

importnumpyasnp

fromcollectionsimportCounter

defknn_predict(data,predict,k):

将数据转换为numpy数组

data=np.array(data)

predict=np.array(predict)

计算欧氏距离

distances=np.sqrt(((data-predict)2).sum(axis=1))

获取最近的k个样本

nearest_indices=distances.argsort()[:k]

多数投票

nearest_labels=data[nearest_indices][:,-1]

label_counts=Counter(nearest_labels)

returnlabel_counts.most_common(1)[0][0]

示例测试

data=[[1.0,2.0,0],[2.0,3.0,0],[6.0,7.0,1],[7.0,8.0,1]]

predict=[5.0,6.0]

k=3

print(knn_predict(data,predict,k))#输出:1

解析:

-首先将数据转换为numpy数组便于计算。

-使用欧氏距离公式计算每个样本与待预测样本的距离。

-对距离进行排序,选择最近的k个样本,根据其标签进行多数投票。

2.题目(15分):

实现一个简单的线性回归模型,使用梯度下降法优化参数。假设输入特征为二维,输出为标量,要求计算损失函数(均方误差)并更新权重。

要求:

-输入:训练数据(列表形式,每个元素为[特征1,特征2,目标值])、学习率(学习率)、迭代次数(整数)。

-输出:优化后的权重(w1,w2)和偏置(b)。

示例:

python

data=[[1,2,3],[2,3,5],[3,4,7]]

learning_rate=0.01

epochs=1000

输出近似为[1.5,1.0,0.5]

答案:

python

deflinear_regressionGD(data,learning_rate,epochs):

初始化参数

w1,w2,b=0.0,0.0,0.0

提取特征和目标值

X=np.array([d[:2]fordindata])

y=np.array([d[2]fordindata])

for_inrange(epochs):

预测值

y_pred=w1X[:,0]+w2X[:,1]+b

计算梯度

dw1=(2/len(X))np.dot(y_pred-y,X[:,0])

dw2=(2/len(X))np.dot(y_pred-y,X[:,1])

db=(2/len(X))np.sum(y_pred-y)

更新参数

w1-=learning_ratedw1

w2-=learning_ratedw2

b-=learning_ratedb

returnw1,w2,b

示例测试

data=[[1,2,3],[2,3,5],[3,4,7]]

learning_rate=0.01

epochs=1000

print(linear_regressionGD(data,learning_rate,epochs))#输出近似为[1.5,1.0,0.5]

解析:

-使用梯度下降法迭代更新权重,均方误差作为损失函数。

-每次迭代计算预测值与目标值的差,并根

文档评论(0)

1亿VIP精品文档

相关文档