この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
広告
posted by fanblog
2018年11月22日
AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧)
キーワード
: 人工知能プログラマー AI(Artificial Intelligence)
AI(人工知能・無能)エンジニア・プログラマー養成講座 | Contents(コンテンツ)
[ 更新情報 ]
2018年11月22日(木)
: あの「機械学習関連講座」が着々と実績を積み上げ中!! | #442 デジタルライフコラム New♪
7月29日(日)
: Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版) New♪
4月16日(月)
: 【Google Colaboratory版】PythonでAIプログラミングの作り方入門講座(Hello World〜じゃんけんAI乱数編) New♪
1. PythonでAI(人工知能・無能)エンジニア・プログラマー養成講座(一覧) 更新♪
2. 人工知能・プログラミング関連本のランキング(リンク集)
3. 人工知能の実装関連本の書評
4. プログラミング関連Q&Aサイト
5. AI・ビックデータ分析・データサイエンティスト関連のフリーランス求人案件探しサービス
6. Pythonで人工知能を学ぶ機械学習エンジニアコース(旧:エキスパートAIコース) 」
7. Creator's Hive - クリエイターズハイブの「 Pythonコース 」
8. データミックス - データサイエンティスト育成コース
9. PyQ(パイキュー)- Python機械学習
10. Aidemy Premium Plan - 人工知能特化型プログラミング学習サービス
「 AI(人工知能・無能)エンジニア・プログラマー養成講座 」では、Python(パイソン)を始めとした、プログラミングの基本的な入門コンテンツや、人工知能・人工無能、機械学習(マシーンラーニング:Machine Learning)、深層学習(ディープラーニング:Deep Learning)の実装方法などに関連しそうな内容の記事を、自分自身のAIやプログラミングの学習を兼ねながら、少しずつまとめていきたいと思います。
▲ 記事ページのトップへ
[ Python(パイソン)で学ぶプログラミングとAI(人工知能・無能) ]
プログラミング言語・環境の「 Python 」の始め方から、 プログラミングの基本的な入門コンテンツ、機械学習(Machine Learning)の実装について学べるような学習コンテンツを作成予定です。
- はじめに -
:そろそろ「 AIエンジニア・プログラマー養成講座 」を作り始めようと思います。(予定)
:AI技術がもたらす未来。あなたは何をAIに学ばせたいのか?(予定)
- Python入門 -
「 なぜ、ディープラーニングをはじめとしたAI関連のプログラミングでPythonなのか? 」
素朴な疑問ですが、なぜなのでしょうか?これら一緒に、考えていきましょう。なにわともあれ、ここまで、ソフトウェア関連の技術や、ハードウェアの発展に貢献された先人に感謝ですね。
:なぜ、今、Python(パイソン)でプログラミングを学ぶのか?(予定)
:なぜ、「 ゼロから作るDeep Learning(斎藤 康毅著)」は発売以来ロングセラーが続いているのか?(予定)
AIプログラミングに関心のあるあなたは、
「 ゼロから作るDeep Learning:Pythonで学ぶディープラーニングの理論と実装 」
の存在をご存知ですか?
発売以来、多くの方から支持を得ている理由について
このサイトの運営者なりに考えてみたいと思います。
:Pythonの開発環境を準備しよう(予定)
:PythonでHello Worldプログラミング入門(予定)
- Pythonでちょっとしたプログラミング入門 -
やはり、Hello World(文字表示)や、足し算引き算などの算術演算だけではプログラミンは面白くないですようね。
Pythonで様々なプログラミングを始めるきっかけになることがありましたら幸いです。

: 【Google Colaboratory版】PythonでAIプログラミングの作り方入門講座(Hello World〜じゃんけんAI乱数編) New♪

: PythonでAI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 乱数編)
- AI(人工知能)・機械学習関連 -
現在提供されている科学・データ解析、機械学習などのPython関連のライブラリを、自分が実現したいことに向けて、効果的に活用できるようになりたいものですね。
AI・機械学習などに関連しそうなライブラリ探しなどの参考になりましたら幸いです。

: Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版) New♪
:Python関連ライブラリを知る前に、ライセンスについて学ぼう(予定)
:[ 科学・データ解析編 ] - Pythonのライブラリをチェックしよう(予定)
:[ 学習・認識編 ] - Pythonのライブラリをチェックしよう(予定)
:[ 自然言語処理編 ] - Pythonのライブラリをチェックしよう(予定)
:[ 人工知能関連ライブラリ探し編 ] - Pythonのライブラリをざっくりチェック(予定)
▲ AIエンジニア・プログラマー養成講座のトップへ
人工知能関連の本・書籍探しなどに
ご活用ください。
[ AI・プログラミング関連書籍のランキングをチェック♪ ]
AIプログラミングの学習や
AI・プログラミング関連の情報収集に

: カテゴリ 「 人工知能 」 売れ筋ランキングへ | Amazon.co.jp

: プログラミング本・書籍ランキング | 楽天市場
その他にも
AI関連本をお探しの方は、
こちらの記事ページもご活用ください。
: 人工知能・AI(Artifical Intelligence)関連本 特集
▲ AIエンジニア・プログラマー養成講座のトップへ
人工知能の実装方法などに関連しそうな
本の書評をしてみました。
興味のあるタイトルがありましたら、
書評ページなどもご活用ください。
ー 書評.「 Python機械学習プログラミング 」達人データサイエンティストによる理論と実践
プログラミング言語Python(パイソン)で、
機械学習(Machine Learning)を実装してみたいならこの書籍。
ー 書評. (斎藤 康毅著)ゼロから作るDeep Learning:Pythonで学ぶディープラーニングの理論と実装
プログラミング言語Python(パイソン)と、
少しの外部ライブラリでDeep Learningの基礎を学ぶならこの書籍。
: AI初学者が「 ゼロから作るDeep Learning 」で躓かないためのまとめ
ー 書評. (中井悦司 著)TensorFlowで学ぶディープラーニング入門:畳み込みニューラルネットワーク徹底解説
Googleから提供されているTensorFlowで
ディープラーニングの実装を始めてみましょう。
▲ AIエンジニア・プログラマー養成講座のトップへ
teratail(テラテイル) | レバレジーズ株式会社

プログラミング関連Q&Aサイトです。
日々の学習・独学での疑問や、
仕事などで感じる
プログラミング関連の疑問などを、
「 teratail 」で
質問してみてください。
2017年2月確認時点では、
「 teratail 」のサイトで
キーワード
:人工知能
の質問の検索結果について調べてみると、
いくらかヒットがあるようでした。
「 解決済 」のカテゴリーをみてみると
2016年(平成29年)4月に
「 Deep learning 」関連の投稿があり、
その後少しずつ、人工知能周辺の話題が、
現在まで質問が投稿されているようでした。
「 アクティブ 」のカテゴリ でも
2017年2月20日時点ではいくつかのヒットもあるようでしたので
人工知能、人工無脳、Deep learning、機械学習などの話題に
関心のある方は、早速チェックしてみてください。
検索時のポイントとしては、
キーワード
:人工知能
:人工無脳
:機械学習
:ニューラルネットワーク
:Deep learning
:ディープラーニング
:シンギュラリティ
:特異点
などで検索してみると、人工知能関連の質問などを
見つけやすいのではないかと思います。
今後の質問や解答の投稿の経過も楽しみですね。
? プログラミングや人工知能の質問をしてみる | teratail
ちなみに、
teratail(テラテイル)
を運営していただいている
「 レバレジーズ株式会社 」
は、
転職支援サービスも提供してくださっている
ようですので、
関心のある方はこちらもチェックしてみてください。
レバテッククリエイター

Web・ゲーム系の求人案件をお探しの方に
: レバテッククリエイター
レバテックフリーランス

Webエンジニア・デザイナーの
フリーランス(個人事業主)向けの求人案件を
お探しの方に
: レバテックフリーランス
レバテックキャリア

IT・Web系エンジニア、デザイナーの
求人案件をお探しの方に
: レバテックキャリア
▲ AIエンジニア・プログラマー養成講座のトップへ
BIG DATA NAVI | エッジコンサルティング株式会社
データ分析の専門家
データサイエンティストや、
人工知能、機械学習関連などの
ITエンジニアのフリーランス(個人事業主)向けの求人案件を
首都圏(関東圏)で
お探し中の方に
: BIG DATA NAVI
その他にも、
IT・Web関連の転職・求人案件をお探しの場合は
以下の記事などもご活用ください。
: IT系エンジニア求人案件・転職サイトまとめページへ
: フリーランス | ビックデータ・データサイエンティスト案件などの転職サイトまとめページへ
現在の働き方や、ライフスタイルのニーズにあった
ぴったりの求人が見つかるといいですね。
▲ AIエンジニア・プログラマー養成講座のトップへ
Pythonコース | Creator's Hive - クリエイターズハイブ

以下のリンク先の
「 Pythonコース 」
のところを確認してみると、
学習スキルなどを確認できると思いますので
現在の興味や学習ニーズに合いそうか
チェックしてみてください。
: Creator's Hive - クリエイターズハイブのPythonコースのページへ
こちらの記事ページにも
「 Creator's Hive - クリエイターズハイブのPythonコース 」
関連情報をまとめておきましたので
合わせてご活用ください。
: この人工知能・機械学習講座はチェックした?(Creator's Hive - クリエイターズハイブ Pythonコース編)
▲ AIエンジニア・プログラマー養成講座のトップへ
データサイエンティスト育成コース | データミックス

: 教育プログラムの特徴 | データミックス
: 講師紹介ページへ | データミックス
: データサイエンティスト育成コース | データミックス
: 株式会社データミックスの会社概要ページへ
人工知能(機械学習)・Python・Rなどに関心のある方は、
データミックスからて提供していただいている
「 データサイエンティスト育成コース 」は気になるのではないかと思います。
会社設立は「 2017年2月1日 」ということで、
まだ新しい会社ですが、「 データサイエンティスト育成コース 」
などに関心のある方はチェックしてみてください。
所在地は、東京都千代田区のようです。
関東圏の方は、無料説明会の参加も検討ですね。
▲ AIエンジニア・プログラマー養成講座のトップへ
PyQ(パイキュー)| 株式会社ビープラウド

オンラインPython学習サービスの
PyQでは、機械学習関連の問題も追加されたようです。
関心のある方はチェックしてみてください。
2017年10月11日確認時点では、
「
Python機械学習」
の問題で、
・
はじめての機械学習
・
ロジスティック回帰
・
前処理
・
決定木
・
SVM
・
機械学習・演習
などを確認できました。
* 現在のサービスの提供状況は
ご自身でもよくご確認ください。
: オンライン学習サービス「PyQ

▲ AIエンジニア・プログラマー養成講座のトップへ
Aidemy Premium Plan | 株式会社アイデミー

Pythonで人工知能プログラミング。
初学者向けのコース〜エンジニア経験者向けのコースまで。
関心のある方はチェックしてみてください。
2018年1月13日確認時点では、コンテンツ例として
・ Python 入門
・ Numpy/Pandas
・ 教師あり(回帰)
・ 教師なし学習
・ ディープラーニング
・ 自然言語処理
・ 異常値検知
・ 強化学習
などが挙げられているようです。
オンライン完結型講座ということで、
場所にとらわれないサービスのようですのでありがたいですね。
* 現在のサービスの提供状況は
ご自身でもよくご確認ください。
: Aidemy Premium Plan | 人工知能特化型プログラミング学習サービス
▲ AIエンジニア・プログラマー養成講座のトップへ
[ スポンサードリンク ]
by はじめてのコンピュータ・パソコン
独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧へ)
こちらのページにもAI関連のコンテンツを作成中です。
日々の学習や、情報収集などにご活用ください。
▲ 記事ページのトップへ
? サイトマップ
? プロフィール | サイトポリシー・免責事項など
? CONTENTS(コンテンツ)一覧
? 無料?? プログラマー希望者必見の「 プログラマカレッジ 」をチェック | #336 デジタルライフコラム
2018年08月18日
Pythonで機械学習・人工知能(AI)プログラミング入門 | 数字の画像認識(anaconda - Jupyterノートブック版)
キーワード
: Python AIプログラミング サンプルコード
2019年から第3次人工知能ブームのきっかけとなったディープラーニング(深層学習)に関するコンテンツも作成中です。
: 【コード解説】畳み込みニューラルネットワーク(CNN)サンプルコード - Colaboratory・Keras・MNIST by 子供プログラマー:日本人のための人工知能プログラマー入門講座(機械学習)
のページをご活用ください。無料で使えるGoogle Colaboratoryのジュピターノートブックで、すぐに使えるサンプルコードや、印刷用PDFなども公開中です。
【anaconda - Jupyterノートブック版】
Pythonで機械学習・人工知能(AI)プログラミング入門
数字の画像認識(一覧)
Pythonで機械学習・人工知能(AI)プログラミング入門
数字の画像認識(一覧)

1. scikit-learnの学習テ?ータの読み込み・表示
2. scikit-learnの数値テ?ータの画像化(1つ版)
3. scikit-learnの数値テ?ータの画像化(複数版)
4. scikit-learnで数字予測AIプログラミング(画像ファイル)
5. scikit-learnで数字予測AIアプリ開発(画像ファイル版) New♪:2018年8月18日
Pythonて?機械学習・人工知能(AI)フ?ロク?ラミンク?入門
scikit-learn SVM 学習テ?ータの確認〜画像認識(数値予測)編(動画)
Python3の開発環境は、macOS・Windows・Linux対応で、無料で使える「 Anaconda 」(アナコンダ)というディストリビューション(パッケージ)を利用し、統合開発環境(IDE:Integrated Development Environment)「 Jupyter notebook 」(ジュピターノートブック)を使って、Python3プログラミングを実行しています。
* 「 Anaconda 」を開いたところから、
「 Jupyter notebook 」でPuthon3の環境を
構築する方法わからない方は、
: 1.scikit-learnの学習テ?ータの読み込み・表示 | Python3のサンプルコード
の動画を視聴ください。
scikit-learn(サイキットラーン:sklearn)の数値(数字)の学習データの読み込みから、手書き文字の数字の画像認識のAIアプリ作成までをまとめておこうと思います。
一連の内容が、これからPythonで機械学習(Machine Learning)にチャレンジしてみたい人工知能プログラミング初学者の方の参考になることがありましたら幸いです。
人工知能・機械学習・ディープラーニング関連の専門書を学ぶ中で、数学の理論解説で、ギリシャ文字や数式の知識がわからない方もいるのではないかと思います。数学の入門コンテンツも作成していこうと思いますので、関心のある方は、ご活用いただけると幸いです。
: 人工知能(AI)・機械学習フ?ロク?ラミンク?入門者のための数学入門講座(一覧へ)
▲ この記事のトップへ
1.scikit-learnの学習テ?ータの読み込み・表示
(Python3のサンプルコード)
(Python3のサンプルコード)
scikit-learnの学習テ?ータの読み込み・表示
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:1分45秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
suuji = sklearn.datasets.load_digits()
print("sklearnのデータセットのデータの個数は「",len(suuji.images),"」です。")
print("sklearnのデータセットの1つ目の画像データを表示します。\n",suuji.images[0],"\n画像データの数字をこのように表現しています。")
print("sklearnのデータセットの1つ目は「",suuji.target[0],"」です。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 「 \n 」(改行)は、
Macの場合「 option 」キー + 「 ¥ 」キーで
「 \ 」(バックスラッシュ)が入力できます。
Windowsの場合は、「 ¥n 」(半角英数で入力)で
改行できるのではないかと思います。
* 日本語文字入力のレイアウトは、動画を参考にしてみてください。
上記のサンプルコードの入力が難しい方は、以下のサンプルコードも試してみてください。
▼▼▼ 簡易版サンプルコード - はじめ ▼▼▼
import sklearn.datasets
suuji = sklearn.datasets.load_digits()
print("データの数=",len(suuji.images))
print("画像のデータ=",suuji.images[0])
print("数字=",suuji.target[0])
▲▲▲ 簡易版サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
2.scikit-learnの数値テ?ータの画像化(1つ版)
(Python3のサンプルコード)
(Python3のサンプルコード)
scikit-learnの数値テ?ータの画像化(1つ版)
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:2分52秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
plt.imshow(suuji.images[0], cmap="Greys")
plt.show()
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
3.scikit-learnの数値テ?ータの画像化(複数版)
(Python3のサンプルコード)
(Python3のサンプルコード)
【複数版】scikit-learnの数値テ?ータの画像化
Pythonで機械学習・人工知能(AI)プログラミング入門
anaconda - Jupyterノートブック版(動画)
視聴時間:2分31秒
▼▼▼ サンプルコード1 - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
for i in range(30):
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.imshow(suuji.images[i], cmap="gray")
plt.show()
▲▲▲ サンプルコード1 - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.imshow(suuji.images[i], cmap="gray")
のコード記述の、「 plt 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
▼▼▼ サンプルコード2 - はじめ ▼▼▼
import sklearn.datasets
import matplotlib.pyplot as plt
suuji = sklearn.datasets.load_digits()
for i in range(30):
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.axis("off")
plt.imshow(suuji.images[i], cmap="gray")
plt.show()
▲▲▲ サンプルコード2 - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 suuji 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
plt.subplot(3, 10, i + 1)
plt.title(suuji.target[i])
plt.axis("off")
plt.imshow(suuji.images[i], cmap="gray")
のコード記述の、「 plt 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
4.scikit-learnで数字予測AIプログラミング(画像ファイル)
(Python3のサンプルコード)
(Python3のサンプルコード)
【画像認識】scikit-learnて?数字予測AIフ?ロク?ラミンク?
Pythonで機械学習・人工知能(AI)プログラミング入門(動画)
視聴時間:5分19秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import sklearn.svm
import numpy
import PIL.Image
def gazouWoSuutini(filename):
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
def yosoku(data):
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
print("画像認識AIによる、手書き文字認識の予測結果は",n,"です。")
data = gazouWoSuutini("0.png")
yosoku(data)
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 gazouWoSuutini 」「 gazou 」「 suuti 」
「 yosoku 」「 ai 」「 n 」
などは、お好みに応じて自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
print("画像認識AIによる、手書き文字認識の予測結果は",n,"です。")
のコード記述のインデントを
「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
サンプル画像(文字認識用)
右クリックなどで保存を選択
数字の0
数字の1
数字の2
数字の3
数字の4
数字の5
数字の6
数字の7
数字の8
数字の9
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
5.scikit-learnで数字予測AIアプリ開発(画像ファイル版)
(Python3のサンプルコード)
(Python3のサンプルコード)
【画像認識アプリ】scikit-learnて?数字予測AIアフ?リ開発
Pythonで機械学習・人工知能(AI)プログラミング入門(動画)
視聴時間:3分9秒
▼▼▼ サンプルコード - はじめ ▼▼▼
import sklearn.datasets
import sklearn.svm
import numpy
import tkinter as tk
import tkinter.filedialog as fd
import PIL.Image
import PIL.ImageTk
def gazouWoSuutini(filename):
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
ninshikiWoHyouji = PIL.ImageTk.PhotoImage(gazou.resize((300,300)))
imageLabel.configure(image = ninshikiWoHyouji)
imageLabel.image = ninshikiWoHyouji
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
def yosoku(data):
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
textLabel.configure(text = "┃Ο ν Ο┃ノ:手書き文字の予測結果は・・・" + str(n) + "です。")
def gazouWoHiraku():
fpath = fd.askopenfilename()
if fpath:
data = gazouWoSuutini(fpath)
yosoku(data)
root = tk.Tk()
root.geometry("900x500")
textLabel = tk.Label(text="┃Ο _ Ο┃>画像認識AIです♪\n\n画像認識する数字のファイルを選択して下さい。", font=("",30))
textLabel.pack()
imageLabel = tk.Label()
btn = tk.Button(root, text="手書き数字のファイルを選択します", font=("",20) ,command = gazouWoHiraku)
imageLabel.pack()
btn.pack()
tk.mainloop()
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系です。
* 「 gazouWoSuutini 」「 gazou 」「 suuti 」
「 yosoku 」「 ninshikiWoHyouji 」「 ai 」「 n 」
などは、お好みに応じて自分でわかりやすいように名前をつけてみてください。
* 「 \n 」(改行)は、
Macの場合「 option 」キー + 「 ¥ 」キーで
「 \ 」(バックスラッシュ)が入力できます。
Windowsの場合は、「 ¥n 」(半角英数で入力)で
改行できるのではないかと思います。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
gazou = PIL.Image.open(filename).convert("L")
gazou = gazou.resize((8,8),PIL.Image.ANTIALIAS)
ninshikiWoHyouji = PIL.ImageTk.PhotoImage(gazou.resize((300,300)))
imageLabel.configure(image = ninshikiWoHyouji)
imageLabel.image = ninshikiWoHyouji
suuti = numpy.asarray(gazou, dtype = float)
suuti = numpy.floor(16 - 16 * (suuti / 256))
suuti = suuti.flatten()
return suuti
suuji = sklearn.datasets.load_digits()
ai = sklearn.svm.SVC(gamma = 0.001)
ai.fit(suuji.data, suuji.target)
n = ai.predict([data])
textLabel.configure(text = "┃Ο ν Ο┃ノ:手書き文字の予測結果は・・・" + str(n) + "です。")
fpath = fd.askopenfilename()
if fpath:
data = gazouWoSuutini(fpath)
yosoku(data)
のコード記述のインデントを
「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
サンプル画像(文字認識用)
右クリックなどで保存を選択
数字の0
数字の1
数字の2
数字の3
数字の4
数字の5
数字の6
数字の7
数字の8
数字の9
▲ Pythonで機械学習・AIプログラミング入門 | 数字の画像認識(一覧へ)
by はじめてのコンピュータ・パソコン
: AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧ページへ)
: あの「機械学習関連講座」が着々と実績を積み上げ中!! | #442 デジタルライフコラム
▲ 記事ページのトップへ
? サイトマップ
? プロフィール | サイトポリシー・免責事項など
? CONTENTS(コンテンツ)一覧
? 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧)
2018年04月16日
【Google Colaboratory版】PythonでAIプログラミングの作り方入門講座(Hello World〜じゃんけんAI乱数編)
キーワード
: Pythonプログラミング Google Colaboratory
Google ColaboratoryでPythonプログラミングを始めよう
【Google Colaboratory版】
Pythonて?ケ?ームAIフ?ロク?ラミンク?入門
Hello World〜し?ゃんけんAI乱数 編(動画)
「 Google Colaboratory 」は、Pythonプログラミング初学者・入門者の方々にとって、比較的に導入時の失敗が少ないのではないかと感じましたので、「 Google Colaboratory 」の始め方について簡単にまとめた動画コンテンツを作成しました。
ディープラーニングをはじめとした、機械学習・人工知能(artificial intelligence:AI)・人工無脳(Artificial incompetence・Artificial Innocence:AI)などに関心のある方のはじめの一歩の参考になることがありましたら幸いです。
1. Google Colaboratoryとは?料金は?無料で使える?
2. ステップ2のサンプルコード.Hello Worldプログラミング
3. ステップ3・4のサンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
4. ステップ5のサンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
5. ステップ6のサンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版

動画は、Googleアカウントで、ログインした状態から解説していきます。
【 ColaboratoryでHello,world! 〜じゃんけんAIプログラミング】
・ステップ1(Python3を始めよう)
・ステップ2(Hello,worl!プログラミング)
・ステップ3(じゃんけんAI - 入力なし・勝ち負けの判定なし版)
・ステップ4(じゃんけんAI - 入力なし・勝ち負けの判定なし版)
・ステップ5(じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版)
・ステップ6(じゃんけんAI - 入力あり・勝ち負けの判定あり版)
人工知能・機械学習・ディープラーニング関連の専門書を学ぶ中で、数学の理論解説で、ギリシャ文字や数式の知識がわからない方もいるのではないかと思います。数学の入門コンテンツも作成していこうと思いますので、関心のある方は、ご活用いただけると幸いです。
: 人工知能(AI)・機械学習フ?ロク?ラミンク?入門者のための数学入門講座(一覧へ)
[ PR:Udemy - 機械学習・人工知能・データ分析関連の動画教材探しに ]
: みんなのディープラーニング講座 ゼロからChainerとPythonで学ぶ深層学習の基礎
: みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
: 【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
▲ この記事のトップへ
1.Google Colaboratoryとは?料金は?無料で使える?
【 Google Colaboratory】
Googleアカウントを持っている方は、
「 Colaboratory 」
* Google提供の機械学習の教育や研究に利用できる研究ツール
無料で利用できる研究プロジェクト(2018年4月15日確認時時点)
をWebブラウザの環境で使えます。
Webブラウザ上で、Jupyter notebook を使うことができます。
キーワード
:Google Colaboratory
などで検索してみると、
「 Hello, Colaboratory - Colaboratory 」
というページがヒットするのではないかと思います。(2018年4月15日確認時点)
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
2.ステップ2のサンプルコード.Hello Worldプログラミング
▼▼▼ ステップ2のサンプルコード - はじめ ▼▼▼
print("Hello World")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 上記のプログラムのコード入力は、「 半角英数 」で行なっています。
実行してもエラーが出てしまう方は、再度確認して入力してみてください。
実行後、新たにコードを入力したい場合は、「 +:コード 」をクリックします。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
3.ステップ3・4のサンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
▼▼▼ ステップ3のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_ai 」という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
Pythonでプログラムコードを記述後に、プログラムを実行すると、コンピュータの出すじゃんけんの手が、自動的に表示されるプログラムです。
・ if〜elif:条件分岐
・ random:乱数値の生成
を活用して、プログラミングしています。
プログラムを簡単に説明すると「 0〜2 」の範囲で乱数を生成して、乱数で出力された数(値)が
・ 「 0 」の時は、「 じゃんけんAI:グーです。 」が表示されます。
・ 「 1 」の時は、「 じゃんけんAI:チョキです。 」が表示されます。
・ 「 2 」の時は、「 じゃんけんAI:パーです。 」が表示されます。
というようなニュアンスを、Pythonのプログラミング言語で記述しています。
ちなみに、「 random.randint(0,2) 」のコード記述をすることで「 0から2までの整数 」を生成しています。「 int 」は「 integer:整数型 」を表すようです。
その他の条件分岐の記述方法例としては、
「
elif janken_ai == 2:
」の部分を
「
else:
」と記述することもできるのではないかと思います。
「 else 」を使う場合は、「 if 」「 elif 」の条件式に合わなかった数値が返された場合(生成された場合)の処理内容を表現することができます。上記のサンプルコードでは、乱数が「 0〜2 」の3パターンのみですので、じゃんけんAIの出力結果に、特徴を持たせることは難しいのですが、乱数の範囲を「 0〜5 」などと、6パターンにすると、「 else 」を使うことで、じゃんけんAIのじゃんけんの手に、クセ(特徴)があるプログラムを作れるのではないかと思います。
興味のある方は、サンプルコードをいじりながら、色々と試してみてください。
例.「 パー 」を出しやすいじゃんけんAIプログラム
▼▼▼ ステップ4のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 5)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
実行した結果は、いかがでしたか?
ちょっとした工夫次第で、出す手に、特徴を持たせたじゃんけんAIを作ることができそうですね。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
4.ステップ5のサンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
▼▼▼ ステップ5のサンプルコード - はじめ ▼▼▼
import random
print("じゃんけんAIと「じゃんけん」をしよう!")
input("「enter」キーを押してね。")
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
* Pythonのバージョンは3系で解説しています。
プログラムを実行し、「 enter 」キーを押すと、コンピュータの結果が出力されるように、プログラミングをしていきます。
今回は、「 input() 」を使ってキー入力後に、じゃんけんが実行されるプログラムです。
このプログラムに、特徴を持たせたい場合は、
: サンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
も参考にして、自分なりにアレンジしてみてください。
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
5.ステップ6のサンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版
▼▼▼ ステップ6のサンプルコード - はじめ ▼▼▼
import random
janken_hand = ["グーです。","チョキです。","パーです。"]
print("じゃんけんAIと「じゃんけん」をしよう!")
print("\n0:グー\n1:チョキ\n2:パー")
my_janken = int(input("じゃんけんの手を決めてください。数値を入力後「enter」キーを押してね。:"))
janken_ai = random.randint(0, 2)
print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai])
hantei =(my_janken - janken_ai + 3) % 3
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_hand 」「 my_janken 」
「 janken_ai 」「 hantei 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
プログラムを実行し、指定したキー(今回は、0・1・2)のキーボード入力後に「 enter 」キーを押すと、コンピュータの結果と、勝ち負けの判定結果が出力されるように、プログラミングをしていきます。
今回は、 「 グーです。」「 チョキです。」「 パーです。」
といった複数の値を1つの変数で管理するために
「 janken_hand = ["グーです。","チョキです。","パーです。"] 」のリスト(list)を作成しています。
ちなみに、リスト内の左から順番に「 0:グーです。 」「 1:チョキです。 」「 2:パーです。 」の数値に割り当てられています。
自分の手とじゃんけんAIのじゃんけんの手の文字表示では、
「 print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai]) 」
などで記述しているように、今までのサンプルコードとは違った方法での文字表示の方法も利用しています。
勝ち負けの判定では、
「 hantei =(my_janken - janken_ai + 3) % 3 」
の計算式で示したように、
{ 自分のじゃんけんの手(0〜2) ー じゃんけんAIの手(0〜2) + 3 }/ 3
の余りの数値によって、勝敗の結果を計算するようにしてあります。
「 0:あいこです。 」「 1:あなたの負けです。 」「 2:あなたの勝ちです。 」
▲ 【Google Colaboratory版】Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
C言語で、
じゃんけんプログラミング作成する方法も
まとめていますので
C言語でじゃんけんAI作成に関心のある方は、
ご活用ください。
乱数を活用した基本的な仕組みの
じゃんけんプログラミングをしたい方はこちら
: AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 乱数編)
二次元配列を活用して、
経験値を考慮したプログラムや、
思考パターンをプログラミングしてみたい方はこちら
: AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 2次元配列編)
[ スポンサードリンク ]
by はじめてのコンピュータ・パソコン
: AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧ページへ)
▲ 記事ページのトップへ
? サイトマップ
? プロフィール | サイトポリシー・免責事項など
? CONTENTS(コンテンツ)一覧
? 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧)
2017年04月17日
PythonでAI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 乱数編)
キーワード
: Pythonプログラミング じゃんけんAI 乱数編
PythonでAI(人工知能・無能)プログラミングの作り方入門講座
Hello World〜じゃんけんAIプログラム 乱数編
Hello World〜じゃんけんAIプログラム 乱数編
Web上で使える「 Google Colaboratory 」を使って、解説している動画なども作成しましたので、Pythonプログラミング環境の構築や、はじめの一歩でつまずいている方などは必要に応じてご活用ください。
: 【Google Colaboratory版】PythonでAIプログラミングの作り方入門講座(Hello World〜じゃんけんAI乱数編) | 記事ページへ
1. チュートリアル動画
2. サンプルコード.Hello Worldプログラミング
3. サンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
4. サンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
5. サンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版
人工知能・機械学習・ディープラーニング関連の専門書を学ぶ中で、数学の理論解説で、ギリシャ文字や数式の知識がわからない方もいるのではないかと思います。数学の入門コンテンツも作成していこうと思いますので、関心のある方は、ご活用いただけると幸いです。
: 人工知能(AI)・機械学習フ?ロク?ラミンク?入門者のための数学入門講座(一覧へ)
[ スポンサードリンク ]

このページには、プログラミング言語のPython(パイソン)を使って、比較的に簡単な
「 じゃんけんプログラミング:じゃんけんAI 」
* AI:人工知能・人工無脳
を作る方法を解説していく予定です。
コンテンツの作成状況に応じてご活用いただけると幸いです。
簡単な「 じゃんけんプログラム 」を作りながら人工知能(AI:Artificial Intelligence)について、考えていきたいと思います。今回は、乱数を利用して、コンピュータが、出す手(グー、チョキ、パー)を決定する、プログラミングを実装していきます。
この段階では、乱数で、コンピュータが、行き当たりばったりで、次に出すじゃんけんの手を決めているので、プログラミングの内容としては、
「 人工無能(Artificial incompetence・Artificial Innocence) 」
的ではないかと思いますが、プログラミング言語Pythonを使って、様々なプログラムを作る練習としては、面白いのではないかと思います。
▲ この記事のトップへ
1.チュートリアル動画
Pythonて?ゲームAI(人工知能・人工無能)プログラミング入門
Hello World〜し?ゃんけんAI乱数 編
Pythonて?ゲームAI(人工知能・人工無能)プログラミング入門
Hello World〜し?ゃんけんAI乱数 編
Pythonプログラミングの始め方に関しては、こちらの記事もご活用ください。
: AI初学者が「 ゼロから作るDeep Learning 」で躓かないためのまとめ
記事では、
「 Anaconda 」(アナコンダ)
* macOS・Windows・Linux対応
というディストリビューション(パッケージ)を利用してPythonプログラミングを始める方法などについてまとめています。 人工知能・機械学習などの話題で、Pythonの話題を目にする機会もあるのではないかと思いますが、いざ、プログラミングを始めてみようと思ってみても、始めの1歩を踏み出すのは時間がかかってしまいますよね。
これから、Pythonプログラミングを始めてみたい方の、きっかけになることがありましたら嬉しいと思います。
▲ Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
2.サンプルコード.Hello Worldプログラミング
▼▼▼ サンプルコード - はじめ ▼▼▼
print("Hello World")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 上記のプログラムのコード入力は、「 半角英数 」で行なっています。
実行してもエラーが出てしまう方は、再度確認して入力してみてください。
チュートリアル動画も作成してみましたので、イメージがつかみにくい方などは、あわせてご活用ください。
Pythonて?「 Hello World 」フ?ロク?ラミンク?入門
macOS・Windows・Linux対応(動画)
macOS・Windows・Linux対応(動画)
▲ Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
3.サンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
▼▼▼ サンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_ai 」という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
Pythonでプログラムコードを記述後に、プログラムを実行すると、コンピュータの出すじゃんけんの手が、自動的に表示されるプログラムです。
・ if〜elif:条件分岐
・ random:乱数値の生成
を活用して、プログラミングしています。
プログラムを簡単に説明すると「 0〜2 」の範囲で乱数を生成して、乱数で出力された数(値)が
・ 「 0 」の時は、「 じゃんけんAI:グーです。 」が表示されます。
・ 「 1 」の時は、「 じゃんけんAI:チョキです。 」が表示されます。
・ 「 2 」の時は、「 じゃんけんAI:パーです。 」が表示されます。
というようなニュアンスを、Pythonのプログラミング言語で記述しています。
ちなみに、「 random.randint(0,2) 」のコード記述をすることで「 0から2までの整数 」を生成しています。「 int 」は「 integer:整数型 」を表すようです。
その他の条件分岐の記述方法例としては、
「
elif janken_ai == 2:
」の部分を
「
else:
」と記述することもできるのではないかと思います。
「 else 」を使う場合は、「 if 」「 elif 」の条件式に合わなかった数値が返された場合(生成された場合)の処理内容を表現することができます。上記のサンプルコードでは、乱数が「 0〜2 」の3パターンのみですので、じゃんけんAIの出力結果に、特徴を持たせることは難しいのですが、乱数の範囲を「 0〜5 」などと、6パターンにすると、「 else 」を使うことで、じゃんけんAIのじゃんけんの手に、クセ(特徴)があるプログラムを作れるのではないかと思います。
興味のある方は、サンプルコードをいじりながら、色々と試してみてください。
例.「 パー 」を出しやすいじゃんけんAIプログラム
▼▼▼ サンプルコード - はじめ ▼▼▼
import random
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 5)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
else:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
実行した結果は、いかがでしたか?
ちょっとした工夫次第で、出す手に、特徴を持たせたじゃんけんAIを作ることができそうですね。
チュートリアル動画も作成してみましたので、イメージがつかみにくい方などは、あわせてご活用ください。
Pythonで「 じゃんけんAI(人工知能・人工無能) 」ゲームプログラミング入門
入力・勝負判定なし版(動画)
入力・勝負判定なし版(動画)
▲ Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
4.サンプルコード.じゃんけんAI - キー入力後の実行・勝ち負けの判定なし版
▼▼▼ サンプルコード - はじめ ▼▼▼
import random
print("じゃんけんAIと「じゃんけん」をしよう!")
input("「enter」キーを押してね。")
print("じゃんけん、ぽん")
janken_ai = random.randint(0, 2)
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if janken_ai == 0:
print("じゃんけんAI:グーです。")
elif janken_ai == 1:
print("じゃんけんAI:チョキです。")
elif janken_ai == 2:
print("じゃんけんAI:パーです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
* Pythonのバージョンは3系で解説しています。
プログラムを実行し、「 enter 」キーを押すと、コンピュータの結果が出力されるように、プログラミングをしていきます。
今回は、「 input() 」を使ってキー入力後に、じゃんけんが実行されるプログラムです。
このプログラムに、特徴を持たせたい場合は、
: サンプルコード.じゃんけんAI - 入力なし・勝ち負けの判定なし版
も参考にして、自分なりにアレンジしてみてください。
チュートリアル動画も作成してみましたので、イメージがつかみにくい方などは、あわせてご活用ください。
Pythonて?「 し?ゃんけんAI(人工知能・人工無能) 」フ?ロク?ラミンク?入門
キー入力後実行・勝負判定なし版(動画)
キー入力後実行・勝負判定なし版(動画)
▲ Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
5.サンプルコード.じゃんけんAI - 入力あり・勝ち負けの判定あり版
▼▼▼ サンプルコード - はじめ ▼▼▼
import random
janken_hand = ["グーです。","チョキです。","パーです。"]
print("じゃんけんAIと「じゃんけん」をしよう!")
print("\n0:グー\n1:チョキ\n2:パー")
my_janken = int(input("じゃんけんの手を決めてください。数値を入力後「enter」キーを押してね。:"))
janken_ai = random.randint(0, 2)
print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai])
hantei =(my_janken - janken_ai + 3) % 3
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
▲▲▲ サンプルコード - おわり ▲▲▲
* Pythonのバージョンは3系で解説しています。
* 「 janken_hand 」「 my_janken 」
「 janken_ai 」「 hantei 」
という名前の変数を作成しています。
変数名は自分でわかりやすいように名前をつけてみてください。
* 手入力で上記のコードを入力する場合、
エディタによっては自動インデント(行頭の空白文字の数のこと)
してくれると思います。
ただし、上記コードをコピー&ペーストして実行する場合、
if hantei == 0:
print("あいこです。")
elif hantei == 1:
print("あなたの負けです。")
else:
print("あなたの勝ちです。")
のコード記述の、「 print 」のインデントを
お好みの「 半角英数でのスペースキー数 」や、
「 tabキー 」を使用してインデントを新たに作成していただく
必要があるのではないかと思います。
(Web上での表示の兼ね合いで、「 全角でのスペース 」でインデントを表現したため。)
Pythonのコード記述では、インデントが重要な意味を持つようですね。
プログラムを実行し、指定したキー(今回は、0・1・2)のキーボード入力後に「 enter 」キーを押すと、コンピュータの結果と、勝ち負けの判定結果が出力されるように、プログラミングをしていきます。
今回は、 「 グーです。」「 チョキです。」「 パーです。」
といった複数の値を1つの変数で管理するために
「 janken_hand = ["グーです。","チョキです。","パーです。"] 」のリスト(list)を作成しています。
ちなみに、リスト内の左から順番に「 0:グーです。 」「 1:チョキです。 」「 2:パーです。 」の数値に割り当てられています。
自分の手とじゃんけんAIのじゃんけんの手の文字表示では、
「 print("出した手:", janken_hand[my_janken])
print("じゃんけんAI", janken_hand[janken_ai]) 」
などで記述しているように、今までのサンプルコードとは違った方法での文字表示の方法も利用しています。
勝ち負けの判定では、
「 hantei =(my_janken - janken_ai + 3) % 3 」
の計算式で示したように、
{ 自分のじゃんけんの手(0〜2) ー じゃんけんAIの手(0〜2) + 3 }/ 3
の余りの数値によって、勝敗の結果を計算するようにしてあります。
「 0:あいこです。 」「 1:あなたの負けです。 」「 2:あなたの勝ちです。 」
チュートリアル動画も作成してみましたので、イメージがつかみにくい方などは、あわせてご活用ください。
【 勝負判定機能付き 】
Pythonで「 じゃんけんAI(人工知能・人工無能) 」ゲームプログラミング入門
入力・勝負判定あり版(動画)
Pythonで「 じゃんけんAI(人工知能・人工無能) 」ゲームプログラミング入門
入力・勝負判定あり版(動画)
▲ Hello World〜じゃんけんAIプログラム 乱数編(一覧へ)
C言語で、
じゃんけんプログラミング作成する方法も
まとめていますので
C言語でじゃんけんAI作成に関心のある方は、
ご活用ください。
乱数を活用した基本的な仕組みの
じゃんけんプログラミングをしたい方はこちら
: AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 乱数編)
二次元配列を活用して、
経験値を考慮したプログラムや、
思考パターンをプログラミングしてみたい方はこちら
: AI(人工知能・無能)プログラミングの作り方入門講座(Hello World〜じゃんけんAIプログラム 2次元配列編)
[ スポンサードリンク ]
by はじめてのコンピュータ・パソコン
: AI(人工知能・無能)エンジニア・プログラマー養成講座(一覧ページへ)
: あの「機械学習関連講座」が着々と実績を積み上げ中!! | #442 デジタルライフコラム
▲ 記事ページのトップへ
? サイトマップ
? プロフィール | サイトポリシー・免責事項など
? CONTENTS(コンテンツ)一覧
? 独学プログラマーのためのAI(人工知能・無能)プログラム入門講座(一覧)