【问题标题】:Put a fixed quantity of missing values in a dataset - Azure ML在数据集中放置固定数量的缺失值 - Azure ML
【发布时间】:2017-07-03 05:17:48
【问题描述】:

我正在处理 Azure ML,我的目标是看看如果我的数据集中有固定数量(百分比)的缺失值会发生什么。 我的想法可能是: 从数据集(以成人数据集为例)开始,复制原始数据集并将其称为约定 X。数据集 X 将包含 20% 的百分比中的随机缺失值。一旦我们有了原始数据集和复制数据集 X,我们就可以使用神经网络算法,创建训练和测试集,然后使用输入数据集 X 训练这个神经网络。有趣的是产生的全局错误。之后我们可以想象扩大数据集X中缺失值的范围。从20%开始,40%之后等等……我认为最难的部分是复制原始数据集,因此创建带有这个缺失值的数据集X价值观。

我可以通过什么方式做到这一点?在 Azure ML 或 R/Python 脚本中使用模块?

【问题讨论】:

  • 这并不难。只需为集合的 20% 的值的数量创建一个介于 1 和数据框长度之间的随机数列表,并将其保存到变量中。然后将它们用作您的行标识符,用逻辑for (ro in 1:nrow(df)){ if (ro%in% random_list){df$datafield[ro]<-NA}} 替换 for 循环中的 in
  • 顺便说一句。但是您需要做的是学习用某种语言编写脚本并使用逻辑将这些值替换为随机生成的行 ID...
  • @bethanyP 感谢您的回答。如果我有不同的列类型,它也有效吗?我不懂 R 语言,而且这个概念也不是很清楚......对不起!
  • 它适用于任何类型的数据。您没有生成数据,NA 将适用于所有类型的列。您所生成的只是一个字段的索引。如果您自己无法进行编程,您也许可以找人为您完成该部分,无论是朋友还是雇人,但这是完全可行的!

标签: python r azure machine-learning dataset


【解决方案1】:

只是分享我的想法,请看下面的示例代码和cmets。

import numpy as np
import pandas as pd

# Origin DataFrame
df = pd.DataFrame(np.random.randn(6,4))

# Copy data via flatten data matrix as an array
array = df.values.flatten()

# insert missing data by percent
# Define the percent of missing data
percent = 0.2
size = len(array)
# generate a random list for indexing data which will be assigned NaN
chosen = np.random.choice(size, int(size*percent))
array[chosen] = np.nan

# Create a new DataFrame with missing data
df2 = pd.DataFrame(np.reshape(array, (6,4)))

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2020-01-06
    相关资源
    最近更新 更多