Machine Learning 简明教程

Machine Learning - Missing Values Ratio

缺失值比率是一项机器学习功能选择技术,用于识别和去除数据集中缺失值比例过高的特征。此技术通过减少用于训练模型的特征数量并避免由于缺失值导致的偏差问题来提高模型的性能。

缺失值比率通过计算数据集中每个特征的缺失值百分比并去除缺失值百分比高于某个阈值的特征来起作用。这样做是因为缺失值百分比过高的特征可能对预测目标变量没有帮助,并且可能使模型产生偏差。

实施缺失值比率的步骤如下 −

  1. 计算数据集中每个特征的缺失值百分比。

  2. 为特征的缺失值百分比设置一个阈值。

  3. 去除缺失值百分比高于阈值的特征。

  4. 使用剩余的特征来训练机器学习模型。

Example

以下是如何在 Python 中实现缺失值比率的示例 −

# Importing the necessary libraries
import numpy as np

# Load the diabetes dataset
diabetes = np.genfromtxt(r'C:\Users\Leekha\Desktop\diabetes.csv', delimiter=',')

# Define the predictor variables (X) and the target variable (y)
X = diabetes[:, :-1]
y = diabetes[:, -1]

# Compute the percentage of missing values for each feature
missing_percentages = np.isnan(X).mean(axis=0)

# Set the threshold for the percentage of missing values for the features
threshold = 0.5

# Find the indices of the features with a missing value percentage
# above the threshold
high_missing_indices = [i for i, percentage in enumerate(missing_percentages) if percentage > threshold]

# Remove the high missing value features from the dataset
X_filtered = np.delete(X, high_missing_indices, axis=1)

# Print the shape of the filtered dataset
print('Shape of the filtered dataset:', X_filtered.shape)

以上代码对糖尿病数据集执行缺失值比率,并去除缺失值百分比高于阈值的特征。

Output

执行此代码时,将生成以下输出 −

Shape of the filtered dataset: (769, 8)

Advantages of Missing Value Ratio

使用缺失值比率的优点如下 −

  1. Saves computational resources − 特征越少,训练机器学习模型所需的计算资源就越少。

  2. Improves model performance − 通过去除缺失值百分比过高的特征,缺失值比率可以提高机器学习模型的性能。

  3. Simplifies the model − 特征越少,模型就越容易解释和理解。

  4. Reduces bias − 通过去除缺失值百分比过高的特征,缺失值比率可以减少模型中的偏差。

Disadvantages of Missing Value Ratio

使用缺失值比率的缺点如下 −

  1. Information loss − 缺失值比率可能导致信息丢失,因为它去除了可能包含重要信息的特征。

  2. Affects non-missing data − 如果某个特征的缺失值比例较高,则剔除它有时会对非缺失数据产生负面影响,特别是在这些特征对预测因变量很重要的情况下。

  3. Impact on the dependent variable − 如果某个特征的缺失值比例较高,则剔除它有时会对因变量产生负面影响,特别是在这些特征对预测因变量很重要的情况下。

  4. Selection bias − 如果剔除特征会影响因变量的预测,则缺失值比率可能会引入选择偏差。