機械学習関連のことを調べてみた2019年10月30日

NO IMAGE
目次

statsmodelsによる線形回帰の理解

StatsmodelsはPythonというプログラミング言語上で動く統計解析ソフトです。statsmodelsのサンプルを動かすにはPCにPythonがインストールされていることが必要です。まだインストールされていない方は[Jupyter notebookのインストール](https://qiita.com/innovation1005/items/2f433d6d859f075033a7)を参照してください。Jupyter notebookはstatsmodelsを動かすのに大変便利です。

多くの部分は[statsmodelsのリファレンス](https://www.statsmodels.org/v0.10.0/regression.html)を参考(翻訳)にしています。

# 線形回帰モデル

独立同一に分布する誤差と分散不均一性、または自己回帰モデルにしたがう誤差の場合の線形回帰モデルは

|日本語|statsmodels|
|:-:|:-:|:-:|
|一般最小二乗法|OLS|
|加重最小二乗法|WLS|
|一般化最小二乗法|GLS|
|再帰的最小二乗法|Recursive

元記事を表示

遺伝的アルゴリズム(GA)で勉強計画立ててみた

# スケジュールがめんどくさい
[1440分の使い方](https://www.amazon.co.jp/1440%E5%88%86%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9-%E2%94%80%E2%94%80%E6%88%90%E5%8A%9F%E8%80%85%E3%81%9F%E3%81%A1%E3%81%AE%E6%99%82%E9%96%93%E7%AE%A1%E7%90%8615%E3%81%AE%E7%A7%98%E8%A8%A3-%E3%82%B1%E3%83%93%E3%83%B3%E3%83%BB%E3%82%AF%E3%83%AB%E3%83%BC%E3%82%BA-ebook/dp/B074GWMRFC
)という本は知っているだろうか?
一日の時間の使い方を説いた名著であり,僕はとても感銘を受けた.
本の内容については読んでくれ,Amazon Prime会員であれば無料で読めるのでぜひ.

この本に感銘を受け,僕は1日のスケジュールを毎日30分単位で作成していた.
一か月これを続け,その間はとても効率よく課題や勉強が進んだ.
効果

元記事を表示

リッジ回帰と線形回帰を俺なりに考えてみた

データ分析でもたまに出る回帰手法、線形回帰とリッジ回帰についておれなりに考えてみた

とりあえずいつもの MachineLearningFromScratch にまとめてみたんご

https://github.com/yoyoyo-yo/MachineLearningFromScratch

– 線形回帰 => https://github.com/yoyoyo-yo/MachineLearningFromScratch/blob/master/Descriptions/README_LinearRegression.md
– リッジ回帰 => https://github.com/yoyoyo-yo/MachineLearningFromScratch/blob/master/Descriptions/README_RidgeRegression.md

## まとめたのはこんなもの

– アルゴリズム … 学習の中身を知ってる人って意外と少ないのでは? pythonで1から実装して、sk-learnみたいに使える実装に落とし込んでみた
– 重要度 … パラメータの大きさか

元記事を表示

G検定メモ⑨ 機械学習の代表的な手法編

G検定の勉強中にメモした走り書きを公開するよ。
なんか機械学習の手法をまとめたメモがいくつもあるんだけど、どんだけ機械学習の手法を理解できなかったんだって話だよね。
やばたん

———————————————————————

#教師あり学習の代表的な手法

・最近傍法 ニアレストネイバー法
最も近い
近接データのカテゴリは同じと言う考え方
単純なのでノイズに弱い

・ナイーブベイズ法
ベイズの定理を用いる
データの特徴ごとに、どのカテゴリに当てはまるのかを確立で表現する
それを掛け合わせた結果に基づいて判断する
全カテゴリ中「与党」と言う単語が含まれる確率
政治カテゴリ中「与党」と言う単語が含まれる確率
スポーツカテゴリ中「与党」と言う単語が含まれる確率
一番確率が高いカテゴリに割り振る

・決定木
ある属性が特定の条件を満たすか否かで分ける
性格判断で使われているのと同様の手法
与党を含む y or n
与党を含む y のなかで、国会を含む y or n

元記事を表示

G検定メモ③ 機械学習編 ②と重複もある

機械学習の概要(種類と課題と手法)

機械学習の種類は3つある
 1.教師あり学習
 2.教師なし学習
 3.教科学習

機械学習の課題も3つある
 1.回帰問題
 2.分類問題
 3.クラスタリング

機械学習の代表的な手法
1.教師あり学習での手法

 ①線形回帰(回帰問題)・・・ラッソ回帰
               リッジ回帰
  回帰直線を求めることで、入力データから出力の値を予測する。
  回帰問題に使用する。

 ②ロジスティック回帰(分類問題)
  二つに分類するとき・・・シグモイド関数
  多数に分類するとき・・・ソフトマックス関数
  離散しているデータを分類するために使用する。
  分類問題に使用する。

 ③ランダムフォレスト
  複数のモデルを一気に並列に作成する(バギング)
  ブートストラップサンプリングを用いる
  →アンサンブル学習、バギング
  

 ④ブースティング
  複数のモデルを逐次的に作成する(ブースティング)
  バギングは並列のブースティングは逐次的
  AdaBoost、勾配ブースティング(gradient boosting),Xg

元記事を表示

G検定メモ② 機械学習編

G検定を受ける前に、公式テキストを読んでメモした走り書きがあったので公開するよ。
受験前にザーッと読んでおさらいしてね。

【機械学習の 学習方法 】
は3種類
・教師あり学習
  正解付きデータから学習する
・教師なし学習
  入力データそのものからその構造や特徴を学習する
・教科学習
  報酬を定義して、それを最大化するように学習する
・半教師あり学習
 教師あり・なし学習の組み合わせによって学習する。

【機械学習の解く 課題 】
は3種類
・回帰
 ある数値から、連続値を予想する問題
・分類
 ある入力から、そのラベルを予想する物 
・クラスタリング
 ある入力を、いくつかのグループに分類する事

【教師あり学習のモデル】
1.線形回帰モデル
 データの関係性を直線で表す手法
 例 住宅価格を部屋数から予測する

2.非線形回帰モデル
 回帰を解くモデル
 データの関係性を曲線で表す手法
 株価データなど直線で表現するには限界があるもの

3.K近傍方(KNN)
 分類問題を解くモデル
 ある入力から、特徴が似ている順にK個のデータを選択し、
 最も多く取得されたクラスへ分

元記事を表示

[ゼロから作るDeep Learning]自作ニューラルネットワークの学習機能使い方

#はじめに
この記事は**ゼロから作るディープラーニング 5章ニューラルネットワークの学習**を自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。

#自作ニューラルネットワークに実際に学習させてみた
前回フレームワークなどを使わずにニューラルネットワークを実装し、完成させました。
今回は、前回作ったニューラルネットワークに学習をさせたいと思います。

**学習の手順**

**1,** 学習データの数が多い為サンプリングして量を減らす(ミニバッチ処理)

“`python
#ミニバッチ取得
batch_index = np.random.choice(train_size, batch_size)#サンプルのインデックス取得
x_batch = x_train[batch_index]# 入力データのサンプルを変数に入れる
t_batch = t_train[batch_index]# 正解データのサンプルを変数に入れる
`

元記事を表示

デレステのセリフからタイプを自動で判定する

   
みなさんはデレステというゲームをご存知ですか。私はよく知りませんが、今回はこのゲームに登場するキャラクター(アイドル)のタイプを分類するというタスクを扱いたいと思います。なお、この記事で利用したコードの全体は
https://github.com/yotapoon/deresute/tree/master
に掲載しています。また「ゼロから始めるディープラーニング2」のモジュールをいくつか利用しています。以下のURLのch04とcommonというディレクトリをインポートすれば動くはずです。
https://github.com/oreilly-japan/deep-learning-from-scratch-2
ただ具体的な実装を示した文書分類の良い記事がすでにたくさんあるため、そこは上述のコードを参考にしてもらうことにしてここでは詳しく説明しません。今回は解析結果や考察にフォーカスすることとします。

# 0 概要
今回の記事の概要を述べます。
## 0.1 デレステとは
アイドルマスターシンデレラガールズ スターライトステージ(以下デレステ)には、アイドルとしてたくさんのキャ

元記事を表示

[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく⑤~カーネル法を用いた分類の実装~

#はじめに
今回は前回の記事の続きなります。

よろしければ以下の記事もご覧ください。

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく①~理論と数式編~](https://qiita.com/renesisu727/items/1cf367d17b46237f9c7a)

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく②~ラグランジュの未定乗数法~](https://qiita.com/renesisu727/items/26fc3df7bc0d464867d5)

[ [機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく③~カーネル法について~](https://qiita.com/renesisu727/items/1c6014c909202ff089f3)

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく④~ソフトマージンとハードマージンの実装~](https://qiita.com/renesisu727/it

元記事を表示

Scalaで機械学習(1)

# はじめに
基本的に機械学習はPython、データクレンジングとかはRでやってるんですけど、Scalaとかで開発してる企業だったらJVM上で機械学習できたら便利なんかなってなって調べたらbreezeってライブラリあるみたいです、ちょっといじってみたのでその備忘録ってことで。
github -> https://github.com/scalanlp/breeze

# セットアップ
scalaとsbtは入ってる前提としますね。

“`
scala := 2.10.3
sbt := 0.1.0
“`

一応僕はこんな感じです。
とりあえずテスト用のディレクトリを作ります。そしたら直下にbuild.sbtファイルを作成してください。コードは以下です。

“`
$ mkdir BreezeTest
$ cd BreezeTest
$ touch build.sbt
“`

できたらbuild.sbtに以下を記述してください。(バージョンとか同じだったらコピペで大丈夫なはずです)

“`
name := “scalanlp-usage”

version := “0.1.0”

s

元記事を表示

MAP推定を勉強した

MAP推定を勉強した時のめも

# 使う確率
– Aの確率 
$ P(A) = \theta$
– Aに関して事前に知ってる知識(事前確率) 
$P(\theta)$
– 観測したデータの尤度 
$P(X|\theta)$
– 事後確率 
$P(\theta|X)$

# MAP推定とは
– 事後確率が最も高くなるような $\theta$ を見つける

$P(A) = \theta = argmax_\theta P(\theta|X)$
$= argmax_\theta \frac{P(\theta) P(X|\theta)}{P(X)}$
$= argmax_\theta \frac{P(\theta) P(X|\theta)}{\sum P(\theta)P(X|\theta)}$
$= argmax_\theta P(\theta) P(X|\theta)$

# 参考
– [具体例付きでわかりやすいスライド](http://www.phontron.com/slides/nonparametric-tutorial-ja-1.pdf)

元記事を表示

中小企業が機械学習を導入する、その前に

### はじめに
最近、機械学習の勉強をしたので、思ったことをまとめてみます。
主観的な部分が多々ありますが、特に中小企業に対する導入への意見が主です。

### 1. 機械学習の導入
クライアントから**機械学習やAIを使ったシステムの導入を提案してほしい**などの依頼があることがあります。

大抵の中小SIerは、機械学習などの経験はなく、途方に暮れることも多いでしょう。
機械学習を導入するためには何が必要なのか、どういった覚悟が必要なのか、そういった観点でまとめました。

### 2. データが大量に必要
機械学習には大量のデータが必要です。
データも何も揃ってないのに、役員の鶴の一声でよくわからない機械学習がスタートすることがありますが、
そのほとんどが失敗していると思います。

##### :file_folder: データを集める
まず、データを集める必要がありますが、一朝一夕にデータは集まりません。
また、データの取り方も重要です。コピーしたような同じデータをたくさん集めても意味がありません。
なるべく同一の者の多くのパターンを集めることが重要です。

数年かけてデータを

元記事を表示

[機械学習]初心者に向けてアヤメ分類を一から解説してみた

こんにちは。ひろちょんです。

**機械学習**を始めたばかりの初心者が、様々な記事を参考にしつつ**アヤメ分類**をしてみます。
説明を加えながら書いていくので、是非参考にしてみてください!

↓記事を読む前に筆者について知りたい方へ↓
[>>>詳しいプロフィールはコチラ](https://heacet.com/about-me/)

~目次です~
1. [対象読者とか書いてみる](#h-jump1)
2. [《Google colaboratory》で進めていきます](#h-jump2)
3. [色々とimportしていく](#h-jump3)
  ・[オートパイロット状態でimportする奴](#h-jump31)
  ・[scikit-learnの様々な機能をimport!!](#h-jump32)
4. [アヤメのデータセットをじっくり見ていく](#h-jump4)
  ・[インスタンスを生成](#h-jump41)
  ・[アヤメデータはどうなってるの?](#h-jump42)
5. [Pandasを用いてデータを分かりやすくする](#h-jump5)
  ・[配列をDat

元記事を表示

[ゼロから作るDeep Learning]学習機能を実装したニューラルネットワークの実装

#はじめに
この記事は**ゼロから作るディープラーニング 5章ニューラルネットワークの学習**を自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。

#学習機能を実装したニューラルネットワーク
今回は分類問題を解く専用の学習機能付きニューラルネットワークのクラスを実装して行きたいと思います。

今回の実装の流れを簡単に説明します。

**1,** インスタンス変数でパラメータとハイパーパラメータを実装

**2,** 予測データを出力するニューラルネットワークの処理を行うクラスメソッド**predict**の実装

**3,** ニューラルネットワークから損失関数までの処理を行うクラスメソッド**loss**の実装

**4,** 予測データの正答率を出すメソッド**accuracy**の実装

**5,** 学習を行うための**勾配式**を実装

#1, インスタンス変数でパラメータとハイパーパラメータを実装

“`pyth

元記事を表示

【ベイズ深層学習】Pyroでベイズニューラルネットワークモデルの近似ベイズ推論の実装

今回は,確率的プログラミング言語[『Pyro』](https://pyro.ai/)を使って2層ベイズニューラルネットワークモデルに対して変分推論(平均場近似),ラプラス近似,MCMC(NUTS)の3つの手法を試してみました.
[『ベイズ深層学習』](https://www.kspub.co.jp/book/detail/5168707.html)第5章5.1節の図5.2のデータを使います.

# 環境
Python 3.7.5
PyTorch 1.3.0
Pyro 0.5.1

# ソースコード
今回のソースコードはGitHub上([こちら](https://github.com/sig-kdy/Blog/tree/master/src/BNN))に上げました.

# ベイズニューラルネットワークモデル
入力の次元を$H_{0}$, 出力の次元を$D$とするデータ集合$\mathcal{D} = \\{ \mathbf{x}\_n, \mathbf{y}\_n \\}_{n = 1}^{N}$が与えられたとします.ただし,データは$\mathcal{i.i.d}$であると仮定します.

元記事を表示

[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく④~ソフトマージンとハードマージンの実装~

#はじめに
今回の記事は前回の記事の続きになっています。

よろしければ以下の記事もご覧ください。

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく①~理論と数式編~](https://qiita.com/renesisu727/items/1cf367d17b46237f9c7a)

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく②~ラグランジュの未定乗数法~](https://qiita.com/renesisu727/items/26fc3df7bc0d464867d5)

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく③~カーネル法について~](https://qiita.com/renesisu727/items/1c6014c909202ff089f3)

#分類問題:ハードマージン
線形分離可能なデータを分離するsvmを実装していきます。

用いるデータはiris(アヤメ)データセットです。

##iris(アヤメ)データセットについて
ir

元記事を表示

機械学習の概要(教師あり学習・教師なし学習)

こんにちは

今日から機械学習の勉強を始めようと思います。勉強したことを後から見返せるようにまとめたいと思います。
#機械学習とは
機械学習という言葉にはいくつかの定義があります。アーサー・サミュエルが1959年に一般紙に対するインタビューとして「明示的にプログラミングすることなく、コンピュータに学ぶ能力を与えようとする研究分野」と定義しました。また、トム・M・ミッチェルは、さらに厳格な定義として「コンピュータプログラムが、ある種のタスクTと評価尺度Pにおいて、経験Eから学習するとは、タスクTにおけるその性能をPによって評価した際に、経験Eによってそれが改善されている場合である」としました。

例えば、あなたが天気予報をしたいとします。このとき「ある種のタスクT」とは「天気を予測する」ということであり、「評価尺度P」とは「その天気予報がどれほど正確であったかを評価する基準」、「経験E」とは、実際の気象データとなるでしょう。

つまり、機械学習とは「ある課題を達成するための具体的な指示がなくても、推論やパターンを使ってコンピュータがその課題を解決してくれるアルゴリズム」であると言えるでし

元記事を表示

League of Legends APIを使って機械学習をやってみる2

#今回の目的
前回は1つのゲームについてどんな情報が記録されているかを確認しました。
機械学習をやるためには大量のゲームデータが必要になので今回はこのゲームデータを入手します。

#方針
前回は以下のコマンドでゲームデータを取得しました。
`watcher.match.by_id(my_region,210876606)`
「210876606」はゲームごとに与えられているIDでこれが大量に欲しいのですが、APIで直接このIDを手に入れる手段がありませんでした。
そのため、ユーザーの過去マッチからIDを入手→各IDのゲームに参加していたユーザーをリストに追加→ユーザーリストの過去マッチからゲームIDを入手。という形でゲームIDを入手します。

#手順

モジュールのインストール

“`python
from riotwatcher import RiotWatcher, ApiError
watcher = RiotWatcher(‘APIキー’)
#リクエストの待機用
import time
#ローカルへの保存用
import pickle
#保存したファイルリストの呼び出し用

元記事を表示

[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく③~カーネル法について~

#はじめに
今回はサポートベクトルのカーネル法についてまとめていきたいと思います。

よろしければ前回の記事もご覧ください。

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく①~理論と数式編~](https://qiita.com/renesisu727/items/1cf367d17b46237f9c7a)

[[機械学習]サポートベクトルマシン(SVM)について、できるだけ分かりやすくまとめていく②~ラグランジュの未定乗数法~](https://qiita.com/renesisu727/items/26fc3df7bc0d464867d5)

##カーネル法について
それではカーネル法について解説していきます。

ここで、Wikipediaからの引用を見ていきましょう。

>カーネル法(カーネルほう、英: kernel method)はパターン認識において使われる手法の一つで、 判別などのアルゴリズムに組み合わせて利用するものである。よく知られているのは、サポートベクターマシンと組み合わせて利用する方法である。
パターン認識の目的は

元記事を表示

急騰する株・銘柄を予想する人工知能を作った話

![hit_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49481/d5a4997f-3360-c8cd-8787-de4ba12f5d79.png)

# まえがき
上昇する株(銘柄)を事前に検知する人工知能を作りました。
将来の急騰を予想して『マグニチュード』として検知結果を提供します。

上記画像の**赤線がマグニチュード**です。
ご覧の通り**5/13**にマグニチュード**10.44**を検知後、予想が的中して株価が上昇しているのがわかると思います。

アルゴリズムは長年苦労して研究開発した国家機密なので言えませんが、
深夜で暇なのでこの開発で感じた成功の秘訣?を偉そうに書いてみようかなと思います。
不快に思う言葉遣いもありますがご了承ください。

# 的中精度
### 何を持って的中とするか
以下2点を事前検知することを主な機能としています。
●マグニチュード検知日から**10日以内に検知日基準で10%上昇**
●マグニチュード検知日から**3日以内に前日比3%急騰**
(あくまで

元記事を表示

OTHERカテゴリの最新記事