関連が全くないけど、機械学習と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が真価を発揮するのはある程度規模があって複雑な処理の場合、ってことかな。
コメント