機械学習システム開発

ビープラウドではデータ分析・機械学習に豊富な実績があるPythonと関連技術を用いて開発をします。ビジネスにデータが有効活用されるよう、技術の選定からシステム化まで、お客様とコミュニケーションを取りながら開発を進めます。

Pythonを用いたシステム開発での多様な経験から蓄積された知見を活かし、機械学習の技術をシステムに統合した設計が可能です。PoC(概念実証)にとどまることなく、持続的な運用にも耐えられる、高品質・高保守性なプログラムの開発、保守サポートを提供しています。

機械学習とは

機械学習は、ビッグデータを用いた学習をもとに、未知のデータを予測する技術です。資産であるデータの分析やPoCを経て、様々な用途に活用します。ビープラウドでは、商品推薦(レコメンド)システム、売上・業績予測システムなど、様々な分野で機械学習技術を含んだシステムの開発実績があります。

主な使用技術等

開発手法 チケット駆動開発、アジャイル開発
OS LinuxmacOSWindows
プログラミング言語 Python
データベース MySQLPostgreSQLRedisMongoDB
インフラ AWSGCPVagrantDockerAnsible
開発ツール GitHubRedmineCircleCI
フレームワーク AirflowDjangoCelery
ライブラリ NumPySciPypandasscikit-learnMatplotlibPuLPPython-MIPJupyter NotebookMeCabseabornPlotly
適用分野 分類クラスタリング回帰次元削減レコメンド
アルゴリズム ロジスティック回帰ランダムフォレスト協調フィルタリング線形回帰リッジ回帰PCAk-means

データ分析・機械学習システム開発事例

グローバルコンサルティングファーム 戦略分析システム開発

NumPypandasscikit-learnMatplotlibseabornPlotlyJupyter Notebook

ビジネス戦略策定の場面においては、財務・特許情報等の膨大かつ多岐にわたるデータの分析が行われます。企業による投資や資本提携が活発となる状況において、コンサルティング業務を支援するデータ解析・可視化を目的としたシステムの開発が行われました。

弊社が参画した開発においては、プロトタイピングと実データによる仮説検証を繰り返し実施。製品化に至るまでには高度な要求を満たす必要があり、複雑できめ細かなデータ処理や整形も含め、Pythonによる実装力と数理統計の知識を活かして対応しました。主な技術として、データ分析処理にscikit-learn、pandas、NumPyを使用、データ可視化にPlotly、Matplotlib、seaborn、プロトタイプの作成と評価に JupyterNotebookを使用しました。

電子書籍取次会社向け 流通業務優先度スコアリングシステム開発

AWSpandasscikit-learnMatplotlibJupyter Notebook分類回帰ロジスティック回帰ランダムフォレスト

電子書籍取次業務では日々大量の書籍を扱っており、販売登録や承認等行う流通業務に多くの人員と時間をかけています。電子書籍には新刊以外にも後から電子化されたものなど実際には1冊も売れないものが7割を締めています。電子書籍のタイトルなどの特徴量と過去の売上冊数を元に機械学習を行い、流通優先度をスコアとして付与し、この優先度を元に流通業務を行うことで人員コストを平準化するシステムを開発しました。

開発では、PoC実装と実データを使って要件を明確にし、特徴量エンジニアリングによってスコアリングと実際の優先度ができるだけ一致するようにチューニングを実施しました。顧客へのレポートには初期にJupyter NotebookとMatplotlibによる見やすいレポート作成を行い、中盤以降は特徴量やアルゴリズムの変更と結果の確認を試行錯誤し、その結果を管理してレポートの出力を自動化する機械学習フレームワークを作成しました。最終的に確定したアルゴリズムを抜き出してAWS環境に組み込み、スコアを日次で担当者に渡すように実装を行いました。

採用担当者向け 応募者の活躍予測システム開発

AWSDjangopandasNumPyscikit-learnCelery

応募者の採用適性検査の結果から、社内の職種ごとにどのくらい活躍できそうか、離職の可能性がどのくらいあるかを予測するシステムを開発しました。また、似た傾向の社員のリストアップを行い、一覧表示にも対応。傾向を予測するために、社員も同じ適性検査を受けておき、その結果と実際の活躍状況を事前に機械学習させておくことで、応募者の傾向の類似度をもとに判定します。

イベント技術タグ割当

DjangoCeleryMatplotlibMeCab分類

connpassで公開されているイベント情報に技術タグ情報を自動的に割り当てる仕組みを作り、運用中のシステムに組み込みました。イベント技術タグ情報は、広告配信の最適化や開催イベントの傾向分析に利用しています。

運用中のメンテナンスコストを下げたい、既存のサーバーリソースを有効活用したい、運用の一環として傾向を分析する環境が欲しい等の要求を加味しつつ、既存システムの上で、運用中にデータが自動更新される仕組みを構築しました。

技術タグ情報を最新技術に追従するために、外部サービスから情報を取得しました。また手動での管理用にDjango管理画面でのメンテナンスも可能としました。技術タグの各イベントへの割り当て処理は、形態素解析(MeCabを利用)の結果やその他、ドメイン情報を加味し、Celeryを使ってバックグラウンドで非同期実行。また、Re:dashを利用して、connpassの運用の一環として傾向を分析できる環境を用意しました。

商品推薦API開発

AWSDjangoNumPySciPyレコメンド協調フィルタリング

アパレルサイト上のおすすめ商品に表示する商品と特集を、会員一人一人に合わせて決定するAPIを作成しました。協調フィルタリングモデルを使用。Luigiによる定時バッチによって表示するおすすめ商品の結果を計算し、Aurora DBに保存。APIGateway-LambdaによるサーバーレスAPIで計算結果をサイトに返却します。

結婚式場の営業支援ツール作成

scikit-learnMatplotlib回帰線形回帰リッジ回帰

結婚式場の申込数を予測するツールを作成しました。線形回帰モデル、リッジ回帰モデルを比較検討。過学習があったため前処理によって対策しました。

履歴書スキル抽出

scikit-learnpandasMeCabMatplotlibNumPy

履歴書に書かれた文章を元に、候補者のスキル有無を判定しました。履歴書の文章をmecabとTF-IDFでベクトル化し、スキル保持者との類似度を計算することでスキル有無を判定します。

システム開発のご依頼・ご相談

お問い合わせ