日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

三十二、电子商务服务推荐模型构建

發布時間:2024/9/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三十二、电子商务服务推荐模型构建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 模型構建

本案例在數據預預處理的基礎上,針對預處理后的數據進行模型構建,其中涉及的過程主要有:

  • 推薦流程
  • 相似度計算
  • 推薦結果

2. 推薦流程

2.1 推薦系統流程圖

  • 在實際應用中,構造推薦系統時,并不是采用單一的推薦方法進行推薦。為了實現較好的推薦結果,一般會結合多種推薦方法將推薦結果進行組合,最后得出推薦結果。

2.2 選擇合適的推薦算法

  • 針對此項目的實際情況,分析目標的特點為:長尾網頁豐富,用戶個性化需求強烈以及推薦結果的實時變化,以及結合原始數據的特點:網頁數明顯小于用戶數,因此采用基于物品的協同過濾推薦系統對用戶進行個性化推薦。

2.3 基于物品的協同過濾推薦算法

  • 分析用戶與物品的數據集,通過對用戶對項目的瀏覽與否找到相似的物品;
  • 然后根據用戶的歷史喜好,推薦相似的項目給目標用戶。

2.4 基于物品的協同過濾算法主要步驟

  • 計算物品之間的相似度
  • 根據物品的相似度和用戶的歷史行為給用戶生成推薦列表
  • 物品相似度的計算:夾腳余弦、Jaccard、相關系數

3 相似度計算

3.1 相似度計算公式

協同過濾算法的實現

# *-* coding:utf-8 *-* import pandas as pd import numpy as np from sqlalchemy import create_engineengine = create_engine('mysql+pymysql://root:222850@127.0.0.1:3306/7law?charset=utf8')sql = pd.read_sql('splited_gzdata', engine, chunksize=10000) c = [i for i in sql] sample = pd.concat(c) sample = pd.DataFrame(sample) data = pd.crosstab(sample[sample['type_l_1'] == 'hunyin']['realIP'], sample[sample['type_l_1'] == 'hunyin']['fullURL']) data_ = data.valuesprint(type(data_))def Jaccard(a, b):return abs(((a + b) // 2).sum()) / abs(np.ceil((a + b) / 2).sum())class Recommender:sim = Nonedef similarity(self, x, distance):y = np.ones((len(x), len(x)))for i in range(len(x)):for j in range(len(x)):y[i, j] = distance(x[i], x[j])return ydef fit(self, x, distance=Jaccard):self.sim = self.similarity(x, distance)def recommend(self, a):return np.dot(self.sim, a)

3.2 基于物品的協同過濾推薦過程

4 推薦結果

4.1 實驗方法與步驟

  • 安裝PyMySQL、SQLAlchemy,連接本地安裝的數據庫;
  • 由于數據庫中含有中文內容,需要設置鏈接的編碼格式
  • 通過Pandas連接數據庫后,讀取并進行數據預處理
  • 根據預處理的結果產生推薦結果

4.2 代碼實現

5完整代碼

5.1 代碼目錄結構

5.2 完整代碼

# *-* coding:utf-8 *-*def Jaccard(a, b):return abs(((a + b) // 2).sum()) / abs(np.ceil((a + b) / 2).sum())class Recommender:sim = Nonedef similarity(self, x, distance):y = np.ones((len(x), len(x)))for i in range(len(x)):for j in range(len(x)):y[i, j] = distance(x[i], x[j])return ydef fit(self, x, distance=Jaccard):self.sim = self.similarity(x, distance)def recommend(self, a):return np.dot(self.sim, a)r = Recommender() r.fit(data_.T)realid = 500271579 print(type(realid)) uid = list(data.index).index(realid) print(type(uid)) sim_sort = pd.Series(r.recommend(data_[uid])).sort_values(ascending=False) vind = sim_sort[sim_sort >= 1].index ind = sim_sort[(sim_sort > 0) & (sim_sort < 1)].index for i in vind:print(data.columns[i]) for i in ind:print(data.columns[i])c = pd.DataFrame({'訪問頁面': '\n'.join(data.columns[i] for i in vind), '推薦頁面': '\n'.join(data.columns[i] for i in ind[:5])},index=[realid], columns=['訪問頁面', '推薦頁面']).to_excel('123.xls')a.columns[i] for i in vind), '推薦頁面': '\n'.join(data.columns[i] for i in ind[:5])},index=[realid], columns=['訪問頁面', '推薦頁面']).to_excel('123.xls')

總結

以上是生活随笔為你收集整理的三十二、电子商务服务推荐模型构建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。