Oct 15

生徒紹介:TCCで機械学習とウェブ開発に挑戦

東京コーディングクラブでは、才能ある生徒たちが熟練のインストラクターと共に成し遂げた素晴らしい成果を大変誇りに思っています。本日は、その中でも特に優れたプロジェクトに取り組んだある優秀なティーンエイジャーの生徒をご紹介します。彼の創造力と熱意が結実し、機械学習を基盤とした高機能なウェブアプリケーションが完成しました。この素晴らしい成果について、詳しくご紹介します。

プロジェクト概要

機械学習とデータ分析への興味から、この生徒は映画推薦システムの構築に挑戦しました。25,000本以上の映画が収録されたIMDBのデータセットを使用し、まずはPythonを用いてユーザーの好みに基づいて映画を推薦できるモデルを作成しました。数か月にわたってインストラクターのDashと共に学び、プログラミングを進める中で、このプロジェクトはユーザーフレンドリーなインターフェースを備えた本格的なウェブアプリケーションへと進化し、機械学習を活用したシステムとして完成しました。

図1:特定の映画のインデックスが他の映画とどのように相関しているかを示すグラフ

開発の過程では、さまざまな技術が使用されました。データ処理とモデリングにはPythonとscikit-learnが、ニューラルネットワークの構築にはTensorFlowとKerasが用いられました。ウェブ開発面では、HTML、Tailwind CSS、JavaScriptを使って洗練されたフロントエンドのインターフェースを構築しました。バックエンドはFlaskで開発され、推薦モデルとフロントエンドを接続し、リアルタイムでの映画推薦が可能となりました。この多面的なプロジェクトを通じて、フルスタック開発スキルと機械学習の専門性が発揮されました。

図2:Flaskプロジェクトの構造

図3:「アベンジャーズ」のおすすめ映画を表示する生徒のウェブサイト

生徒の背景

今回ご紹介する生徒は、2023年夏に東京コーディングクラブに参加し、常に学ぶ意欲と好奇心を持ち続けています。ニューヨーク出身の彼女は、忙しい学業のスケジュールをこなしながら、東京コーディングクラブのオンラインプログラミングレッスンを受講しています。特に学校の通常のカリキュラム外のテクノロジーに関心を持ち、機械学習や人工知能の分野に興味を示しています。夏の間にスキルをさらに向上させ、ウェブ開発にも挑戦しました。

使用したツールと技術

この複雑なプロジェクトには、いくつかの高度なツールと技術が使用されました:

    • Python(データ操作にはNumPyとPandas、バックエンド開発にはFlask)
    • scikit-learn(機械学習モデルの構築と前処理)
    • TensorFlowとKeras(ニューラルネットワークの設計)
    • HTML、Tailwind CSS、JavaScript(フロントエンドの構築)

このプロジェクトは、データ分析から機能的な機械学習モデルの構築、そして最終的にそのモデルをウェブアプリケーションに統合するまで、さまざまなフェーズを経て進化しました。

課題の克服

大きな課題のひとつは、学業や他の課外活動と両立しながら、このように意欲的なプロジェクトを進めるための時間管理でした。また、機械学習アルゴリズムの複雑な構造を理解することも困難でしたが、ニューラルネットワークの層を会社の各部門に例えるなど、Dashのサポートで親しみやすいアナロジーやビジュアルを活用し、理解を深めました。
ウェブ開発の段階では、機械学習モデルを画面上に表示されるフロントエンドのインターフェースに統合することが新たな課題となりました。限られた時間の中で、まずは基本的な機能に集中し、徐々に機能を追加する段階的なアプローチを採用しました。この方法により着実に進捗を得られ、生徒はモチベーションを維持しつつ、フロントエンドとバックエンドの両面からフルスタック開発に深く取り組むことができました。

主な学びと今後の計画

このプロジェクトを通じて、生徒は以下の貴重な実践経験を得ることができました:

    • データ分析と前処理

    • 機械学習とニューラルネットワークの基礎

    • UI/UXデザインやバックエンド統合を含むフルスタックウェブ開発

将来的には、以下のような開発の可能性についても話し合っています:

    • 映画レビューを分析する自然言語処理(NLP)を取り入れて、映画推薦システムを強化する

    • ウェブアプリケーションのスケーラビリティ向上のためのクラウドデプロイメントの検討

    • ユーザー認証を追加し、パーソナライズされた推薦機能を提供する

この生徒がデータ分析から実際に機能するウェブアプリケーションを完成させるまでの道のりは、複雑な概念を理解し、実際のプロジェクトに応用する力を示しています。彼女の好奇心、粘り強さ、そして情熱は、今後AIやウェブ開発、または他の分野に挑戦するためのしっかりとした基盤となっています。

東京コーディングクラブでは、これからも若い才能がアイデアを実現し、素晴らしいプロジェクトに取り組む姿をご紹介していきますので、ぜひお楽しみに!

テクノロジーの知識を深めたい方へ