专栏名称: 程序猿
本微信公众号:imkuqin,为程序员提供最新最全的编程学习资料的查询。目前已经开通PHP、C/C++函数库、.NET Framework类库、J2SE API查询功能。
目录
相关文章推荐
蚂蚁技术AntTech  ·  论文秀Live#21 ICSE 2025 ... ·  22 小时前  
程序员小灰  ·  我的第一个副业是什么? ·  5 天前  
51好读  ›  专栏  ›  程序猿

很污的机器学习:从xhamster网站找到喜欢的片子

程序猿  · 公众号  · 程序员  · 2017-05-24 22:56

正文

请到「今天看啥」查看全文



数据的预处理


首先最重要的是我为300~400部电影打了分,打分的方式是建立一个django网站,随机抽取一些片子,显示其预览图并且给我打分的选项,源代码也已经公开了。说实话,打分完成以后看太阳都是绿色的……


评分依据当然是根据个人的喜好,比如我对平刘海有着深刻的好感,没有平刘海简直就不是女生(逃
为了让机器知道我喜欢那些电影,以后自动帮我下载(误
我需要让机器学习一下我的癖好,就根据网站上的标签(我简称之为Tag,其实是Categories,否则打字太痛苦了)


Logistic Regression进行影片分类


原理不明的可以看这两篇:


https://zhuanlan.zhihu.com/p/20511129
https://zhuanlan.zhihu.com/p/20545718


下面是用Logistic Regression对性癖进行学习,使用了sklearn中的LogisticRegressionCV(带交叉验证的Logistic回归) 我特地没有考虑时间因子,因为实际验证的时候,因为有些片子的时间有错误,有的长达十几个小时,导致推荐的都是这些乱七八糟的影片。


短时间的视频大多数都是渣渣,但是长时间的也未必好看,我不如去掉这个因子让它不再干扰我。 虽然使用时间能达到更高的精度,但是却和“学习性癖”这个主题背道而驰了,最终的效果也并不理想。

import sklearn.linear_model   
regr = sklearn.linear_model.LogisticRegressionCV(   
    Cs=60, fit_intercept=True, cv=4, dual=False,    
    penalty='l2', scoring=None, solver='lbfgs', tol=0.0001,    
    max_iter=1000, class_weight=None, n_jobs=1, verbose=1)   
regr.fit(Xt_train, y_train>-0.5)   

y_train_predict = regr.predict(Xt_train)   
y_test_predict = regr.predict(Xt_test)   
y_train_real = np.reshape(y_train>-0.5,y_train_predict.shape)   
y_test_real = np.reshape(y_test>-0.5,y_test_predict.shape)   

# 输出报告   
from sklearn import metrics   
print('------------ACCURACY-------------')   
print "Train accuracy: %f%%" % (sum(y_train_predict==y_train_real)*100.0/len(y_train_real))   
print "Test accuracy: %f%%" % (sum(y_test_predict==y_test_real)*100.0/len(y_test_real))

输出:

------------ACCURACY-------------      
Train accuracy: 68.211921%      
Test accuracy: 70.886076






请到「今天看啥」查看全文