还剩3页未读,继续阅读
文本内容:
《用Python实现数据分类的核心代码程序》.Python实现数据分类的核心代码程序,有离散和连续数据两种##离散数据分类离散数据分类实际上是对离散数据的分类在Python中,最常用的方法是基于KNN算法的分类KNN是一种常用的机器学习分类方法,能用于判断处理一个数据实体可能属于哪一个类别首先,我们需要建立一个K值,之后利用K值来对样本进行类别划分,具体过程如下.收集训练数据神经网络的输出取决于训练数据,因此首先要收集训练数据.构建KNN算法模型建立模型的第一步是建立一个K值,该K值代表模型中的距离的参数,它的值越大,对模型的拟合程度越大;反之,K值越小,模型的拟合程度越低.测试数据样本使用训练获得的KNN模型,在测试数据中查找K个最邻近的样本,接着,从这K个样本中找出现频率最多的类别,然后把测试样本分类到这个类别中下面是Python实现KNN算法分类离散数据的核心代码pythonimportnumpyasnpclassKNNobject:def—init—selfK:self.dataSet=Noneself.dataSetName=Noneself.K=K#求欧式距离defcalDistanceselfdata_ldata_2:dis=0foriinrangelendata_l:dis+=data_l[i]-data_2[i]**2returnnp.sqrtdis#计算K个最近邻的类别defKNNClassifyselftestData:获取测试样本中的每个特征testDatatemp=np.arraytestData.T获取训练数据中的每个特征TrainDatatemp=self.dataSet.T[:l]计算测试样本与训练数据的欧氏距离dis=np.array[]fordatainTrainData_temp:dis=np.appenddisnp.array[self.calDistancedatatestData_temp]对计算出来的距离进行排序dis_sort=dis.argsort统计K个类别出现的次数count={}foriinrangeself.K:tempClass=self.dataSetName[dis_sort[i]]count[tempClass]=count.gettempClass0+1获取类别出现的次数最多的类别reault=sortedcount.iteritemsOlambdaxy:cmpx[l]y
[1]reverse=Truereturnreault
[0]
[0]构建实例KNN_Classify=KNNK=3收集数据KNN_Classify.dataSet=np.array[[1212A]⑵232A][0212B][1233KNN_Classify.dataSetNcime=np.arrayfA*ABB]#预测测试样本KNN_Classify.KNNClassify
[1231]#返回B#连续数据分类连续数据分类实际上是对连续数据使用概率进行分类操作连续数据分类常用的方法是基于贝叶斯算法的分类贝叶斯分类算法基于贝叶斯定理,它可以计算类别概率、样本属于某个类别的概率在Python中,实现贝叶斯分类代码可以如下pythonimportnumpyasnp计算先验概率defCalPriorProbdataSet:numEntries=lendataSetlabelsCounts={}foriinrangenumEntries:curLabel=dataSet[i-1]ifcurLabelnotinlabelsCounts.keys:labelsCounts[curLabel]=0labelsCounts[curLabel]+=1#计算每一类标签出现的概率priorProb={}forlabelinlabelsCounts.keys:priorProbtlabel]=labelsCounts[label]*
1.0/nuniEntriesreturnpriorProb#根据特征属性计算后验概率defCalPosteriorProbdataSetfeatureindexfeatureValue:PosteriorProb={}获得取值为featureValue的数据的总的条数totalNum=
0.0totalLabelNum={}获取样本数据中,每一行特征值跟featureValue相等的数据集tempDataSet=dataSet[np.nonzerodataSet[:featureindex]==featureValue
[0]:]foriinrangelentempDataSet:curLabel=tempDataSet[i-1]ifcurLabelnotintotalLabelNum.keys:totalLabelNum[curLabel]二0totalNum+二totalLabelNum[curLabel]计算每一类标签在特征值跟featureValue相等的情况下出现的概率forlabelintotalLabelNum.keys:PosteriorProb[label]=totalLabelNum[label]*
1.0/totalNumreturnPosteriorProb#贝叶斯算法分类器defBayesClassifydataSetdata:numFeatures=np.shapedataSet
[1]-1P=CalPriorProbdataSetforiinrangenumFeatures:featureValue=data[i]P=CalPosteriorProbdataSetifeatureValuebestLabel_=sortedP.iteriternslambdaxy:cmpx[l]y
[1]reverse=True
[0]returnbestLabelif_name_==_main_/:dataSet=np.array[[1l/A^[22/A1[12A][21B]]data=np.array
[11]print最后结果BayesClassifydataSetdata、、、以上就是Python实现数据分类的核心代码程序,上述代码分别实现了离散数据分类和连续数据分类,代码简单但功能强大,可以应用到各种数据分类场景中,方便用户快速完成数据分类任务。
个人认证
优秀文档
获得点赞 0