第1关:引言-根深之树不怯风折,泉深之水不会涸竭
-
1、数据质量的多维度量不包含以下那个选项?
A、精确度
B、完整度
C、不一致性
D、可信度 - 答案:C
-
2、数据预处理的方法不包含以下那个选项?
A、数据清理
B、数据集成
C、数据变换
D、数据保留 - 答案:D
第2关:数据清理-查漏补缺
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,通过上图可视化的方式可以发现在最右边有一个离群点,请将数据中的离群点去除,并将清洗数据可视化展示。
具体绘图要求如下:
-
数据文件为 Task1/diabetes_null.csv;
-
figsize 设置为 (10,10);
-
图形保存到 Task1/img/T1.png。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def student():
train = pd.read_csv('Task1/diabetes_null.csv', na_values=['#NAME?'])
train['Insulin'] = train['Insulin'].fillna(100)
train['SkinThickness'] = train['SkinThickness'].fillna(train['SkinThickness'].median())
train['BloodPressure'] = train['BloodPressure'].fillna(train['BloodPressure'].median())
train['BMI'] = train['BMI'].fillna(train['BMI'].mean())
train['Glucose'] = train['Glucose'].fillna(train['Glucose'].mean())
#********* Begin *********#
train.sort_values(by='Age', ascending=False)[:1]
train = train.drop((train[train['Age'] >= 80]).index)
plt.figure(figsize=(10, 10))
plt.scatter(x=train['Age'], y=train['Pregnancies'])
plt.savefig("Task1/img/T1.png")
plt.show()
#********* End *********#
第3关:数据集成-海纳百川
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,读入数据 Task2/diabetes_null.csv 和 Task2/diabetes_zero.csv ,合并两个数据并输出 shape。
import numpy as np
import pandas as pd
def student():
#********* Begin *********#
train = pd.read_csv('Task2/diabetes_null.csv', na_values=['#NAME?'])
another_train = pd.read_csv('Task2/diabetes_zero.csv', na_values=['#NAME?'])
merge_data=pd.concat([train,another_train])
print(merge_data.shape)
#********* End *********#
第4关:数据变换-同源共流
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,计算并输出数据集 diabetes_null.csv 的 z-score 规范化和最小-最大规范化。( z-score 需设置参数 axis=0 ,以标准化每个特征)
import numpy as np
import pandas as pd
from sklearn.preprocessing import normalize,MinMaxScaler
def student():
train = pd.read_csv('Task3/diabetes_null.csv', na_values=['#NAME?'])
train['Insulin'] = train['Insulin'].fillna(100)
train['SkinThickness'] = train['SkinThickness'].fillna(train['SkinThickness'].median())
train['BloodPressure'] = train['BloodPressure'].fillna(train['BloodPressure'].median())
train['BMI'] = train['BMI'].fillna(train['BMI'].mean())
train['Glucose'] = train['Glucose'].fillna(train['Glucose'].mean())
#********* Begin *********#
data_normalized=normalize(train,axis=0)
print("z-score规范化:\n",data_normalized)
data_scaler=MinMaxScaler()
data_scaled=data_scaler.fit_transform(train)
print("\n最小-最大规范化:\n",data_scaled)
#********* End *********#