データクリーニング機械学習アート

REVIEW

データクレンジングは、大規模なデータ処理の最初のステップで、多くの学生は、このステップは見当がつかない感じ、私が清め何を知っているものではありませんしないでください、この記事を見て、少しのインスピレーションに対応していませんか?

オバマ氏のようなデータを失うことなど、悪いマイクを失いました

科学的データは、データ(DS)またはステップ(ML)ワークフロー機械学習をクリーンアップする必要があります。明確なデータが存在しない場合、あなたは本当に重要な部分を見ることが難しい探ります。あなたが最終的にトレーニングMLモデルを起動すると、その後、必要以上にもっと挑戦的になるためにそれらを訓練します。主なポイントは、あなたがデータを最大限に活用したい場合は、それはきれいでなければならないことです。

科学的データと機械学習、データクレンジングとフィルタリングのコンテキストでは、データを変更することが容易に発見するために行い、理解し、モデル化することを意味します。あなたが見たり、それらを処理する必要はありませんので、あなたがしたいか、必要のない部分を除外します。あなたは、一部を変更する必要はないが、彼らはあなたが必要とする形式ではありませんので、あなたがそれらを適切に使用することができます。

ここでは、我々はあなたが使用することができますパンダのコードだけでなく、通常のデータで何かで終わる私たちのいくつかを見てみましょう!

欠落データ

大規模なデータセットはほとんど完全に損なわれていません。ここでは、すべてのデータポイントのすべての機能を完了し、変数の値を持っていることをいいます。一般的に、いくつかの値を失い、「pd.read_csv()」パンダ値をロードしたときも同様に、これらの値がNaNまたはなしとしてマークされています。これらのデータは失われます、なぜ非常に実用的な理由はたくさんあります。人々は、単にデータを収集することを忘れたり、彼らがされるまでの半分のデータ収集プロセスは、特性変数を集め始めました。

データセットを使用する前に欠落したデータに対処する必要があります。たとえば、「変数F」などの特定の特性変数からデータに関するいくつかの重要な情報を見つけ、あなたはデータ探索を行っているとします。しかし、その後、あなたはあなただけ適切に表現から変数データの5%を設定し、データ上の任意の具体的な結論を作ることができない、データの値が変数FにNaNをである95%に設定していることがわかります!あなたはMLモデルを訓練開始すると、あなたのアプリケーションは、あなたのトレーニングで問題につながる、NaNを0または無限大とみなすことができます!

でパンダで欠落したデータを処理する方法があります。

NaNをチェック:  pd.isnull(オブジェクト)のデータ値の欠落検出し、それはまた、「NaNに」と「なし」を検出します

欠落したデータを削除します。  df.dropna(軸= 0、=どのように「任意の」)は、任意のデータポイントはNaNを欠失している含まれているデータフレームを、返します。

欠落したデータに置き換え:  df.replace(to_replace =なし、値=なし)を使用すると、この機能の値が変数であるかを知りたい場合は、これは非常に便利です。

機能を削除するには:  あなたは、データセット内の特徴変数は> 90%のNaNを持って見つけた場合df.drop(「feature_variable_name」、軸= 1)は、それはあなたのデータから全体の機能を削除することは理にかなって。

机器学习中数据清洗的艺术

こうしたオバマ氏のマイクとして、それらの悪い特性を、捨てます

外れ値

データセットの異常値が混在しています。彼らは主要なグループとは非常に異なっているので、一方では、彼らは、重要な情報が含まれていてもよいです。我々はこれまで見てきた一方、彼らはただ、外れ値を参照するために、主要なグループの我々の見解を放棄しました!MLの面では、トレーニングは、外れ値は、モデルの良い一般化を行うことができますが、それはあなたのデータのほとんどが配置されている主要なグループから削除することができます含まれています。

一般的には、二つの側面からの通常のアドバイスを検討します。何の研究やデータの異常値はありません。あなたは彼らにMLモデルを必要とすることを決定した場合、その後、それらを処理するのに十分に堅牢な方法を選択してください。あなたはこれらの異常値が存在しない、と助けないグローバルな情報とデータモデリングを得ることが判明した場合示すように、そのようなほとんどは、それらを削除します。

また、あなたはこれらの外れ値を除外したい場合は、以下の方法を使用することができます。

# Get the 98th and 2nd percentile as the limits of our outliers
upper_limit = np.percentile(train_df.logerror.values, 98)
lower_limit = np.percentile(train_df.logerror.values, 2)
# Filter the outliers from the dataframe
data[‘target’].loc[train_df[‘target’]>upper_limit] = upper_limit data[‘target’].loc[train_df[‘target’]<lower_limit] = lower_limit

机器学习中数据清洗的艺术


机器学习中数据清洗的艺术

包含异常值的图(左)和剔除异常值的直方图(右)

坏数据和重复数据

坏数据是指任何不应该存在的数据点或值,或者是完全错误的数据点或值。例如,假设你的一个特征变量名为“gender”,其中大多数值是“male”或“female”。但是,当你浏览数据集时,您会注意到有几个数据点的性别值为67.3 !显然,67.3在这个变量中没有任何意义。此外,如果你尝试将“gender”特征变量转换为分类浮点数:male = 0.0, female = 1.0,那么您将得到一个额外的浮点数:67.3 = 2.0!

重复仅仅是数据集中重复的数据点。如果有太多这样的特征,就会影响ML模型的训练。正如我们前面看到的,重复数据可以简单地从数据中删除。

坏数据可以通过删除或使用一些智能替换来处理。例如,我们可以查看性别为67.3的数据点,发现所有这些数据点的正确值都应该是“女性”。因此,我们只需将所有67.3值转换为“女性”。这样做的好处是,我们有效地为ML训练重新获得了这些数据点,而不是将它们丢弃。你可以使用pandas做这样的转换:

value_map = {'male': 'male', 'female': 'female', '67.3': 'female'}
pd_dataframe['gender'].map(value_map)


机器学习中数据清洗的艺术


小心重复的Loki数据

不相关的特征

并非所有的特征都是相同的。有些东西你可能根本不需要!例如,你可能正在查看过去一年从Amazon购买的图书的数据集,其中一个特性变量称为“font-type”,表示书中使用的字体类型。这和预测一本书的销量是毫无关系的!你可以安全地把这个功能丢弃,就像这样:

df.drop('feature_variable_name', axis=1)

这样做使你的数据探索更容易,因为你不需要查看那么多东西。由于你没有处理那么多的数据,它还有助于使ML模型的训练变得更容易和更快。如果你不确定变量是否重要,那么你可以一直等到开始研究数据集时再决定。计算特征变量与目标输出之间的相关矩阵有助于确定该变量的重要性。

机器学习中数据清洗的艺术

当你的特征变量没什么用时…

标准化

每个特征变量中的所有数据都应该采用相同的标准化格式。它将使数据探索和建模的技术方面更加容易。例如,让我们再次以“gender”变量为例,它的值是“male”或“female”。如果数据是由人类收集的,你可能会得到许多你没有预料到的不同的值:

  • male, female(这个不错)

  • MALE, FEMALE(带大写锁定)

  • Male, Female (有些人会大写)

  • Make,Femall(拼写错误!)

如果我们直接将特征变量转换为分类浮点数,我们会得到比我们想要的0和1更多的值!我们会得到这样的结果:

{
'male': 0,
'female': 1,
'MALE': 2,
'FEMALE': 3,
'Male': 4,
'Female': 5,
'Make': 6,
'Femall': 7
}

处理这种情况有两种方法。如果是一些简单的事情,比如把第一个字母大写或者小写,就像这样做:

# Make the whole string lower case
s.lower()
# Make the first letter capitalised
s.capitalize()

如果有拼写错误,你会想要使用我们之前看到的映射函数:

郑州不孕不育医院:http://jbk.39.net/yiyuanzaixian/zztjyy/

value_map = {'Make': 'male', 'Femall': 'female'}
pd_dataframe['gender'].map(value_map)

英文原文:https://towardsdatascience.com/the-art-of-cleaning-your-data-b713dbd49726


おすすめ

転載: blog.51cto.com/14510269/2432067