pyspark ALS 简单总结

Pyspark 常见数据清洗和补全指令:

Dataframe

 

Df.select()

选取某列

Df.fillna(0)

用0补全所有na位

Df.filter(cond.)=Df.where(cond.)

按照cond.过滤df,相当于where

Df.groupby()

==SQL groupby

Df.drop()

删除某列

Df.columns

返回所有列名

Df.write.mode(“overwrite”).saveAsTable(‘name’)

保存df到表

Df.withColumn(name, df[column_name]/udf(df[column]))

增加一列,该列可以经过udf处理

Df.join(df_name,[on_column])

增加列

Df.union()

增加行

Df.count()

返回行数

Df.dictinct()(.count())

==SQL distinct

Df.persis() df.cache()

缓存该df

Df.agg(func(column_name))

聚合某列,指定运算方式 sum() avg()….

Df.column.alias(name)

更改某列别名

Df.randomSplit()

随机划分测试集

 

 

Udf

User define function

Udf(fun_name,return_type)

创建函数

 

 

 

Model

 

Als_model= mllib_rec.ALS.train(training_df, rank=  ,iterations= ,lambda=  ,seed=)

ALS显式反馈模型

其中 rank lambda iter为参数

rank 10-200

iter 10次左右

Als_model= mllib_rec.ALS.trainImplicit(training_df, rank=  ,iterations= ,nonegative= ,lambda=  ,seed= ,alpha= )

ALS隐式反馈模型

Alpha也是超参数

隐式模型没有评分

Als自带函数

model.recommendProductsForUsers(user_num, N)

该函数返回rdd,不是df

指定用户top-n 推荐items

Model.predict(user,item) (也可输入RDD的两列)

为对应user和items进行预测评分

Model.productFeatures

Model.userFeatures

物品因子矩阵

用户因子矩阵

这两个因子矩阵可以用来进一步计算用户的相似度和物品特征的相似度

ALS的输入 user 和items 都必须是数字,所以需要stringindexer来进行转换,再用indextostring还原

 

显示反馈模型损失函数

Pu,k 代表用户u与k大类的关系,qi,k 代表物品i与k大类的关系

隐式反馈模型损失函数

没有评分,所以替换了rui,pui代表偏好,仅记录0,1,cui记录置信程度,与交互频率成正比。 dui是交互次数,α是置信参数,需要调参

 

Evaluation

 

RMSE

开根号的MSE

SSE

误差平方和

MSE

均方误差 误差平方和基础上除以样本数量

 

你可能感兴趣的:(pyspark)