未分類ロジスティック回帰とは?理論とPython実装をチェック!フクロウ2018/7/172018/12/25この記事では、ビジネスの現場でも使われるデータ解析手法「ロジスティック回帰」を紹介します!この記事ではsciki-learnを使って最短経路でロジスティック回帰を試す方法をハンズオンで学んでいきたいと思います。名前は聞いたことがあるけど試したことはない、そんな方はこの記事で一緒にロジスティック回帰について学んでいきましょう。0.19で動作確認しました。まとめロジスティック回帰とはロジスティック回帰とは、例えば「その人の購入履歴」から、「この人が次にこの商品を買うかどうか」のような2値の予測を行うアルゴリズムです。ちなみに、このような予測したい変数のことを「目的変数」と呼びます。目的変数と説明変数(目的変数を説明する変数)についてはこの記事を参考にしてください。そのような「未来のデータを予測するアルゴリズム」のことを「回帰」と言ったりします。そのあたりの基礎から解説を丁寧にしてくださっているスライドを拝見しましたので、おすすめします。Sartreロジスティック回帰では予測モデルをシグモイド関数(ここではロジスティック関数と呼びます)で作成します。シグモイド関数(ロジスティック関数)は以下のような形になっています。function")plt.xlabel("x")plt.ylabel("y")このシグモイドの値が出力になるわけですが、実際にはこのlogisitic_functionの引数xに、説明変数と係数、バイアスなどを使った1次関数を渡します。ここでは簡単に試すのが目的なので、そのあたりついては解説をしませんが、また別の記事で書きたいと思います。scikit-learnで試すではロジスティック回帰をscikit-learnで試してみましょう。二つのクラスを持つデータセットを使って、教師データで学習してテストデータの(クラス)ラベルを予測する問題を行います。ライブラリのimport上でimportしたライブラリに追加して、以下のものをimportします。LRimportの内訳は以下の通り。Numpy行列計算matplotlibプロットpandasデータの読み込みや整形、それと可視化sklearn.datasets今回使うデータのダウンロードsklearn.model_selection.train_test_split教師データとテストデータの分割sklearn.linear_model.LogisticRegressionロジスティック回帰の入っているモジュールLogisticRegressionは長いので、LRとあだ名をつけました。データの読み込みロジスティック回帰を試すための学習・テストに使うデータを読み込みましょう。sklearnのデータセットの中にbreast-cancerという乳がんデータセットがあるので、これを使って試します。データを読み込んでみましょう。cancer.targetdf.head()このスクリーンショットは変数が多すぎて読めないかもしれません。ご自分のpcでコードを実装して試してみてください!また、labelの中身を確認します。出力結果{0,1}このデータのラベルが2つしかないことがわかりますね。データの分割では読み込んだデータを教師・テストに分割しましょう。random_state=1234)テストデータを2割、残りを教師データとして分割しました。この関数はデフォルトでデータをシャッフルしてくれるので、これ以上の操作は不要です。以下の流れで学習させます。warm_start=False)これで学習ができました。このclfインスタンスのpredictメソッドにテストデータを渡すと、そのテストデータに対する予測ラベルが出てきます。0])また、学習の結果の評価を確認するにはscoreメソッドを使います。教師データを使った正解率0.9560439560439561教師データが高い性能になるのはある程度必然なので、テストデータの方を見てみましょう。テストデータを使った正解率0.9473684210526315悪くない値ですね。これでロジスティック回帰の試し方の解説は終わりです!もっと深く学ぶにはロジスティック回帰やその他のデータ解析手法について学びたいならば、書籍やオンライスクールがおすすめです。使ってみたい!というだけならWeb上の記事でも十分勉強できますが(ロジスティック回帰は非常に知名度が高いので、様々な入門記事があります)、前提知識が無いと独学は難しいと思います。この記事でも、Pythonが書けてscikit-learnがインストールできることを暗黙のうちに前提にしていました。基礎から、例えば「Pythonってどうやってインストールすればいいの?」という方が「ビジネスの現場で役立つデータ解析方法を最短で学びたい」と思ったならば、侍エンジニア塾のマンツーマンレッスンがおすすめです。侍エンジニア塾とは?詳細はこちらから仕事に役立つようなデータ解析手法の習得を3ヶ月や6ヶ月の期間、インストラクターとマンツーマンで勉強できます。考えてみて下さい!まとめこの記事ではロジスティック回帰について紹介しました。ロジスティック回帰はアルゴリズムのシンプルさ、経営者層まで広く知られているほどの認知度から、ビジネスの現場で大活躍です。自分で1から実装するのは難しいですが、scikit-learnなら手軽に使うことができるので、是非実際のデータで使ってプレゼンなどに役立ててください!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。無料体験レッスンを予約する書いた人フクロウ第一言語はPythonです。皆さんRustやりましょう。