学習メモ:機械学習、Reactについて

スポンサーリンク

関連が全くないけど、機械学習とReactについてザックリ学習した内容をメモ。

機械学習について

機械学習については、大きく教師あり/なしによって用途が分かれるらしい。大量のデータを分析することで精度が上がるけど、処理量が増えてしまうため、次元削減が大切、と。次元削減は、例えば身長と体重の2次元データからBMIという肥満度を表す1次元データに変換するようなイメージ。

教師あり学習

用途 概要 主なアルゴリズム 利用イメージ
回帰 過去の実績データを用いて未知の値を予測 線形回帰、ベイズ線形回帰 売上や株価の予測、機械の故障予測など
分類 与えられたデータを元に分類 k近傍法、ロジスティック回帰、決定木 迷惑メールフィルタ、手書き文字認識など

教師なし学習

用途 概要 主なアルゴリズム 利用イメージ
クラスタリング データの類似性を見つけ、与えられたデータをグループ化 k平均法、混合ガウスモデル 顧客情報の分析など
次元削減 データの特徴的傾向を残しながらデータ量を圧縮 主成分分析、特異値分析 顔認証、データの可視化など

その他(データの取り方次第)

用途 概要 主なアルゴリズム 利用イメージ
レコメンデーション 対象ユーザの嗜好を予測してオススメ商品を提示 協調フィルタリング ECサイトでの商品提案など

 

Reactについて

仮想DOMって何が良いの?とモヤモヤしていた点について、何となく腹落ちしたのでメモ。

近年はAjaxを使うことで「現在のDOMの状態」を気にする必要がある。Ajax以前は単純にボタンを押したら画面全体を更新していたのでDOMの状態なんて気にしなくて良かった。そこで、「昔のようにDOMの状態を気にせず画面を更新できないかな」という課題を解決するために考え出されたのが仮想DOMであり、それを利用するReact。Reactは何かイベントが発生すると、現在の状態は気にせずとりあえず一旦仮想DOMを作り直す。で、React内部で仮想DOMと現在のDOMとの差分を計算して、必要な箇所だけ更新してくれる。要は、開発する側からすると「欲しいDOMを作っておけば、現状を無視して更新してくれる」ってことらしい。

ただ、単純な処理なんかだとReactを使うよりjQueryの方が効率は良い。Reactが真価を発揮するのはある程度規模があって複雑な処理の場合、ってことかな。

 

コメント