0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サーバエンジニアにも、わかりやすく機械学習の教師あり学習(Supervised Learning)を理解してみた1

0
Last updated at Posted at 2020-05-19

教師あり学習(Supervised Learning)とは

例えば、あなたの年収を予測しましょう。
結果として、500万以上か以下かが判定できるAIです。

予測するために、いくつか情報をもらいます。
今回は以下にしましょう

  • 年齢
  • 教育年月
  • どのぐらい働いているか(週)
  • 500万超えているか

これらを条件に予想します。
予測の仕方は色々ありますが、今回は

ロジスティック回帰という予測方法を使ってみます。
ロジスティック回帰は、クラスを分類するという予測ができる仕組みです。

ではそれをpythonで描いてみます

//引数の説明
////C 精度の変化をさせる(数字が大きいほど、あまり細かいことにとらわれずに答えを算出する)
////max_iter 最大反復回数(計算しすぎて、ループが多くならないように的な最大値指定)
////random_state   乱数を使うか使わないか、何か思った通りじゃない?など感じた時に使う(整数だと同じ値が返ってくる)
lr = LogisticRegression(C=1000.0, max_iter=100, random_state=0)
lr.fit("年齢,教育期間,労働時間 の行列データ"), column_or_1d("評価行"))

例えばこんな感じのデータがあったとする

年齢 教育期間 労働時間 収入500超え
30 JPN 12 40 0
15 USA 9 80 1
26 JPN 9 40 0
65 JPN 9 40 1

これで元データは、揃ったことなる

データを食べさせます。
そして予想を立てます

train_pred = lr.predict("年齢,教育期間,労働時間 の行列データ")

//scoreは精度になります。
lr.score("年齢,教育期間,労働時間 の行列データ",column_or_1d("評価行"))

なのでこの場合、scoreが1を超えれば、500万を超えたことになります
個別の値をチェックするには、以下みたいな値を設定する
例ととしては)
30歳、教育機関:16年、週40時間の場合

yhat = lr.predict(np.array([[30, 16, 40]]))[0]

print( yhat)
print('あなたの年収は 500 万' + ('以下です' if yhat == 0 else '以上です'))

機械学習が導き出した答えは、以上という答えでした。

要約すると

流れを要約すると、

  • ロジスティック回帰使うよ
  • fitして
  • scoreを出して、どのような結果が返ってきているかをみて、確認して
  • predictで欲しかった値が何になるかを取得する

になります

あとがき

今回やったのは、とりあえず機械学習をやってみたというのが、趣旨で
これを知っておくと、じゃあ、もっと精度をあげるにはという所に自ずと向いてくると
思います。それはまた別の記事で書きたいと思います。

細かい文法などは今回触れていないのでそれも別の記事になると思います(気が向けば)

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?