Evan 2018-08-19
机器学习是一组算法,用于对我们周围的世界进行数据驱动的预测。机器学习最常见的应用之一是将电子邮件分类为垃圾邮件或无垃圾邮件。
想象一下,你走在街上,看到一只宠物。乍一看,你无法说它是狗还是猫。你看到小宠物并想:它有柔软的头发吗?是。耳朵是耷拉的吗?没有。很难预测小东西是猫还是狗。突然,宠物开始爬上墙,你意识到它是一只猫,因为这是猫可以做的。
考虑到这个框架,每当你看到一只宠物在你的骑行中时,你会提出这四个问题:它是否有柔软的头发?耳朵耷拉了吗?它爬墙吗?您还要注意结果:是猫还是狗。
您最终得到关于狗和猫的数据集:
#它有柔软的头发吗?落下的耳朵?它爬墙吗?
dog1 = [1, 0, 1]
dog2 = [1, 1, 0]
dog3 = [0, 0, 0]
cat1 = [1, 0, 1]
cat2 = [0, 0, 1]
cat3 = [0, 1, 1]
marks = [1, 1, 1, 0, 0, 0]
标记数组指示哪个宠物是狗或猫。因此,根据我们的观察,前三种宠物是狗(标记为1),后三种是猫(标记为0)。
现在您已经有了我们需要的所有东西,您可以从scikit-learn python库中调用这个模块并实例化这个模型:
from sklearn.naive_bayes import MultinomialNB
model = MultinomialNB()
下一步,让我们使用数据集训练模型:
data = [dog1, dog2, dog3, cat1, cat2, cat3]
model.fit(data, marks)
一旦你训练了模型,你就可以开始做出预测了!
再一次,你看到另一个神秘的宠物。现在它有柔软的头发,耷拉的耳朵,可以攀爬墙壁,但即使你认为你无法区分狗或猫。当你训练我们的机器学习模型时,你可以问它是狗还是猫。
mysterious = [1, 1, 1]
要进行预测,只需输入:
modelo.predict([mysterious])
该算法返回0,表明它已将神秘的宠物排列为猫。分类可能是正确的,因为尽管很少有狗可以爬墙,但每只猫都可以爬墙。宠物很可能是一只猫。