肌萎縮性側索硬化症

pyspark.ml.recommendation。 肌萎縮性側索硬化症 ( *,排名:int=10,麥克斯特:int=10,regParam:浮動=0.1,numUserBlocks:int=10,numItemBlocks:int=10,implicitPrefs:bool=,α:浮動=1.0,userCol:str=“用戶”,itemCol:str=“項目”,種子:可選(int]=沒有一個,ratingCol:str=“評級”,非負:bool=,checkpointInterval:int=10,intermediateStorageLevel:str=“MEMORY_AND_DISK”,finalStorageLevel:str=“MEMORY_AND_DISK”,coldStartStrategy:str=“南”,blockSize:int=4096年 )

交替最小二乘(ALS)矩陣分解。

ALS試圖評估評級矩陣R兩個低等級矩陣的乘積,XY,即X *次= R。通常,這些近似矩陣被稱為“因素”。一般方法是迭代。在每個迭代中,矩陣的一個因素是保持不變,而另一種是使用最小二乘解。newly-solved因子矩陣然後保持不變而解決其他因子矩陣。

ALS的這是一個阻塞實現分解算法組兩組因素(稱為“用戶”和“產品”)成塊,減少溝通隻發送一份每個用戶向量在每個迭代中,每個產品塊產品,隻有塊需要用戶的特征向量。這是通過並不是預先計算的一些信息評級矩陣確定每個用戶的“外部鏈接”產品將有助於(塊)和“在鏈接”信息為每個產品(每個用戶的特征向量接收塊這將取決於)。這讓我們隻發送一個數組的每個用戶塊和產品塊之間的特征向量,並有產品塊找到用戶的評級基於這些信息和更新產品。

對於內隱偏好數據,該算法是基於使用隱beplay娱乐ios含的反饋數據集的“協同過濾”,這裏使用,用於屏蔽方法。

本質上,而不是尋找評級矩陣的低秩近似R這個發現,偏好矩陣的近似P的元素P1如果r > 0, 0如果r < = 0。然後評級作為“信心”值表示用戶首選項的相關強度而不是明確的評分項目。

筆記

輸入評級dataframe ALS的實現應該是確定的。在擬合ALS模型不確定性數據會導致失敗。例如,一個order-sensitive操作像抽樣後重新分區使dataframe輸出不確定性,df.repartition (2)。樣本(False, 0.5, 1618)。檢查點采樣dataframe之前或添加一個抽樣可以幫助使dataframe確定的。

例子

> > >df=火花createDataFrame(((0,0,4.0),(0,1,2.0),(1,1,3.0),(1,2,4.0),(2,1,1.0),(2,2,5.0)),(“用戶”,“項目”,“評級”])> > >肌萎縮性側索硬化症=肌萎縮性側索硬化症(排名=10,種子=0)> > >肌萎縮性側索硬化症setMaxIter(5)ALS……> > >肌萎縮性側索硬化症getMaxIter()5> > >肌萎縮性側索硬化症setRegParam(0.1)ALS……> > >肌萎縮性側索硬化症getRegParam()0.1> > >肌萎縮性側索硬化症清晰的(肌萎縮性側索硬化症regParam)> > >模型=肌萎縮性側索硬化症適合(df)> > >模型getBlockSize()4096年> > >模型getUserCol()“用戶”> > >模型setUserCol(“用戶”)ALSModel……> > >模型getItemCol()“項目”> > >模型setPredictionCol(“newPrediction”)ALS……> > >模型排名10> > >模型userFactorsorderBy(“id”)收集()行(id = 0,特性=[…])、行(id = 1,…),行(id = 2,…)> > >測試=火花createDataFrame(((0,2),(1,0),(2,0)),(“用戶”,“項目”])> > >預測=排序(模型變換(測試)收集(),關鍵=λr:r(0])> > >預測(0]行(用戶= 0,項= 2,newPrediction = 0.6929…)> > >預測(1]行(用戶= 1項= 0,newPrediction = 3.47356…)> > >預測(2]行(用戶= 2,項= 0,newPrediction = -0.899198…)> > >user_recs=模型recommendForAllUsers(3)> > >user_recs在哪裏(user_recs用戶= =0)選擇(“recommendations.item”,“recommendations.rating”)收集()行(項=(0,1,2)評級= [3.910……,1.997……,0。692...])]> > >item_recs=模型recommendForAllItems(3)> > >item_recs在哪裏(item_recs= =2)選擇(“recommendations.user”,“recommendations.rating”)收集()行(用戶=(2,1,0),評級= [4.892……,3.991……,0。692...])]> > >user_subset=df在哪裏(df用戶= =2)> > >user_subset_recs=模型recommendForUserSubset(user_subset,3)> > >user_subset_recs選擇(“recommendations.item”,“recommendations.rating”)第一個()行(項=(2,1,0),評級= [4.892……,1.076……,-0.899...])> > >item_subset=df在哪裏(df= =0)> > >item_subset_recs=模型recommendForItemSubset(item_subset,3)> > >item_subset_recs選擇(“recommendations.user”,“recommendations.rating”)第一個()行(用戶=(0,1,2)評級= [3.910……,3.473……,-0.899...])> > >als_path=temp_path+“/肌萎縮性側索硬化症”> > >肌萎縮性側索硬化症保存(als_path)> > >als2=肌萎縮性側索硬化症負載(als_path)> > >肌萎縮性側索硬化症getMaxIter()5> > >model_path=temp_path+“/ als_model”> > >模型保存(model_path)> > >model2=ALSModel負載(model_path)> > >模型排名= =model2排名真正的> > >排序(模型userFactors收集())= =排序(model2userFactors收集())真正的> > >排序(模型itemFactors收集())= =排序(model2itemFactors收集())真正的> > >模型變換(測試)排序(“用戶”)(1)= =model2變換(測試)排序(“用戶”)(1)真正的

方法

清晰的(參數)

清除參數映射的參數是否被顯式地設置。

複製((額外的))

創建這個實例的副本具有相同uid和一些額外的參數。

explainParam(參數)

解釋一個參數並返回它的名字,醫生,和可選的默認值,用戶提供的字符串值。

explainParams()

返回文檔的所有參數選擇默認值和用戶提供的值。

extractParamMap((額外的))

提取嵌入默認參數值和用戶提供的值,然後合並他們額外的值從輸入平麵參數映射,後者使用價值如果存在衝突,即。排序:默認參數值< <額外的用戶提供的值。

適合(數據集[params))

適合一個模型與可選參數的輸入數據集。

fitMultiple(paramMaps數據集)

適合一個模型為每個參數映射的輸入數據集paramMaps

getAlpha()

得到α的值或其默認值。

getBlockSize()

得到的價值blockSize或其默認值。

getCheckpointInterval()

得到的價值checkpointInterval或其默認值。

getColdStartStrategy()

得到的價值coldStartStrategy或其默認值。

getFinalStorageLevel()

得到的價值finalStorageLevel或其默認值。

getImplicitPrefs()

得到的價值implicitPrefs或其默認值。

getIntermediateStorageLevel()

得到的價值intermediateStorageLevel或其默認值。

getItemCol()

得到的價值itemCol或其默認值。

getMaxIter()

麥克斯特的價值或其默認值。

getNonnegative()

得到的值非負或其默認值。

getNumItemBlocks()

得到的價值numItemBlocks或其默認值。

getNumUserBlocks()

得到的價值numUserBlocks或其默認值。

getOrDefault(參數)

得到參數的值在用戶提供的參數映射或其默認值。

getParam(paramName)

通過它的名稱參數。

getPredictionCol()

得到的價值predictionCol或其默認值。

getRank()

獲得的價值等級或其默認值。

getRatingCol()

得到的價值ratingCol或其默認值。

getRegParam()

得到的價值regParam或其默認值。

getSeed()

種子的價值或其默認值。

getUserCol()

得到的價值userCol或其默認值。

hasDefault(參數)

檢查是否一個參數有默認值。

hasParam(paramName)

測試這個實例包含一個參數是否與給定名稱(字符串)。

isDefined(參數)

檢查參數是否由用戶或顯式地設置一個默認值。

收取(參數)

檢查參數是否由用戶顯式地設置。

負載(路徑)

從輸入路徑,讀取一個毫升實例的快捷方式read () .load(路徑)

()

返回一個MLReader這個類的實例。

保存(路徑)

這個毫升實例保存到給定的路徑,一個快捷方式的“寫().save(路徑)。

(參數值)

設置一個參數嵌入參數映射。

setAlpha(值)

設置的值α

setBlockSize(值)

設置的值blockSize

setCheckpointInterval(值)

設置的值checkpointInterval

setColdStartStrategy(值)

設置的值coldStartStrategy

setFinalStorageLevel(值)

設置的值finalStorageLevel

setImplicitPrefs(值)

設置的值implicitPrefs

setIntermediateStorageLevel(值)

設置的值intermediateStorageLevel

setItemCol(值)

設置的值itemCol

setMaxIter(值)

設置的值麥克斯特

setNonnegative(值)

設置的值非負

setNumBlocks(值)

設置兩個numUserBlocksnumItemBlocks特定值。

setNumItemBlocks(值)

設置的值numItemBlocks

setNumUserBlocks(值)

設置的值numUserBlocks

setparam(自我,\[、等級、麥克斯特、…))

ALS的設置參數。

setPredictionCol(值)

設置的值predictionCol

setRank(值)

設置的值排名

setRatingCol(值)

設置的值ratingCol

setRegParam(值)

設置的值regParam

setSeed(值)

設置的值種子

setUserCol(值)

設置的值userCol

()

返回一個MLWriter實例毫升實例。

屬性

α

blockSize

checkpointInterval

coldStartStrategy

finalStorageLevel

implicitPrefs

intermediateStorageLevel

itemCol

麥克斯特

非負

numItemBlocks

numUserBlocks

參數個數

返回所有參數命令的名字。

predictionCol

排名

ratingCol

regParam

種子

userCol

方法的文檔

清晰的 ( 參數:pyspark.ml.param.Param )→沒有

清除參數映射的參數是否被顯式地設置。

複製 ( 額外的:可選(ParamMap]=沒有一個 )→摩根大通

創建這個實例的副本具有相同uid和一些額外的參數。這個實現第一次調用參數。複製和then make a copy of the companion Java pipeline component with extra params. So both the Python wrapper and the Java pipeline component get copied.

參數
額外的 東西,可選

額外參數複製到新實例

返回
JavaParams

這個實例的副本

explainParam ( 參數:聯盟(str,pyspark.ml.param.Param] )→str

解釋一個參數並返回它的名字,醫生,和可選的默認值,用戶提供的字符串值。

explainParams ( )→str

返回文檔的所有參數選擇默認值和用戶提供的值。

extractParamMap ( 額外的:可選(ParamMap]=沒有一個 )→ParamMap

提取嵌入默認參數值和用戶提供的值,然後合並他們額外的值從輸入平麵參數映射,後者使用價值如果存在衝突,即。排序:默認參數值< <額外的用戶提供的值。

參數
額外的 東西,可選

額外的參數值

返回
dict

合並後的參數映射

適合 ( 數據集:pyspark.sql.dataframe.DataFrame,參數個數:聯盟[ParamMap、列表(ParamMap)元組(ParamMap),沒有一個)=沒有一個 )→聯盟(,列表(] ]

適合一個模型與可選參數的輸入數據集。

參數
數據集 pyspark.sql.DataFrame

輸入數據集。

參數個數 dict或列表或元組,可選的

一個可選的參數覆蓋嵌入參數的地圖。如果列表/元組的參數映射,這適用於每一個參數並返回一個列表的模型映射。

返回
變壓器或者一個列表變壓器

擬合模型(年代)

fitMultiple ( 數據集:pyspark.sql.dataframe.DataFrame,paramMaps:序列(ParamMap] )→迭代器(元組(int,] ]

適合一個模型為每個參數映射的輸入數據集paramMaps

參數
數據集 pyspark.sql.DataFrame

輸入數據集。

paramMaps collections.abc.Sequence

一係列的參數映射。

返回
_FitMultipleIterator

一個線程安全的iterable包含為每個參數映射模型。每次調用下一個(modelIterator)將返回(指數模型)模型是適合使用在哪裏paramMaps(指數)指數值可能不是連續的。

getAlpha ( )→浮動

得到α的值或其默認值。

getBlockSize ( )→int

得到的價值blockSize或其默認值。

getCheckpointInterval ( )→int

得到的價值checkpointInterval或其默認值。

getColdStartStrategy ( )→str

得到的價值coldStartStrategy或其默認值。

getFinalStorageLevel ( )→str

得到的價值finalStorageLevel或其默認值。

getImplicitPrefs ( )→bool

得到的價值implicitPrefs或其默認值。

getIntermediateStorageLevel ( )→str

得到的價值intermediateStorageLevel或其默認值。

getItemCol ( )→str

得到的價值itemCol或其默認值。

getMaxIter ( )→int

麥克斯特的價值或其默認值。

getNonnegative ( )→bool

得到的值非負或其默認值。

getNumItemBlocks ( )→int

得到的價值numItemBlocks或其默認值。

getNumUserBlocks ( )→int

得到的價值numUserBlocks或其默認值。

getOrDefault ( 參數:聯盟(str,pyspark.ml.param.Param(T]] )→聯盟(任何,T]

得到參數的值在用戶提供的參數映射或其默認值。如果沒有設置提出了一個錯誤。

getParam ( paramName:str )pyspark.ml.param.Param

通過它的名稱參數。

getPredictionCol ( )→str

得到的價值predictionCol或其默認值。

getRank ( )→int

獲得的價值等級或其默認值。

getRatingCol ( )→str

得到的價值ratingCol或其默認值。

getRegParam ( )→浮動

得到的價值regParam或其默認值。

getSeed ( )→int

種子的價值或其默認值。

getUserCol ( )→str

得到的價值userCol或其默認值。

hasDefault ( 參數:聯盟(str,pyspark.ml.param.Param(任何]] )→bool

檢查是否一個參數有默認值。

hasParam ( paramName:str )→bool

測試這個實例包含一個參數是否與給定名稱(字符串)。

isDefined ( 參數:聯盟(str,pyspark.ml.param.Param(任何]] )→bool

檢查參數是否由用戶或顯式地設置一個默認值。

收取 ( 參數:聯盟(str,pyspark.ml.param.Param(任何]] )→bool

檢查參數是否由用戶顯式地設置。

classmethod 負載 ( 路徑:str )→RL

從輸入路徑,讀取一個毫升實例的快捷方式read () .load(路徑)

classmethod ( )→pyspark.ml.util.JavaMLReader(RL]

返回一個MLReader這個類的實例。

保存 ( 路徑:str )→沒有

這個毫升實例保存到給定的路徑,一個快捷方式的“寫().save(路徑)。

( 參數:pyspark.ml.param.Param,價值:任何 )→沒有

設置一個參數嵌入參數映射。

setAlpha ( 價值:浮動 )pyspark.ml.recommendation.ALS

設置的值α

setBlockSize ( 價值:int )pyspark.ml.recommendation.ALS

設置的值blockSize

setCheckpointInterval ( 價值:int )pyspark.ml.recommendation.ALS

設置的值checkpointInterval

setColdStartStrategy ( 價值:str )pyspark.ml.recommendation.ALS

設置的值coldStartStrategy

setFinalStorageLevel ( 價值:str )pyspark.ml.recommendation.ALS

設置的值finalStorageLevel

setImplicitPrefs ( 價值:bool )pyspark.ml.recommendation.ALS

設置的值implicitPrefs

setIntermediateStorageLevel ( 價值:str )pyspark.ml.recommendation.ALS

設置的值intermediateStorageLevel

setItemCol ( 價值:str )pyspark.ml.recommendation.ALS

設置的值itemCol

setMaxIter ( 價值:int )pyspark.ml.recommendation.ALS

設置的值麥克斯特

setNonnegative ( 價值:bool )pyspark.ml.recommendation.ALS

設置的值非負

setNumBlocks ( 價值:int )pyspark.ml.recommendation.ALS

設置兩個numUserBlocksnumItemBlocks特定值。

setNumItemBlocks ( 價值:int )pyspark.ml.recommendation.ALS

設置的值numItemBlocks

setNumUserBlocks ( 價值:int )pyspark.ml.recommendation.ALS

設置的值numUserBlocks

setparam ( 自我,\ *,排名= 10,麥克斯特= 10,regParam = 0.1,numUserBlocks = 10,numItemBlocks = 10,implicitPrefs = False,α= 1.0,userCol = "用戶",itemCol = "項目",種子=沒有,ratingCol =“評級”,非負= False,checkpointInterval = 10,intermediateStorageLevel = " MEMORY_AND_DISK ",finalStorageLevel = " MEMORY_AND_DISK ",coldStartStrategy = "南",blockSize = 4096 )

ALS的設置參數。

setPredictionCol ( 價值:str )pyspark.ml.recommendation.ALS

設置的值predictionCol

setRank ( 價值:int )pyspark.ml.recommendation.ALS

設置的值排名

setRatingCol ( 價值:str )pyspark.ml.recommendation.ALS

設置的值ratingCol

setRegParam ( 價值:浮動 )pyspark.ml.recommendation.ALS

設置的值regParam

setSeed ( 價值:int )pyspark.ml.recommendation.ALS

設置的值種子

setUserCol ( 價值:str )pyspark.ml.recommendation.ALS

設置的值userCol

( )→pyspark.ml.util.JavaMLWriter

返回一個MLWriter實例毫升實例。

屬性的文檔

α =參數(父母=‘定義’,name =“阿爾法”,醫生=α為內隱偏好)
blockSize =參數(父母=‘定義’,name = ' blockSize ', doc = '疊加輸入數據塊大小的矩陣。數據分區內堆放。如果超過剩餘的數據塊大小調整一個分區那麼這個數據的大小。)
checkpointInterval =參數(父母=‘定義’,name = ' checkpointInterval ', doc = '設置檢查點間隔(> = 1)或禁用檢查點(1)。例如10意味著緩存將檢查點每10迭代。注意:此設置將被忽略,如果目錄沒有設置檢查站SparkContext。”)
coldStartStrategy =參數(父母=‘定義’,name = ' coldStartStrategy ', doc = "戰略應對未知或新用戶/項目預測時間。這可能是有用的在交叉驗證或生產場景中,用於處理用戶/項目id模型並沒有出現在訓練數據。支持價值觀:‘南’,‘降’。”)
finalStorageLevel =參數(父母=‘定義’,name = ' finalStorageLevel ', doc = StorageLevel ALS模型因素。)
implicitPrefs =參數(父母=‘定義’,name = ' implicitPrefs ', doc =“是否使用內隱偏好”)
intermediateStorageLevel =參數(父母=‘定義’,name = ' intermediateStorageLevel ', doc = " StorageLevel中間數據集。不能‘沒有’。”)
itemCol =參數(父母=‘定義’,name = ' itemCol ', doc = '列名稱條目id。id必須在整數值範圍之內。”)
麥克斯特 =參數(父母=‘定義’,name =“麥克斯特”,醫生=“馬克斯(> = 0)的迭代次數。)
非負 =參數(父母=‘定義’,name =“非負”,醫生=“是否使用非負約束的最小二乘)
numItemBlocks =參數(父母=‘定義’,name = ' numItemBlocks ', doc =項目塊的數量)
numUserBlocks =參數(父母=‘定義’,name = ' numUserBlocks ', doc =用戶模塊的數量)
參數個數

返回所有參數命令的名字。默認實現使用dir ()所有的屬性類型參數

predictionCol =參數(父母=‘定義’,name = ' predictionCol ', doc =預測列名稱。)
排名 =參數(父母=‘定義’,name =“排名”,醫生=秩的分解)
ratingCol =參數(父母=‘定義’,name = ' ratingCol ', doc =“列名為評級”)
regParam =參數(父母=‘定義’,name = ' regParam ', doc =“正則化參數(> = 0)”。)
種子 =參數(父母=‘定義’,name =“種子”,醫生=“隨機種子。”)
userCol =參數(父母=‘定義’,name = ' userCol ',醫生為用戶id = '列名稱。id必須在整數值範圍之內。”)