Python と Scikit Learn を使用したデータ前処理のヒント
Python、Scikit Learn を使用した 1 つと 2 つの重要なデータ前処理ステップ。機械学習、データ分析プロジェクトに取り組み始めることができます
データは機械学習の血液ですが、データの量ではありません。したがって、機械学習モデルの開発を開始する前に、適切かつ最適なデータ前処理を行うことが非常に重要です。したがって、この記事では、Python と Scikit Learn を使用した 1 つと 2 つの重要なデータ前処理ステップについて説明します。この記事を最後まで読み終えると、実践的なヒントとコツを使って独自の機械学習、データ分析プロジェクトに取り組み始めることができます。
目次: Python と Scikit Learn を使用したデータ前処理のヒント
- 質問を組み立てる
- データソースの重要性: 社内および社外のスクレイピング
- データのクリーニングを開始する前に
- 無料のスクレイピング API とデータ クリーニングの完全な Python スクリプト
- データ サイエンスと機械学習 Couresa コースの推奨事項
- よくある質問
1: 質問を定式化する
まず最初に、なぜ機械学習を活用する必要があるのかを尋ねることをお勧めします。私が以前に会った人のほとんどは、機械学習を使用してデータ分析を行うのが好きだと言うかもしれません。データ分析はアプローチではありますが、目的ではありません。私の観点から目的に関して言えば、ビジネス面では基本的に次の 3 つのタイプがあります。
- ビジネスと運用のパフォーマンスを向上させる、新しい最適化可能な要素を見つける
- 機械による運用上の決定により、運用タスクを自動化します。
- 社内のニッチな AI モデルを構築および開発する
2: データソースの重要性 – 社内および社外のスクレイピング
ここで、このモデルの目的についてチームと明確に一致させることができます。次に、データの発見と収集が次の大きな課題となります。
データ ソースを評価する場合、データセットを使用して機械学習モデルを構築できるかどうかを評価するために、常に品質が最も重要な指標となります。それは機械学習プロセスに誤解を与え、学習結果を歪める間違った方向に導くことになるからです。
私のプロジェクトの経験から、品質の定義には 2 つの基本的なオプションがあります。参考にしてください。これらは社内のスクレイピング可能なデータです。サードパーティからデータセットを購入しようとしないでください
会社に十分な社内データがない場合、データを収集する最良の方法の 1 つがデータのスクレイピングです。データの出所を認識し、必要なデータを具体的に収集できるからです。 BuyfromLo のようなスクレイパー プロバイダーを活用することも、スクレイピング アプリを社内で開発することもできます。
www.buyfromlo.com/app
3: Python を使用したデータのクリーニング
データセットとデータ ソースの側面が解決されたら、データをクリーンアップして構造化する方法について話し合います。スクレイピング データや社内データに関係なく、Scikit 学習線形回帰などの機械学習モデルに適合する形式ではない可能性があります。データをチェックしてクリーンアップするためのヒントを次に示します。
ステップ 1: データセットを DataFrame に変換する
DataFrame タイプは、機械学習における本体の一部です。 CSV を使用してデータを入力する場合でも、API を使用してデータリストを取得する場合でも、コード行は次のとおりです。
Read CSV
import pandas as pd
dataset = pd.read_csv ( 'planprice3.csv' )
Data List
List = [1, 2, 3, 4]
Dataset = pd.DataFrame(List)
CSV データセットの場合、ヘッダーが設定したものではなく、設定したものが 2 番目の役割に属する場合があります。したがって、これを解決する方法は次のとおりです。
dataset = pd.read_csv ( 'planprice3.csv' )
dataset.columns = dataset.iloc [ 0 ]
dataset = dataset [ 1 :]
ステップ 2: データセットからどのような情報がカバーされているかを知る
pp_dataset.shape
(84359, 13)
これにより、データセットの形状がわかります。ここでの形状とは、フィーチャまたはいわゆる変数 (依存変数と独立変数) の数、およびデータセットに含まれるインスタンスの数を意味します。
print ( dataset.info ())
これは非常に便利な方法で、データセットの詳細を知ることができます。
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 84359 entries, 1 to 84359
Data columns (total 13 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Purchase Date 84359 non-null object
1 Campaign 84359 non-null object
2 Source Desc 84359 non-null object
3 Source Type 84359 non-null object
4 Country 84359 non-null object
5 Company Name 84358 non-null object
6 Amount ($) 84359 non-null object
7 Base Price ($) 84359 non-null object
8 Gender 84359 non-null object
9 Plan Type 84359 non-null object
10 Activity 84359 non-null object
11 Created By Name 84359 non-null object
12 Created by ID 84359 non-null object
dtypes: object(13)
memory usage: 8.4+ MB
データセットがすべて整数データ型である場合は、この行を使用して数値の全体像を確認することもできます。
dataset.describe ()
ステップ 3: 値欠落の問題を解決する
上でわかるように、インスタンスの数は同じではない可能性があり、一部の機能のインスタンスの数が他の機能よりも少ない場合があります。これはワークアウトには良くないので、一貫性を保つ方法を次に示します。
dataset.dropna ( inplace= True )
ステップ 4: すべてのデータに番号を付ける
機械学習は文字列を読み取ることができず、整数と数値のみを読み取ることができます。実際、現実世界にはデータセット内に非常に多くの文字列が含まれています。したがって、文字列を数値に変換する必要があります。これを実行するための scikit ライブラリとコードを次に示します。
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder ()
label = le.fit_transform ( dataset [ 'Country' ])
dataset [ 'Country1' ] = label
dataset.drop ( "Country" , axis= 1 , inplace= True )
複数のフィーチャを変換する必要がある場合
dataset
[[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] = dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] .apply ( le.fit_transform )
ステップ 5: 数値を整数データ型に変換する
一部の値は数値のように見えますが、実際には文字列データ型である場合があります。この場合、それらを整数データ型に変換する必要があります。コードサンプルは次のとおりです。
dataset [ 'Amount ($)' ] = dataset [ 'Amount ($)' ] .astype ( int )
無料のスクレイピング API とデータ クリーニングの完全な Python スクリプト
Python と Scikit Learn を使用したデータ前処理のヒントに興味がある場合は、 「DS + フル スクリプトと API 無料トークンのスクレイピング」というメッセージを追加してニュースレターを購読してください。 。最新のアプリ スクリプトが公開されたら、スクリプトを送信します。
「Python と Scikit Learn を使用したデータ前処理のヒント」を楽しんで読んでいただければ幸いです。もしそうなら、以下にリストされているいずれかの方法で私たちをサポートしてください。それは常に私たちのチャンネルに役立ちます。
- PayPal ( paypal.me/Easy2digital ) を通じて私たちのチャンネルをサポートし、寄付してください。
- 私のチャンネルを購読し、 Easy2Digital Youtube チャンネルの通知ベルをオンにしてください。
- Easy2Digital Facebook ページをフォローして「いいね!」してください
- ハッシュタグ #easy2digital を付けて記事をソーシャル ネットワークで共有してください
- Easy2Digital の最新記事、ビデオ、割引コードを受け取るには、毎週のニュースレターに登録してください。
- Patreon を通じて月額メンバーシップに登録すると、限定特典をお楽しみいただけます ( www.patreon.com/louisludigital )
データ サイエンスと機械学習 Couresa コースの推奨事項
よくある質問:
Q1: Scikit Learnとは何ですか?
A: Scikit LearnはPythonの機械学習ライブラリです。
Q2: Scikit Learnを使用するためには何が必要ですか?
A: Scikit Learnを使用するためにはPythonのインストールが必要です。
Q3: Scikit Learnの主な機能は何ですか?
A: Scikit Learnは教師あり学習、教師なし学習、次元削減、モデル選択、データ前処理などの機能を提供します。
Q4: Scikit Learnで使用できるアルゴリズムは何ですか?
A: Scikit Learnでは、線形回帰、ロジスティック回帰、決定木、ランダムフォレスト、SVMなど様々なアルゴリズムが使用できます。
Q5: Scikit Learnのドキュメントはどこで見つけることができますか?
A: Scikit Learnのドキュメントは公式ウェブサイト(https://scikit-learn.org/stable/documentation.html)で利用できます。
Q6: Scikit Learnのバージョンアップはどのように行いますか?
A: Scikit Learnのバージョンアップはpipコマンドを使用して行います。例えば、’pip install –upgrade scikit-learn’と入力します。
Q7: Scikit Learnを使用するためのチュートリアルはありますか?
A: はい、Scikit Learnの公式ウェブサイトにチュートリアルがあります。
Q8: Scikit Learnでデータのスケーリングを行う方法はありますか?
A: はい、Scikit LearnではMinMaxScalerやStandardScalerなどのスケーリング手法を提供しています。
Q9: Scikit Learnでクロスバリデーションを行う方法はありますか?
A: はい、Scikit Learnではcross_val_scoreやKFoldなどのクロスバリデーションの手法を提供しています。
Q10: Scikit Learnのコミュニティはどこで見つけることができますか?
A: Scikit Learnのコミュニティは公式ウェブサイトやGitHubなどで見つけることができます。