欠損 アニメ。 義手の「欠損アイドル」として、私が積極的に活動する理由

女の子が銃を手にして、戦うアニメ☆

欠損 アニメ

「アイドル」として活動する琴音さん 昨年、3月には乙武洋匡氏の不倫騒動があった。 そのアイドルは、琴音さん。 (取材・写真・文/フリーライター 有山千春) 右側からワゴン車が突っ込み 高校1年生のときに右腕を失った 琴音さんが右腕を失ったのは15歳、高校1年生のときだった。 「当時の記憶は曖昧で、覚えているのは、夜、バイトの帰り道に、右側からワゴン車に突っ込まれた、ということくらいです。 目撃者によると、事故直後に私、『痛い!痛い!誰か助けてー!痛いよ!』と叫んでいたそうなんですが、記憶にないんですよね」 1~2週間もの間、意識は混濁し、ようやく目を覚ましたときに初めて、自分の右腕がないことに気づいた。 「寝たきりだったから、自分がどういう状態かわからなかったんですよね。 ただ、触れないけど全身が痛くて。 痛みがあるから、『私、生きてるんだ』と実感しました。 そんなとき、お母さんが、なんとも言えない顔で言ったんです。 『ないんだよ、右腕』って。 何を言っているんだろう、と思って見ると、『あ!本当だ!ない!』」 「お母さんの方が辛かったのでは」と、琴音さんは慮る。 その後、義手を適合させるために、切断専門の病院に転院。 手の型を取って装飾義手を作ったり、能動義手(残された身体機能の動きを利用する義手)で細かい作業をしたりと、2年間をその病院で過ごすことになる。

次の

銃の描写がリアルなアニメを教えてください。かなり前になりますが、...

欠損 アニメ

「この商品を購入したお客様はこちらも一緒にお買い上げいただいてます」「このビデオを見た方はこちらも見てます」。 レコメンド機能ですが、実にありとあらゆる業種で活用されています。 商品(EC)• ニュース• …その他多数 今回の機械学習初心者向けチュートリアルでは、 k近傍法(K-nearest neighbor)というアルゴリズムを利用して、アニメのレコドメンド機能をPythonを使って一緒に構築してみましょう! この記事の目次• レコメンド機能(エンジン)とは? まずは、このレコメンド機能とは何かについて一緒に紐解いていきましょう。 レコメンド機能とは、データを活用して顧客やユーザーに「お勧め」を提供する情報フィルタリングシステムです。 冒頭でも触れましたが、顧客それぞれの興味や購入履歴に基づいている事から、それぞれの顧客の趣味嗜好に合わせたユーザー体験を提供することが可能な訳です。 優秀なレコメンド機能は、ユーザー体験を改善することにより、多くの売上を生み出し、さらには顧客満足度を高めることに大いに役立ちます! 企業は、より優秀なレコメンド機能を構築するために、非常に多くのデータを集めています。 集めたデータの量と質により、レコメンド機能の精度が上がることで、より大きな売上と高い顧客満足度へ直結するためです。 ちょっと想像して見てください。 もしあなたに機械学習の師匠とも呼べる親しい先輩がいたとして、その先輩が機械学習入門書をお勧めしてくれたら、かなり高い確率でその書籍を購入することを検討しますよね? なぜなら、あなたは、その先輩の機械学習の知識を信頼している訳ですし、さらには、先輩があなたの機械学習の知識量を知っていることを分かっているため、 自分にはその入門書が適切だと考える訳です。 このような「 お勧めのプロセス」と似たような体験を、企業は「 レコメンド機能」として提供している訳です。 ただし、 大きな違いとしては、個人的なつながりのある「先輩」の代わりを、膨大かつ多種多様なデータで代用しているのです。 「レコメンド機能」または、その機能の中核となる「レコメンドエンジン」は、多種多様なビジネスに大きな利益をもたらす重要な機能となっており、 機械学習の技術が大きく活用されている分野です! レコメンドエンジンの2つの種類 レコメンド機能の中核となるのが、レコメンドエンジンな訳ですが、大きく分類すると2つの種類があります。 ソース: 英語ではありますが、上記の図を見ながら考えてみましょう。 レコメンドエンジンには「 協調フィルタリング(Collaborative Filtering)」と「 コンテンツに基づくフィルタリング(Content-Based Filtering)」の2種類があります。 協調フィルタリングとは? 協調フィルタリングとは、 コミュニティー全体を基にしたレコメンドシステムで、あなたの趣味嗜好や興味が、反映される形のレコメンドエンジンとなります。 協調フィルタリングは、 あなたの趣味嗜好と類似しているユーザーを探し出して、そのユーザー達の嗜好に基づいて、オススメを行います。 AmazonなどのECサイトの多数では、ユーザーの事細かな情報を持っていますよね。 例えば年齢や、住所、商品の購入履歴からレビューなどなど。 協調フィルタリングでは、このような各ユーザーの行動(データ)に基づいて、類似したデータを用いることでオススメが可能なわけです。 もっと簡単に言えば、例えばあなたが犬の首輪を購入して、次にトイレットペーパーを購入したとします。 この2つの商品を購入したユーザーの情報を分析したところ、「USBメモリ」の購入の確率が高いことが判明したので、あなたにUSBメモリの購入をオススメする流れが「協調フィルタリング」です。 (あくまで例です笑) 上記の例を見ても分かる通り、非常に強力なレコメンドエンジンだと思われますが、実は弱点もあります。 協調フィルタリングの主な弱点としては、「 新しいユーザー」に弱いことです。 これは、上の具体例を考えてみると分かりやすいですが、ユーザーへオススメするためのデータが不足しているので、オススメが出来ない(または極端に精度が悪い)わけです。 今回の記事では、この「協調フィルタリング」の仕組みを利用したレコメンド機能を構築します。 コンテンツに基づくフィルタリングとは? では、もう一方のレコメンド機能も軽く見てみましょう。 先の協調フィルタリングでは、「 コミュニティ全体の動きに基づいて」オススメを行いましたが、こちらは「 あなたの履歴と類似性に基づいて」推薦をしてくれます。 具体的な例で考えてみましょう。 例えば、本屋さんのアンケートで「SF」が好きだと答えたとしましょう。 そうすると、当然ですが、この書店から届くオススメは「SF」または「SFに類似したカテゴリ」の書籍となる訳ですよね。 このコンテンツに基づくフィルタリングでは、ユーザーが「SF」が好きだと言っているのに、いきなり「料理のレシピ本」のオススメはしない訳です。 このように、このシステムでは以前に好きだった(または購入した)アイテムの特性をみて、それらに似たアイテムを推薦してくれます。 例えばECで機械学習の本を購入して高い評価を残したら、そのあとに、そのサイトからオススメされる書籍が機械学習関連になりますよね。 まとめると、「 協調フィルタリング=類似したユーザーに基づいて推薦」で、「 コンテンツに基づくフィルタリング=あなたの履歴に基づいて類似性のある商品を推薦」となります。 参考までにですが、この2つのレコメンドエンジンを合体させた「 ハイブリッド」を利用しているケースもあります。 企業におけるレコメンド機能の実例 次は、実際に企業で使われているレコメンド機能の実例について紹介させていただきます。 冒頭でも触れた通り、レコメンド機能は、売上や顧客満足に密接に関わることから、多くの企業で使われています。 ここで紹介するのはごく一部ですが、特に優れているレコメンドエンジンの実例として見ていきましょう。 【実例1】アマゾン レコメンド機能の先駆者とも言われるアマゾンですが、サイト内の様々な箇所でレコメンド機能がフル活用されています。 下の図ですが、アマゾンで「 深層学習」の書籍の詳細ページに表示されているものです。 赤枠で囲っている部分がレコメンド機能で表示されている項目です。 図を見れば一目で分かりますが、他のユーザーの購入履歴を基に、この「深層学習」の本と一緒に購入されている書籍をセットでオススメしてくれますし、さらには自身の購入履歴に基づいて、私が購入しそうな商品をオススメしてくれます。 このように、機械学習とユーザー購買履歴データを活用することで、非常にパワフルなツールとなります。 一昔前までは、多くのサービスで、単純に「プログラミング」のカテゴリに該当する書籍を推薦していましたが、機械学習を活用することにより、より的確なオススメが可能になる訳です。 【実例2】ネットフリックス Netflix(ネットフリックス)もレコメンド機能を活用している企業として、頻繁に引き合いに出されます。 利用されている方も多いと思いますが、ネットフリックスとは、テレビ番組や映画などをインターネットで視聴できる動画サービスです。 ユーザーがNetflixへログインをすると、 トップページで表示される動画は各ユーザーごとに異なります。 米Netflixでは機械学習エンジニアお馴染みの「(カグル)」で100万ドル(約1億円)の賞金をかけて、この 協調フィルタリング(レコメンド機能)の精度を競うコンペを開催したこともあります。 レコメンド機能がビジネスに対して大きな成果をもたらしている証拠かと思います。 【実例 3】YouTube レコメンド機能の実例の3つ目はYouTubeの活用事例を紹介します。 YouTubeを見ていると、「 関連する動画」として、様々な動画を紹介してくれますよね?これも機械学習をフル活用した、最先端のレコメンド機能の良い事例です。 おそらくYouTubeを利用されているほとんどの方が、この「 関連動画」の機能を使ったことがあるかと思います。 今見ている動画に関連した動画はもちろん、例えば何かしらのシリーズであれば、その続編であったり、テイストが似たような動画だったりと、非常に便利な機能ですよね。 また、ユーザー個別にカスタマイズされているのも非常に実感できます。 例えば、友達や知り合いのPCでYouTubeをブラジングすると気づくのですが、普段は自分用にカスタマイズされた「関連動画」ですが、他のPCだといつもと使い勝手が違うと感じるはずです。 ここで紹介したレコメンド機能はごく一部ですが、 レコメンド機能と機械学習がビジネスにとってどれほど重要な役割を果たしてるかが、お判り頂けたかと思います。 では、実際にこのレコメンド機能をKaggleのデータセットを利用して構築して見ましょう! データセットのについて(アニメお勧めデータベース) まずは、本チュートリアルで利用するデータセットについて説明します。 今回ですが、「Anime Recommendations Database(アニメお勧めデータベース)」という、myanimelist. netの76,000ユーザーのアニメのレビューデータを利用します。 参考までにですが、このデータ元の「 myanimelist. net」は、海外で有名なアニメのサイトで最新から古いタイトルまで非常に幅広いアニメのデータベースを取り揃えています。 このデータセットですが「 anime. csv」と「 ratings. csv」の2つのCSVファイルにより構成されています。 2つのCSVファイルの概要は下記の通りです。 anime. csv 概要• name アニメタイトル• genre アニメの属するカテゴリ• type メディアタイプ(例:映画、テレビetc)• episodes アニメのエピソード数• rating 最大10の平均レーティング• members 当該アニメのグループに参加するユーザー数 ratings. csv 概要• rating 当該ユーザーのレーティング この2つのCSVファイルを利用してレコメンド機能を構築しましょう。 このデータセットですが、おそらくアニメ関連で公開されているデータセットで一番規模が大きいものかと思います。 データの入手方法ですが、下記のKaggleページより 会員登録後にダウロードが可能です。 下記のリンクから、「 rating. csv」と「 anime. csv」のダウロードを行いましょう。 Pythonでレコメンド機能を構築してみよう ここからは実際にPythonを使って、k近傍方(k-nearest neighbor)のアルゴリズムを使用して、基本的な「協調フィルタリング」のレコメンドエンジンを構築しましょう! 本チュートリアルですが Python3. 6と複数のオープンソースライブラリを使用しています。 ライブラリに関しては、よほど古いバージョンでなければ、特に問題ないと思いますが、Pythonは2. xをお使いの方はPython 3. xを使用してください。 必要なライブラリのインポート まずはお決まりですが、使うライブラリののインポートから行いましょう。 ご自身の環境にこれらのライブラリがインストールされていない場合は、インストールが必要です。 環境の構築が面倒い方は、Amazon SageMaker(アマゾン・セージメーカー)もオススメです。 SageMakerですが、アマゾンのクラウドで機械学習に必要なライブラリのほぼ全てがインストールされており、簡単に機械学習を始めることが可能です。 (詳しくはをご参照ください) 上記の基本統計量のテーブルをみて、一つ特異なデータがあるのがわかります。 rating のカラムのmin(最小値)が -1とあります。 レーティングですが、これはユーザーが各アニメにつけた評価ですよね?最小値の値が「 -1」というのはデータとして特異なのが解るかと思います。 データセットの説明文を読んでみると、この「 -1」ですが、「 アニメを観たことがあるが、レーティング(評価)を付与しなかった」という意味とのことです。 このように、データには様々な癖のようなものがあり、それらを最初の段階で把握するのは機械学習において非常に重要な作業です。 次は、このユーザーレーティング(アニメの評価値)のデータ分散を可視化して確認してみましょう。 下記コードで、ratingのヒストグラムの生成を行います。 このように可視化をすることで、データの特性がより素早く確認することが可能です。 データの前処理をしよう さて、データの一通りの確認ができたら、次はデータの前処理を行います。 データの前処理とは、機械学習で利用する前にデータの処理を行うことで、機械が学習をスムーズに行えるようにする為の作業です。 まずはじめに、これから構築するレコメンドエンジンの質を向上する為、 members (当該のアニメのグループに所属しているユーザー数)が 10,000以下のデータを足切りをしましょう。 足切りすることにより、これから構築するレコメンド機能が、 メンバー数が少ないアニメ(つまり比較的人気の低いアニメ)をオススメしないようになります。 *参考までにですが、今回は10,000という値を閾値(いきち)として選びましたが、この値は適当に決めた値であり、本来であれば、より詳細を確認しながら設定するものです。 先ほど説明した通り、データフレームのindex(上記表でいう一番左の部分)がアニメのタイトルになっており、各列がユーザーのIDを表しているのが分かります。 k近傍法(k-nearest neighbors)でレコメンド機能を構築 さて、いよいよ本題のレコメンド機能の構築です!今回構築するレコメンド機能ですが、 k近傍法(ケイ・きんぼうほう)というアルゴリズムを利用してモデルを構築します。 k近傍法ですが英語の「k-nearest neighbor(ケイ・ニアレスト・ネイバー)」またはその頭文字を取って「 KNN」と呼ばれることも多いので、覚えておくと便利かと思います。 では、このk近傍法とは一体どのようなアルゴリズムなんでしょうか? k近傍法ですが最も単純なアルゴリズムと呼ばれており、 クラスタリングのアルゴリズムの一種で、一般的に分類問題などで利用されます。 今回のチュートリアルの例で考えると、とあるアニメのタイトルを入力した際に、そのアニメのneighbors(ご近所さん)を探して、距離が近い(類似性が高い)アニメのタイトルをオススメとして返してくれます。 かなりざっくりとした説明ですが、より詳しくk近傍法について調べて見たい方は、をご参照ください。 では、実際にこのk近傍法のアルゴリズムと事前に処理したデータセットを使ってモデルを構築してみましょう!今回ですが、初心者向けのチュートリアルですので、Pythonの機械学習ライブラリ「 Scikit-learn(またはSklearnとも呼ばれる)」を利用しましょう。 values. index[indice. flatten [i]],distance. values. index[indice. flatten [i]],distance. flatten [i] おおお!レコメド機能が推薦してくれたのは・・ 1位「僕だけがいない街」 2位「Re:ゼロから始める異世界生活」 3位「四月は君の嘘」 4位「ReLife」 5位「ワンパンマン」 「ワンパンマン」がランクインしていることで、色々と考えさせられる結果ではありますが(笑)、他のタイトルを見ても、 個人的には「四月は君の嘘」以外は全て見たことがあり、かつ私の中では高評価なアニメです!「四月は君の嘘」に関しても、少し調べて見ましたが・・これは観てみたい!と思わされました。 と、いうことで・・今回のアニメレコメンドシステムですが、(個人的には) 合格点 かと思います! まとめ 今回は機械学習ライブラリを使って、非常に単純なレコメンドシステムを構築してみました。 いかがでしたでしょうか?決して、精度の高いレコメンド機能とは言えませんでしたが、これを土台として機械学習を活用したレコメンド機能の構築の最初の一歩になれば幸いです。 別種類の「 コンテンツに基づくフィルタリング」のレコメンド機能に関しても、また後日、チュートリアルを予定しています。 ご興味がある方は、 を頂けると幸いです。 また、他にも「 ゲームの売上予測」や「 タイタニック号の生存予測」など、初心者でも気軽に行える機械学習チュートリアルを公開していますので、是非、別のチュートリアルにも挑戦してみてください。 以上、「 機械学習を使って630万件のレビューに基づいたアニメのレコメンド機能を作ってみよう」となります。 チュートリアルに最後までお付き合い頂きまして、ありがとうございます!•

次の

先天性四肢欠損症の女性、幼少期に姉が両親に一言 「涙が出ました」

欠損 アニメ

「この商品を購入したお客様はこちらも一緒にお買い上げいただいてます」「このビデオを見た方はこちらも見てます」。 レコメンド機能ですが、実にありとあらゆる業種で活用されています。 商品(EC)• ニュース• …その他多数 今回の機械学習初心者向けチュートリアルでは、 k近傍法(K-nearest neighbor)というアルゴリズムを利用して、アニメのレコドメンド機能をPythonを使って一緒に構築してみましょう! この記事の目次• レコメンド機能(エンジン)とは? まずは、このレコメンド機能とは何かについて一緒に紐解いていきましょう。 レコメンド機能とは、データを活用して顧客やユーザーに「お勧め」を提供する情報フィルタリングシステムです。 冒頭でも触れましたが、顧客それぞれの興味や購入履歴に基づいている事から、それぞれの顧客の趣味嗜好に合わせたユーザー体験を提供することが可能な訳です。 優秀なレコメンド機能は、ユーザー体験を改善することにより、多くの売上を生み出し、さらには顧客満足度を高めることに大いに役立ちます! 企業は、より優秀なレコメンド機能を構築するために、非常に多くのデータを集めています。 集めたデータの量と質により、レコメンド機能の精度が上がることで、より大きな売上と高い顧客満足度へ直結するためです。 ちょっと想像して見てください。 もしあなたに機械学習の師匠とも呼べる親しい先輩がいたとして、その先輩が機械学習入門書をお勧めしてくれたら、かなり高い確率でその書籍を購入することを検討しますよね? なぜなら、あなたは、その先輩の機械学習の知識を信頼している訳ですし、さらには、先輩があなたの機械学習の知識量を知っていることを分かっているため、 自分にはその入門書が適切だと考える訳です。 このような「 お勧めのプロセス」と似たような体験を、企業は「 レコメンド機能」として提供している訳です。 ただし、 大きな違いとしては、個人的なつながりのある「先輩」の代わりを、膨大かつ多種多様なデータで代用しているのです。 「レコメンド機能」または、その機能の中核となる「レコメンドエンジン」は、多種多様なビジネスに大きな利益をもたらす重要な機能となっており、 機械学習の技術が大きく活用されている分野です! レコメンドエンジンの2つの種類 レコメンド機能の中核となるのが、レコメンドエンジンな訳ですが、大きく分類すると2つの種類があります。 ソース: 英語ではありますが、上記の図を見ながら考えてみましょう。 レコメンドエンジンには「 協調フィルタリング(Collaborative Filtering)」と「 コンテンツに基づくフィルタリング(Content-Based Filtering)」の2種類があります。 協調フィルタリングとは? 協調フィルタリングとは、 コミュニティー全体を基にしたレコメンドシステムで、あなたの趣味嗜好や興味が、反映される形のレコメンドエンジンとなります。 協調フィルタリングは、 あなたの趣味嗜好と類似しているユーザーを探し出して、そのユーザー達の嗜好に基づいて、オススメを行います。 AmazonなどのECサイトの多数では、ユーザーの事細かな情報を持っていますよね。 例えば年齢や、住所、商品の購入履歴からレビューなどなど。 協調フィルタリングでは、このような各ユーザーの行動(データ)に基づいて、類似したデータを用いることでオススメが可能なわけです。 もっと簡単に言えば、例えばあなたが犬の首輪を購入して、次にトイレットペーパーを購入したとします。 この2つの商品を購入したユーザーの情報を分析したところ、「USBメモリ」の購入の確率が高いことが判明したので、あなたにUSBメモリの購入をオススメする流れが「協調フィルタリング」です。 (あくまで例です笑) 上記の例を見ても分かる通り、非常に強力なレコメンドエンジンだと思われますが、実は弱点もあります。 協調フィルタリングの主な弱点としては、「 新しいユーザー」に弱いことです。 これは、上の具体例を考えてみると分かりやすいですが、ユーザーへオススメするためのデータが不足しているので、オススメが出来ない(または極端に精度が悪い)わけです。 今回の記事では、この「協調フィルタリング」の仕組みを利用したレコメンド機能を構築します。 コンテンツに基づくフィルタリングとは? では、もう一方のレコメンド機能も軽く見てみましょう。 先の協調フィルタリングでは、「 コミュニティ全体の動きに基づいて」オススメを行いましたが、こちらは「 あなたの履歴と類似性に基づいて」推薦をしてくれます。 具体的な例で考えてみましょう。 例えば、本屋さんのアンケートで「SF」が好きだと答えたとしましょう。 そうすると、当然ですが、この書店から届くオススメは「SF」または「SFに類似したカテゴリ」の書籍となる訳ですよね。 このコンテンツに基づくフィルタリングでは、ユーザーが「SF」が好きだと言っているのに、いきなり「料理のレシピ本」のオススメはしない訳です。 このように、このシステムでは以前に好きだった(または購入した)アイテムの特性をみて、それらに似たアイテムを推薦してくれます。 例えばECで機械学習の本を購入して高い評価を残したら、そのあとに、そのサイトからオススメされる書籍が機械学習関連になりますよね。 まとめると、「 協調フィルタリング=類似したユーザーに基づいて推薦」で、「 コンテンツに基づくフィルタリング=あなたの履歴に基づいて類似性のある商品を推薦」となります。 参考までにですが、この2つのレコメンドエンジンを合体させた「 ハイブリッド」を利用しているケースもあります。 企業におけるレコメンド機能の実例 次は、実際に企業で使われているレコメンド機能の実例について紹介させていただきます。 冒頭でも触れた通り、レコメンド機能は、売上や顧客満足に密接に関わることから、多くの企業で使われています。 ここで紹介するのはごく一部ですが、特に優れているレコメンドエンジンの実例として見ていきましょう。 【実例1】アマゾン レコメンド機能の先駆者とも言われるアマゾンですが、サイト内の様々な箇所でレコメンド機能がフル活用されています。 下の図ですが、アマゾンで「 深層学習」の書籍の詳細ページに表示されているものです。 赤枠で囲っている部分がレコメンド機能で表示されている項目です。 図を見れば一目で分かりますが、他のユーザーの購入履歴を基に、この「深層学習」の本と一緒に購入されている書籍をセットでオススメしてくれますし、さらには自身の購入履歴に基づいて、私が購入しそうな商品をオススメしてくれます。 このように、機械学習とユーザー購買履歴データを活用することで、非常にパワフルなツールとなります。 一昔前までは、多くのサービスで、単純に「プログラミング」のカテゴリに該当する書籍を推薦していましたが、機械学習を活用することにより、より的確なオススメが可能になる訳です。 【実例2】ネットフリックス Netflix(ネットフリックス)もレコメンド機能を活用している企業として、頻繁に引き合いに出されます。 利用されている方も多いと思いますが、ネットフリックスとは、テレビ番組や映画などをインターネットで視聴できる動画サービスです。 ユーザーがNetflixへログインをすると、 トップページで表示される動画は各ユーザーごとに異なります。 米Netflixでは機械学習エンジニアお馴染みの「(カグル)」で100万ドル(約1億円)の賞金をかけて、この 協調フィルタリング(レコメンド機能)の精度を競うコンペを開催したこともあります。 レコメンド機能がビジネスに対して大きな成果をもたらしている証拠かと思います。 【実例 3】YouTube レコメンド機能の実例の3つ目はYouTubeの活用事例を紹介します。 YouTubeを見ていると、「 関連する動画」として、様々な動画を紹介してくれますよね?これも機械学習をフル活用した、最先端のレコメンド機能の良い事例です。 おそらくYouTubeを利用されているほとんどの方が、この「 関連動画」の機能を使ったことがあるかと思います。 今見ている動画に関連した動画はもちろん、例えば何かしらのシリーズであれば、その続編であったり、テイストが似たような動画だったりと、非常に便利な機能ですよね。 また、ユーザー個別にカスタマイズされているのも非常に実感できます。 例えば、友達や知り合いのPCでYouTubeをブラジングすると気づくのですが、普段は自分用にカスタマイズされた「関連動画」ですが、他のPCだといつもと使い勝手が違うと感じるはずです。 ここで紹介したレコメンド機能はごく一部ですが、 レコメンド機能と機械学習がビジネスにとってどれほど重要な役割を果たしてるかが、お判り頂けたかと思います。 では、実際にこのレコメンド機能をKaggleのデータセットを利用して構築して見ましょう! データセットのについて(アニメお勧めデータベース) まずは、本チュートリアルで利用するデータセットについて説明します。 今回ですが、「Anime Recommendations Database(アニメお勧めデータベース)」という、myanimelist. netの76,000ユーザーのアニメのレビューデータを利用します。 参考までにですが、このデータ元の「 myanimelist. net」は、海外で有名なアニメのサイトで最新から古いタイトルまで非常に幅広いアニメのデータベースを取り揃えています。 このデータセットですが「 anime. csv」と「 ratings. csv」の2つのCSVファイルにより構成されています。 2つのCSVファイルの概要は下記の通りです。 anime. csv 概要• name アニメタイトル• genre アニメの属するカテゴリ• type メディアタイプ(例:映画、テレビetc)• episodes アニメのエピソード数• rating 最大10の平均レーティング• members 当該アニメのグループに参加するユーザー数 ratings. csv 概要• rating 当該ユーザーのレーティング この2つのCSVファイルを利用してレコメンド機能を構築しましょう。 このデータセットですが、おそらくアニメ関連で公開されているデータセットで一番規模が大きいものかと思います。 データの入手方法ですが、下記のKaggleページより 会員登録後にダウロードが可能です。 下記のリンクから、「 rating. csv」と「 anime. csv」のダウロードを行いましょう。 Pythonでレコメンド機能を構築してみよう ここからは実際にPythonを使って、k近傍方(k-nearest neighbor)のアルゴリズムを使用して、基本的な「協調フィルタリング」のレコメンドエンジンを構築しましょう! 本チュートリアルですが Python3. 6と複数のオープンソースライブラリを使用しています。 ライブラリに関しては、よほど古いバージョンでなければ、特に問題ないと思いますが、Pythonは2. xをお使いの方はPython 3. xを使用してください。 必要なライブラリのインポート まずはお決まりですが、使うライブラリののインポートから行いましょう。 ご自身の環境にこれらのライブラリがインストールされていない場合は、インストールが必要です。 環境の構築が面倒い方は、Amazon SageMaker(アマゾン・セージメーカー)もオススメです。 SageMakerですが、アマゾンのクラウドで機械学習に必要なライブラリのほぼ全てがインストールされており、簡単に機械学習を始めることが可能です。 (詳しくはをご参照ください) 上記の基本統計量のテーブルをみて、一つ特異なデータがあるのがわかります。 rating のカラムのmin(最小値)が -1とあります。 レーティングですが、これはユーザーが各アニメにつけた評価ですよね?最小値の値が「 -1」というのはデータとして特異なのが解るかと思います。 データセットの説明文を読んでみると、この「 -1」ですが、「 アニメを観たことがあるが、レーティング(評価)を付与しなかった」という意味とのことです。 このように、データには様々な癖のようなものがあり、それらを最初の段階で把握するのは機械学習において非常に重要な作業です。 次は、このユーザーレーティング(アニメの評価値)のデータ分散を可視化して確認してみましょう。 下記コードで、ratingのヒストグラムの生成を行います。 このように可視化をすることで、データの特性がより素早く確認することが可能です。 データの前処理をしよう さて、データの一通りの確認ができたら、次はデータの前処理を行います。 データの前処理とは、機械学習で利用する前にデータの処理を行うことで、機械が学習をスムーズに行えるようにする為の作業です。 まずはじめに、これから構築するレコメンドエンジンの質を向上する為、 members (当該のアニメのグループに所属しているユーザー数)が 10,000以下のデータを足切りをしましょう。 足切りすることにより、これから構築するレコメンド機能が、 メンバー数が少ないアニメ(つまり比較的人気の低いアニメ)をオススメしないようになります。 *参考までにですが、今回は10,000という値を閾値(いきち)として選びましたが、この値は適当に決めた値であり、本来であれば、より詳細を確認しながら設定するものです。 先ほど説明した通り、データフレームのindex(上記表でいう一番左の部分)がアニメのタイトルになっており、各列がユーザーのIDを表しているのが分かります。 k近傍法(k-nearest neighbors)でレコメンド機能を構築 さて、いよいよ本題のレコメンド機能の構築です!今回構築するレコメンド機能ですが、 k近傍法(ケイ・きんぼうほう)というアルゴリズムを利用してモデルを構築します。 k近傍法ですが英語の「k-nearest neighbor(ケイ・ニアレスト・ネイバー)」またはその頭文字を取って「 KNN」と呼ばれることも多いので、覚えておくと便利かと思います。 では、このk近傍法とは一体どのようなアルゴリズムなんでしょうか? k近傍法ですが最も単純なアルゴリズムと呼ばれており、 クラスタリングのアルゴリズムの一種で、一般的に分類問題などで利用されます。 今回のチュートリアルの例で考えると、とあるアニメのタイトルを入力した際に、そのアニメのneighbors(ご近所さん)を探して、距離が近い(類似性が高い)アニメのタイトルをオススメとして返してくれます。 かなりざっくりとした説明ですが、より詳しくk近傍法について調べて見たい方は、をご参照ください。 では、実際にこのk近傍法のアルゴリズムと事前に処理したデータセットを使ってモデルを構築してみましょう!今回ですが、初心者向けのチュートリアルですので、Pythonの機械学習ライブラリ「 Scikit-learn(またはSklearnとも呼ばれる)」を利用しましょう。 values. index[indice. flatten [i]],distance. values. index[indice. flatten [i]],distance. flatten [i] おおお!レコメド機能が推薦してくれたのは・・ 1位「僕だけがいない街」 2位「Re:ゼロから始める異世界生活」 3位「四月は君の嘘」 4位「ReLife」 5位「ワンパンマン」 「ワンパンマン」がランクインしていることで、色々と考えさせられる結果ではありますが(笑)、他のタイトルを見ても、 個人的には「四月は君の嘘」以外は全て見たことがあり、かつ私の中では高評価なアニメです!「四月は君の嘘」に関しても、少し調べて見ましたが・・これは観てみたい!と思わされました。 と、いうことで・・今回のアニメレコメンドシステムですが、(個人的には) 合格点 かと思います! まとめ 今回は機械学習ライブラリを使って、非常に単純なレコメンドシステムを構築してみました。 いかがでしたでしょうか?決して、精度の高いレコメンド機能とは言えませんでしたが、これを土台として機械学習を活用したレコメンド機能の構築の最初の一歩になれば幸いです。 別種類の「 コンテンツに基づくフィルタリング」のレコメンド機能に関しても、また後日、チュートリアルを予定しています。 ご興味がある方は、 を頂けると幸いです。 また、他にも「 ゲームの売上予測」や「 タイタニック号の生存予測」など、初心者でも気軽に行える機械学習チュートリアルを公開していますので、是非、別のチュートリアルにも挑戦してみてください。 以上、「 機械学習を使って630万件のレビューに基づいたアニメのレコメンド機能を作ってみよう」となります。 チュートリアルに最後までお付き合い頂きまして、ありがとうございます!•

次の