Hero Image
スパースモデリング技術

1. 少ないデータで分析できるAIソリューション ディープラーニング1では、多くのデータから統計的に本質部分を捉えることを目指すが、スパースモデリング技術では少ないデータで本質に近づくことです。 意思決定者が求めるデータを集め分析できる資料を提示するためには多大な労力が必要であるが、スパースモデリング技術を用いることで迅速に資料作成が可能となり、結果、業務改善に役立てることができます。 スパースモデリング技術も「相関の強い説明変数が別にある場合、どちらか一方しか抽出できない」「線形回帰がベースなので、非線形の関係がある説明変数は抽出できない」という欠点はありますが、ビジネスで活用するには陳腐化しないデータによるスピーディーな分析ができることは大きなアドバンテージとなります。 2. 機械学習とスパースモデリング 2-1. 機械学習について 「来客数、気温、天気や立地から売上を予測したい」というテーマを「勘と経験」に頼らなくシステム化する場合機械学習を用いれば「売上予測」に対して入力と結果に潜む関連性を機械に学び取らせることで予測や分類といったタスクを実行するシステムを作ることができます。 機械学習と通常のシステムの違いは、機械学習のシステムは「間違えることがある」ということです。ここで、通常のシステムでは不具合を修正することができますが、機械学習のシステムでは説明が困難です。 以下のケースでは、機械学習のシステムには向きません。 データを集めるのにコストや時間がかけられない。 結果に対する説明が求められる。 2-2. スパースモデリングについて 「データが少ない」状況でも「解釈性の高い」結果を導き出すことができます。 数学の理論に裏打ちされているので安心できます。 特性 スパースモデリングAIは、少量データでも高精度ソリューションの提供ができます。 結論にいたった根拠もフィードバックができるので、次の展開への応用が可能です。 2-3. スパースモデリングの手法Lasso データが少なく説明責任が求められる状況に力を発揮するスパースモデリングの中には、様々な手法があります。 スパースモデリングの代表的な手法であるLASSOについて確認します。 ベースは次の線形回帰2の式となります。 $$y_{i} = β_{1}x_{1} + \cdot\cdot\cdot + β_{p}x_{n} + ε$$ 3. スパースモデリングの手法Lasso 対象のデータ(x,y)から各βを算出してモデルを作成するのですが、xの変数が非常に多いがデータ点数が少ない場合は、各βを算出することが数理的にできません。 このような場合、「目的変数に関与するのは僅かな説明変数のみ(スパース性という)」という仮定を置くことで、絞り込んだ目的変数についてのβを算出することができます。 これを解くための統計理論を*Lasso(L1正則化)*と言います。 Lassoの特徴 データレコード数よりデータ種類数(変数)が多い場合(p>n)でも、解くことができる。 変数の絞り込みや係数の重みより、重要なデータの種類が何かが直感的に理解可能である。 次のような状況を解決してくれる事が期待できます。 データの種類はたくさんあるがデータ点数は十分にない。その場合でも解析できる。 多くのデータ種の中から、予測において重要なデータ種のみを知る事ができる。 4. R言語を用いての実装 R言語でLASSOについてはglmnet、HMLassoについてはhmlassoというパッケージをインストールします。 # Install package for Lasso if(!require("glmnet")){ install.packages("glmnet", dependencies = T) } # Install package for HMLasso if(!require("hmlasso")){ install.packages("hmlasso", dependencies = T) } 5.

Hero Image
UbuntuにSQLite3のインストール

1. SQLiteについて 1-1. 文書管理やデータセット作成 SQLiteの基本コマンド SQLite公式サイトからの引用 以下の内容は、SQLiteのコマンドラインシェルを抜粋・記載したものです。正しい詳細はこちらを確認ください。 SQLite は、小型で高速、自己完結型、高信頼性、フル機能の SQL データベース エンジンを実装する C 言語ライブラリです。SQLiteは世界で最も使用されているデータベースエンジンです。SQLiteはすべての携帯電話とほとんどのコンピュータに組み込まれており、人々が毎日使用する無数の他のアプリケーションにバンドルされています。 SQLiteファイル形式は安定しており、クロスプラットフォームであり、下位互換性があり、開発者は2050年までその状態を維持することを約束します。SQLite データベース ファイルは、システム間でリッチ コンテンツを転送するためのコンテナーとして、およびデータの長期的なアーカイブ形式として一般的に使用されます。1兆(1e12)以上のSQLiteデータベースが活発に使用されています。 1-2. 特徴 他のデータベースの様にデータベース自身をインストールする必要はありません。 数万~数千万件のデータへ対応可能です。 同一スペックのPCで利用する場合、OracleやPostgreSQLなどの業務用データベースより高速に動作します。 本格的なSQLにも対応しているので、他のデータベースと同様に複数のテーブルを結合して複雑な集計を行わせることも可能です。 同時に1人しかアクセスできないので、セキュリティは簡単に接続できます。 SQLite は1つのファイルをコピーするだけでバックアップや複製ができます。 1-3. SQLiteの制限 複数ユーザー又は複数アプリからの同時アクセス ストアドプロシージャの作成 列名の変更(RENAME COLUMN) 日付/時間の計算:日付/時刻のデータ型が存在しません。但し、’2021-06-01 10:05:03′ というフォーマットの文字列を日付/時刻として扱い、差分を計算する関数は用意されています。 1-4. SQLiteで扱えるデータ型 NULL NULL型 REAL 浮動小数点 INTEGER 整数 TEXT 任意の文字列 BLOB 任意のバイナリデータ 1-5. カラムの型 REA INTEGER TEXT BLOB 1-6. 使用上の注意点 カラムの型を指定しないと何でも入ってしまいます。 型を指定しないと、集計関数が誤動作します。 トランザクションが無いとInsertが極めて遅いです。 2. Ubuntuの確認 2-1. OSの確認 cat /etc/os-release cat /etc/os-release PRETTY_NAME="Ubuntu 22.04 LTS" VERSION_CODENAME=jammy 2-2.

Hero Image
Webサイトの投稿機能

1. NetlifyCMSでWebサイトの投稿機能追加 今回は、ヘッドレスCMSであるNetlifyCMSの公式サイトに沿ってHUGOサイトの投稿機能構築の仕方を簡単に説明します。 なぜNetlifyCMS? NetlifyCMSの投稿機能を使うとAPIの作成など時間をかけずに投稿者自身がWEB上で記事を書けるようになります。 今回の主題であるNetlifyCMSを使えば、誰でもWeb上で投稿できるようになります。NetlifyCMSは、シンプルで視覚的に簡単に理解できます。NetlifyCMSのデモサイトがありますので体験できます。 NetlifyCMSは、OSSであり公式サイトによると以下のような特徴があります。 1).最新のフロントエンドツールを実装して、より速く、より安全で、よりスケーラブルなサイトを提供することができます。編集者は、コンテンツ管理要件を満たすわかりやすいUIと直感的なワークフローを提供します。 2).編集者に優しいユーザーインターフェース Web ベースのアプリには、リッチ テキスト編集、リアルタイム プレビュー、ドラッグ アンド ドロップ メディア アップロードが含まれています。 3).コンテンツチームのための直感的なワークフロー 作成者と編集者は、下書きからレビューまでのコンテンツを簡単に管理して、任意の数のカスタム コンテンツ タイプにまたがって公開できます。 4).GitHub アカウントを使用しないインスタントアクセス Git Gateway を使用すると、GitHub アカウントを持っていない場合でも、すべてのチームメンバーに CMS アクセスを追加できます。 5).JANstack上に構築 Netlify CMS は、クライアント側の JavaScript、再利用可能な API、および事前に構築されたマークアップに基づいています。WordPressのようなサーバー側のCMSと比較して、より良いパフォーマンス、より高いセキュリティ、より低いスケーリングコスト、そしてより良い開発者体験ができます。 2. NetlifyCMSのインストール 既存のサイトに追加もできますが、今回はテンプレートを使ってインストールします。 2-1. テンプレートから始める Github1とNetlify2への登録は、済んでいるとします。 NetlifyCMSサイトの以下のページに行き「Deploy to Netlify」をクリックします。 上記のボタンをクリックした後、GitHubで認証し、リポジトリ名を選択します。Netlify は、GitHubアカウントにリポジトリのクローンを自動的に作成します。次に、Netlify で新しいサイトをビルドして展開し、ビルドの完了後にサイト ダッシュボードに移動します。 リポジトリ名を「hugo-cms」にしています。「Save & Deploy」をクリックします。 Netlifyの画面が表示されdeployが始まり、完了するとサイトが表示されます。 KALDIというサイトです。 Githubのリポジトリを確認します。「hugo-cms」が新規に作成されています。 2-2. 新しいサイトでNetlifyCMS にアクセス 登録しているメールアドレスに招待メールが届きますので、Netlifyでのデプロイが完了していること確認後「招待を承諾する」をクリックします。 パスワードを入力し、サインインすると、CMS に移動します。 登録が完了しログイン状態になりますので、この状態でCMSへアクセスします。 <yoursiteaddress.com>/admin/へアクセスするとCMSを表示することができます。 投稿を追加および編集するか、[製品] ページのコンテンツを変更してみてください。保存すると、変更はすぐにGitリポジトリにプッシュされ、Netlifyでビルドがトリガーされ、サイトのコンテンツが更新されます。 編集画面です。「Pubilsh」をクリック後サイトが反映するまでに少し時間がかかります。 編集が反映された画面です。 サイトのGithubリポジトリの編集内容の確認画面です。 2-3. NetlifyCMSのアクセスアカウントの追加 Githubに登録されていたメールは登録されています。パスワードは最初に登録したものとなります。 Netlifyにログイン後、招待したいアカウントを追加します。

Hero Image
高速なWebサイト

1. ページの表示速度が早いWebサイト Hugoの公式サイト1によると パフォーマンスは、Googleが最近ページの読み込み時間とSEOに焦点を当てていることを考えると、必要な利点です。 Hugoのような静的なサイトジェネレータを利用することは、WordPressのようなフル機能のCMSより、検索ランクで競合他社のブログを凌駕する優れた方法です。 静的なオープンソースWebサイト2は、特にフル機能の(しかし肥大化した)コンテンツ管理システムの負担を負うサイトと比較して、信じられないほど高速です。 静的なHUGOのウェブサイトを選ぶことは、明白な利点として表示スピードの自社サイトを公開できます。 よりよい性能 デプロイ時にページを生成できるのに、ページがその場でビルドされるのを待つのはなぜですか?最初のバイトまでの時間を最小限に抑えることになると、CDN3を介して提供されるビルド済みファイルに勝るものはありません。 より高いセキュリティ Hugoはオープンソースの静的サイトに関するものであるため、WordPressに存在するセキュリティホールが欠けています。サーバー側で悪用されるものは何もありません。実行するPHPも、スクリプトも、何もない。これにより、Hugo静的サイトジェネレータは非常に安定し、セキュリティ侵害に対する価値のある敵であることが証明されます。 より安く、より簡単なスケーリング デプロイメントがどこにでも提供できるファイルのスタックになる場合、スケーリングはそれらのファイルをより多くの場所に提供することの問題です。CDNはこれに最適であり、多くの場合、すべてのプランにスケーリングが含まれています。 カスタマイズ 静的なWebページは、コンテンツとWebデザインを100%制御できます。WordPressのようなCMSではなく、静的なサイトジェネレータを検討することは、異なるデザインのさまざまなランディングページを作成することを計画している場合は特に理にかなっています。Hugoのウェブサイトには、編集中にWebページを自動的に更新するライブリロードシステムがあり、開発中のカスタマイズとパーソナライゼーションが驚くほど簡単になります。 2. HUGOを使ったサイト制作サービス Hugoは、ブラウザよりもテキストエディタで書くことが必要です。 Hugoは、複雑なランタイム、依存関係、データベースの設定を心配することなく、Webサイトを手作業でコーディングが必要です。 Hugoは、ブログ、会社のサイト、ポートフォリオサイト、ドキュメント、単一のランディングページ、または数千ページのウェブサイトを構築することができます。 ブログ、ポートフォリオ、会社のWebサイト、雑誌、ドキュメントサイトなどのサイトは、静的サイトジェネレーターを使用して、スピーディに作成いたします。 RAIZINでは、HUGOサイトの制作サービスを提供しておりますので、気軽にご相談ください。 3. 自社投稿機能の提供 投稿(記事)するためだけのシンプルなCMSが必要となります。(ヘッドレスCMS4と言います。) 「リッチテキスト編集」「リアルタイムプレビュー」「ドラッグアンドドロップによるメディアアップロード」などの機能を備えています。 また、HUGOサイトと投稿CMSの連携が、必要となります。 通常、ウェブサイトの作成には多大な時間の投資が必要です。それを開発し、維持し、そしてホストすることの経済的コストを計画しなければなりません。自社で開発する場合は、重要な技術的知識が必要です。これは多くの人がそれらを構築することを思いとどまらせることがよくあります。ただし、すべてのWebサイトを実行するために、複雑なアーキテクチャやコストのかかるリソースが必要なわけではありません。 当社では、サイト全体の構築後、「自社投稿機能」を提供するサービスをしていますので、気軽にご相談ください。 HUGO公式サイトから引用です。 ↩︎ WordPressのような従来のデータベース駆動型サイトの構造で構築されています。このタイプのWebサイトは、不格好で、読み込みが遅く、開発者が維持するのが面倒で、ハッカーに対して脆弱です。静的サイトは、これらの問題の多くに対処することができ、ウェブサイトのニーズによりよく役立ちます。 ↩︎ コンテンツ配信ネットワーク (CDN) とは、地理的に分散したサーバーのグループを指し、連携してインターネット コンテンツを高速に配信します。 CDN を使用すると、HTML ページ、javascript ファイル、スタイルシート、画像、ビデオなどのインターネット コンテンツを読み込むために必要なアセットをすばやく転送できます。CDNサービスの人気は高まり続けており、今日では、Facebook、Netflix、Amazonなどの主要サイトからのトラフィックを含む、Webトラフィックの大部分がCDNを介して提供されています。 ↩︎ システム内でコンテンツとデータを作成、編集、および保存することはできますが、従来の CMS からの逸脱はテンプレートにあります。CMS テンプレート システムを使用してページを作成する代わりに、そのすべてが CMS の外部にある別のフレームワークにオフロードされます。これは、システム内のコンテンツにデータとしてアクセスできるようにするアプリケーション・プログラミング・インターフェース (API) を介して実現されます。 ↩︎

Hero Image
R_Shiny関係の備忘録

1. Shiny公式サイト shiny.rstudio.com 2. 空間と時間におけるデータの可視化:インタラクティブなフレームワーク Visualization of Data in Space and Time: An Interactive Framework IoTデータの視覚化に使えそうです。Pythonとどちらがいいのかな。 3. Shiny App for Database Creating a Shiny App for Database Management SQLite を使用して作成されているようです。以下にダッシュボードの作成方法が載っています。 Connecting SQLite Database and Shiny App for Business Intelligence 4. デプロイ(公開) ホスティングと展開 R Markdownは、htmlファイルとしてWeb上にデプロイすればよいですが、Shinyアプリ及びruntime: shinyを追加したR Markdownは、バックグランドでShinyが必要です。 クラウドへのデプロイ Shinyapps.io で数分でウェブ上でShinyアプリをホストできます。無料タイプもあります。 オンプレミスまたは VPC (オープンソース) に展開する Shiny Server ソースを配布してRStudioで実行(shinyに係るパッケイジが必要:個人向け) 5. オンライン書籍 Mastering Shiny 日本語の書籍は、ネットで調べる以上のものがないようです。 6. ライセンス Shiny Licence 7. 日本語対策について ui.R,server.R,grobal.R内に日本語が入っているとエラーになることがあります。 そういう時はui.R等には直接日本語を書かずに別ファイルに書いてからsource()で読み込めばエラーを回避できます。 8. エラー対策 8-1.

Hero Image
HugoサイトのPWA対応

1. Hugoで構築したサイトをPWA化 1-1. PWAとは PWAとは、「Progressive Web Apps」の略称で、モバイル向けWebサイトをスマートフォン向けアプリのように使えるようにする仕組みです。 PWAはそれ自体が何か特殊な一つの技術、というわけではありません。レスポンシブデザイン、HTTPS化など、Googleが定める要素を備えたWebサイトであり、オフラインやプッシュ通知に対応するためのブラウザAPI(Service Workerなど)を利用しているWebサイトをPWAと呼びます。 Web アプリ マニフェストを追加する方法 本サイトでは、トップページのみPWA化となります。 1-2. 手順 manifest.webmanifestの作成 icon画像の作成 icon画像の配置 manifest.webmanifestの修正と配置 ブラウザでmanifest.webmanifestの内容が表示されていることを確認 Service Workeの作成 Service Workeの配置と確認 1-3. manifest.webmanifestの作成 Simi Cartのサイトは、PWA マニフェスト ジェネレーターとして「Web アプリ マニフェスト」と、PWA 用にサイズが最適化されたアイコンを自動的に生成してくれます。 display:standaloneとしました。 Web アプリを開いて、スタンドアロン アプリのようなルック アンド フィールにします。アプリは、ブラウザーとは別の独自のウィンドウで実行され、URL バーなどの標準のブラウザー UI 要素を非表示にします。 scope:ブラウザーがアプリ内にあると見なす URL のセットを定義し、ユーザーがいつアプリを離れたかを判断するために使用されます。scopeは、Web アプリのすべてのエントリ ポイントと出口ポイントを包含する URL 構造を制御します。scope,scope,start_url,scope内に存在している必要があります。 scope が相対 URL である場合、ベース URL はマニフェストの URL になります。 スコープは、ナビゲーションを現在のサイトに制限します。 "scope": "https://example.com/" ナビゲーションを現在のサイトのサブディレクトリーに制限します。 "scope": "https://example.com/subdirectory/" (注意)scope:ユーザーがアプリ内で の外部に移動するリンクをクリックするscopeと、リンクが開き、既存の PWA ウィンドウ内でレンダリングされます。 target="_blank"リンクをブラウザー タブで開く場合は、タグに追加する必要があります。Android では、リンクはChrome カスタム タブ**target="_blank"**で開きます。 { "theme_color": "#a4115e", "background_color": "#f2f4f4", "display": "standalone", "scope": "https://raizin.