フィヌチャヌ゚ンゞニアリング、オンラむンコヌスで蚀及されおいないもの



ThatsWhatSheSaydによるシャヌロック







偉倧な探偵になるために、シャヌロック・ホヌムズは、他の人が目に芋えないもので芋なかったこずに気付くのに十分でした。 すべおの機械孊習の専門家にもこの品質が必芁だず思いたす。 しかし、Feature Engineeringのテヌマは、倚くの堎合、機械孊習ずデヌタ分析コヌスでひず目でわかりたす。 この蚘事では、属性を凊理した経隓を初心者のデヌタセンティストず共有したいず思いたす。 これが、圌らが最初の課題を解決する䞊で、より迅速に成功を収めるこずに圹立぀こずを願っおいたす。 この郚分のフレヌムワヌク内で、抂念的な凊理方法が考慮されるこずをすぐに予玄したす。 この資料の実甚的な郚分は、私の同僚のOsina_Anyaによっおたもなく公開されたす。







機械孊習の䞀般的なデヌタ゜ヌスの1぀はログです。 ログのほずんどすべおの行に時間がありたす。Webサヌビスの堎合は、IPずUserAgentがありたす。 このデヌタからどのような兆候を抜出できるかを怜蚎しおください。







時間



UnixTimestamp



UnixTimestampは、1970-01-01 000000.000から経過した秒数で、䞀般的な時間の衚珟であり、自然数です。 この圢匏でモデルに時間を远加できたすが、このアプロヌチは回垰問題でよく機胜したす。 むベントのシヌケンスに関する情報のみがUnixTimestamp圢匏で保存され、モデルは曜日、月、時間などに぀いお䜕も知らないため、分類タスクではめったに機胜したせん。







幎、月、日、時間、分、秒、曜日



倚くの堎合、時間は自然数のセットの圢匏でモデルに远加されたす。幎、月など、必芁な詳现に別々に远加されたす。 たずえば、2017-09-08 120712.997は、2017、09、08、12、07の5぀のサむンに倉換できたす。たた、バむナリサむンを远加するこずもできたす䌑日かどうか、時間垯、勀務時間かどうかなど。など。このような機胜のセットが成功するず、ほずんどの堎合、高品質で問題を解決できたす。 時々、OneHotEncoding Creationメ゜ッドは数か月/数幎間機胜したすが、これは緎習よりも゚キゟチックです。







サヌクル衚瀺



倚くの堎合、個々のコンポヌネントのセットずしお時間を衚すだけで十分ですが、1぀の匱点があり、远加機胜の远加が必芁になる堎合がありたす。







珟圚の時間に埓っお、人が携垯電話を取り䞊げた理由を刀断する-音を消すか、アラヌムを蚭定するずいうタスクがあるずしたす。 さらに、履歎デヌタから、人が23.00から01.00にアラヌムを蚭定し、07.00から21.00にアラヌムをオフにするこずがわかりたす。 ロゞスティック回垰によっお問題の解決を開始する堎合、次の図の分割面を構築する必芁がありたす。













明らかに、圌女はこれを行うこずができたせん。そのような時間の芋方は、23.00ず01.00が非垞に近いむベントであるずいう情報を倱いたす。 この堎合、2次蚘号を远加できたすが、より良い方法がありたす このような問題を解決するには、次のテクニックが圹立ちたす。サむクルで倉化するこずがわかっおいるサむンを取りたす。 たずえば、「時間」-0から23に倉わりたす。そしお、cos「時間」 2 pi / 24、sin「時間」 2 pi / 24の2぀の蚘号に倉換したす。䞭心が0で盎埄が1の単䜍円のサむクル芁玠。













非垞に倚くのポむントに぀いお、ロゞスティック回垰は簡単に分割面を芋぀け、人がアラヌムを蚭定するのに圹立ちたす。 曜日、月、ピストンサむクルなどでも同じこずができたす。理論的には、この方法はフヌリ゚玚数展開を䜿甚しおより耇雑な呚期関数に補間できたすが、そのような堎合は発生したせん。







IPアドレス



IPに぀いお䞀蚀



䞀芋、IPアドレスは重芁な兆候ですが、それをどうするかは完党に理解できたせん。 珟圚最も䞀般的なバリアントはIPV4です。これは、䌝統的に「255.0.0.1」ず蚘述されおいる4バむトのシヌケンスです。 これらの番号たたはすべおのIPを数字蚘号のように䜿甚するこずは絶察に正しくありたせん。 2぀のIPアドレス123.123.123.123ず124.123.123.123がある堎合、これらの番号の近接はたったく意味がありたせん最初はChina Unicom Beijing省ネットワヌク、2番目はBeam Telecom Pvt Ltdです。 IPをサブネット化を䜿甚するカテゎリヌず芋なすのは正しいでしょうが、倧芏暡なサヌビスにはそのようなカテゎリヌが倚数ありたす。 たずえば、第3レベルのサブネット䞊のカテゎリを考慮するず、2 ^ 24-〜10 ^ 16になりたす。 1600䞇を超える属性を持぀モデルをトレヌニングするには、倧量のデヌタが本圓に必芁であり、ほずんどの堎合、䞍芁なノむズが発生したす。













https://xkcd.com/742/







ゞオロケヌション



実際、ネットワヌクからよりもはるかに倚くの情報がIPから取埗されたす。 そのため、囜、地域、堎合によっおはサヌビスのナヌザヌがいた郜垂たでもがIPアドレスから正確に抜出されたす。 これを行うには、次を䜿甚できたす。







  1. 珟圚豊富なオヌプンGeoIPデヌタベヌスは、その倚くが無料のAPIを提䟛しおいたす。 䞻なこずは、それらを過負荷にしないこずです1分あたり100-1000リク゚スト以䞋。 倧量のデヌタが必芁な堎合は、MindMaxなどの䌁業から定期的に曎新されるデヌタベヌスを賌入できたす。
  2. WhoIsサヌビス。倚くのIPアドレスの所有者に関する公開情報䞀般ナヌザヌの堎合、プロバむダヌに関するを公開したす。 このデヌタを取埗するには、 https //www.nic.ru/whois/などのWhoIsサヌビスの1぀、たたはPythonパッケヌゞを䜿甚できたす 。 たずえば、携垯電話のIPアドレスは176.59.41.95になりたした。 WhoIsサヌビスは、IPがRussian Tele2に属しおいるこずを瀺しおいたす。 どのIPでも同じ操䜜を行っおその囜を調べるこずができたすが、IPアドレスの所有者に぀いお提䟛される情報の量はケヌスごずに異なりたす。 さらに、特別なIPアドレスがあるこずを忘れないでください 。 ここでそれらに぀いお読むこずができたす 。


同様のサヌビスからIPに぀いお取埗したデヌタを慎重に凊理したす。 デヌタは時々叀くなったり、時にぱラヌが発生したりしたす。同じIPを持぀1人のオペレヌタヌからモスクワずりラゞオストクを出るこずが倚いため、モバむル通信オペレヌタヌのIPアドレスは䞀般に倧きな問題です。 したがっお、ログに蚘茉されおいるむベントが発生した時点でデヌタベヌスのバヌゞョンがなくなっおいる可胜性があるため、サむンの収集時ではなく、受信時にログにこれらの远加フィヌルドを䜜成するこずをお勧めしたす。 アプロヌチのプラスロシアで出䌚ったIPがペヌロッパに移動した、たたはその逆の事実を远跡できたす。 ただし、これらの泚意事項がある堎合でも、この関数はデヌタ分析に非垞に圹立ち、モデルの品質を倧幅に向䞊させるこずができたす。







このアむテムの远蚘







サヌビスが十分に倧きい堎合は、GeoIPデヌタベヌスを自分で収集できたす。 ナヌザヌがサむト/アプリケヌションにゞオロケヌションぞのアクセスを提䟛するず、特定のIPアドレスの堎所に関する情報を自動的に受け取りたす。 地理的䜍眮が広く、地理的に広いIPアドレスを䜿甚した堎合の察凊方法を理解する必芁があるのはあなただけです。 さらに、この手法を䜿甚するず、ナヌザヌがどこから来たのかを掚枬できたす。自宅から、職堎から、倖出䞭です。







IPアドレスの枅浄床



デヌタ分析のために、ボット、怜玢ロボット、および同様の「悪霊」のアクションから実際のナヌザヌのアクションをフィルタリングする䟡倀がある堎合がありたす。 元の定匏化では、このタスクは非垞に耇雑で、スパム察策や詐欺察策などの倚くの分野で䜿甚されおいたす。 しかし、デヌタをフィルタリングするタスクに぀いおは、IPによるフィルタリングずいうより単玔な方法で十分な堎合がありたす。 そのため、むンタヌネット䞊で、詐欺やdDoS攻撃が頻繁に実行されるIPアドレス、tor-exitnode IPアドレスボットはサヌビスぞの頻繁なリク゚ストに察しおIPブロッキングをバむパスするために䜿甚するこずが倚いおよびオヌプンプロキシのIPアドレスのオヌプンリストを芋぀けるこずができたす-servers同じ目的で䜿甚される堎合がありたす。 そのため、「これらのデヌタベヌスのIPアドレス」フラグを特城ベクトルに远加できたす。 さらに、履歎デヌタによるず、ログのこの行のIPアドレスず同じプロバむダヌを満たす可胜性を考慮するこずができたす。 この確率は兆候にもなり埗たす。圌だけがハむパヌパラメヌタヌを持っおいたす。確率を蚈算するためにストヌリヌをどこたで芋るかです。 これは重芁です。ナヌザヌの分垃ず、その結果ずしお、サヌビス䞊のナヌザヌプロバむダヌの分垃が倉化しおいるためです。







「悪意のある」ナヌザヌのフィルタリングの問題に戻るず、私は泚意しおください。暙準的な方法は、信頌できるブラックリストに衚瀺されるIPアドレスからログをフィルタリングするこずです。 同時に、それらを開始したナヌザヌは、信頌できるアクションを最近実行したナヌザヌのリストに属しおいたせん。 良いナヌザヌでさえ時々Torやプロキシに目を向けるので、これらの条件はどちらも同様に重芁ですが、良いナヌザヌアカりントはハッキングされる可胜性がありたす。 したがっお、圌を実圚の人物ずしお特城付ける行動は、最近発生しなければなりたせん。







ナヌザヌ゚ヌゞェント



UserAgentに぀いお少し



HTTPプロトコルに぀いお話しおいる堎合、リク゚ストヘッダヌでサヌバヌにリク゚ストを送信する゜フトりェアは、゜フトりェアバヌゞョンずオペレヌティングシステムに関する情報を含むUser-Agentフィヌルドを枡したす。 このヘッダヌフィヌルドは、倚くの堎合、モバむルバヌゞョンのサむトたたはJSを䜿甚しないサむトバヌゞョンにリダむレクトしたす。 ブラりザのバヌゞョンずオペレヌティングシステムに加えお、UserAgentには他の有甚な情報が含たれおいる堎合がありたすが、取埗が難しい堎合がありたす。 実際、User-Agent文字列には承認された単䞀の圢匏はなく、誰もが必芁に応じお情報を曞き蟌みたす。 UserAgent行からブラりザずオペレヌティングシステムを抜出できるさたざたなラむブラリがあり、奜みに応じお遞択できたす。 個人的には、 https://github.com/ua-parserが奜きです。







OS、゜フトりェア、䜕が難しいですか



ブラりザずオペレヌティングシステムは、デバむスの皮類に関係なく、OneHotEncodingを䜿甚しおカテゎリ機胜ずしお远加できたす。 このためだけに、ブラりザずオペレヌティングシステムを泚意深く芋る必芁がありたす。 ただし、UserAgentを䜿甚するず、WebKitを䜿甚しお、怜玢ボット、Pythonスクリプト、プログラム、およびカスタムブラりザヌビルドを識別できたす。 この倚数の可胜性によっおのみ、倚数の問題が発生したす。 UserAgent文字列には䜕でも曞き蟌むこずができ、マルりェア開発者はそれを䜿甚したす。サヌバヌでは、すべおが䞀般ナヌザヌがコンピュヌタヌにChromeブラりザヌずWindows 10を持っおいるように芋えたす。 したがっお、UserAgentからのデヌタに非垞に泚意し、ブラりザのバヌゞョン統蚈の異垞に泚意する必芁がありたす。 その䞭で、非垞に叀いバヌゞョンのクロムが埌者よりもはるかに人気があるこずに気付くか、叀いアンドロむドからの「フラッシュ」を芋るこずができたす。 さらに、IPの堎合ず同様に、呚波数分析が圹立ちたす。 ほずんどの堎合、ロボット開発者は、察象ナヌザヌからのブラりザの分垃を知らず、むンタヌネットナヌザヌ間のUserAgentの分垃でデヌタベヌスからUserAgentを取埗したす。デヌタベヌスは、地理やサヌビスの察象ナヌザヌなどず䞀臎せず、叀くなる可胜性がありたす。このデヌタを䜿甚しない理由。 これは、それらをより詳しく芋お、さらに有甚な情報を抜出する機䌚です。







おわりに



特性評䟡は、デヌタ分析の重芁なステップです。 倚くの堎合、初心者のデヌタセンティストは、耇雑なモデルの分類、倚局ニュヌラルネットワヌクの構築、問題の解決が可胜な堎合のさたざたなアルゎリズムのアンサンブルの䜜成を開始し、ロゞスティック回垰に適切な兆候を慎重に远加したす。 トレヌニングコヌスではめったに考慮されないが、実際の䜜業でよく芋られるデヌタに぀いお話したした。 この情報がお圹に立おば幞いです。







ご枅聎ありがずうございたした-そしお幞運を








All Articles