久久精品国产99_国产丝袜一区二区三区免费视频_国产精品成人一区二区艾草_日韩午夜中文字幕_久久精品免费在线观看_狠狠色综合日日_国产精品va在线播放我和闺蜜_亚洲精品wwwww_欧美人与性动交a欧美精品_在线亚洲欧美专区二区

首頁> 快訊 > > 正文

天天最資訊丨幫師妹開發(fā)一個系統(tǒng)過濾小程序

2023-04-21 01:43:36來源:平靜的時光
博主簡介:在計算機領(lǐng)域混戰(zhàn)了5年的java開發(fā)工程師,正在向全棧奮斗的路上。目前在學習和分享:Java,springboot,spring,vue,系統(tǒng)開發(fā),服務器運維(可做畢業(yè)設(shè)計)等相關(guān)知識。博主主頁: 不會寫文檔的程序員近期目標:寫好專欄的每一篇文章

項目介紹

本期介紹一個基于協(xié)同過濾算法的商品推薦系統(tǒng),主要包括以下功能


(資料圖片僅供參考)

后臺管理系統(tǒng)功能:
后臺登錄
獲取微信小程序登錄的用戶信息
配置上架商品的屬性,分類,價格
獲取用戶在小程序端下的訂單列表
個人用戶配置,賬號修改;
微信小程序功能:
用戶授權(quán)實現(xiàn)微信登陸
首頁展示商品輪播圖+商品列表
商品詳情頁,獲取商品詳細sku
一鍵加入購物車,直接購買
維護用戶的收獲地址
訂單列表;
全部訂單,待收貨,確認收貨,退貨

用戶微信授權(quán)登錄后,根據(jù)每個用戶收藏的商品數(shù)據(jù),根據(jù)算法,找到有相似收藏愛好的用戶,已推薦相應額商品。為了更方便大家的理解,如下圖:

該系統(tǒng)為每一個用戶都分配了一個用戶賬號,用戶通過賬號的登錄可以在系統(tǒng)中查看商品推薦信息及對個人信息進行修改等功能。

系統(tǒng)截圖

不止這些,基于協(xié)同過濾開發(fā)了很多的系統(tǒng)

現(xiàn)在對著算法的開發(fā)的思路還是比較成熟的,更多系統(tǒng)基于推薦算法功能的更新需求,或者系統(tǒng)開發(fā),可以私信評論區(qū)留言哦

協(xié)同過濾算法簡介

協(xié)同過濾算法是一種基于用戶行為數(shù)據(jù)的推薦算法,其基本思想是通過分析用戶行為數(shù)據(jù),找到不同用戶之間的相似性,從而預測用戶對未知物品的評分或偏好,從而給用戶提供個性化推薦。

協(xié)同過濾算法分為兩種:基于用戶的協(xié)同過濾和基于物品的協(xié)同過濾。

基于用戶的協(xié)同過濾

基于用戶的協(xié)同過濾算法是通過分析用戶的歷史行為數(shù)據(jù),找到與目標用戶行為相似的其他用戶,從而推薦目標用戶可能感興趣的物品。

具體步驟如下:

計算用戶之間的相似度,如皮爾遜相關(guān)系數(shù)、余弦相似度等。找到與目標用戶相似度最高的K個用戶。綜合K個用戶對某個物品的評分,預測目標用戶對該物品的評分或偏好。推薦目標用戶評分最高的N個物品。

協(xié)同過濾算法的優(yōu)點是可以處理任何類型的物品和用戶行為,同時還可以提供高度個性化的推薦。但是,它也存在一些問題,如數(shù)據(jù)稀疏性、冷啟動問題、可擴展性等。因此,在實際應用中需要根據(jù)具體情況進行優(yōu)化和改進。

皮爾森(pearson)相關(guān)系數(shù)公式

皮爾森相關(guān)系數(shù)是用來衡量變量之間的線性相關(guān)性。但是有一個明顯的缺陷就是,它只對線性關(guān)系敏感。如果關(guān)系是非線性的,哪怕兩個變量之間是一一對應的關(guān)系,皮爾森相關(guān)系數(shù)也可能接近0.

如果有兩個變量:X、Y,最終計算出的相關(guān)系數(shù)的含義可以有如下理解:

(1)、當相關(guān)系數(shù)為0時,X和Y兩變量無關(guān)系。

(2)、當X的值增大(減小),Y值增大(減小),兩個變量為正相關(guān),相關(guān)系數(shù)在0.00與1.00之間。

(3)、當X的值增大(減小),Y值減小(增大),兩個變量為負相關(guān),相關(guān)系數(shù)在-1.00與0.00之間。

通常情況下通過以下取值范圍判斷變量的相關(guān)強度:
相關(guān)系數(shù) 0.8-1.0 極強相關(guān)
0.6-0.8 強相關(guān)
0.4-0.6 中等程度相關(guān)
0.2-0.4 弱相關(guān)
0.0-0.2 極弱相關(guān)或無相關(guān)

公式一:

公式二:

公式三:

公式四:

Java代碼實現(xiàn)


package com.jun.entity;
/**
* @author 不會寫文檔的程序員
*/
public class Movie implements Comparable<Movie> {
public String movieName;
public int score;
public Movie(String movieName, int score) {
this.movieName = movieName;
this.score = score;
}
@Override
public String toString() {
return "Movie{" +
"movieName="" + movieName + "\"" +
", score=" + score +
"}";
}
@Override
public int compareTo(Movie o) {
return score > o.score ? -1 : 1;
}
}


package com.jun.entity;
import java.util.ArrayList;
import java.util.List;
/**
* @author 不會寫文檔的程序員
*/
public class User {
public String username;
public List<Movie> movieList = new ArrayList<>();
public User() {}
public User(String username) {
this.username = username;
}
public User set(String movieName, int score) {
this.movieList.add(new Movie(movieName, score));
return this;
}
public Movie find(String movieName) {
for (Movie movie : movieList) {
if (movie.movieName.equals(username)) {
return movie;
}
}
return null;
}
@Override
public String toString() {
return "User{" +
"username="" + username + "\"" +
"}";
}
}

Recommend邏輯計算類:

/**
* 計算2個打分序列間的pearson距離
* 選擇公式四進行計算
* @param rating1
* @param rating2
* @return
*/
private double pearson_dis(List<Movie> rating1, List<Movie> rating2) {
int n=rating1.size();
List<Integer> rating1ScoreCollect = rating1.stream().map(A -> A.score).collect(Collectors.toList());
List<Integer> rating2ScoreCollect = rating2.stream().map(A -> A.score).collect(Collectors.toList());
double Ex= rating1ScoreCollect.stream().mapToDouble(x->x).sum();
double Ey= rating2ScoreCollect.stream().mapToDouble(y->y).sum();
double Ex2=rating1ScoreCollect.stream().mapToDouble(x->Math.pow(x,2)).sum();
double Ey2=rating2ScoreCollect.stream().mapToDouble(y->Math.pow(y,2)).sum();
double Exy= IntStream.range(0,n).mapToDouble(i->rating1ScoreCollect.get(i)*rating2ScoreCollect.get(i)).sum();
double numerator=Exy-Ex*Ey/n;
double denominator=Math.sqrt((Ex2-Math.pow(Ex,2)/n)*(Ey2-Math.pow(Ey,2)/n));
if (denominator==0) return 0.0;
return numerator/denominator;
}

public List<Movie> recommend(String username, List<User> users) {
//找到最近鄰
Map<Double, String> distances = computeNearestNeighbor(username, users);
String nearest = distances.values().iterator().next();
System.out.println("最近鄰 -> " + nearest);
//找到最近鄰看過,但是我們沒看過的電影,計算推薦
User neighborRatings = new User();
for (User user:users) {
if (nearest.equals(user.username)) {
neighborRatings = user;
}
}
System.out.println("最近鄰看過的電影 -> " + neighborRatings.movieList);
User userRatings = new User();
for (User user:users) {
if (username.equals(user.username)) {
userRatings = user;
}
}
System.out.println("用戶看過的電影 -> " + userRatings.movieList);
//根據(jù)自己和鄰居的電影計算推薦的電影
List<Movie> recommendationMovies = new ArrayList<>();
for (Movie movie : neighborRatings.movieList) {
if (userRatings.find(movie.movieName) == null) {
recommendationMovies.add(movie);
}
}
Collections.sort(recommendationMovies);
return recommendationMovies;
}
}

運行結(jié)果:

協(xié)同過濾算法的問題分析

目前,協(xié)同過濾技術(shù)得到了廣泛應用。但是隨著網(wǎng)站商品信息量和用戶人數(shù)的不斷攀升,網(wǎng)站的結(jié)構(gòu)也越來越復雜,如果你有需要基于協(xié)同算法開發(fā)的需求,評論區(qū)留言呦,我們一起討論。通過對協(xié)同過濾技術(shù)以及推薦系統(tǒng)的研究,我們發(fā)現(xiàn)協(xié)同過濾技術(shù)的實現(xiàn)中存在的問題主要有以下幾點。

5.1 稀疏性問題
稀疏性問題是推薦系統(tǒng)面臨的主要問題。比如在一些大型電子商務購買系統(tǒng),用戶購買過的數(shù)量相對網(wǎng)站中商品數(shù)量可謂是冰山一角,這就導致了用戶評分矩陣的數(shù)據(jù)非常稀疏,進行相似性計算耗費會很大,也難以找到相鄰用戶數(shù)據(jù)集,從而使得推薦系統(tǒng)的推薦質(zhì)量急劇下降。

5.2 冷啟動問題
因為傳統(tǒng)的協(xié)同過濾推薦是基于用戶/物品的相似性計算來得到目標用戶的推薦,在一個新的項目首次出現(xiàn)的時候,因為沒有用戶對它作過評價,因此單純的協(xié)同過濾無法對其進行預測評分和推薦。而且,由于新項目出現(xiàn)早期,用戶評價較少,推薦的準確性也比較差。

5.3 可擴展性問題
面對日益增多的數(shù)據(jù)量,算法的擴展性問題成為制約推薦系統(tǒng)實施的重要因素。識別“最近鄰居”算法的計算量隨著用戶和項的增加而大大增加,對于上百萬的數(shù)目,通常的算法會遇到嚴重的擴展性瓶頸問題。

總結(jié)

協(xié)同過濾作為一種經(jīng)典的推薦算法種類,在工業(yè)界應用廣泛,它的優(yōu)點很多,模型通用性強,不需要太多對應數(shù)據(jù)領(lǐng)域的專業(yè)知識,工程實現(xiàn)簡單,效果也不錯。這些都是它流行的原因。

當然,協(xié)同過濾也有些難以避免的難題,比如令人頭疼的“冷啟動”問題,我們沒有新用戶任何數(shù)據(jù)的時候,無法較好的為新用戶推薦物品。同時也沒有考慮情景的差異,比如根據(jù)用戶所在的場景和用戶當前的情緒。當然,也無法得到一些小眾的獨特喜好,這塊是基于內(nèi)容的推薦比較擅長的,小伙伴們歡迎一起學習研究探討。

標簽:

上一篇:
下一篇:
久久精品国产99_国产丝袜一区二区三区免费视频_国产精品成人一区二区艾草_日韩午夜中文字幕_久久精品免费在线观看_狠狠色综合日日_国产精品va在线播放我和闺蜜_亚洲精品wwwww_欧美人与性动交a欧美精品_在线亚洲欧美专区二区
国产成人精品一区二| 欧美成人性福生活免费看| 精品一区中文字幕| 欧美成人三级在线| 国产综合色精品一区二区三区| 欧美视频日韩视频在线观看| 一区二区三区国产精华| 色综合一区二区| 亚洲在线观看免费| 欧美一级理论性理论a| 激情小说亚洲一区| 中文欧美字幕免费| 在线亚洲精品福利网址导航| 亚洲国产美国国产综合一区二区| 制服.丝袜.亚洲.另类.中文| 国精品**一区二区三区在线蜜桃| 国产日产亚洲精品系列| 一本久久a久久免费精品不卡| 亚洲一本大道在线| 久久亚洲精品国产精品紫薇| 成人av在线一区二区三区| 亚洲成人免费观看| 国产三级精品三级| 欧美性xxxxx极品少妇| 国产一区二区三区四| 亚洲男人天堂av网| 日韩一区二区三区免费看 | 久久这里只有精品视频网| 不卡一区二区在线| 久久精品国产一区二区三| 中文字幕一区二区三区色视频| 欧美丰满高潮xxxx喷水动漫| av影院午夜一区| 国产精品亚洲综合一区在线观看| 亚洲综合激情网| 中文av一区特黄| 精品久久久三级丝袜| 欧美猛男男办公室激情| eeuss国产一区二区三区| 狠狠网亚洲精品| 亚洲大型综合色站| 亚洲黄色尤物视频| 欧美国产精品中文字幕| 日韩精品一区二| 3atv一区二区三区| 在线中文字幕一区二区| jlzzjlzz国产精品久久| 国产精品99久久久久久久女警| 日产国产欧美视频一区精品| 亚洲一区二区三区四区在线| 亚洲视频在线观看三级| 最新国产精品久久精品| 国产日韩精品一区二区三区 | 一区二区三区中文在线| 亚洲精品久久7777| 亚洲色图在线视频| 日韩美女视频一区| 亚洲精品少妇30p| 亚洲一二三四久久| 日日摸夜夜添夜夜添国产精品 | 亚洲激情一二三区| 夜夜爽夜夜爽精品视频| 玉足女爽爽91| 日韩和欧美一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎| 五月综合激情网| 蜜桃av一区二区三区| 九九国产精品视频| 成人永久免费视频| 日本韩国精品一区二区在线观看| 99国产精品国产精品毛片| 一本大道久久a久久精品综合| 欧美视频一区二区| 精品理论电影在线观看| 国产日产欧美一区二区三区| 综合分类小说区另类春色亚洲小说欧美| 国产精品久久久久久久久免费相片| 成人欧美一区二区三区视频网页 | 久久久久久久综合色一本| 国产精品无人区| 午夜视频久久久久久| 国产美女精品一区二区三区| 91蜜桃免费观看视频| 日韩亚洲电影在线| 亚洲美女屁股眼交3| 精品亚洲国产成人av制服丝袜| 国产精品系列在线| 日韩黄色免费网站| av中文字幕不卡| 欧美大片在线观看一区| 亚洲综合男人的天堂| 国产成人综合自拍| 日韩欧美一区在线观看| 亚洲欧美日韩国产成人精品影院| 欧美成人女星排行榜| 亚洲午夜成aⅴ人片| 亚洲国产cao| 国产一区二区三区黄视频| 99精品视频在线播放观看| 91麻豆精品国产91| 亚洲黄一区二区三区| 国产91丝袜在线播放九色| 91精品国产91热久久久做人人| 国产精品青草综合久久久久99| 日本vs亚洲vs韩国一区三区二区 | 国产一区二区三区免费观看| 欧日韩精品视频| 亚洲另类春色国产| 99国产精品久久| 国产精品久久久久久久久搜平片| 久久丁香综合五月国产三级网站| 欧美日韩午夜精品| 亚洲国产成人av网| 欧美日韩精品免费观看视频| 亚洲美女在线国产| 91在线精品秘密一区二区| 中文字幕精品一区二区精品绿巨人| 裸体在线国模精品偷拍| 欧美一区二区三区成人| 性久久久久久久久| 欧美吻胸吃奶大尺度电影| 日韩伦理av电影| 97精品国产97久久久久久久久久久久| 国产免费成人在线视频| 国产成人h网站| 99视频精品免费视频| 一区二区三区中文在线观看| 首页国产欧美久久| 欧美精品一区二区三区四区 | 免费观看在线综合| 欧美激情综合五月色丁香| 欧美日韩中文一区| 日本欧美一区二区| 欧美一区二区三区四区五区| 日韩高清不卡在线| 久久精品视频免费| 国产成人精品亚洲777人妖 | 国产色婷婷亚洲99精品小说| 色偷偷久久人人79超碰人人澡| 亚洲国产乱码最新视频| 欧美日免费三级在线| 一区二区三区美女视频| 欧美一级理论片| 99精品久久免费看蜜臀剧情介绍| 亚洲国产视频在线| 久久精品无码一区二区三区| 欧美怡红院视频| 成人av先锋影音| 激情欧美日韩一区二区| 亚洲欧美另类小说| 久久午夜电影网| 欧美精品vⅰdeose4hd| 成人永久看片免费视频天堂| 日本aⅴ免费视频一区二区三区| 国产精品理伦片| 26uuu亚洲综合色欧美| 欧美疯狂做受xxxx富婆| 91久久精品一区二区三| 成人免费看视频| 国产精品一区二区三区网站| 日本中文在线一区| 亚洲国产综合91精品麻豆| 国产精品天干天干在线综合| 精品人在线二区三区| 欧美精品第1页| 欧美日韩精品一区二区天天拍小说| av一本久道久久综合久久鬼色| 国产制服丝袜一区| 麻豆91精品91久久久的内涵| 亚洲成人av福利| 亚洲一区在线电影| 亚洲精品网站在线观看| 亚洲日本成人在线观看| 亚洲免费观看高清在线观看| 亚洲婷婷综合色高清在线| 国产精品久久久久久久久免费丝袜| 精品播放一区二区| 2020国产成人综合网| 国产v综合v亚洲欧| 成人黄色网址在线观看| av午夜精品一区二区三区| 成人av在线看| 在线视频你懂得一区| 欧美日韩精品一区二区天天拍小说 | 一区二区不卡在线播放| 亚洲国产视频一区二区| 亚洲午夜一区二区| 免费观看在线综合色| 国产一区二区三区久久悠悠色av| 成人免费av在线| 91福利资源站| 精品国产伦一区二区三区观看体验| 久久久99精品免费观看不卡| 最新久久zyz资源站| 日韩成人av影视| 国产麻豆欧美日韩一区| 在线观看一区二区视频| 欧美刺激脚交jootjob| 自拍偷自拍亚洲精品播放| 美日韩黄色大片|