您的要求非常笼统,并且您的要求没有明确定义,但是,我会尝试给您一个简短的介绍以帮助您入门。
所需知识(我认为):
- 统计和概率
- 数学基础知识
- AI 技术和算法的基本知识
每一项研究的第一步都是定义问题,你想做什么?
例如:
“我想预测下一个买这辆车的人是男是女”
这类问题是一个分类问题,这意味着,解决方案会将“输入”的人正确地标记为男性或女性。
这称为模型,模型是现实世界及其属性的表示,我们希望使用机器学习工具来创建它。
我们通过查看历史数据来做到这一点,例如,假设在 1000 名男性顾客和 1000 名女性顾客中,850 名男性购买了汽车 X,其余购买了汽车 Y,760 名女性购买了汽车 Y,其余购买了 X .
现在,如果我告诉你下一位顾客买了汽车 X,你能告诉我它的性别吗?
你可能认为它是男性,但它仍然有机会成为女性,然而,它实际上是男性的可能性更高,因为我们已经知道男性和女性的选择模式。
这基本上就是它的工作原理,给定一个数据集,比如你的数据集,你需要使用它来预测其中的一些东西。
注意:您的数据集是否适合这一点,或者您将从中获得多少信息是另一回事。
现在,您可以从中学习的每条数据都称为一条记录:
first_name:'LEROY',last_name:'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 算法是什么感觉。
我希望这回答了你的问题,它可以帮助你自己开始。