我们应该采取什么步骤来分析数据集?

时间:2019-08-14 14:32:16

标签: machine-learning deep-learning data-science

我是数据科学领域的新手,我想知道获取用于机器学习任务的任何数据集属性的关键步骤。

2 个答案:

答案 0 :(得分:2)

您的要求非常笼统,您的要求没有明确定义,但是,我将尝试为您做一个简短的介绍,以帮助您入门。 所需的知识(如我所见):

  • 统计和概率
  • 数学基础知识
  • 有关AI技术和算法的基本知识

第一步是每项研究都是为了定义问题,您打算做什么?

例如:

  

“我想预测下一位购买此车的人是男性还是女性”

这种问题是分类问题,这意味着该解决方案会将“输入”人员正确地标记为男性还是女性。 这称为模型,模型是现实世界及其属性的表示,并使用我们希望使用的ML工具进行创建。

例如,我们通过查看历史数据来做到这一点,比如说,在1000位男性顾客和1000位女性中,有850位男性购买了X车,其余的购买了Y汽车,而760位女性购买了Y车,其余的购买了X。

现在,如果我告诉你下一位顾客购买的汽车X,你能告诉我它的性别吗?

您可能以为它是雄性,但是它仍然有可能成为雌性,但是实际上它是雄性的可能性更大,因为我们已经知道雄性和雌性的选择方式。 在给定数据集(例如您的数据集)的情况下,基本上就是它的工作原理,您需要使用它来预测其中的某些内容。

  

注意:相反,如果您的数据集适合这个条件,或者从中获得的信息量又是另一个故事。

现在,您可以从中学习的每条数据都称为一条记录:

  

名字:'LEROY',姓氏:'JENKINS',年龄:'25',性别:'male'car_bought:'x'

,每个属性称为功能。 有些功能可能对您无用,在我们的示例中,只有性别很重要,其余功能无用,根据无用功能学习可能会导致您的模型学习无效数据。 另外,某些记录可能包含无效数据,例如NULL和丢失数据,首先要做的是预处理您的数据并准备好进行学习。

一旦您的数据准备就绪,就可以开始训练,为此,您将必须选择最适合自己的算法,我将不讨论这些算法,因为有很多方法,您还必须获得更多关于这些的知识,但是有许多关于这些的库,您应该将其谷歌搜索。

我将为您提供一个简单的神经网络用法的简短代码示例,以帮助您开始预测简单数学函数的结果: F(x)= 2 * x

# prepare the dataset
X = np.arange(0.0, 1000.0, 1.0)
Y = np.empty(shape=0, dtype=float)
for x in X:
    Y = np.append(Y, float(2*x)))
return X, Y

和使用keras的简单神经网络:

model = Sequential()
model.add(Dense(5, input_shape=(1,)))
model.add(Dense(1, activation='linear'))

# compile model
model.compile(loss='mean_absolute_error', optimizer='adam', metrics=['accuracy'])

# train model
m = model.fit(self.x_train, self.y_train, epochs=500, batch_size=1)

使用输出模型进行预测:

for i in np.arange(2000.0, 2010.0, 1.0):
    df = pandas.DataFrame()
    df['X'] = [i]
    print('f(',i,') = ',model.predict(df)[0][0])

将输出:

f(2000.0) = 4000.0
f(2001.0) = 4002.0
f(2002.0) = 4004.0
.
.

即使模型之前从未看到过这些数字,现在也可以通过从数据集中学习模式来预测输出。 我不希望您了解 keras 的工作原理或工作原理,只是让您感觉到使用ML算法的感觉。

我希望能回答您的问题,并且可以帮助您入门。

答案 1 :(得分:1)

您的问题过于笼统,您需要指定更多。数据集的属性是什么意思? 不过,我会尽力回答您对问题的理解。

选择了哪种类型的问题(分类或回归)后,您将想要尝试并使数据可视化以更好地了解您的工作。

Facets是执行此https://pair-code.github.io/facets/的出色工具。它将帮助您更好地理解数据的分布方式,并可能使您对如何解决问题有更多的了解,但是如何使用它取决于您遇到的问题。

您还应该可视化相关矩阵,以查看是否具有高度相关的要素,从而可以删除不必要的要素。

我记得当我开始从事我的第一个机器学习项目时,情况不胜枚举,但是我能给您的最好的建议是尝试找到逐步指南,以解决您面临的类似问题。我敢肯定,会发现很多问题,并尝试澄清更多问题,我们可以为您提供更多见识