注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

机器学习导论 第八周作业 异常检测和协同过滤的推荐系统  

2011-12-14 00:22:04|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

Anomaly Detection异常检测  大概是根据“正态分布” 来事件发生的可能性,然后判断数据是否属于异常情况。 异常数据量比较小时,可以采用这个而不是 逻辑分类来做。还讲到了几种分布模型,不是很符合正态分布时,怎么变化到正态分布去。

 

Collaborative filtering 协同过滤   这个是另外一个比较有意思的东西了。之前在一本书上看到过,现在的“网站推荐系统”还是很多应用的。将达是怎么用协同过滤来预测用户对某个电影是不是感兴趣。

机器学习导论 第八周作业 异常检测和协同过滤的推荐系统 - widebright - widebright的个人空间

unction [J, grad] = cofiCostFunc(params, Y, R, num_users, num_movies, ...

                                  num_features, lambda)

%COFICOSTFUNC Collaborative filtering cost function

%   [J, grad] = COFICOSTFUNC(params, Y, R, num_users, num_movies, ...

%   num_features, lambda) returns the cost and gradient for the

%   collaborative filtering problem.

%

 

% Unfold the U and W matrices from params

X = reshape(params(1:num_movies*num_features), num_movies, num_features);

Theta = reshape(params(num_movies*num_features+1:end), ...

                num_users, num_features);

 

            

% You need to return the following values correctly

J = 0;

X_grad = zeros(size(X));

Theta_grad = zeros(size(Theta));

 

% ====================== YOUR CODE HERE ======================

% Instructions: Compute the cost function and gradient for collaborative

%               filtering. Concretely, you should first implement the cost

%               function (without regularization) and make sure it is

%               matches our costs. After that, you should implement the 

%               gradient and use the checkCostFunction routine to check

%               that the gradient is correct. Finally, you should implement

%               regularization.

%

% Notes: X - num_movies  x num_features matrix of movie features

%        Theta - num_users  x num_features matrix of user features

%        Y - num_movies x num_users matrix of user ratings of movies

%        R - num_movies x num_users matrix, where R(i, j) = 1 if the 

%            i-th movie was rated by the j-th user

%

% You should set the following variables correctly:

%

%        X_grad - num_movies x num_features matrix, containing the 

%                 partial derivatives w.r.t. to each element of X

%        Theta_grad - num_users x num_features matrix, containing the 

%                     partial derivatives w.r.t. to each element of Theta

%

 

 

%J =  0.5 .* sum (sum((( X * Theta'- Y ) .^2) .* R));

%J = 1/2 .* sum(sumsq((X * Theta' - Y) .* R));

%X_grad = ((X * Theta' - Y) .* R) * Theta;

%Theta_grad = ((X * Theta' - Y) .* R)' * X;

 

 

J = 1/2 .* sum(sumsq((X * Theta' - Y) .* R)) + lambda/2 * sum(sumsq(Theta)) + lambda/2 * sum(sumsq(X));

X_grad = ((X * Theta' - Y) .* R) * Theta + lambda * X;

Theta_grad = ((X * Theta' - Y) .* R)' * X + lambda * Theta;

 

% =============================================================

 

grad = [X_grad(:); Theta_grad(:)];

 

end


 
  评论这张
 
阅读(1075)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017