2511: Use Machine Learning to Find GF
题目描述
众所周知,朴素贝叶斯分类是机器学习中一种经典而有效的算法。 小Xu是一个对机器学习充满兴趣的ACMer,每天沉浸在各种算法中,乐此不疲。 然而有一天,他喜欢上了系里的某一个漂亮女学霸,然而他却不敢跟她表白,更不知道是否能够追到她。经过一番痛苦的纠结,与学长的敦敦教导之后,小Xu,决定通过男人的方法——机器学习中朴素贝叶斯分类的方法来预测一下自己能否追得上自己的心上人。。。。
小Xu将以(财富a,长相b,知识c)3个维度作为特征,学长们的经历作为训练数据,自身情况作为测试数据,来进行训练和分类和预测。其中 0<=a,b,c<=1,小Xu通过朴素贝叶斯算法将结果分为两类即0(没追到)或1(追到)。E表示训练数据的全集数量(即作为训练数据的学长经历数),0<E<=100。
根据朴素贝叶斯算法:
X = P(abc)P(0|abc) = P(a|0) P(b|0) P(c|0) P(0)
Y = P(abc)P(1|abc) = P(a|1) P(b|1) P(c|1) P(1)
其中P(x|0) 表示没有成功的人中具有x特征的概率。
P(x|1) 表示成功的人中具有x特征的概率。
P(0)表示训练数据中没有成功的概率,即没有成功的经历所占总数的比例。
P(1)表示训练数据中成功的概率,即成功的经历所占总数的比例。
首先用学长们的经历作为训练数据,算出各个情况的P(x|0)和 P(x|1),以及P(0)和P(1),紧接着输入测试数据(a,b,c),通过训练数据中已经得到的结果算出X,Y。
当X<=Y时,认为这是属于1,即成功这个类别的,输出”Come on guys,you can do it!”。
当X>Y时,认为这是属于0,即失败这个类别的,输出”Poor guys,you can go back to sleep now..”
输入
输入的第一行,有1个数E分别表示训练数据和测试数据的行数。
接下来的E,0<E<=100,每行包括a,b,c,g,0<=a,b,c<=1.其中a,b,c如上文所述,g为0,或 1 ,即是否追到。
最后一行,包括三个值,即小Xu的财富值,长相值,知识值。
输出
输出结果只有一行,当小Xu能够成功时输出”Come on guys,you can do it!”,当失败时输出” Poor guys,you can go back to sleep now..”
样例输入 复制
5
1 1 1 1
0 0 0 0
1 0 0 1
0 0 1 1
1 1 0 0
1 0 1
样例输出 复制
Come on guys,you can do it!