CSS3 – color/background-color

概要

colorは前景色、background-colorは背景色を指定する。

書式

color: 色指定;

background-color: 色指定;

色指定にいくつかの方法がある。

カラーネーム
red, grayなど特定の色に対応したキーワードで設定。
16進コード(6桁)
#RRGGBBの6桁で指定する。2桁1バイトごとにR, G, Bに対応。
16進コード(3桁)
#RGBの3桁で指定する。#RGBという指定は#RRGGBBと各色を繰り返した値に相当する。
rgb(r, g, b)/rgb(r, g, b, a)
3つの引数はそれぞれ0~255の整数で、R, G, Bに対応。4つ目の引数がある場合は透過度を表し、実数で指定する。
hsl(h, s, l)/hsl(h, s, l, a)
色相(Hue)、彩度(Saturation)、輝度(Lightness)を実数で指定する。4つ目の引数がある場合は透過度を表し、実数で指定する。

 

CSS3 – 基本色

基本の16色とカラーネーム、カラーコードは以下の通り。

カラーネーム カラーコード
black #000000
aqua #00FFFF
blue #0000FF
fuchsia #FF00FF
gray #808080
green #008000
lime #00FF00
maroon #800000
navy #000080
olive #808000
purple #800080
red #FF0000
silver #C0C0C0
teal #008080

 

HTML5 – a~アンカー

書式

<a href="href属性" target="target属性">...</a>

属性

href属性

リンク先のURL、アンカーリンク(ページ内リンク)を組み合わせて指定する。

target属性

_self 現在のページでリンク先を開く(デフォルト)
_blank 新しいページ/タブでリンク先を開く

Ruby – ファイル操作

要点

  • Fileクラスを使うことで、開いたファイルをオブジェクトとして扱える
  • Fileはopenメソッドで開き、closeメソッドで閉じる
  • openメソッドで開いたファイルオブジェクトに対して、行単位の読み込みなどの処理を行う

ファイルのオープン/クローズ

ファイルのオープンにはFile#openメソッドを使う。第1引数でファイルのパス、第2引数でファイルを開くモードを文字列で指定。

変数 = File.open("ファイルへのパス", "モード")

モード指定の例は以下の通り。

"r" 読込 デフォルト
"w" 書込 ファイルが存在している場合は内容を空にする
"a" 追加 ファイルが存在している場合は末尾に追加する
"r+" 読書 ポインターはファイルの先頭にセット
"w+" 読書 ファイルが存在している場合は内容を空にする
"a+" 読書 読込位置は先頭、書き込み位置は末尾にセット

ファイルのクローズにはcloseメソッドを使う。

ファイルオブジェクトの変数.close

以下はファイル名を指定してファイルを開き、何もせずにクローズする例。

以下の構文は、ファイルのクローズを明示しなくても完結する。

ただしこれには注意が必要。このブロックの中で定義した変数でファイルの内容を読み込むと、ブロックの外ではその変数は使えない(ブロック内スコープ)。

ブロック内で読んだ内容を外で参照するためには、ブロック外で変数が定義されている必要がある。

ファイルの読み込み

一括読込

ファイルの読み込みは、ファイルオブジェクトのreadメソッドを使う。

行ごとの読み込み

Fileオブジェクトのeach_lineメソッドを使うと、行単位で読み込んでくれる。

行番号

Fileオブジェクトのlinenoプロパティーは、現在読んでいる位置の行番号を持っている。

ファイルの書き込み

ファイルの書き込みはopenの第2引数で"w"を指定する。ファイルが存在すればその内容が空にされ、ファイルが存在しなければ新たに作られる。

 

PCA – 主成分分析

概要

主成分分析(principal component analysis: PCA)は教師なし学習の手法の一つでもあり、その考え方は、特徴量の線形組み合わせの中で、最もデータの情報を多く含む組み合わせを発見し、それを主成分として分析を行うものである。

具体的には、特徴量空間の中でベクトルを考え、そのベクトル沿いのデータの分散が最も大きくなるようにベクトルを定める。その考え方と定式化については、主成分分析の定式化にまとめた。

クラス分類データへの適用

Irisデータセット

Irisデータセットにscikit-learnのPCAを適用した例。

PCA – Irisデータセット

教師なし学習として、クラス分類のターゲットデータを用いることなく、特徴量の分析だけでクラスがうまく分離できるような主成分が得られる。

Breast cancerデータセット

Breast cancerデータセットにscikit-learnのPCAを適用した例。

PCA – Breast cancerデータセット

Irisデータの場合と同じく、教師なし学習として、クラス分類のターゲットデータを用いることなく、特徴量の分析だけでクラスがうまく分離できるような主成分が得られる。

ここでは、主成分を構成する各特徴量の寄与をヒートマップによって視覚化している。

LFW peopleデータセット

著名人の顔画像データを集めたLFW peopleデータセットにscikit-learnのPCAを適用した例。

PCA – LFWデータセット

主成分の可視化、次元圧縮後の画像の再現など、様々な角度でPCAの特性を見ている。

回帰データへの適用

Boston house pricesデータセット

Boston house pricesデータセットにPCAを適用して、ターゲットが連続量で与えられた回帰系の問題への適用性を確認する。

PCA – Boston house pricesデータセット

このデータセットに関する限り、PCAで明確な関係は見いだせなかった。

なお、このデータセットには属性データが含まれ、前処理としてone-hot encodingを行っている。

 

Ruby – dateライブラリー

導入

require("date")でライブラリーを読み込むとDateクラスが使えるようになる。

Dateオブジェクトの生成

Dateクラスのコンストラクターの引数で年、月、日を指定する。

parseクラスメソッドに様々な形の日付文字列を与えてDateオブジェクトを生成。

todayクラスメソッドは今日の日付でDateオブジェクトを生成。

値の取り出し

年月日や曜日番号を個別に取り出し。

日付の書式付表示

strftimeメソッドの引数で書式を設定。

主な書式文字

%C 世紀
%Y 西暦年
%y 西暦年の下2桁
%m 月(01-12)
%d 日(01-31)
%w 曜日番号(日曜:0~土曜:6)
%u 曜日番号(月曜:1~日曜:7)
%A 曜日の名称(Monday, Tuesday, …)
%a 曜日の略称(Mon, Tue, …)

 

Ruby – ハッシュ

ハッシュの定義

ハッシュは{}で囲み、key => valueをカンマで連ねて定義する。

空のハッシュは次のいずれかで。

ハッシュのサイズ

ハッシュのサイズはsizelengthで取得。

ハッシュが空かどうかはempty?で確認できる。

キーと値のリスト

keysvaluesでキーや値のリストが得られる。

キーと値の検索

has_key?、has_value?でキーや値の存在を確認。

値の参照・追加・変更

キーを指定して値を参照。存在しない場合はnil

新たなキーを指定してアイテムを追加。

キーを指定してアイテムを削除。

キーを指定して値を変更。

キーと値の順次取り出し

eachメソッドでキーと値のセットを順次取り出す。

シンボルによるキーの設定

:key => valueの形で、キーをシンボルで設定できる。

シンボルで設定する場合、key: valueの形でも設定できる。ただし参照する場合は:keyの形で。

キーのリストもシンボルで表示される。

 

Ruby – chomp/chomp!~末尾の改行文字の削除

chompは末尾の改行文字を削除する。ただし"\n\r"の場合は"\n"が削除されずに残る。

"\n\r"を削除したいときは引数に"\n\r"を指定するか、chompを2回実行する(chompは改行文字列だけを削除する)。

末尾以外にある改行文字は削除されない。

chopは非破壊的であり、元の文字列は変更されない。

chop!にすると破壊的メソッドになり、戻り値も変更後の文字列。

 

Ruby – chop/chop!~末尾文字の削除

chopは文字列の末尾1文字を削除する。

末尾に改行文字がある場合は、それらが削除される。ただし"\n\r"の場合だけは"\n"が削除されずに残る。

chopは非破壊的であり、元の文字列は変更されない。

chop!にすると破壊的メソッドになり、戻り値も変更後の文字列。

 

Ruby – 配列の演算

概要

Rubyの配列同士の演算はPythonのようにブロードキャストされない。加算/減算はそれぞれ和集合/差集合のように扱われる。

配列同士の加算

+~加算は和集合

配列同士をで加算すると双方の和集合となる。

必ずしも重複が削除されるわけではない。

~減算は差集合

減算の場合、元の配列から重なる要素だけが削除される。下の例ではabに共通な[3, 4]が削除され、[5, 6]はもともとaに含まれていないので無視される。

積集合の求め方

加算と減算を組み合わせて、2つの配列の席集合に相当する配列が得られる。

要素の追加

<<演算子は左辺の配列に右辺の要素を追加する。連続して複数の要素も追加可能。push()と同じ動作。