単回帰分析の再実装

## はじめに

42の課題で単回帰分析を実装したため、その際に見た記事などをまとめたいと思い書きました。

箇条書きのような感じでまとめているだけで、実際に単回帰分析の説明をするわけではないのでご了承ください。

私が作ったものはこちらにあります。

https://github.com/kotabrog/ft_linear_regression

また42の他の活動についてはこちらにありますので、42自体に興味がある方はぜひこちらもどうぞ。

https://note.com/kotabrog/n/n292c0b5ef071

## 前提知識

そもそも私は3年ほど機械学習関連の仕事をしているため、ある程度この分野については知識があります。

ですので、今回参考にした記事は、「あれ、こういうことをしたいときはどうやって書くんだっけな……」とか、「なんとなくわかるけどもうちょっと詳細が知りたいな……」という目的で探したものになります。

もしもっと網羅的に知りたい！ということでしたら、例えば私はこちらの書籍などで学んだので、気になるようでしたらぜひ。

https://www.amazon.co.jp/%EF%BC%BB%E7%AC%AC3%E7%89%88%EF%BC%BDPython%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0-%E9%81%94%E4%BA%BA%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B5%E3%82%A4%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%82%B9%E3%83%88%E3%81%AB%E3%82%88%E3%82%8B%E7%90%86%E8%AB%96%E3%81%A8%E5%AE%9F%E8%B7%B5-impress-top-gear%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B08LYWFPQ9?_encoding=UTF8&qid=1674573108&sr=8-1&linkCode=ll1&tag=kotabrog-22&linkId=965616f112dd266b891eec5ca97557cd&language=ja_JP&ref_=as_li_ss_tl

## 参考にした記事

### 単回帰分析とは

https://bellcurve.jp/statistics/course/9700.html

https://suugakuya.com/education_3.html

https://chayarokurokuro.hatenablog.com/entry/2020/01/22/190133

https://numpy.org/doc/stable/reference/generated/numpy.polyfit.html

### 勾配降下法

※今回の課題では勾配降下法を使う必要があったので使っていますが、単回帰分析の場合は解析的な方法（勾配降下法を使わない手法）の方がよいです多分。

https://qiita.com/YudaiSadakuni/items/ece07b04c685a64eaa01#:~:text=learn%2C%E6%B7%B1%E5%B1%A4%E5%AD%A6%E7%BF%92-,%E5%8B%BE%E9%85%8D%E9%99%8D%E4%B8%8B%E6%B3%95%E3%81%A8%E3%81%AF,%E3%81%AB%E5%8F%8E%E6%9D%9F%E3%81%95%E3%81%9B%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%99%E3%80%82

### 精度評価指標

https://funatsu-lab.github.io/open-course-ware/basic-theory/accuracy-index/

https://pystyle.info/ml-regression-criteria/

### pythonについて

#### csvの扱い（pandas）

https://note.nkmk.me/python-pandas-dataframe-values-columns-index/

https://note.nkmk.me/python-pandas-to-csv/

https://max999blog.com/python-pandas-is-numeric/#:~:text=pandas%E3%81%AEto_numeric%E3%81%A8notna,%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%80%82&text=errors%E3%81%ABcoerce%E3%82%92%E6%8C%87%E5%AE%9A,%E5%80%A4%E3%81%8CTrue%E3%81%AB%E3%81%AA%E3%82%8B%E3%80%82

https://note.nkmk.me/python-csv-reader-writer/

https://qiita.com/motoki1990/items/0274d8bcf1a97fe4a869

#### グラフの描画

https://qiita.com/KntKnk0328/items/5ef40d9e77308dd0d0a4

https://science-log.com/pc%E9%96%A2%E9%80%A3/%E3%80%90python%E3%80%91matplotlib%E3%81%A7%E3%82%B0%E3%83%A9%E3%83%95%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%80%90%E7%B7%8F%E3%81%BE%E3%81%A8%E3%82%81%E3%80%91/

https://python-academia.com/matplotlib-legend/

https://note.nkmk.me/python-numpy-arange-linspace/

#### import関連

https://fuji-pocketbook.net/selfmade-modules/

#### オブジェクトの保存(pickle)

https://myafu-python.com/syntax/library/pickle/#:~:text=pickle%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E6%96%B9,-pickle%E3%81%AF%E6%A8%99%E6%BA%96&text=%E5%88%9D%E3%82%81%E3%81%ABpickle%E3%82%92import,%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E4%BF%9D%E5%AD%98%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82&text=%E3%81%93%E3%82%8C%E3%81%A7python%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8,%E3%83%AA%E3%82%B9%E3%83%88%E3%81%8C%E6%A0%BC%E7%B4%8D%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82

https://www.fenet.jp/dotnet/column/language/7352/

#### コマンドライン引数

https://www.tech-teacher.jp/blog/python-commandline/

https://qiita.com/kzkadc/items/e4fc7bc9c003de1eb6d0

https://flat-leon.hatenablog.com/entry/python_argparse

#### 乱数

https://note.nkmk.me/python-random-randrange-randint/

#### 例外処理

https://uxmilk.jp/39845

#### 仮想環境

https://milestone-of-se.nesuke.com/app/python/venv-switch/

## おわりに

ということで本当に箇条書き程度ですが以上になります。

42の課題はこのように再実装系のものが多いのですが、最近は記事にする熱がちょっとだけあるので（ちょっとだからただの箇条書き）、また課題をクリアしたらまとめたいと思います。