質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

3回答

3992閲覧

機械学習、統計について

退会済みユーザー

退会済みユーザー

総合スコア0

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

5グッド

10クリップ

投稿2016/03/20 16:50

統計と機械学習に大変興味があり、これから勉強しようと考えています。

…が、数学は中高と赤点ギリギリで、
全くと言っていいほど、高度な計算はできません。

現状は、webアプリやCMSをphpで作る程度の事しかしないのであまり問題はないのですが、
統計や機械学習を利用するような企画もちらほら出始めており、
自分がやりたい分野ではあるので手を挙げたいのですが、
知識もないので提案もできなければ、制作もできません。

自分が最終的にやりたいこととしては、集計したデータを統計して今後の運用に役立つように
学習した情報からアドバイスを渡すようなwebアプリを作りたいです。
例えば、天気、曜日、祭祝日、売上、商品などのデータを蓄積しておいて、
今日何を売り出すべきか、何を仕入れるべきかなどをアドバイスするようなアプリです。

話は長くなりましたが、以下質問させて下さい。
1、統計や機械学習はpythonが人気とのことらしいですが、phpとは別にその辺りの言語を勉強しておいたほうがよろしいのでしょうか?おすすめの言語があれば教えて下さい。また、数学については1からやっていこうと思うのですが、やはり中学校レベルの数学から全て理解していくべきでしょうか?それともこの分野ならコレとコレを集中した方がいいという意見があれば教えて下さい。数A、数Ⅰとかの違いすらよくわかっていないです。

2、現在、限られたユーザー情報(ユニークじゃないものも含まれます)を元に、
DBから情報を絞り込んでいくようなシステムを作っていて、
ユーザー情報の各項目に重みをつけて、より信頼性の高いものを上位に表示させる内容
となっているのですが、重みを設定するのは人力で行っています。この重みつけを機械学習でできると知ったのですが、どのアルゴリズムを使うのかがわからないので、このアルゴリズムを使えばできるというのがあれば教えて下さい。そこから勉強始められればなとおもっています。

大変長くなりましたが、よろしくお願いします。

ps13zier, ykky, tatsuya6502, Tira, Xx_ann_pin_xX👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

機械学習の大きな頂として、PRML(Pattern Recognition and Machine Learning)が挙げられます。
リンク先は日本語版ですが、この本を理解するために、必要な数学は大きく2つ。
**線形代数学確率統計学**です。これらを理解していないと厳しいと言われます。

では、この2つの数学を学習するのにおすすめの書籍はというと下記の2つです。
解説のわかりやすさはもちろんのこと、プログラミングを意識した数学を学べるという点でもおすすめです。

これらの書籍で躓きながら、躓いたら理解していないところから学習するというつもりで学習されたら良いと思います。

これらを理解するころにはかなりの力になると思いますが、とっとと実装しながら身に着けたいということであれば、オライリー等から出ている機械学習の入門本から入ってもいいと思います。
ただ、突き詰めていくと結局、先に紹介した2つの数学を理解しているかどうかが問われるので、数学の勉強はコツコツでもやられた方がいいと思います。

おそらくレコメンドエンジンを作りたいということですよね?
顧客の集合を、各々の情報によってグループ分けするということであれば、クラスタリングという手法です。クラスタリング手法について詳しい解説のある入門本があれば、それで事足りるかもしれませんね。

※少し古いみたいですが、クラスタリングのスライドを見つけてきたので、シェアしてみます。
[slideshare id=7684979&doc=2-110420075909-phpapp01]

投稿2016/03/20 18:26

編集2016/03/20 18:40
Odacchi

総合スコア907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/21 03:15

ありがとうございます。早速参考の書籍購入しました。 線形代数と確率統計について理解を深めていければと思います。 ②のクラスタリングで調べたところ、自分がやりたいことは線形分類器?だとおもいます。 ありがとうございました。
guest

0

pythonのscikit-learnで機械学習をはじめられてはいかがでしょうか?
簡単に機械学習がはじめられます。

単にレコメンドエンジンを作りたいのであれば、集合地プログラミングの本があります(python)
でも、ググればjavaでもphpでもレコメンドエンジンの自作の仕方は今でています。

pythonを始められるのならば、実践機械学習システム、Pythonによるデータ分析入門の本が
よろしいかと思います。

投稿2016/03/21 05:55

gik

総合スコア152

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/03/21 13:26

ありがとうございます。 先ず、数学の方から勉強して、理解出来るところまで行ったらプログラムでより簡単に実行出来る方法を探そうと思います。
guest

0

すでに解決しているようですが、改めてコメントさせていただきます。

まず、1 についてですが、お考えの用途ですと Python を使えるようになっておくと便利だと思います。統計分析を行う代表的なソフト等としては Python、R、SAS などがありますが、それぞれで特徴が異なります。DBから情報を取り出す・加工するなどでしたら Python が最も親和性が高いかと思います。
また、数学についてですが、統計学や機械学習の分野ではデータをベクトルや行列として扱うため、手法の計算過程を理解するためにはやはり線形代数学の知識があると便利です。しかし、ベクトルや行列の演算以外の線形代数学の内容については不要でしたら飛ばしても大丈夫です。基本的には"行列・ベクトルの積", "固有値・固有ベクトル", "行列の分解"が分かれば良いと思います。なお、他の方がコメントされていた PRML ですが、確かにこれを理解できれば色々な分析をすることが可能ですし、そのためには確率論(確率分布などの性質や微積分を使った計算)ができることが望ましいのですが、目的の分析に対してはかなり高めのハードルだと思います。そこまでしなくてもデータから情報を取り出すことはできるので、優先順位は低めで良いと思います。

次に2についてですが、クラスタリングは"似ているユーザーをグループ化"する手法、線形分類器(統計学では"線形判別分析"といいます)は"グループが分かっているユーザーたちのデータからグループを分けるルールを見つける"手法であり、少々違うのかなと思います。個人的には回帰分析(信頼性=b1ユーザー情報1+b2ユーザー情報2+...というようなモデルを作る分析手法、b1,b2,...はデータに基づいて推定)が近いかと思います。(なお、回帰分析を理解するにも線形代数学の知識を要します)

以上、ご参考まで。

投稿2016/04/15 03:25

Victorian-Vat

総合スコア104

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/16 02:50

ありがとうございます。 >個人的には回帰分析… 今はまだ、そのあたりもよくわかっていませんので、今勉強中です。 自分の用途にあったものなのかどうかを、判別して利用できるようになれば楽しそうでうね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問