Pythonで人工知能を扱うには?サンプルをもとにわかりやすく解説


人工知能ってよく聞くけどPythonでのサンプルコードを見てみたい
人工知能ってそもそもなんだろう
どんなライブラリを使うんだろう

Pythonを初めて学ぼうと思う方の中には、上記のように思う方も多いと思います。Pythonで人工知能や機械学習を実装できるって話はよく聞くけど実際にどうやってやるのかよくわからない…。

こんにちは、趣味でも業務でもPythonを用いています。かいです。

今流行りの人工知能ですが、実際に人工知能をPythonでどのように実装するのか疑問を抱いている人も多いのではないでしょうか?

そこで今回は、Pythonで人工知能を扱うときに必ず必要になってくるNumpyPandasをサンプルコードを交えて解説いたします。

この記事はこんな人のために書きました。

  • 人工知能ってそもそもなに
  • Numpyのサンプルコードがみたい
  • Pandasのサンプルコードがみたい

初心者必見の内容となりますのでぜひ最後まで御覧ください。

Pythonで人工知能を扱うには

さて、近年ブームの人工知能ですが、どのような技術で扱うのか気になる人も多いですよね。以降で人工知能に必要な技術、その技術を支える最低限のライブラリの使い方などを見ていこうと思います。

機械学習が必要である

人工知能の基盤となっている技術は機械学習というものです。機械学習とは、大量のデータを反復的に学習し、そこに潜むパターンを認識して新たなデータに当てはめることで将来を予測することが主な目的です。

将来を予測といってもそんな難しい話ではなく、レコメンド予測や、不正検知など身近で行われています。人工知能などについて詳しく知りたい方は以下の記事を参考にしてみてください。

【5分でわかる】人工知能(AI)とは何か?概要や種類をわかりやすく解説
更新日 : 2019年7月8日

必須なライブラリはNumpyとPandas

この機会学習をする上で避けては通れないライブラリが、NumpyPandasなんですね。本記事ではその二つの使い方をサンプルコードを元にわかりやすく解説していくのでこんな感じで使うんだというだけでも是非参考にしていただければ幸いです!

Numpy

さて、まずはNumpyからみていきます。Numpyとは数値計算に特化したライブラリですが、主に以下3つのメリットがあります。

  • コードが綺麗になる
  • 高速
  • 配列を扱いやすい

かなり重要な3点ですね。サンプルコードを見ていきましょう。

コードが綺麗になる

まずは、コードが綺麗になるという点についてみていきます。例えば、ある配列の要素に一定の重みをかけて出力するというコードをまずは、Numpyを使わずに書いて見ます。

内包表記などを使えばもっと綺麗にかけますが、それでもNumpyの方が綺麗なので割愛します。それでは、Numpyを使ったサンプルをみていきます。

とてもシンプルになりましたね。

コードの解説をすると、一行目で、Numpyをnpという名前でインポートします。その後np.arrayで配列を作成し、その配列に加えたい重みを足すだけで良いです。

機械学習では、このような作業をよく行うのでNumpyではこのように簡単に行えるようになっています。

高速

次はNumpyを使った方が早いよ、ということを確認していきましょう。

確認には、こちらのプラグインを使って計測するのでコードは書きませんのでご了承ください。まずは、生のPythonを書いたときです。

このように、一万個の配列に処理をしたら、1.67秒かかっていますね。print部分は長いので手動で割愛してます。

今度はNumpyを使ってみましょう。

このように、同じ処理をしても0.296と格段に早いですね。またprint部分も自動でいい感じに出力してくれてます。

配列の扱いが柔軟

機会学習ではよく行列というものを扱います。当然プログラムでもその行列を扱う必要があるのですが、それは2次元配列として扱います。

この時もNumpyを使うと、自由自在に配列を扱えます。例えばreshapeという関数を使うと、1次元の配列を2次元にしてくれます。

reshape(行, 列)という形で指定するとそのような2次元配列が生成されます。簡単ですね。

他にも行列(2次元配列)の四則演算を行なったり、切り取ったりと様々な関数があり自由自在です。

Numpyに興味がでて、他にも使ってみたい!という方は以下の記事を参考にしてみてください。

【Python入門】numpyで計算をしてみよう
更新日 : 2018年11月20日

Pandas

さて、次はPythonの機械学習2大ライブラリとも言われるPandasについて解説していきます。

Numpyは数値計算に特化したライブラリでしたが、Pandasは、文字列でも、時系列でも数値でも扱えるデータが広いことが特徴です。基本的には、データを効率よく分析するために使われるライブラリです。

CSVファイルや行列のデータを加工、分析するときに使うことが多いです。Pythonのcsvライブラリよりもできることが多く、コードも短くかけるのでとても重宝します。Pandasを利用するメリットを以下にまとめます。

  • 様々なデータがを一つのデータとして格納できる
  • 関数が豊富で、データ加工や解析がよしなに行える

それでは実際にみていきましょう。

異なるデータを一つのデータフレームに格納する

Pandasではデータの単位をDataFrameという独自の概念で切り分けています。また、データフレームを構成する1つのカラムをSeriesという単位で分けています。

簡単に言えばSeriesの集まりがDataFrameということですね。

このように、一行目で、pandasをpdという名前でインポートし、pd.DataFrameという関数でデータフレームを作成します。文字列と、数値が混在しているデータを一つのデータとして出力できていますね。

関数が豊富で、データ加工や解析が柔軟に行える

これに関しては、関数がたくさんあってここでは紹介しきれないので、特定の値を抽出する方法だけみていきましょう。特定の値を抽出するには、ilocという関数を使います。

iloc[行, 列]という風に指定するので’hello’を抜き出そうと思えば以下のようになります。

簡単ですね。他にも様々な関数があるので利用用途によって調べて見てください。

Pandasを使う上で一番実務で使うのでcsv処理だと思いますので、必要な方は以下の記事を参考にしてみてください。

【Python入門】pandasでデータを扱おう
更新日 : 2019年5月31日

あなたが学ぶべき言語はPythonで本当に大丈夫?

ここまでPythonで人工知能を扱う際に必要になってくるNumpyとPandasについて、サンプルコードを交えて解説してきましたが、この記事をご覧の方の中には、

このままでPythonを習得できるのだろうか..

と不安になっている人もいるのではないでしょうか?そんな方には、一度立ち止まって考えて欲しいことがあります。それは、そもそもあなたがPythonを学ぶ目的は何か?本当に学ぶべき言語はPythonで間違いないか?ということです。

Pythonを学ぶ目的や理由は明確ですか?

Pythonに限った話ではありませんが、プログラミング学習はエラーとの戦いが大半なので、学ぶ目的や理由が不明確だとモチベーションが下がってしまい、挫折してしまいやすいです。

なのでもしあなたが今、

  • なんとなくPythonが人気そうだから
  • Pythonは将来性がありそうだから

といったような、ぼんやりした理由でPythonを学んでいるとしたらそれは要注意。もっと言うと、そもそもあなたが学ぶべき最適な言語が他にあるという可能性も考えられます。

どのプログラミング言語を学ぶか?は、その先のエンジニア人生を左右すると言っても過言ではありません。もしあなたが現状の言語選定に少しでも不安があるなら、まずはプログラミング言語無料診断アプリを使ってみてください。

いくつかの簡単な質問に答えるだけで、あなたにぴったりの言語や学習プランを1分ほどで無料診断致します。

挫折せずに学びたいなら

また、学ぶべき言語はPythonで間違っていないけど、エラーとの戦いに消耗している方や、Python学習が想像以上に難しいと感じている人もいるかもしれません。

というのも、一般的にPythonは初心者でも学びやすい言語と言われていますが、そもそも機械学習という分野は、プログラミング以外にも専門的な知識や数学の知識も必要になってくるので、実は思っている以上に挫折しやすい言語でもあるのです。

なのでやはり、つまずいた時に分からない部分を聞ける環境を作っておくと、挫折する事なく学習を続けられスキルを習得できる可能性がグッと上がります。

もしあなたが今Pythonの独学に少しでも不安を抱いているのであれば、ぜひ弊社「侍エンジニア塾」をご利用ください。

弊社では機械学習専門コースを用意しており、現役エンジニアがマンツーマンであなたの学習をサポートします。また、転職支援や独立・起業サポートもしているので、学習した先も安心ですよ。

もちろん、いきなり入会するのは不安な人も多いと思います。そこで、興味がある人はまず無料体験レッスンを利用してみてください。弊社随一のコンサルタントが、あなたの理想や目標をヒアリングした上で、あなたにぴったりの学習プランを提供させて頂きます。

無料体験は下記ボタンから1分ほどで予約できるので、ぜひお気軽にご利用ください。オンラインでの利用も可能となっています。

侍エンジニア塾
無料体験レッスンの予約はこちら

まとめ

いかがでしたでしょうか?

人工知能、機械学習に必須スキルであるNumpyとPandasについての説明と、サンプルコードを示してきました。各ライブラリを使いこなすためには、この記事の内容だけでな足りませんので、この記事を皮切りに必要に応じてマスターしていきましょう!

それでは!!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

かい

かい

日向徹かこよすぎか

[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説