机器学习之简单的分类

2016.12.07

 

终于接触传说中的机器学习了。

先看一幅图



 对于我们人来说,能够很快看出电影的类型,但是机器不一样,这个时候我们会用到机器学习。

这个时候就会用到欧拉距离公式。

下面用一段代码来实现。

下面这个是主函数的类:

package RobotStudy;


public class test {

	public static void main(String[] args) {

		movie[] movies = new movie[6];// 已有的模板数据
		movies[0] = new movie(3, 104, "love");
		movies[1] = new movie(2, 100, "love");
		movies[2] = new movie(1, 81, "love");
		movies[3] = new movie(101, 10, "action");
		movies[4] = new movie(99, 5, "action");
		movies[5] = new movie(98, 2, "action");

		movie new_movie = new movie(18, 90);// 待归类的新数据

		double[] distances = new double[6];// 计算欧式距离:新数据和每个模板数据的距离
		for (int i = 0; i < 6; i++) {
			distances[i] = Math.sqrt(Math.pow((new_movie.Action_Count - movies[i].Action_Count),2)
							+ Math.pow(
									(new_movie.Kiss_Count - movies[i].Kiss_Count),
									2));
			System.out.println(new_movie.Action_Count);
			System.out.println(new_movie.Kiss_Count);
			System.out.println("新电影 与 第" + i + "部电影 的距离为:" + distances[i]);
		}

		double min_distance = distances[0];// 找到最小距离
		int min = 0;// 最小距离对应的模板序号
		for (int i = 1; i < 6; i++) {
			if(min_distance > distances[i]){ 
				min_distance = distances[i];
				min = i;
			}
		}
		
		System.out.println("新电影的类型是:" + movies[min].type);
	}
}


 再定义一个类用来保存属性:

package RobotStudy;

public class movie {

	public int Action_Count;
	public int Kiss_Count;
	
	public String type;

	public movie(int action_Count, int kiss_Count, String type) {
		super();
		this.Action_Count = action_Count;
        this.Kiss_Count = kiss_Count;
		this.type = type;
	}

	public movie(int action_Count, int kiss_Count) {
		super();
		this.Action_Count = action_Count;
		this.Kiss_Count = kiss_Count;
	}
	
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值