我是数据科学领域的新手,我想知道获取用于机器学习任务的任何数据集属性的关键步骤。
答案 0 :(得分:2)
您的要求非常笼统,您的要求没有明确定义,但是,我将尝试为您做一个简短的介绍,以帮助您入门。 所需的知识(如我所见):
第一步是每项研究都是为了定义问题,您打算做什么?
例如:
“我想预测下一位购买此车的人是男性还是女性”
这种问题是分类问题,这意味着该解决方案会将“输入”人员正确地标记为男性还是女性。 这称为模型,模型是现实世界及其属性的表示,并使用我们希望使用的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/的出色工具。它将帮助您更好地理解数据的分布方式,并可能使您对如何解决问题有更多的了解,但是如何使用它取决于您遇到的问题。
您还应该可视化相关矩阵,以查看是否具有高度相关的要素,从而可以删除不必要的要素。
我记得当我开始从事我的第一个机器学习项目时,情况不胜枚举,但是我能给您的最好的建议是尝试找到逐步指南,以解决您面临的类似问题。我敢肯定,会发现很多问题,并尝试澄清更多问题,我们可以为您提供更多见识