spark 機器學習 ALS原理(一)

来源:https://www.cnblogs.com/xiguage119/archive/2019/05/05/10813393.html
-Advertisement-
Play Games

1.線性回歸模型線性回歸是統計學中最常用的演算法,當你想表示兩個變數間的數學關係時,就可以用線性回歸。當你使用它時,你首先假設輸出變數(相應變數、因變數、標簽)和預測變數(自變數、解釋變數、特征)之間存在的線性關係。(自變數是指:研究者主動操縱,而引起因變數發生變化的因素或條件,因此自變數被看作是因變 ...


1.線性回歸模型
線性回歸是統計學中最常用的演算法,當你想表示兩個變數間的數學關係時,就可以用線性回歸。當你使用它時,你首先假設輸出變數(相應變數、因變數、標簽)和預測變數(自變數、解釋變數、特征)之間存在的線性關係。
(自變數是指:研究者主動操縱,而引起因變數發生變化的因素或條件,因此自變數被看作是因變數的原因。
因變數是指:在函數關係式中,某個量會隨一個(或幾個)變動的量的變動而變動。)
線性模型可能使用於類似下麵的問題:比如你正在研究一個公司的銷售額和該公司在廣告上的投入之間的關係,或者某人在社交網站上的好友數量和他每天在該社交網站上花費的時間之間的關係。
理解線性回歸一個切入點是先確定那條直線,我們知道,通過斜率和截距就可以完全確定一條直線
例子1:
假設 (用戶數,利潤值)
S={(x,y)=(1,25),(10,250),(100,2500)}

例子2:
假設(好友數,線上時間)

看到當前圖片,很難一眼看出兩個變數之間的關係了。
我們假設圖中是線性關係,可以畫出多條線。

那麼哪條線才是我們使用的最優線呢?這是一個擬合過程



2.spark ALS
ALS中文名作交替最小二乘法,就是在最小二乘法基礎上的升級,在機器學習中,ALS特指使用最小二乘法求解的一個協同過濾演算法,是協同過濾中的一種。ALS演算法是2008年以來,用的比較多的協同過濾演算法。從協同過濾的分類來說,ALS演算法屬於User-Item CF,也叫做混合CF,因為它同時考慮了User和Item兩個方面,即即可基於用戶進行推薦又可基於物品
如下圖所示,u表示用戶,v表示商品,用戶給商品打分,但是並不是每一個用戶都會給每一種商品打分。比如用戶u6就沒有給商品v3打分,需要我們推斷出來,這就是機器學習的任務。

 

由於並不是每個用戶給每種商品都打了分,可以假設ALS矩陣是低秩的,即一個m*n的矩陣,是由m*kk*n兩個矩陣相乘得到的,其中k<<m,n

 

Am×n=Um×k×Vk×n

 

這種假設是合理的,因為用戶和商品都包含了一些低維度的隱藏特征,比如我們只要知道某個人喜歡碳酸飲料,就可以推斷出他喜歡百世可樂、可口可樂、芬達,而不需要明確指出他喜歡這三種飲料。這裡的碳酸飲料就相當於一個隱藏特征。上面的公式中,Um×k表示用戶對隱藏特征的偏好,Vk×n表示產品包含隱藏特征的程度。機器學習的任務就是求出Um×kVk×n。可知uiTvj是用戶i對商品j的偏好,使用Frobenius範數來量化重構UV產生的誤差。由於矩陣中很多地方都是空白的,即用戶沒有對商品打分,對於這種情況我們就不用計算未知元了,只計算觀察到的(用戶,商品)集合R

 

這樣就將協同推薦問題轉換成了一個優化問題。目標函數中UV相互耦合,這就需要使用交替二乘演算法。即先假設U的初始值U(0),這樣就將問題轉化成了一個最小二乘問題,可以根據U(0)可以計算出V(0),再根據V(0)計算出U(1),這樣迭代下去,直到迭代了一定的次數,或者收斂為止。雖然不能保證收斂的全局最優解,但是影響不大。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、說明 1、mmc core概述 mmc core主模塊是mmc core的實現核心。也是本章的重點內容。 對應代碼位置 。 其主要負責如下功能: mmc core初始化,包括註冊mmc bus、mm host class等等 mmc host的管理和維護,包括為其他模塊提供mmc_host的操作 ...
  • 零、說明(重要,需要先搞清楚概念有助於後面的理解) 1、mmc core card相關模塊為對應card實現相應的操作,包括初始化操作、以及對應的匯流排操作集合。負責和對應card協議層相關的東西。 這裡先學習mmc type card。後續再學習sd type card。 對應代碼: 2、另外,這裡 ...
  • Redis命令的生命周期 客戶端向Redis伺服器發送命令 命令請求在請求隊列中排隊等待處理 執行命令 返回命令結果 Redis慢查詢 慢查詢發生在生命周期的第三階段,是指僅僅執行命令階段比較慢被稱為慢查詢。 客戶端超時不一定是慢查詢,但是慢查詢時是客戶端超時的一個可能因素。 慢查詢發生在生命周期的 ...
  • 當redis環境搭建結束後,接下來需要掌握並瞭解redis的一些相關命令,本篇文章主要從實際操作的層面來與大家分享redis基本命令, 具體包括:Redis五大基本類型命令(Strings,Lists,Hashes,Sets和Sort Sets)和Keys相關命令。 一 Strings 1. SET ...
  • 問題 在使用zabbix_get獲取agent端的mysql數據時,總是報錯,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/data/mysql.sock' (13)。 ...
  • 1. 數據定義語句 - 模式 · 創建: CREATE SCHEMA · 刪除: DROP SCHEMA - 表 · 創建: CREATE TABLE · 刪除: DROP TABLE · 修改: ALTER TABLE - 視圖 · 創建: CREATE VIEW · 刪除: DROP VIEW  ...
  • 存儲過程名稱為A,假設A返回一個ID EXEC @id = A 1031,1 在觸發器中像上面那樣調用,調試時發現@FolderHierarchyid的值為0 後面參考網上的方法,建了一個表,表結構和存儲過程的返回結果集結構一樣 declare @idtable table(ID int); ins ...
  • 遇到一個錯誤如下 System.Data.SqlClient.SqlException HResult=0x80131904 Message=伺服器主體 "用戶名" 無法在當前安全上下文下訪問資料庫 "資料庫名"。 Source=.Net SqlClient Data Provider StackT ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...