2026年机器学习工程师面试编程题库含答案.docxVIP

  • 0
  • 0
  • 约7.67千字
  • 约 21页
  • 2026-01-22 发布于福建
  • 举报

2026年机器学习工程师面试编程题库含答案.docx

第PAGE页共NUMPAGES页

2026年机器学习工程师面试编程题库含答案

第一部分:数据预处理与特征工程(共5题,每题10分)

1.数据清洗与缺失值处理(10分)

假设你正在处理一份包含用户消费数据的CSV文件,其中包含以下列:`用户ID`(整数)、`年龄`(浮点数)、`消费金额`(浮点数)、`购买频次`(整数)。部分数据缺失,请编写Python代码实现以下功能:

(1)删除`用户ID`列,仅保留其他列。

(2)将`年龄`列的缺失值用该列的中位数填充。

(3)将`消费金额`列的缺失值用该列的均值填充。

(4)将`购买频次`列的缺失值用该列的众数填充。

(5)输出处理后的前5行数据。

python

importpandasaspd

importnumpyasnp

示例数据

data={

用户ID:[1,2,3,4,5,np.nan],

年龄:[25,np.nan,30,35,40,28],

消费金额:[100,200,np.nan,300,400,150],

购买频次:[5,3,2,np.nan,4,3]

}

df=pd.DataFrame(data)

(1)删除用户ID列

df=df.drop(columns=[用户ID])

(2)年龄列用中位数填充

df[年龄].fillna(df[年龄].median(),inplace=True)

(3)消费金额列用均值填充

df[消费金额].fillna(df[消费金额].mean(),inplace=True)

(4)购买频次列用众数填充

df[购买频次].fillna(df[购买频次].mode()[0],inplace=True)

(5)输出前5行

print(df.head())

答案解析:

-删除`用户ID`列使用`drop`函数,无需额外说明。

-年龄列的缺失值用中位数填充,因为年龄分布可能存在异常值,中位数更稳健。

-消费金额列用均值填充,假设金额数据无明显偏态分布。

-购买频次列用众数填充,频次通常为离散值,众数更合理。

2.特征缩放与标准化(10分)

给定以下数据集:

|X1|X2|

|-|-|

|10|200|

|20|400|

|30|600|

请编写Python代码,使用`StandardScaler`对`X1`和`X2`进行标准化处理,并输出缩放后的结果。

python

fromsklearn.preprocessingimportStandardScaler

importnumpyasnp

示例数据

data=np.array([[10,200],[20,400],[30,600]])

X1,X2=data[:,0],data[:,1]

标准化

scaler=StandardScaler()

scaled_data=scaler.fit_transform(data)

print(scaled_data)

答案解析:

-`StandardScaler`将数据转换为均值为0、标准差为1的分布。

-输出结果应为:`[[-1-1,[0.,0.],[11]`。

3.特征编码(10分)

假设你有一份包含`城市`列的数据集:`[北京,上海,广州,北京,上海]`。请编写Python代码,使用`OneHotEncoder`将`城市`列转换为独热编码形式。

python

fromsklearn.preprocessingimportOneHotEncoder

示例数据

data=[[北京],[上海],[广州],[北京],[上海]]

encoder=OneHotEncoder(sparse=False)

encoded_data=encoder.fit_transform(data)

print(encoded_data)

答案解析:

-`OneHotEncoder`将分类变量转换为二进制矩阵。

-输出结果应为:

[[1.0.0.],

[0.1.0.],

[0.0.1.],

[1.0.0.],

[0.1.0.]]

4.特征交互(10分)

给定以下数据集:

|X1|X2|

|-|-|

|1|2|

|2|3|

|3|4|

请编写Python代码,计算`X1`和`X2`的乘积特征(即`X1X2`),并添加到原始数据集中。

python

importpandas

文档评论(0)

1亿VIP精品文档

相关文档