タグ

ブックマーク / codezine.jp (110)

  • スパースモデリングのモデルを評価する~LASSO推定値の評価方法

    LASSO推定値に影響を与えるパラメータ 前回の記事ではスパースモデリングの代表的手法であるLASSOを紹介しました。LASSOとは、以下の式の値を最小化する最適化問題のことを指します。 \(\frac{1}{2}\|\Phi x - y\|^2_2 + \lambda \|x\|_1\) この式における第二項は正則化項、\(\lambda\)が正則化パラメータと呼ばれます。ここで正則化パラメータの大きさというのは、正則化項が及ぼす影響の大きさを表します。前回の記事でLASSOを用いるといくつかの回帰係数がゼロとなり、変数選択を行うことができると説明しましたが、正則化パラメータを変更することで、ゼロと推定される回帰係数の数が変わっていきます。正則化パラメータが大きい時は\(|x\|_1\)を小さくしようとする動きが働きます。つまり、ゼロと推定される回帰係数の数が多くなります。逆に正則化パラ

    スパースモデリングのモデルを評価する~LASSO推定値の評価方法
  • Javaの標準機能だけで実現する帳票印刷の基本

    Javaで好みの用紙に自由に文字や線を印刷したいと思ったことはありませんか。Java SEの機能だけを使った帳票印刷の方法を解説します。筆者は教員として学校の成績一覧表、通知表、宛名印刷などのプログラムを書いてきました。もちろん罫線を含めて印刷できますが、すでに印刷された罫線に合わせて文字を入れることもできます。データの量に合わせて表の行数を変えたり、行の高さを変えることもできます。文字列の均等割付や右寄せ、枠に入り切らない時のフォントのサイズ調整や自動改行をさせることもできます。請求書や伝票なども思い通りにレイアウトでき、後の仕様変更にもすぐに対応できます。 はじめに やっていることは極めて単純で印字位置をmmで指示して文字列を描き、線を引くだけです。複雑なレイアウトでも実現できるという見通しを持つことができます。 最近はライブラリやツールが出てきているようですが、筆者はよく知りません。

    Javaの標準機能だけで実現する帳票印刷の基本
  • Groovy製のSeleniumラッパーライブラリ「Geb」で、可読性の高いテストを書いてみよう

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Groovy製のSeleniumラッパーライブラリ「Geb」で、可読性の高いテストを書いてみよう
  • FacebookとMicrosoft、深層学習モデルをフレームワーク間で転送可能なONNXフォーマットを発表

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    FacebookとMicrosoft、深層学習モデルをフレームワーク間で転送可能なONNXフォーマットを発表
  • JUnitの単体テストを30秒で作成! 工数削減への近道は「Jtest」を使った単体テストの高速化

    単体テストは実装中や実装直後など開発の早い工程でバグを発見でき、手戻りが少なく費用対効果の高いテストとされています。そのため、多くのシステム開発現場で導入が進んでいます。Java開発における単体テストの自動化フレームワークとしては「JUnit」が有名ですが、膨大なテストコードを書いたり、デバッグに多くの時間を費やしたりするケースも多々あります。せっかく費用対効果の高いテストを自動化したとしても、これでは十分なメリットを享受できたとはいえません。そこで、記事ではJUnitを使った単体テストを効率よく行うための手法を解説し、さらに、テストツール「Jtest」の単体テストアシスタント(Unit Test Assistant)を活用して、30秒で単体テストの実装を行う方法や、テスト失敗の原因をひと目で確認する方法を紹介します。 Java対応静的解析・単体テストツール「Jtest」 関連記事 Ja

    JUnitの単体テストを30秒で作成! 工数削減への近道は「Jtest」を使った単体テストの高速化
  • ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(1) 開発準備編

    連載では、Raspberry Pi(ラズベリーパイ)で動く移動ロボットキットである「GoPiGo」を使って、遠隔見守りロボットを作る手順をご紹介します。今回は、Raspberry PiにUbuntu OSとROSをセットアップし、GoPiGoで簡単な移動ができるようになるところまでを解説します。 はじめに 近年、PepperやRoBoHoNなどさまざまなロボットが各社から登場し、ロボットブームと呼ばれています。エンジニア界隈でも、各地でロボットに関連した勉強会やハッカソンが開催され、手軽にロボットプログラミングを経験できる機会が増えてきました。 連載では、一通りのロボット作りを体験してもらうために、ラズパイと組み合わせて作る移動ロボットキットである「GoPiGo」(ゴーパイゴー)を使って、遠隔見守りロボットを作ってみたいと思います。開発ではロボット制御フレームワークとして世界的に有名な

    ラズパイで動くロボット「GoPiGo」をつかって遠隔見守りロボットを作ろう(1) 開発準備編
  • どこまで速くできる? 達人に学ぶPython超高速データ分析~PyData.Tokyo Meetup #4イベントレポート

    PyData.Tokyoは「Python+Dataを通じて、世界のPyDataエクスパートと繋がれるコミュニティーを作る」ことを目的として設立され、これまでに勉強会3回およびチュートリアル1回が開催されました(過去のイベントのリスト)。4回目の勉強会となる今回は「データ解析アルゴリズムの高速化」をテーマに、株式会社ブレインパッドの佐藤貴海さん(@tkm2261)とシルバーエッグ・テクノロジー株式会社の加藤公一さん(@hamukazu)の2人に話していただきました。 登壇者のレベルの高い講演に加え、ヤフー、日IBM、NTTデータ、AWS、Gunosy、Preferred Networksなど、第一線で活躍されている非常に質の高い聴講者にも参加いただき、大変充実した会になりました。 Pythonは書きやすい言語仕様と豊富なライブラリが特徴で、手軽に複雑なデータ分析を行えますが、他言語と同じ感

    どこまで速くできる? 達人に学ぶPython超高速データ分析~PyData.Tokyo Meetup #4イベントレポート
  • JSフレームワークを使ったHTMLテンプレート利用のススメ

    前回、Webシステムの運用現場では「HTMLの文言、デザインの修正がすぐにできない」「サーバサイドの技術がわからないとHTMLが修正できない」といった問題が生じていることを紹介しました。そして、それらの問題の原因の一つに、PHPでのSmartyやRubyのERBといったサーバサイドテンプレートがある、これらの問題はクライアントサイドでのHTMLテンプレートを使うと解決しやすくなることを説明しました。もっとも、現在フロントエンドエンジニアがチーム内にいない場合には、具体的にはどのような方法がとれるのかがイメージつきにくいと思います。今回は、クライアントサイドでのHTMLテンプレートを使って具体的な方法を紹介します。 対象読者 サーバサイド開発者 フロントエンド開発者 Webアプリ・システム開発に参加する方全般 クライアント側でのHTML生成することの懸念点について 前回、サーバサイドHTML

    JSフレームワークを使ったHTMLテンプレート利用のススメ
  • ページランクのアルゴリズムをC++で試してみる

    前回Google Mockを紹介したこともあって、Googleがらみのトピックを探していたところ、"How Google Finds Your Needle in the Web's Haystack:GoogleはどうやってWebの干草の山から針を見つけ出すのか"というタイトルの解説記事に辿り着きました。Googleでの検索結果は有用な(あるいは人気のある)ページが検索リストの上位に並びます(広告云々は別として)。各ページの有用さの度合いを計算し、それをキーに並び替えを行っているのでしょう。この記事では"有用さの度合い"をどうやって算出しているのかを解説していました。今回はこの記事をさらに噛み砕き、C++コードで実際に算出しながらの解説を試みます。 前回の記事『Google Mock:はじめの一歩』 『How Google Finds Your Needle in the Web's H

    ページランクのアルゴリズムをC++で試してみる
  • ページランクのアルゴリズムをC++で試してみる

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    ページランクのアルゴリズムをC++で試してみる
  • AWSネットワークの論理的な側面 ~ AWSのバックボーンネットワークに関するDeepな話(2)

    こんにちは。アマゾンウェブサービス(AWS)サポートの有賀と申します。好きなサービスはAmazon Virtual Private Cloud(VPC)です。これからAWSサポートの各メンバーがそれぞれ「今一番AWSユーザーに伝えたいこと」を連載の形でお届けしていきます。筆者の担当する稿では、AWSの「ネットワーク」について見ていきたいと思います。今回は、ネットワークの「論理設計」について解説します。 稿でお伝えするのは下記の第2回の内容です。全3回に渡って解説していきます。 AWSのネットワークの物理的な側面 ⇒ 第1回 AWSのネットワークの論理的な側面 ⇒ 第2回 AWSのネットワークにおけるベストプラクティス ⇒ 第3回 AWSのネットワークにおいて過去に発生した問題の事例 ⇒ 第3回 必ずしもAWSの使い方といった内容ではないので、今日すぐに使える知識にはならないかもしれませ

    AWSネットワークの論理的な側面 ~ AWSのバックボーンネットワークに関するDeepな話(2)
  • パターン認識の前処理に必要な二値画像の細線化

    はじめに 細線化はThinningやSkeletonizationと呼ばれ、二値画像(白と黒の色だけで表現された2階調の画像)を幅1ピクセルの線画像に変換する処理です。線が途中で切れたり、孔が開いたりしてはいけません。得られた線は、元の図形の幅の中心にくることが望まれます。 エッジ検出によって得られた画像は、元の画像の変化が比較的緩やかで広範囲な場合には、幅が広くなってしまいます。エッジ検出の閾値を高くすると幅は狭くなりますが、緩やかな変化を見逃してしまいます。したがって、閾値を低く選んで、幅広くエッジ部分を出させ、その後に細線化処理を行って、文字認識やパターン認識に使うことが多いのです。 アプレットを見る 対象読者 画像処理に関心があり、パターン認識の前処理を学習したい人。 必要な環境 J2SE 5.0を使っていますが、それより若干古いバージョンでも大丈夫です。CPUパワーは、大きい方が

    パターン認識の前処理に必要な二値画像の細線化
  • 誰もが簡単にデータビジュアライゼーションできる世界を目指して! 日本発OSSプロジェクト「E2D3」とは

    E2D3はデータビジュアライゼーションを通じて、ビジネスや社会における課題を解決することを目標にしています。この連載を通して、E2D3とはどんなことができて、どんな開発手法をとり、なぜOSSの形態をとっているか等余すところなくお伝えしたいと思います。 データ活用の敷居を下げるE2D3 E2D3は「Excel to D3.js」の略称で、一言で言うと「Excelを使ったデータビジュアライゼーションのアプリケーション」。WindowsExcel 2013以上」やMacExcel 2016」、One Drive「Excel Online」から呼び出すことができます。 図1 E2D3のテンプレート群 操作はいたって簡単。ExcelからOfficeアドインである「E2D3」を起動するだけ(起動方法については「Use E2D3」のページをご覧ください)。あとは反映したいデータを選択し、目的に合

    誰もが簡単にデータビジュアライゼーションできる世界を目指して! 日本発OSSプロジェクト「E2D3」とは
  • リアクティブプログラミングとRxJavaの概要

    この連載では、Javaでリアクティブプログラミングを行うためのライブラリである「RxJava」を使って、リアクティブプログラミングにおけるポイントや、RxJavaが持つ機能について学んでいきます。今回は、RxJavaおよびリアクティブプログラミングの概要について解説します。 対象読者 Java経験者(初心者可) RxJava未経験者 リアクティブプログラミング未経験者 RxJavaとは RxJavaは、Javaでリアクティブプログラミングを行うためのライブラリです。このライブラリは軽量であり、また、他のライブラリに対する依存がないのでRxJavaのjarをパスに通すだけで使えるようになります。対応しているJavaのバージョンは6からで、さらにAndroidもバージョン2.3(Gingerbread)からサポートしています。 そして、RxJavaは厳密には関数型リアクティブプログラミング(F

    リアクティブプログラミングとRxJavaの概要
  • アプリケーションエンジニアのためのOpenStackライブラリ「oslo.messaging」徹底解説

    稿は、アプリケーションエンジニアのためのOpenStackの記事です。ここでの内容によって、皆さんが携わるアプリケーションのサステナビリティ(Sustainability)の向上に寄与できると考えています。OpenStackはIaaSクラウド機能を提供するOSSとして知られていますが、普段アプリケーションの開発を行うエンジニアにとってはレイヤの違いから縁遠い存在に思えるかもしれません。稿ではそうしたアプリケーションエンジニアが活用できるOpenStackプロジェクト「oslo」についての紹介と、RPCと通知機能を提供するライブラリ「oslo.messaging」の機能と使い方について徹底解説していきます。 また、OpenStack自体について興味がある方は『マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み』の連載記事も併せてご参照ください。 osloとは? osl

    アプリケーションエンジニアのためのOpenStackライブラリ「oslo.messaging」徹底解説
  • Google Mock:はじめの一歩

    CodeZineでgtest(Google Test)を紹介したのは4年も前のこと。ひさしぶりにgtestのGitHubを覗いてみたらgtest 1.8.0がリリースされていました。この版の以前との大きな違いは"Mockのサポート"のようです。C++でMockを提供してくれるUnit Test Frameworkはそんなに多くはなかったと記憶しています。 Google製Mockの使い心地を試してみることにしました。 『Google製のC++ Unit Test Framework「Google Test」を使ってみる』(CodeZine) google/googletest(GitHub) Mockとは Unit Testは通常低いレイヤの関数/クラスから行われます。関数f()をテストするとき、f()がg()を呼んでいるなら、まずg()をテストして正しく動いてくれることを確認してからでない

    Google Mock:はじめの一歩
  • Elasticsearchを用いた日本語検索システムの理論と設定

    連載は、対話インターフェースを利用して新しい形の検索システムを体験してもらうことを目的としています。今回は日語検索システムでよく用いられるElasticsearchを紹介します。Elasticsearchは大規模なデータに対しても適用可能な検索機能を提供している全文検索エンジンです。特徴としてスケーラブル、検索速度の速さ、検索結果の分析のしやすさ、開発者にとって使いやすいRESTfulなAPIが挙げられます。今回の記事はElasticsearchを用いた日語検索システムの仕組みから設定の部分までを記述し、次回の記事で実際に動作させてもらいます。 連載の内容 連載で紹介予定の内容は次のとおりです。 Step1:Elasticsearchを用いた日語検索システム 対話型の検索システムを作成するためのStep1として、Elasticsearchを用いた日語検索システムの構築方法を紹

    Elasticsearchを用いた日本語検索システムの理論と設定
  • Sparkアプリケーションの基本と、はじめに押さえておきたい重要な概念

    はじめに はじめまして、IBMの田中裕一です。 デバイスやセンサの高度化による、モバイルから取得できるデータの多様化、IoTの格化といったハードウェアの面、機械学習格的な広がりといったソフトウェアの面、双方の進歩もあり、ビッグデータのキーワードのもと、大規模なデータ分析基盤を構築するデータエンジニアやデータサイエンティストの重要性が増しています。 昨今いろいろな分散処理基盤や機械学習ライブラリが登場してきましたが、連載では数回に分けてApacheプロジェクトでも人気が高いApache Spark(以下、Spark)を使い、Sparkでのプログラミングやデータ処理を中心に見ていきます。 また、分散処理系で入門時につまづくことが多いClusterでの動作や、Sparkの詳細な挙動を連載後半に回すことで、Sparkを使う際のハードルを下げられればと思っています。 対象読者 連載を通して、

    Sparkアプリケーションの基本と、はじめに押さえておきたい重要な概念
  • Dockerで「Redmine」と「Let’s Chat」を動かしてみよう

    連載は、コンテナ仮想化技術を使ったアプリケーション実行環境構築プラットフォームである「Docker」をつかって、ソースコードのバージョン管理ツールやコミュニケーションツールなどの開発支援ツールの導入を行う手順をご紹介します。今回は、プロジェクト管理ツール「Redmine」と社内チャットツール「Let's Chat」の実行環境を構築する手順について解説します。 はじめに 前回は、Dockerを使って、アプリケーション開発の現場でよく利用されている、アプリケーション開発支援ツール「GitLab」と継続的インテグレーションツール「Jenkins」の実行環境を構築する手順を説明しました。 さらに、チーム開発を成功させるためには、進捗管理やメンバー間の円滑なコミュニケーションが重要になります。今回は、以下の開発支援ツールの実行環境を構築する手順について説明します。 プロジェクト管理ツール「Redm

    Dockerで「Redmine」と「Let’s Chat」を動かしてみよう
  • 「ベジェ曲線」 ~マンガでプログラミング用語解説

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「ベジェ曲線」 ~マンガでプログラミング用語解説