当前位置: 首页 > 科技观察

使用Madlib学习《机器学习》的KNN

时间:2023-03-13 04:00:51 科技观察

前言机器学习(ML)分为:监督学习、无监督学习、半监督学习等。1.1监督学习(supervisedlearning)监督学习是一种常见的技术训练神经网络和决策树。它高度依赖于预定分类系统给出的信息。对于神经网络,分类系统利用信息判断网络错误,然后不断调整网络参数。.借助决策树,分类系统使用它来确定哪些属性提供的信息最多。从给定的训练数据集中学习一个函数,当新数据到来时,可以根据这个函数预测结果。监督学习的训练集要求包括输入和输出,也可以说是特征和目标。训练集中的目标由人类标记。常见的监督学习算法:回归分析和统计分类,最典型的算法是KNN和SVM。最常见的监督学习是:regression&classification回归:Y是实向量,回归问题就是拟合一条(x,y)的曲线,使得值函数(costfunction)L最小。分类:Y是一个有限数(finitenumber),可以看做是一个类别标签。分类问题首先要给数据一个标签来训练分类器,所以属于监督学习过程。在分类过程中,代价函数l(X,Y)是X属于Y类的概率的负对数。其中fi(X)=P(Y=i/X)。一个有监督的学习方法必须有一个训练集和一个测试样本,在训练集中找到一个规则,并将这个规则用于测试样本。监督学习的方法是识别事物,识别的结果是给待识别的数据加上标签,因此训练样本集必须由带标签的样本组成。1.2名词KNNk-NearestNeighbors在给定的数据点上寻找k个最近的数据点,在分类的情况下输出输出类的多数投票值,在回归的情况下输出目标值的均值。撸起袖子2.1心心相映软件基于最新的postgresql10.0加上最新的madlib1.12。为了操作方便,我使用基于docker的ubuntu16.04安装madlib,方便以后随处hold住这个镜像。以下操作均在MAC中执行。2.2查看madlib版本#selectmadlib.version();2.3导入训练数据DROPTABLEIFEXISTSknn_train_data;CREATETABLEknn_train_data(idinteger,datainteger[],labelfloat);INSERTINTOknn_train_dataVALUES(1,'{1,1}',1.0),(2,'{2,2}',1.0),(3,'{3,3}',1.0),(4,'{4,4}',1.0),(5,'{4,5}',1.0),(6,'{20,50}',0.0),(7,'{10,31}',0.0),(8,'{81,13}',0.0),(9,'{1,111}',0.0);SELECT*fromknn_train_dataORDERBYid;2.4导入测试数据DROPTABLEIFEXISTSknn_test_data;CREATETABLEknn_test_data(idinteger,datainteger[]);INSERTINTOknn_test_dataVALUES(1,'{2,1}'),(2,'{2,6}'),(3,'{15,40}'),(4,'{12,1}'),(5,'{2,90}'),(6,'{50,45}');SELECT*fromknn_test_dataORDERBYid;2.5分类训练SELECT*FROMmadlib.knn('knn_train_data',--训练数据表名'data',--训练数据列'label',--训练标签'knn_test_data',--测试数据表名'data',--测试数据列'id',--测试数据列名id'madlib_knn_result_classification',--结果输出'c',--分类3--最近邻编号);2.6查看分类输出结果SELECT*frommadlib_knn_result_classificationORDERBYid;图例:2.7回归DROPTABLEIFEXISTSmadlib_knn_result_regression;SELECT*FROMmadlib.knn('knn_train_data',--training训练数据表名'data',--训练数据列'label',--训练标签'knn_test_data',--测试数据表名'data',--测试数据列'id',--测试数据列名id'madlib_knn_result_regression',--结果输出'r',--回归3--最近邻数);2.8查看回归输出结果SELECT*frommadlib_knn_result_regressionORDERBYid;图例:总结postgresql提供了对结构化数据的存储和处理的便利性,madlib提供了ML算法的支持,强强联手,相得益彰【作者简介】孙辉,DataHunter技术总监。曾就职于索尼等知名企业,历任系统架构师和技术总监。先后负责尚游、索爱中文输入法、快牙、mPush(魔推)等知名产品的研发工作。15年IT技术行业深厚经验,熟悉把控产品开发的各个环节,拥有丰富的后端、前端、运维、DBA、测试经验。【原创稿件,合作网站转载请注明原作者和出处为.com】