机器学习是一个令人兴奋的领域,近年来受到了广泛关注。对机器学习算法进行分类的最常见方法之一是基于标记数据的可用性。如果数据具有指示正确输出的标签,则称该算法是受监督的。如果数据没有任何标签,则称该算法是无监督的。
监督学习
监督学习是一种机器学习,涉及在标记数据上训练模型。该模型学习为新的、看不见的输入预测正确的输出。监督学习通常用于分类和回归任务。
让我们举个例子来更好地理解监督学习。假设我们有一个数据集,其中包含有关不同汽车的信息,例如它们的品牌、型号、制造年份和价格。目标是训练一个模型,该模型可以根据汽车的品牌、型号和制造年份预测汽车的价格。
我们可以使用线性回归模型来解决这个问题。线性回归模型将制造商、型号和制造年份作为输入特征,并预测汽车价格作为输出。该模型在标记的数据集上进行训练,其中为每辆汽车提供了正确的价格。
下面是 Python 中的示例代码片段,用于在汽车数据集上训练线性回归模型:
在代码的前几行中,我们导入了任务所需的库。pandas被导入以读取和操作表格形式的数据,而sklearn被导入以实现线性回归算法。
然后,我们pandas使用该read_csv函数将数据集加载到数据框中。该数据集包含有关不同汽车的信息,例如它们的品牌、型号、制造年份和价格。
接下来,我们将数据集拆分为输入特征(也称为自变量或预测变量)和输出特征(也称为因变量或目标)。在这种情况下,输入特征是汽车的品牌、型号和年份,而输出特征是汽车的价格。
输入特征存储在一个名为 的变量中X,该变量是一个包含三列(“品牌”、“型号”和“年份”)的熊猫数据框。输出特征存储在一个名为 的变量中y,它是一个带有汽车价格的 pandas 系列。
LinearRegression()最后,我们使用函数 from对标记数据训练线性回归模型sklearn。该fit()函数用于在输入特征X和输出特征上训练模型y。
生成的model对象是一个线性回归模型,可用于在给定品牌、型号和制造年份的情况下预测汽车的价格。
总之,上面的代码片段演示了如何使用线性回归训练监督机器学习模型。输入特征和输出特征被拆分成单独的变量,该fit()函数用于在标记数据上训练模型。一旦模型经过训练,它就可以用于预测新的、看不见的输入的输出。
汽车数据集线性回归模型的完整代码
无监督学习
无监督学习是一种机器学习,涉及在未标记数据上训练模型。该模型学会在没有任何指导或监督的情况下查找数据中的模式和关系。无监督学习通常用于聚类和降维任务。
让我们举个例子来更好地理解无监督学习。假设我们有一个数据集,其中包含有关商场顾客的信息,包括他们的年龄、性别、年收入和支出分数。目标是根据相似客户的属性将他们分组在一起。
我们可以使用聚类算法,例如 k-means,来解决这个问题。k-means 算法将客户属性作为输入,并根据它们的相似性将它们分成 k 个簇。该算法在提供客户属性的未标记数据集上进行训练,但没有标签指示每个客户属于哪个集群。
下面是 Python 中的示例代码片段,它使用 k-means 算法对客户数据集进行聚类:
客户数据集的 K-Means 聚类算法
首先,我们导入此任务所需的库。我们导入pandas以读取和操作数据,sklearn执行 K 均值聚类,并matplotlib可视化生成的聚类。
pandas然后,我们使用该函数将客户数据集加载到数据框中read_csv。该数据集包含有关商场顾客的信息,包括他们的年龄、性别、年收入和支出分数。
接下来,我们使用该函数从数据集中删除“CustomerID”列drop(),因为它与聚类任务无关。其余列(“年龄”、“性别”、“年收入”和“支出分数”)存储在名为 的变量中X。
之后,我们使用公式(x-均值)/标准差对输入特征进行归一化。归一化很重要,因为它确保所有特征都在同一尺度上,这可以提高聚类算法的性能。
KMeans()然后,我们使用来自的函数在归一化数据上训练 K 均值聚类模型sklearn。该n_clusters参数设置为 5,这意味着该算法将尝试在数据中查找 5 个聚类。该fit()函数用于在输入特征上训练模型X。
最后,我们使用散点图可视化生成的集群。scatter()from 函数用于matplotlib创建归一化数据的“年龄”和“年收入”列的散点图,每个点的颜色表示它所属的集群。生成的图显示了如何根据年龄和年收入将商场中的顾客分组到不同的集群中。
总之,上面的代码片段演示了如何使用 K 均值聚类执行无监督学习。输入特征首先被归一化,然后在数据上训练 K 均值聚类模型。最后,使用散点图可视化生成的簇。K-means 算法是识别数据中的模式和结构的强大工具,可用于多种应用,例如客户细分、图像分割和异常检测。
结论
总而言之,监督学习和无监督学习是两种不同类型的机器学习,用于解决不同类型的问题。当数据具有指示正确输出的标签时使用监督学习,而当数据没有任何标签时使用无监督学习。两种类型的学习都有其优点和缺点,并且在不同的情况下都有用。
在本文中,我们查看了监督学习和非监督学习的示例,并提供了 Python 代码片段来演示如何在实践中使用这些算法。随着机器学习的快速发展,这些技术在医疗、金融和营销等各个领域变得越来越重要。