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

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

新規登録して質問してみよう
ただいま回答率
85.47%
機械学習

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

Q&A

2回答

580閲覧

機械学習を用いて一次関数と二次関数と三次関数を区別するプログラムを作成するには

nanonano

総合スコア4

機械学習

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

0グッド

1クリップ

投稿2019/12/18 04:35

高校生です。
ディープラーニングを扱ってみたいと強く思ったため質問いたしました。

プログラミング等はあまり詳しくないですが、ディープラーニングに興味があり、ディープラーニングを扱
う第一段階として一次関数と二次関数と三次関数を区別するプログラムを作成したいと考えています。

現在パイソンを動かせる状況下にはないのでGoogleColaboratoryを用いて、一次、二次、三次関数はエクセル上で作成するつもりです。

上記のようなプログラムを作成するにあたって適したライブラリ?や、参考になるサイトや本など存知ないでしょうか?

それ以前にコラボ上にエクセル上で作成した関数を取り込むことが可能なのかすらよくわかっていないので、もしもっといい方法を知っていらっしゃればそういったことも教えていただけると大変助かります。

スキル不足な点は重々承知ですが冬休みで時間が取れるため、その時間を使って全力で頑張りたいと考えています。

抽象的かつど素人な質問ではありますが、よろしくお願いいたします。

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

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

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

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

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

tiitoi

2019/12/18 04:50

一次関数、二次関数、三次関数を区別の意味がよくわかりません。 データはどのような形式で与えられるのでしょうか?
nanonano

2019/12/18 05:18

一次関数、二次関数、三次関数はパラメータを変えることでいくらでも作成することができるので、パラメータを変えて作られた様々な異なった形の3種類の関数をテストデータ、学習データ、検証データとして使おうかと考えていました。 私の目標は、何かに対応していてパラメータを変えることで形が変化する関数を複数用意して、それらを判別することです。 一次関数、二次関数、三次関数にこだわっているわけではありませんが、それらであればデータを準備するのが容易であるように思えたため、今回使用しようかと考えております。 回答になっているかわかりませんが、どうにか頑張って回答しますので、質問や本質問への回答していただけると大変助かります。 どうかよろしくお願いいたします。
tiitoi

2019/12/18 05:48

関数というと f(x) = x^2, f(x) = x^3 のような記号で表現されたものを想像していたのですが、そうではなく、それらの関数で生成した点 (x, y) の一覧が入力として与えられ、それを生成した関数の次数を予測したいということでしょうか。
tiitoi

2019/12/18 05:51

また「関数の分類」というのが特にやりたいのか、それともデータが簡単に用意できそうなので、例としてあげたのかどちらでしょうか。 というのも、機械学習の勉強がされたいのであれば、iris データセットとか既存のデータセットを使ったほうが簡単だと思ったので、聞きました。
nanonano

2019/12/18 06:02

そうです。 後者の点の一覧から関数の次数を予測したいということです。 わかりづらくて申し訳ございません。 点の一覧を用いて分類する方法について学びたいと考えています。 そのためのデータとして用意しやすそうだと思ったので今回は一次関数などを用いようかなと考えました。
Q71

2019/12/21 10:57

"ハローワールド" をご存知でしょうか。ほとんどのプログラミング言語で最初に作るのは、「Hallo World!」と表示するプログラムです。機械学習は何かを表示するということはありませんので、MNISTを学びます。 まず、既存のものを動かせるか、試して下さい。自作のデータは、その次です。
guest

回答2

0

上記のようなプログラムを作成するにあたって適したライブラリ?や、参考になるサイトや本など存知ないでしょうか?

いきなりやりたいことに取り組む前に、まずはライブラリのチュートリアルを一通りやったり、書籍を読んで、基礎を勉強したほうがよいと思います。
ディープラーニングはいまから勉強するのであれば、PyTorch をおすすめします。

今、ディープラーニングフレームワークは TensorFlow(Keras) と Pytorch の2強ですが、今後は Pytorch が主流になると読んでます。

理論は ゼロから作るDeep Learning あたりで勉強すればいいのではないでしょうか。読むにあたって Python の基礎は抑えている必要がありますが、大学レベルの難しい数式は出てこなかったと思うので、高校生でも読めると思います。

それ以前にコラボ上にエクセル上で作成した関数を取り込むことが可能なのかすらよくわかっていないので、もしもっといい方法を知っていらっしゃればそういったことも教えていただけると大変助かります。

csv 形式で保存すれば、Python の標準ライブラリでも読み込めます。
エクセルで保存する際に出力形式で CSV を選択できます。

投稿2019/12/18 07:17

tiitoi

総合スコア21956

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

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

0

その程度の問題なら機械学習まで使う必要はなく、最小二乗法という二百年くらい前からある統計学のごく基本的な方法でもけっこうできます。

python

1>>> import statsmodels.api as sm 2>>> import numpy as np 3>>> x = np.linspace(-5, 5, 100) 4>>> y1 = 3*x + 10 + np.random.normal(size=100) 5>>> y2 = 10*x**2 - 5 + np.random.normal(size=100) 6>>> y3 = 2*x**3 - 15 + np.random.normal(size=100) 7>>> X = np.vstack([x, x**2, x**3]).T 8>>> X = sm.add_constant(X) 9>>> res = sm.OLS(y1, X).fit() 10>>> print(res.summary()) 11 OLS Regression Results 12============================================================================== 13Dep. Variable: y R-squared: 0.985 14Model: OLS Adj. R-squared: 0.984 15Method: Least Squares F-statistic: 2077. 16Date: Wed, 18 Dec 2019 Prob (F-statistic): 3.87e-87 17Time: 19:13:24 Log-Likelihood: -150.03 18No. Observations: 100 AIC: 308.1 19Df Residuals: 96 BIC: 318.5 20Df Model: 3 21Covariance Type: nonrobust 22============================================================================== 23 coef std err t P>|t| [0.025 0.975] 24------------------------------------------------------------------------------ 25const 9.8967 0.166 59.586 0.000 9.567 10.226 26x1 2.9309 0.095 30.864 0.000 2.742 3.119 27x2 0.0047 0.015 0.321 0.749 -0.024 0.034 28x3 0.0043 0.006 0.759 0.450 -0.007 0.016 29============================================================================== 30Omnibus: 1.790 Durbin-Watson: 2.196 31Prob(Omnibus): 0.409 Jarque-Bera (JB): 1.692 32Skew: -0.314 Prob(JB): 0.429 33Kurtosis: 2.886 Cond. No. 73.3 34============================================================================== 35 36Warnings: 37[1] Standard Errors assume that the covariance matrix of the errors is correctly specified. 38>>> res = sm.OLS(y2, X).fit() 39>>> print(res.summary()) 40 OLS Regression Results 41============================================================================== 42Dep. Variable: y R-squared: 1.000 43Model: OLS Adj. R-squared: 1.000 44Method: Least Squares F-statistic: 1.524e+05 45Date: Wed, 18 Dec 2019 Prob (F-statistic): 2.28e-176 46Time: 19:15:05 Log-Likelihood: -151.74 47No. Observations: 100 AIC: 311.5 48Df Residuals: 96 BIC: 321.9 49Df Model: 3 50Covariance Type: nonrobust 51============================================================================== 52 coef std err t P>|t| [0.025 0.975] 53------------------------------------------------------------------------------ 54const -5.0743 0.169 -30.034 0.000 -5.410 -4.739 55x1 0.0078 0.097 0.081 0.936 -0.184 0.200 56x2 10.0157 0.015 676.141 0.000 9.986 10.045 57x3 -0.0015 0.006 -0.264 0.793 -0.013 0.010 58============================================================================== 59Omnibus: 1.737 Durbin-Watson: 1.905 60Prob(Omnibus): 0.420 Jarque-Bera (JB): 1.769 61Skew: 0.270 Prob(JB): 0.413 62Kurtosis: 2.634 Cond. No. 73.3 63============================================================================== 64 65Warnings: 66[1] Standard Errors assume that the covariance matrix of the errors is correctly specified. 67>>> res = sm.OLS(y3, X).fit() 68>>> print(res.summary()) 69 OLS Regression Results 70============================================================================== 71Dep. Variable: y R-squared: 1.000 72Model: OLS Adj. R-squared: 1.000 73Method: Least Squares F-statistic: 3.375e+05 74Date: Wed, 18 Dec 2019 Prob (F-statistic): 6.13e-193 75Time: 19:15:25 Log-Likelihood: -136.43 76No. Observations: 100 AIC: 280.9 77Df Residuals: 96 BIC: 291.3 78Df Model: 3 79Covariance Type: nonrobust 80============================================================================== 81 coef std err t P>|t| [0.025 0.975] 82------------------------------------------------------------------------------ 83const -15.2334 0.145 -105.081 0.000 -15.521 -14.946 84x1 0.0036 0.083 0.044 0.965 -0.161 0.168 85x2 0.0209 0.013 1.642 0.104 -0.004 0.046 86x3 1.9974 0.005 402.283 0.000 1.988 2.007 87============================================================================== 88Omnibus: 0.071 Durbin-Watson: 2.259 89Prob(Omnibus): 0.965 Jarque-Bera (JB): 0.117 90Skew: -0.060 Prob(JB): 0.943 91Kurtosis: 2.883 Cond. No. 73.3 92============================================================================== 93 94Warnings: 95[1] Standard Errors assume that the covariance matrix of the errors is correctly specified. 96

「1,2,3次関数のどれか」とか、せいぜい「それらの足し合わせにノイズを足したもの」であることがわかっていれば、変数の分布における仮定からoptimalな方法が出てくるので(複雑だったり条件が悪かったりしてできないときもあるけど)、機械学習の出る幕は恐らくありません。こういう仮定をうまく置けないときにでしゃばってくるのが機械学習なのです。


機械学習をカジュアルに学んでみたいなら、この本。大雑把に全体像がつかめるので、入門向きです。

[第2版]Python機械学習プログラミング 達人データサイエンティストによる理論と実践 - インプレスブックス

ただし冬休みで終えるのはたぶんきつい。

投稿2019/12/18 10:29

hayataka2049

総合スコア30933

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問