一,机器学习介绍

    机器学习算法主要分为监督学习算法,无监督学习算法。其中监督学习算法需要的数据包括样本,如训练样本,和每组数据的标签,即所属的类别;而无监督学习只有样本数据,我们需要构建出样本与样本之间的差异。常见的分类算法,回归算法属于监督学习算法,如K-近邻,决策树,logistic回归,朴素贝叶斯,SVM等;聚类算法属于无监督学习算法,如K-均值等。对于监督学习,机器学习算法需要解决的问题是求解出样本特征与期望输出之间的映射关系。

    机器学习算法的一般流程为:收集数据->准备数据->分析数据->训练算法->测试算法->使用算法。

二,

举例:根据表中提供的信息,求最后一部电影的电影类型?下图是每部电影的打斗镜头数、接吻镜头数以及电影评估类型

k-近邻算法的简单Java版本_数据

本文结合k-近邻分类算法的一般步骤,利用python代码实现。

k-近邻分类算法的一般步骤:

(1)导入数据

 from numpy import * 
 import operator 
 
 def createDataSet(): 
 	group = array([[3,104],[2,100],[1,81],[101,10],[99,5],[98,2]]) 
 	label = [love,love,love,action,action,action] 
 	return group, label
(2)分类器的实现

 def classify(x, dataSet, label, k): 
 
 	dataSetSize = dataSet.shape[0]  
  	x = [1,3] 
  	print(tile(x,(3,1))) 
  	result [[1,3],[1,3],[1,3]] 
 	diffMat = tile(x, (dataSetSize, 1)) - dataSet 
 	sqDiffMat = diffMat ** 2  
 	sqDistance = sqDiffMat.sum(axis=1) 
 	distances = sqDistance ** 0.5 
 
  
 	sortedDistIndicies = distances.argsort() 
 	classCount = {} 
 	for i in range(k): 
 		voteIlabel = label[sortedDistIndicies[i]] 
 		classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 
  
  
 	sortedClassCount = sorted(classCount.iteritems(), 
 	key = operator.itemgetter(1), 
 	reverse = True
 	return sortedClassCount[0][0]
(3)测试新数据

	group , labels = createDataSet() 
	x = [18, 90] 
	print(classify(x,group,labels,3)) 

(4)实验结果

  1 love