新着記事一覧

転職エージェント

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職エージェントの選び方

転職活動を始めるとき、利用する人も多い「転職サイト」。 転職サイトに登録していると、様々な転職エージェントからスカウトや連絡があります。 私も今回の転職活動では、複数の転職サイトに登録し、その中でスカウトを送ってくれたいくつかの転職エージェントの担当者と実際に話をしました。 そこで感じたのが、「転職エージェントなら、どこでも同じというわけではない」ということです。 求人の紹介方法も違えば、書類添削や面接対策などのサポート内容も違います。 そして何より、担当者によって熱量や相性がかなり違うと感じました。 今 ...

続きを読む

ポケモン 遊び・趣味

2026/10/20

【ポケモン】ポケモンGo リアルイベントの醍醐味

ポケモンGOのリアルイベントに参加してみて、改めて感じたことがあります。 それは、「ポケモンGOって、こんなに人とつながれるゲームだったんだ!」ということ。 普段もポケモンGOをプレイしていますが、家の近所や通勤途中で遊んでいるときは、一人(もしくは子供と)で黙々とポケモンを捕まえています。 知らない人に話しかけることも、ほとんどありません。 ところが、リアルイベントになると、それがちょっと変わります。 そこには、同じようにポケモンが好きな人が全国、そして世界中から集まっている。 「ポケモンが好き」という ...

続きを読む

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職活動のスケジュールと進め方

海外営業からデジタルマーケティングへキャリアチェンジし、やりたい仕事に手応えを感じていたものの、組織変更によってデジタルマーケティングの仕事そのものがなくなってしまったことが、転職を考える大きなきっかけでした。 今回は、その後の転職活動のスケジュールと、実際にどのように転職活動を進めたのかを書いてみたいと思います。 結果的には、3月に本格的に転職活動を始め、4月に転職先を決定、4月22日を最終出社日として、5月は少しゆっくり過ごし、6月から新しい会社で働き始めました。 これから転職を考えている方の参考にな ...

続きを読む

ポケモン 遊び・趣味

2026/10/18

【ポケモン】Pokémon GO Fest 2026:東京!5月のリアルイベントの服装と持ち物まとめ

5月に開催されたPokémon GO Fest 東京に、小学2年生の息子と一緒に参加してきました!リアルイベントは初参加です! 今回が初めてのリアルイベント参加。 参加する前は、 「5月ならそこまで暑くないかな?」 「飲み物はどれくらい持っていけばいい?」 「スマホの充電は足りる?」 など、いろいろと気になることがありました。 実際に参加してみると、ポケモンGOのリアルイベントならではの準備がかなり重要! 特に、たくさんの人が集まるイベントなので、飲み物やモバイルバッテリーなどは「ちょっと多いかな?」くら ...

続きを読む

キャリア形成・転職 仕事・キャリア

2026/10/20

【40代の転職】転職のきっかけ

Haruは41歳で転職をしました。この記事では、40代の転職のきっかけをお伝えしようと思います。 なぜ転職を決めたのか 「なぜ転職したの?」 転職すると、よく聞かれる質問です。 私の場合、突然「今の会社が嫌になったから」というわけではありません。むしろ、これまでの会社で自分なりにやりたいことを見つけ、勉強して、部署異動まで実現させて、少しずつキャリアを変えてきました。 それでも最終的に転職を決めたのは、「この会社にいても、これ以上自分がやりたい方向には進めない」と思う出来事があったからです。 今回は、私が ...

続きを読む

ポケモン 遊び・趣味

2026/10/11

【ポケモン】豊橋ポケモン天文台に行ってきた話

三連休の土曜日、子どもたちと一緒にポケモン天文台へ行ってきました!ポケモンと宇宙が組み合わさった施設ということで、子どもたちは行く前から楽しみにしていました。今回は、実際に訪れてみて感じたことを中心に、アクセスや駐車場、混雑状況、館内の見どころ、グッズ購入までまとめてみます。(ネタばれしない範囲で) ポケモン天文台ってどんなところ? ポケモン天文台は、宇宙や星について楽しく学べる、ポケモン好きの子どもにはたまらないスポット。単に展示を見るだけではなく、ポケモンと一緒に太陽系や星、隕石などについて学べるので ...

続きを読む

Python 仕事・キャリア

2026/10/10

【Python】Pythonでの自然言語処理(日本語)

こちらの記事では、自然言語処理についてまとめています。 自然言語処理とは? 自然言語とは、日本語や英語のような自然発生的に生まれた言語です。日常的に使用している自然言語について、言葉が持つ意味を解析し処理します。活用事例としては、チャットボット、音声認識AI、文字認識(手書き文字をカメラが認識し文字データへと変換する技術)、検索エンジン、翻訳、感情分析、文章要約などがあります。 文章の意味を機械に理解させるには、単語分割を行う必要があります。手法は主に2つあります。 1.形態素解析形態素とは意味を持つ最小 ...

続きを読む

Python 仕事・キャリア

【Python】機械学習のデータ前処理 外れ値の扱いについて

外れ値の処理についてまとめています。

外れ値とは?

外れ値とは、他のデータと著しく乖離したデータのことを指します。
データ内に外れ値が混在していると、分析結果に影響を及ぼしたり、機械学習モデルの学習過程で影響がでてしまい学習が進みにくくなる、などの影響が出てしまいます。

外れ値の検知方法について

外れ値の検知方法について、可視化、LOF(Local Outlier Factor )、Isolation Forestの3つの手法について紹介します。

可視化による外れ値の検知

外れ値があるかどうか、まず可視化して確かめてみるのがよいです。

#必要なライブラリをインポートする
import pandas as pd
import numpy as np
import openpyxl
import matplotlib.pyplot as plt
import seaborn as sns

#Excelを読み込む
data = pd.read_excel("sampledata_outlier.xlsx")

#タイムを箱ひげ図にて可視化する
sns.boxplot(y=data["time"])

#joinplotで散布図とヒストグラムを描画する
#今回は、x軸にtime、y軸にdistanceとして可視化をしてみる
x_data = data["time"]
y_data = data["distance"]
sns.jointplot(x=x_data, y=y_data, data=data)

可視化の手法について、箱ひげ図、散布図+ヒストグラムでの描画を行ってみます。

#必要なライブラリをインポートする
import pandas as pd
import numpy as np
import openpyxl
import matplotlib.pyplot as plt
import seaborn as sns

#Excelを読み込む
data = pd.read_excel("sampledata_outlier.xlsx")

まず、必要なライブラリをインポートし、データを読み込みます。今回は以下のようなサンプルデータを準備しました。3カラムのデータです。

#timeカラムを箱ひげ図にて可視化する
sns.boxplot(y=data["time"])

timeカラムを箱ひげ図で描画してみます。〇が外れ値です。

#joinplotで散布図とヒストグラムを描画する
#今回は、x軸にtime、y軸にdistanceとして可視化をしてみる
x_data = data["time"]
y_data = data["distance"]
sns.jointplot(x=x_data, y=y_data, data=data)

データが二次元の場合は、散布図とヒストグラムを同時に描画してくれるjointplotが使えます。
今回は、x軸にtime, y軸にdistanceを設定し可視化してみます。目視で確認すると、タイムに外れ値がありそうです。

LOF(Local Outlier Factor )による外れ値の検知

LOFはデータの密度に基づいて外れ値を検知する方法です。LOFには、近くにデータ点が少ないのが外れ値であると考える、k個の近傍点を使ってデータの密度を推定する、密度が周囲と相対的に低い点を外れ値と判定する、という特徴があります。
Scikit-learnにて簡単に検知することができます。

#必要なライブラリをインポートする
import pandas as pd
import numpy as np
import openpyxl
from sklearn.neighbors import LocalOutlierFactor

#Excelを読み込む
data = pd.read_excel("sampledata_outlier.xlsx")

#LocalOutlierFactorでパラメータを指定し(何個の近傍点を使うか)、分類モデルを作成する
clf = LocalOutlierFactor(n_neighbors=3)
predictions= clf.fit_predict(data)
data[predictions == -1]

可視化と同じデータを使って試してみます。

#必要なライブラリをインポートする
import pandas as pd
import numpy as np
import openpyxl
from sklearn.neighbors import LocalOutlierFactor

#Excelを読み込む
data = pd.read_excel("sampledata_outlier.xlsx")

必要なライブラリをインポートしてExcelを読み込みます。

#LocalOutlierFactorでパラメータを指定し(何個の近傍点を使うか)、分類モデルを作成する
clf = LocalOutlierFactor(n_neighbors=3)
predictions= clf.fit_predict(data)
data[predictions == -1]

LocalOutlierFactor関数で、何個の近傍点(n_neighbors)を使うかパラメータ指定をして分類モデルを作成します。この例では3で実行しました。
fit_predictでデータを学習させて外れ値を検出します。
predictionの返り値は以下のようになります。外れ値とみなしたデータ行では値が-1に、正常なものは1が返ってきます。

data[predictions == -1]で、外れ値と判定された行を取得できます。

Isolation Forestによる外れ値の検知

Isolation Forestは、計算が複雑ではなく省メモリ、大規模なデータでも計算しやすい、というメリットがあります。
特定のデータ項目でランダムにデータを分割→別のデータ項目でランダムにデータ分割→これ以上分割できないデータを2回の分割で作成できたのでこれをdepth=2として記録→これらを繰り返し各点の深さの平均を計算するといったアルゴリズムで外れ値を検出します。
外れ値ほど深さの平均が小さい値となるため、深さが小さいデータを外れ値として判定することができます。

#必要なライブラリをインポートする
import pandas as pd
import numpy as np
import openpyxl
from sklearn.ensemble import IsolationForest

#Excelを読み込む
data = pd.read_excel("sampledata_outlier.xlsx")

#Isolation Forestで外れ値を検知する
clf = IsolationForest()
clf.fit(data)
prediction = clf.predict(data)
data[prediction == -1]

必要なライブラリをインポートしてExcelを読み込みます。

#Isolation Forestで外れ値を検知する
clf = IsolationForest()
clf.fit(data)
prediction = clf.predict(data)
data[prediction == -1]

Isolation Forestモデルを作成し、元のデータに適合させ、predictメソッドを使用して外れ値を予測します。予測された値がpredictionに返ってきます。外れ値とみなしたデータ行では値が-1に、正常なものは1が返ってきます。
外れ値を表示させてみると、以下のようになります。

  • この記事を書いた人

Haru

会社員。育休2回取得、40代で転職。
職種はデジタルマーケティング。
ポケモン、スノボ、IT系の学び、キャリア、育児について発信していきます。

-Python, 仕事・キャリア
-, ,