第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

python 實現(xiàn)數(shù)據(jù)降維推薦系統(tǒng)(附Python源碼)

標(biāo)簽:
Python

主成分分析原理:请点击PCA查看

#!usr/bin/env python#_*_ coding:utf-8 _*_import pandas as pdimport numpy as npimport matplotlib.pyplot as plt#如果一个旅游网站里面有100000个注册用户,以及100个注册酒店,网站有用户通过本网站点击酒店页面的#记录数据信息A=Aij   100000*100  Aij表示第i个用户点击j酒店的次数#Q1:如何评价酒店之间的相似度#Q2:给定一个酒店,请找出与它最相似的其他几个酒店#Q3:如何要给酒店分类,有什么办法?#prepare data set,suppose there are 5 types of hotels  纬度评分generatorNum=5     #5hotelNum=100               #100customerNum=100000  #100000#10000用户个对五个纬度的侧重点的评分generators=np.random.randint(5,size=(customerNum,generatorNum))
print(generators)#酒店在各个纬度为评分hotelcomp=np.random.random(size=(generatorNum,hotelNum))-0.5# 0.5出现负值print(hotelcomp)#.dot矩阵运算,生成顾客对酒店评分hotelRating=pd.DataFrame(generators.dot(hotelcomp),index=['c%.6d'%i for i in range(customerNum)],columns=['hotel_%.3d'%j for j in range(100)]).astype(int)#data z-score公式def normalize(s):
    if s.std()>1e-6:        #**乘方,就散标准分数z-score,用来算离数据中心的偏差的,https://www.zhihu.com/question/21600637
        return(s-s.mean())*s.std()**(-1)    else:        return (s-s.mean())#如何评价酒店之间的相似度?#data to z-scorehotelRating_norm=hotelRating.apply(normalize)
print('hotelRating_norm\n{}'.format(hotelRating_norm))
print(type(hotelRating_norm))#计算协方差hotelRating_norm_corr=hotelRating_norm.cov()
print('hotelRating_norm_corr\n{}'.format(hotelRating_norm_corr))#SVD,即奇异值分解u,s,v=np.linalg.svd(hotelRating_norm_corr)#碎石图确定分类,测试时是5print('u\n{}'.format(u))
print(s)
plt.plot(s,'o')
plt.title("singular value spectrum")
plt.show()

https://img1.sycdn.imooc.com//5b3edd9b0001d37210770438.jpg

#截取SVD纬度u_short = u[:,:5]
v_short = v[:5,:]
s_short = s[:5]print('u,s,v,short{}'.format(u_short,v_short,s_short))#numpy.diag()创建一个对角矩阵hotelRating_norm_corr_rebuild=pd.DataFrame(u_short.dot(np.diag(s_short).dot(v_short)),index=hotelRating_norm_corr.index,columns=hotelRating_norm_corr.keys())#get the top components ,np.power数组的元素分别求n次方top_component=hotelRating_norm.dot(u_short).dot(np.diag(np.power(s_short,-0.5)))#classfication of each hotelhotel_ind = 3rating = hotelRating_norm.loc[:,'hotel_%.3d'%hotel_ind]print ("classification of the %dth hotel"%hotel_ind,top_component.T.dot(rating)/customerNum)

结果
https://img1.sycdn.imooc.com//5b3edda30001f8fd07300303.jpg


點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費專欄免費學(xué)

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消