您的位置:首页 > 其它

[娱乐]Bilibili 2016动画角色男女主角冠军预测

2017-01-01 23:54 190 查看
         突然看到Bilibili 2016动画角色人气比拼的活动,一时兴起,利用sklearn进行冠军的预测,数据来自http://bangumi.bilibili.com/moe/2016/jp/schedule/20170101。

         冠军未产生时的人气对决数据如下:





          博主并不是一个深度宅男,除了一些热门角色(大部分都是),有些 角色需要翻看百度百科来给人物确立特征,暂定特征有:是否是主角(0,1),性格冷或热(0,1),性格稳定度(0,1),SorM(0,1),发色是否为黑(0,1),是否长发(0,1),不能确定的取0.5,来为每个角色建立数据。

         对决的数据为两个角色的特征差,对决结果为两个角色的票数比例(左人物比上右人物),对决数据如下:

IfMainchaStabilityColdorHotSorMIfHairBlackIfHairlongRank
010-1000.6323195642
1-100.5110.9933649866
1100.5010.8718418515
10-10000.7054327375
00-0.500.501.0489565819
00-10-0.501.1693645485
010-1-1-0.50.8763312998
1010001.0544862304
0-101011.176349052
00-1-10.5-11.0830188679
00-0.500.500.9055555556
1-11000.51.6249837683
         编写python程序,利用sklearn中的SVM回归来进行拟合,代码如下:

读取数据:

# Imports

# pandas
import pandas as pd
from pandas import Series,DataFrame

# numpy, matplotlib, seaborn
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
%matplotlib inline

# machine learning
from sklearn.svm import SVR
train_df = pd.read_csv("/home/lsei/文档/train.csv")
test_df    = pd.read_csv("/home/lsei/文档/test.csv")

# preview the data
train_df.head()

# define training and testing sets
X_train = train_df.drop("Rank",axis=1)
Y_train = train_df["Rank"]
X_test  = test_df.copy()


 IfMainchaStabilityColdorHotSorMIfHairBlackIfHairlongRank
0010.0-1.00.000.632320
11-10.00.51.010.993365
2110.00.50.010.871842
310-1.00.00.000.705433
400-0.50.00.501.048957
数据预测:

svc = SVR()
svc.fit(X_train, Y_train)
Y_pred = svc.predict(X_test)
svc.score(X_train, Y_train)


预测结果:

Y_pred=Y_pred1+Y_pred2+Y_pred3+Y_pred4+Y_pred5+Y_pred6+Y_pred7

Y_pred=np.round(Y_pred/7.0)

Y_pred=Y_pred.astype(int);

Y_pred


结果为:

array([ 1.27587358, 0.85956564])

即蕾姆获胜,夜斗获胜。蕾姆票数比五和琴里为:1.27587358杀老师票数比夜斗为:0.85956564最终结果如下:



冠军结果正确,蕾姆票数比例比预测高很多1.72(预测1.276)(评论中为蕾姆拉票的很多),夜斗获胜票数比例基本预测正确0.905(预测0.86)。

PS:其实单纯靠蒙猜对的正确率也有25%,而且数据量极少,所以只用了sklearn的基本函数,这篇机器学习的数据预测的目的只是娱乐一下。




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: