【Python×データサイエンス入門⑧】機械学習モデル「決定木」で予測してみよう!
※現在、質問・相談コメントの返信は対応しておりません。ご承知おきくださいませ🙇🏻♂️
データサイエンス入門の第8回目になります!
バブル期の熱は冷めましたが、今でもデータサイエンティストを欲しがっている企業はたくさんあります。
DX時代に備えて、今からデータサイエンスを勉強しておきましょう!
≪この動画で学べる内容≫
①決定木モデルの実装方法が分かる
②機械学習における分類と回帰の違いが分かる
③予測結果の連結方法が分かる
▼この動画シリーズで使っているコード・データ
▽ソースコードのダウンロード(Github)
https://github.com/hayatasuuu/DataScienceBeginner
▽データのダウンロード(Kaggle)
https://www.kaggle.com/
■□■□■□■□■□■□■□■□■□■□
▼Pythonの学習が済んでいない方はこちら!
▼スクレイピングを学んでみるならこちら!
▼Anacondaのインストール方法(Windows)
テキスト:https://tech-diary.net/anaconda-install-windows/
■□■□■□■□■□■□■□■□■□■□
▽Twitter
Tweets by hayatasuuu
▽Blog
https://tech-diary.net/
▽stand.fm(ラジオ)
https://stand.fm/channels/5f812ac1f04555115d597948
▼経歴
現在:フリーランスエンジニア(Python, GCP)
過去:大手SIerで機械学習系エンジニア&プログラミングスクール講師→大手金融機関(連結3万人以上)でデータサイエンティスト(Python, AWS)→スタートアップでWebエンジニア(Golang, ReactJS)→現在に至る
コメント
4:20 あたりの#決定木モデルの作成 がエラーになってしまいます。
エラーメッセージの全文はもっと長いのですが、最後の一文は
ValueError: could not convert string to float: ‘male’
となっています。解決策などありましたら教えていただきたいです
はやたす先生
データサイエンス入門、楽しみながら受講させていただきました。題材(タイタニックの生存予想)が、サスペンス風で、一気に視聴致しました(もちろん、自分でもコード入力しながら)。
1件、ご質問事項が浮かびましてお伺いです。
①特徴量と正解をもとでに、Scikit-learnが、両者の関係を分析して、モデルを構築し、当該モデルに基づいて、予測が行われるものと理解しました。
②ご質問事項は、Scikit-learnが、どのような方法で、特徴量と正解のあいだの関係を分析し、モデル構築を行っているのか?という点になります。この点、Qiita等参考になる記事がありましたらご教示賜れますと幸甚です。
(と、ここまで記したところで、掲載されているQiita記事を読み返しましたら、「決定の構築(イメージ)」に詳細説明がありました。
(私の手持ちの消化酵素では)エントロピー、ジニ不純度は、読解しきれなかったものの、「データを分割する素性」に基づいて、データの分類を行っているサマをなんとなくイメージ致しました。掲載記事に解説がありましたので、ご質問は取り下げますm(_ _)m )
Scikit-learnが、斯かる解析を行っていることに驚きです。
先生のおかげで、データサイエンスのプロセスを概観し、学習意欲を深めることができました。重ね、深謝申し上げます。
6:00から詰んだ、エラーハンドリングできない(;^ω^)
in ()
記録用にコメント残しておきます。お忙しいと思うので返信しなく大丈夫です。
—————————————————————————
ValueError Traceback (most recent call last)
1 # 作成した決定木モデルを使った
—-> 2 y_pred = model.predict(test)
3 frames
/usr/local/lib/python3.6/dist-packages/sklearn/tree/_classes.py in predict(self, X, check_input)
417 “””
418 check_is_fitted(self)
–> 419 X = self._validate_X_predict(X, check_input)
420 proba = self.tree_.predict(X)
421 n_samples = X.shape[0]
/usr/local/lib/python3.6/dist-packages/sklearn/tree/_classes.py in _validate_X_predict(self, X, check_input)
378 “””Validate X whenever one tries to predict, apply, predict_proba”””
379 if check_input:
–> 380 X = check_array(X, dtype=DTYPE, accept_sparse=”csr”)
381 if issparse(X) and (X.indices.dtype != np.intc or
382 X.indptr.dtype != np.intc):
/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
576 if force_all_finite:
577 _assert_all_finite(array,
–> 578 allow_nan=force_all_finite == ‘allow-nan’)
579
580 if ensure_min_samples > 0:
/usr/local/lib/python3.6/dist-packages/sklearn/utils/validation.py in _assert_all_finite(X, allow_nan, msg_dtype)
58 msg_err.format
59 (type_err,
—> 60 msg_dtype if msg_dtype is not None else X.dtype)
61 )
62 # for object dtype data, we only check for NaNs (GH-13254)
ValueError: Input contains NaN, infinity or a value too large for dtype(‘float32’).