初学者のためのプログラミング学習サイト機械学習|<<前のページ12[Pythonプログラミング]機械学習のコードを数行で書けちゃうPyCaretを使ってみる2021年12月11日カテゴリ:プログラミングPython今回は機械学習の自動化が出来るかもしれないライブラリを使ってみました。解説動画はこちら今回使用するのはPyCaretというライブラリです。これはPythonで実装されたオープンソースの機械学習ライブラリーで機械学習の一連の作業を自動化する「AutoML」をサポートしています。数行で機械学習のコードを代替できてしまう優れものです。利用するためにはあらかじめインストールされている必要があります。pycaretそれでは早速サンプルコード見ていきましょう。ボストンの住宅価格のデータで検証してみることにします。最初にライブラリ群を読み込みします。データもPyCaretの中から読み込みます。train_test_split(boston_data)次にセットアップです。ここではデータと目的変数を指定します。session_id=1)たったこれだけで、データの検証が終わってしまいます。これが終わったら次はモデルの精度を比較します。モデルを比較するcompare_models()1行実行するだけで複数のモデルを比較して結果を出してくれます。Regressor)というモデルでした。これを使ってみることにしましょう。create_model('モデルのラベル')クロスバリデーションも自動で行ってくれてるようです。次はパラメータをチューニングしてみましょう。これも1行で出来てしまいます。'MAE')パラメータチューニングをした方がやや精度が落ちている気がしますが気にしないことにしましょう。これでモデル作りは終わりなので形にします。finalize_model(tuned_model)final_modelはい、モデルが出来上がりました。早くてあっとゆーまでした。モデルの評価部分も自動でたくさんの評価軸を出してくれます。モデルの評価evaluate_model(tuned_model)UIでいろいろ指標を変更できるようです。最後にテストデータでの検証を見てみましょう。y_pred)3.2223362928049464パラメータチューニングの結果と遜色ない結果となりました。アンサンブル学習のモデルを作るのも簡単です。モデルを指定したのを引数に加えるだけです。model2,model3])これもなかなか精度が良さそうな結果になっています。複数のモデルを使った検証が10行ほどのコードで出来てしまいます。恐ろしい物ですねーまとめあれ?これだけのコードで済むなら機械学習エンジニア要らなくね?????と思ってしまいました。要らなくならないように、頑張らないと・・・・ということで今回は機械学習の自動化が出来ちゃうPyCaretのご紹介でした。:#Python#プログラミング#PyCaret#自動化#AutoML#機械学習コーンフレーク判別モデルの作り方2019年12月25日カテゴリ:Python機械学習さて先日のM-1グランプリみなさん見ましたか?自分は「かまいたち」を優勝予想したのですが見事に外れました!!!!見事王者に輝いたのは初出場の精鋭ミルクボーイこのネタが優秀すぎたので判別モデルを作ってみました。解説動画はこちらまずはデータです。ミルクボーイのネタをみて文字起こし!!データ化します。おかんがではないと言えばちゃうこいつをそのままコピーしてcsvファイル化してもらえばできると思います。できたらモデル作りに入ります。Tokenizer()お次はデータの読み込みです。pd.read_table('corn_model_data.csv')df.head()データが読めたら次は辞書を作ります。このモデルは形態素解析を用いて文章を単語化し、その単語をモデル用に使います。単語辞書を先に作ります。word_dict[key]=0さて用意ができたら学習データの作成に入ります。df['かどうか'].replace({'コーンフレーク':1,'違う':0})目的変数は0,1でないといけないのでコーンフレークを1,違えば0にして設定します。次に元のデータの文章を形態素解析して単語が有れば1,なければ0と言うデータフレームを作り元のデータフレームに結合します。pd.concat([df,tf_df],axis=1)これでデータは揃いました。学習用には説明変数と目的変数が必要なのでいらないものを除外して設定します。data_df['y']次は学習ですね機械学習史上最も雑な判別モデルの作成です。全部データ使ってモデルを作ります。22]]判別モデルの検証も適当にしていますが正解率100%と言うギャグのようなモデルが出来上がります。最後にこのモデルを使えるようにしましょう!!!ここではwidgetを使ってjupyter上で使えるようにしています。print()interact(callback,word='')実行してみると入力値に対して判別結果が出力されます。はいこのような判別モデルですがデータさえあればなんとかなるもんですねまあ、学習用のデータに用いたものしかコーンフレーク認定されない雑な学習モデルですが初学者の学習用にはなかなか面白いかもしれません。驚きましたねーーーその他の細かい予想は当たったのでデータからお笑いに関する予測するということも面白い研究分野の一つになっています。:#Python#機械学習#判別モデル#M-1#ミルクボーイ#コーンフレーク食べログの星の予測モデルを作ってみた!!2019年10月27日カテゴリ:Python機械学習さて、今回は機械学習のお話です。一応なんちゃってMLエンジニアなのでねwwwwwww食べログさんのお店をデータ化したら星の予測モデルが作れました。解説動画はこちら以前の動画では食べログ分布というものについて触れました。前回の記事はこちら食べログ分布は有るのか今回は実際に星を予測するモデルを作っていきましょう。いった機械学習を用いた予測モデルを作成するにはまずはデータが必要です。こちらはみなさん頑張って集めてみて下さい!!!!!データとしてはこんなデータです。コメント数、ブックマーク数や価格コメントを残した人の星の平均などです。予測をするのは「星」のデータとなります。予測モデルの作成に使用したコードは次のようなコードになります。print()少しづつみていきましょう。データを読み込みします。pd.read_csv()でCSVファイルを読み込みしてデータフレームに変換できます。このデータはすでに「前処理」と呼ばれる機械学習用のデータに整形する工程を終えたデータで全て数値型のデータになっています。次に訓練用とテスト用のデータに分けます。train_test_splitを用いると簡単に振り分けることができるので楽です。今回は3割テスト、残りを訓練用としました。モデルは今回は自分がよく使っている決定木,ランダムフォレスト,LightGBM,XGBoostこちらの4種類を使っていきます。y_train)これだけで済んでしまいます。機械学習と言ってもコードはたったこれだけなんですよね・・・モデルの作成が終わったら次はテストデータで予測を行いその精度を検証します。model.predict(x_test)予測もたったこれ1行だけで済んでしまいます。あとはこの結果からどれだけ誤差が出たのかを見て精度を図ります。誤差を見るのにMAERMSEを使います。今回はざっくり検証なのでどれだけ誤差が出たのかだけを見ることとします。0.11181978441280738MAEはどんだけ誤差が出たかを平均したものです。MAE0.083なら+-0.083くらいはズレます。実際の星が3.5だとして大体予測が3.4-3.6くらいになるだろうというモデルができました。今回一番良かったものはLightGBMですね。誤差を可視化してみましょう。平均で0.083ズレですが大きいところでは0.36くらいはズレてますね誤差の累積だと80%くらいで0.15以内には収まりそうな感じですね。予測の精度としてはまあまあなんじゃないでしょうかこれが仕事ならクロスバリデーションしたりパラメータいじったり元々の特徴量作る集計の見直しなどまだまだやること有ります。すればもう少し精度は上がるでしょうがざっくり検証なのでこれまでです。このデータのうちでどれが一番予測に寄与しているでしょうか?寄与度を出してみました。昼価格低こんな感じでした。コメント数やブックマークの数コメントした人の星の平均点ディナー価格などが関係しているようです。実際の星の計算はもう少し複雑な計算方法で違うものでは有ると思いますが近い形の星を算出できたと思います、これで、ブラックボックスであった星の計算方法に少し近づいたんじゃないかなーと思います。食べログに掲載されているお店さんで点数を上げたければここら辺がポイントになるのではと思ってはおりますが・・・このデータにはお店側が食べログ側にお金を支払っているかどうかというデータが含まれておりません。実はお金を支払っていないから星が下がったということも考えられなくは無いので実際の予測にはこの情報が不可欠です。どなたかこのフラグ値お持ちでは無いでしょうかwwwwwwww今回はここまでですそれでは。1時間で学べるPythonプログラミング[Pythonプログラミング]馬鹿でかい円周率を求めるアルゴリズム[Pythonプログラミング]モンティ・ホール問題のシミュレーション[Pythonプログラミング]人工衛星がどんだけ時間ズレるかプログラミングの力で求めてみようコーディングに迷った際に役に立ちWEB検索する時間を無くして作業時間を効率化できます。