我是机器学习的新手。我的问题是制造一台机器来根据学生的位置和感兴趣的领域为学生选择一所大学。即它应该选择与学生地址相同的城市的大学。我对算法的选择感到困惑,我可以使用感知器算法来完成这项任务吗?
6 回答
对于哪种机器学习算法最适合哪种任务,没有硬性规定。最好的办法是多试几次,看看哪一种效果最好。您可以使用Weka 工具包,它实现了许多不同的机器学习算法。是的,你可以使用感知器算法来解决你的问题——但这并不是说你会用它取得好的结果。
根据您的描述,听起来您要解决的问题实际上并不需要机器学习。如果您只想将学生与最近的大学配对,该大学提供学生感兴趣的领域的课程,您无需任何学习即可做到这一点。
我赞同第一句话,如果学生必须与大学住在同一地区,您可能不需要机器学习。如果您想使用 ML 算法,也许最好考虑一下您必须从哪些数据开始。想到的是大学的向量,每个特征都有特定的学科/领域。然后计算与一个向量的距离,该向量就像学生的理想特征向量。尽量减少这个距离。
您首先需要的是一个带标签的数据集。
听起来问题可以分解为 ML 问题,但是您首先需要一组正例和负例来进行训练。
你的数据集有多大?您有哪些可用的功能?回答这些问题后,您可以选择最适合您的数据特征的算法。
我建议对这个问题使用决策树,它类似于一组 if else 规则。您可以将学生的位置和感兴趣的区域作为 if 和 else if 语句的条件,然后为他推荐一所大学。由于它是输入到输出的直接映射,因此基于规则的解决方案将起作用,并且这里不需要学习。
好吧,这个问题没有直接而确定的答案。答案取决于许多因素,例如问题陈述和您想要的输出类型、数据的类型和大小、可用的计算时间、特征数量和数据中的观察值等等。
训练数据的大小
输出的准确性和/或可解释性
模型的准确性意味着该函数预测给定观察的响应值,该响应值接近该观察的真实响应值。高度可解释的算法(限制性模型,如线性回归)意味着人们可以轻松理解任何单个预测变量如何与响应相关联,而灵活的模型以低可解释性为代价提供更高的准确性。
- 速度或训练时间
更高的准确性通常意味着更长的训练时间。此外,算法需要更多时间来训练大型训练数据。在实际应用中,算法的选择主要由这两个因素驱动。
朴素贝叶斯、线性和逻辑回归等算法易于实现且运行迅速。像支持向量机这样涉及参数调整的算法、具有高收敛时间的神经网络和随机森林,需要大量时间来训练数据。
- 线性度
许多算法的工作假设是类可以被一条直线(或其更高维的模拟)分隔。示例包括逻辑回归和支持向量机。线性回归算法假设数据趋势遵循一条直线。如果数据是线性的,那么这些算法的性能相当不错。
- 特征数量
数据集可能具有大量特征,这些特征可能并非全部相关且重要。对于某种类型的数据,例如遗传学或文本数据,与数据点的数量相比,特征的数量可能非常大。
也许您可以使用“推荐系统”或聚类方法,您可以更深入地研究“协同过滤”(推荐系统)或 k-means(聚类)等技术,但同样,正如某些人所说,首先您需要数据从中学习,也许您的问题可以在没有 ML 的情况下解决。