タグ

2022年1月12日のブックマーク (6件)

  • NMFでMovieLensのレコメンドを実装する - け日記

    前回の投稿( SVDでMovieLensのレコメンドを実装する - け日記 )に引き続き、今回はNMFで映画のレコメンドを実装します。 NMF 非負値行列因子分解(Non-negative Matrix Factorization: NMF)は、ある行列XをW・Hに近似的に分解する方法の一つです。その名の通り、各行列の要素は全て0以上となります。 SVDなどの行列分解では、負の値が現れることがあります。 しかし、実世界で使われる値(画素、頻度、評価値など)の多くは非負値で、分解した結果に解釈を与えるなど非負の性質を保ちたいケースもあります(負の画素値などは存在しませんし)。 そうした場合にNMFが使われるようです。 NMFでは、M×Nの行列Xを、N×kの行列Wとk×Mの行列Hに分解します。kはM,Nよりも小さな値が使われます。 未知のWとHを求めるために、Xとの距離を定義します。 ここでは

    NMFでMovieLensのレコメンドを実装する - け日記
    hirokist
    hirokist 2022/01/12
  • 非負値行列因子分解(NMF)をふわっと理解する - Qiita

    Pythonではじめる機械学習」のp.152以降に非負値行列因子分解(NMF)の説明があるのだけれど、説明が素っ気なさ過ぎてよく分からず、かといってググってみても「実装はかんたんだよ!」という説明はたくさんあるもののやっぱりよく分からなくてモヤモヤしていたところ、スパース表現による音響信号処理(PDF)という資料を見つけて雰囲気はわかったような気がするのでちょっとメモっておく。 非負値行列因子分解(NMF: Nonnegative Matrix Factorization) なにをやりたいのか 行列$X$を行列$W$と行列$H$の積で近似したい。 $$ X ≈ WH $$ ここで$X$は1つが$N$個の値からなる$p$個のデータをまとめて1つにしたような$N× p$行列で、これを分解するのだから$W$は$N$行でなければならないし、$H$は$p$列でなければならない。そして、$W$の列数

    非負値行列因子分解(NMF)をふわっと理解する - Qiita
    hirokist
    hirokist 2022/01/12
  • Python scikit-learnでNMF分解を行う - 追憶行

    非負値行列因子分解(NMF)とは、PCAと違って、第2成分以降が直交するベクトルではなく、すべてのベクトルが正の方向指す分析ベクトルとなる。 特徴量ごとにまとまりのあるデータに対しての特徴が掴みやすくなる。らしい。 元となる行列に近似する行列Yとなるような行列積XZのXの列数を、求める次元削減後の特徴量数となるよう計算する。 (Xの行数が元の行列の数、Zの列数が元の行列の列数となる) import mglearn mglearn.plots.plot_nmf_illustration() 左側の2componentsの場合、ベクトルが直行せずデータの特性に向けて方角が現れる。 例えば、顔画像の場合、顔が正面向きの成分、左向きの成分、右向きの成分や性別、歯が見えているかのベクトルなんかが現れてくる。はず。 顔画像の非負値行列因子分解 fetch_lfw_peopleは時間がかかるので注意。3

    Python scikit-learnでNMF分解を行う - 追憶行
    hirokist
    hirokist 2022/01/12
  • 単回帰分析:statsmodels OLS.summaryの各変数の意味|データサイエンス津津

    下記の仮説・モデルで単回帰分析(simple linear regression analysis)をしてみました。 仮説:足のサイズは身長に線形に比例する モデル:足のサイズ = 係数a×身長 + 定数b statsmodels内のOLS(Ordinary Least Squares)で分析しました。分散図。 result.summary()の結果が下記。(赤下線は筆者が追加) 結果より係数aは0.1480、係数bは0.1093。よって 足のサイズ = 0.15×身長 + 0.1 但し、分析結果の値について検証。あんまりよくない結果でした。残念。 (下の参考記事内に各項目詳細について詳しいコメントがあるので、是非参照下さい。どの記事もとても参考になります。) ・R-squared、Adj. R-squaredの二つの値がよく似ている。全然違っていると問題。但し、R-squaredの値が0

    単回帰分析:statsmodels OLS.summaryの各変数の意味|データサイエンス津津
  • Python(StatsModels) で重回帰分析を理解し、分析の精度を上げる方法

    こんにちは、データサイエンティストのたぬ(@tanuhack)です! 重回帰分析は『数字の予測』や『優先順位付け』に強く、ビジネスシーンにおけるデータ分析の中で、最も多用されている分析手法です。

    Python(StatsModels) で重回帰分析を理解し、分析の精度を上げる方法
  • 【python】PCAと非負値行列因子分解のバイプロットを見比べる - 静かなる名辞

    hirokist
    hirokist 2022/01/12