什么是监督学习?监督学习是机器学习的一个子集,其中机器学习模型的输入数据被标记并在其上进行练习。因此,监督模型可以最好地预测模型的输出。监督学习背后的概念也可以在现实生活中找到,比如老师辅导孩子。假设老师要教孩子们认识猫和狗的形象。她/他将通过不断向孩子展示猫或狗的图像来指导孩子,同时告诉孩子图像是狗还是猫。显示和通知图像的过程可以被认为是标记数据,并且在机器学习模型训练期间,它被告知哪些数据属于哪个类别。监督学习有什么用?监督学习可用于回归和分类问题。分类模型允许算法确定给定数据属于哪个组。示例可能包括True/False、Dog/Cat等。由于回归模型根据历史数据预测未来值,因此用于预测员工薪水或房地产销售价格。在本文中,我们将列出监督学习中使用的一些常用算法,以及这些算法的实用教程。线性回归线性回归是一种监督学习算法,可预测给定输入值的输出值。当目标(输出)变量返回连续值时使用线性回归。有两种主要类型的线性算法,简单线性回归和多元线性回归。简单线性回归仅使用一个独立(输入)变量。一个例子是根据身高预测孩子的年龄。另一方面,多元线性回归可以使用多个自变量来预测其最终结果。一个示例是根据其位置、大小、需求等预测给定属性的价格。以下是Python的线性回归公式示例,我们将使用线性回归来预测y相对于给定值的值X。我们给定的数据集仅包含两列:x和y。请注意,y结果将返回连续值。这是给定数据集的屏幕截图:使用Python1的线性回归模型示例。.读取和采样我们的数据集为了简化数据集,我们采样了50行数据并将数据值四舍五入到2位有效数字。请注意,您应该在完成此步骤之前导入给定的数据集。df=pd.read_csv("../input/random-linear-regression/train.csv")df=df.sample(50)df=round(df,2)3.过滤Null和Infinite值如果数据集包含Null和无限值,可能会发生错误。因此,我们将使用clean_dataset函数来清理这些值的数据集。defclean_dataset(df):assertisinstance(df,pd.DataFrame),"dfneedstobeapd.DataFrame"df.dropna(inplace=True)indices_to_keep=~df.isin([np.nan,np.inf,-np.inf]).any(1)returndf[indices_to_keep].astype(np.float64)df=clean_dataset(df)4.选择我们的依赖值和独立值注意我们将数据转换为DataFrame格式。DataFrame数据类型是一种二维结构,可将我们的数据对齐到行和列中。5.拆分数据集我们将数据集分为训练和测试部分。测试数据集大小选择为总数据集的20%。请注意,通过设置random_state=1,每次运行模型时都会发生相同的数据拆分,从而产生完全相同的训练和测试数据集。这在您想要进一步调整模型的情况下很有用。x_train,x_test,y_train,y_test=train_test_split(X,Y,test_size=0.2,random_state=1)6.建立线性回归模型使用导入的线性回归模型,我们可以在模型中自由使用线性回归算法,绕过给定模型获得的x和y训练变量。lm=linear_model.LinearRegression()lm.fit(x_train,y_train)7。以类似散点的方式绘制我们的数据df.plot(kind="scatter",x="x",y="y")8。Plot我们的线性回归线plt.plot(X,lm.predict(X),color="red")蓝点代表数据点,而红线是模型绘制的最合适的线性回归线。线性模型算法总是试图画出最佳拟合线以尽可能准确地预测结果。逻辑回归与线性回归的相似之处在于逻辑回归基于输入变量预测输出值,两种算法的主要区别在于逻辑回归算法的输出是分类(离散)变量。对于Python示例,逻辑回归将用于将“花”分类为两个不同的类别/物种。不同花朵的多个特征将包含在给定的数据集中。该模型的目的是将给定的花识别为Iris-setosa、Iris-versicolor或Iris-virginica。这是给定数据集的屏幕截图:使用Python的逻辑回归模型示例1.导入必要的库importnumpyasnpimportpandasaspdfromsklearn.model_selectionimporttrain_test_splitimportwarningswarnings.filterwarnings('ignore')2.导入数据集data=pd.read_csv('../input/iris-dataset-logistic-regression/iris.csv')3.选择我们的依赖值和独立值对于独立值(x)将包括除类型列之外的所有可用列。至于我们的可靠值(y),只会包含类型列。X=数据[['x0','x1','x2','x3','x4']]y=数据[['type']]4。SplitDataset将数据集分成两部分,80%用于训练数据集,20%用于测试数据集。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=1)5.运行逻辑回归模型从linear_model库中导入整个逻辑回归算法。然后我们可以将X和y训练数据拟合到逻辑模型中。fromsklearn.linear_modelimportLogisticRegressionmodel=LogisticRegression(random_state=0)model.fit(X_train,y_train)6.评估我们模型的性能print(lm.score(x_test,y_test))返回值为0.9845128775509371,这表明我们的模型高性能。请注意,随着测试分数的增加,模型的性能也会提高。7.绘制图表importmatplotlib.pyplotasplt%matplotlibinlineplt.plot(range(len(X_test)),pred,'o',c='r')输出图:逻辑图中,红点代表给定的数据点。这些斑点明确分为3类,Virginica、versicolor和setosa种。使用这种技术,逻辑回归模型可以根据花朵在图表上的位置轻松地对花朵类型进行分类。支持向量机支持向量机(SVM)算法是另一种著名的监督机器学习模型,由VladimirVapnik创建,能够解决分类和回归问题。其实更多的是用来解决分类问题。SVM算法能够将给定的数据点分成不同的组。算法绘制数据后,可以绘制最合适的线,将数据划分为多个类别,从而分析数据之间的关系。如下图所示,绘制的线条将数据集完美地划分为两个不同的组,蓝色和绿色。SVM模型可以根据图形的维度绘制直线或超平面。行只能用于二维数据集,即只有2列的数据集。如果使用多个特征来预测数据集,则需要更高的维度。在数据集超过二维的情况下,SVM模型将绘制超平面。在SVMPython示例中,将对3种不同的花类型进行物种分类。我们的自变量包括花的所有特征,而因变量是花所属的物种。花卉品种包括Iris-setosa、Iris-versicolor和Iris-virginica。这是数据集的屏幕截图:使用Python的SVM模型示例1.导入必要的库importnumpyasnpimportpandasaspdfromsklearn.model_selectionimporttrain_test_splitfromsklearn.datasetsimportload_iris2.要读取给定的数据集,请注意在执行此步骤之前应导入数据集。data=pd.read_csv('../input/iris-flower-dataset/IRIS.csv')3.将数据列拆分为因变量和自变量X值作为自变量,其中包含除物种列外的所有列。因变量y仅包含模型预测的物种列。X=data.drop('species',axis=1)y=data['species']4.Splitthedatasetintotrainingandtestdatasets将数据集分成两部分,我们将80%的数据分成训练数据集20%进入测试数据集。X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=1)5.导入SVM并运行模型导入支持向量机算法。然后,使用在上述步骤中收到的X和y训练数据集运行它。fromsklearn.svmimportSVCmodel=SVC()model.fit(X_train,y_train)6.测试模型的性能model.score(X_test,y_test)为了评估模型的性能,将使用评分函数。将第4步中创建的X和y测试值输入score方法。返回值为0.9666666666667,表明模型的性能很高。请注意,随着测试分数的增加,模型的性能也会提高。其他流行的监督机器学习算法虽然线性、逻辑和SVM算法非常可靠,但还有一些监督机器学习算法值得一提。1.决策树决策树算法是一种有监督的机器学习模型,它利用树结构进行决策。决策树通常用于分类问题,其中模型可以决定数据集中给定项目属于哪个组。请注意,使用的树格式是倒置树的格式。2.随机森林被认为是一种更复杂的算法,随机森林算法通过构建大量的决策树来实现其最终目标。意思是同时构建多个决策树,每个决策树返回自己的结果,然后将它们组合起来得到更好的结果。对于分类问题,随机森林模型将生成多个决策树,并根据大多数树预测的分类组对给定对象进行分类。该模型可以修复单棵树导致的过拟合问题。同时,随机森林算法也可以用于回归,尽管它可能会导致不好的结果。3.k最近邻k最近邻(KNN)算法是一种监督机器学习方法,它将所有给定数据分组到单独的组中。这种分组是基于不同个体之间的共同特征。KNN算法可用于分类和回归问题。KNN的一个经典示例是将动物的图像分类为不同的组。总结本文介绍了监督机器学习及其可以解决的两类问题,解释了分类和回归问题,并给出了每种输出数据类型的一些示例。详细解释了什么是线性回归及其工作原理,并提供了一个用Python从独立的X变量预测Y值的具体示例。然后介绍了逻辑回归模型,并给出了一个分类模型的例子,该分类模型将给定的图像分类为特定的花种。对于支持向量机算法,它可以用来预测给定的花种对于3种不同的花种。其他著名的监督机器学习算法,如决策树、随机森林和K最近邻列在最后。无论您是为了学习、工作还是娱乐而阅读本文,我们认为理解这些算法都是在机器学习领域入门的良好开端。如果您有兴趣并想了解更多关于机器学习领域的知识,我们建议您深入研究此类算法的工作原理以及如何调整此类模型以进一步提高其性能。译者介绍崔昊,51CTO社区编辑,高级架构师,18年软件开发和架构经验,10年分布式架构经验。他曾经是惠普的技术专家。乐于分享,撰写了多篇阅读量超过60万的热门技术文章。《分布式架构原理与实践》作者。原标题:PrimarySupervisedLearningAlgorithmsUsedinMachineLearning,作者:KevinVu
