とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

プログラミング

【R言語】Borutaによるランダムフォレストの変数重要度をggplotの箱ひげ図でグラフ化する

Borutaによるランダムフォレストの変数重要度をggplotの箱ひげ図でグラフ化する デフォルトのグラフよりきれいなグラフが描けるggplotで 変数重要度を可視化する。 library(Boruta) library(rFerns) library(tidyverse) library(plotly) #mlbenchのSonarで試…

【R言語】ファイル名を一括して読みこみ、ファイル名の一部列として残す

ファイル名を一括して読みこみ、ファイル名の一部列として残す フォルダに保管されている大量のファイルを一括して読みこむときに、 ファイル名の一部(例えば3-4桁の機械番号)を列として残したい時のコードです。 # Tでファイル名にディレクトリ追加 List …

【R言語】特定の型の列を選択

【R言語】特定の型の列を選択 仕事用のメモです library(tidyverse) dftest <- starwars #数値型の列を選択 numericVars <- which(sapply(dftest, is.numeric)) numericVarNames <- names(numericVars) #文字型の列を選択 numericVars2 <- which(sapply(dfte…

【R言語】Borutaによる変数選択(ランダムフォレスト)

Borutaによる変数選択 データセットの中からある指標に基づいて、 重要変数を選択するアルゴリズムがいくつかある。 私が使っているRのソフトに Exploratory Desktop というソフトが大変便利で個人的に使用しています。 ExploratoryにはBorutaという変数選択…

【R言語】ggplotグラフを複数表示

ggplotグラフを複数表示 リストにグラフを繰り返し代入してまとめて表示するやり方のメモ。 library(dplyr) library(gridExtra) #sdf <- sample_frac(multi.regression.compounds,size = 0.05) #pairs(sdf) #sdfは1列目が目的関数 "preprocessed.y varname <…

【R言語】dplyrなどデータ整形メモ(NAが一定割合以下の列を抽出など)

データ整形に関する関数のメモ 仕事で使用した関数のメモです。 ・NAが一定割合以下の列を抽出 tmp <- df %>% summarise_all( . %>% is.na() %>% sum) %>% #列ごとのNAの総数を集計する gather() %>% #縦持ちに変換 filter( value < nrow(df) *.3 ) #NAが30%…

【R言語】決定木分析の可視化パッケージ決定版?【ggparty】

決定木分析結果の可視化パッケージ【ggparty】 Rの決定木のグラフはどうしても貧弱なのが欠点でした。 その欠点を覆すべく、ggplotを使った自由度の高いパッケージggparty ができたみたいです。 詳細はこちら。 github.com library(rpart) library(partykit)…

【python】コルモゴロフ-スミルノフ検定を実施し、カテゴリ別で分布に差がある変数を探す

コルモゴロフ-スミルノフ検定を実施し、生存、死亡の差がある分布を探す kaggleのブログで見つけたコルモゴロフ-スミルノフ検定の使用例を勉強するためにメモしておきます。 良品・不良品間でどの変数が分布に差があるか検討するときに使えそう。 #コルモゴ…

【R / Python】データハンドリン関係のコマンド比較まとめページ

データハンドリン関係のコマンド比較まとめページ pythonの勉強を進めるうちにRのコマンドと混同しそうになってきた。 いつでも振り返りができるように、 コマンドを比較しているページをまとめておく。 PythonとRのコマンド比較表 qiita.com dplyr使いのた…

【R言語】doでグループごとに線形回帰

統計検定準1級に無事合格したので、R,pythonの勉強を再開したいと思います。 doでグループごとに線形回帰 もはや、doを使ったやり方は古いですが、念のためメモ ##doの使い方 #各グループから上位2行を取ってくる library(dplyr, warn.conflicts = FALSE) mt…

【R言語】セルの中にある特定文字をカウントした列を追加する

セルの中にある特定文字をカウントした列を追加する データフレームの中に備考という列があるとする。 その列の中にあるエラー1の数を買うん下列を追加する。 library(tidyverse) df %>% mutate(err_count=str_count(備考,"エラー1")) -> df_tuika

【R言語】分散拡大要因のヒートマップ

分散拡大要因のヒートマップ メモです。 library(MASS) library(corrplot) data("Boston") cor_Boston <- cor(Boston) corrplot(cor_Boston,addCoef.col = TRUE) library(tidyr) library(ggplot2) library(tidyverse) #分散拡大要因 vif1<- Boston %>% dplyr…

【R言語】plyrのrevalueをdplyrのrecodeで実現する

plyrのrevalueをdplyrのrecodeで実現する リストを渡して特定の文字を置換したいとき、 ここを参考にdplyr::recodeで実現した。 https://github.com/tidyverse/dplyr/issues/2505 データセットはBoston hounsingである。 all %>% replace_na(list(PoolQC = "…

【R言語】欠損値を数えてグラフ化

欠損値を数えてグラフ化する データセットはBoston housingを使用する。 (参考) https://www.kaggle.com/erikbruin/house-prices-lasso-xgboost-and-a-detailed-eda rm(list = ls()) library(tidyverse) library(data.table) library(scales) library(VIM)…

【R言語】相関係数の上位のカラムのみを抜き出して散布図行列

相関係数の高いカラムのみを抜き出して相関行列を作成する #####Boston housing rm(list = ls()) library(tidyverse) library(data.table) library(scales) library(VIM) library(corrr) library(corrplot) library(scales) path <- "C:/Users/************/…

【R言語】主成分分析・コレスポンデンス分析結果をshinyで可視化 「FactoMineR」「explor」パッケージ

コレスポンデンス分析結果をshinyで可視化 「FactoMineR」「explor」パッケージ コレスポンデンス分析の結果をインタラクティブに可視化するパッケージを 見つけたのでメモします。 正直かなり使える。 library(tidyverse) data(Titanic) df_titanic <- as_d…

【R言語】データフレームから数値属性の列・カラム名を抜き出す

データフレームから数値属性の列のみ抜き出す sapplyとis.numericを組み合わせて、 数値属性の列を抜き出すコードをメモする。 #データフレーム df_Bostonから数値の列だけ抜き出す df_Boston_num <- df_Boston %>% select_if(is.numeric) #名前を抜き出す n…

【R言語】caretでの独自評価指標(マシューズ相関係数MCCとF1)を利用した学習モデルの構築

caretによる機械学習モデルの評価にマシューズ係数を採用する マシューズ相関係数とは機械学習の2値分類問題で、 正と負の割合が不均衡の場合に用いられる評価指標である。 製造業における不良解析でも工程中のデータは通常不均衡データであり、 この指標を…

【R言語】xgboostで分類

xgboostで分類 下のサイトを参考にしながらxgboostのパラメーターチューニングに取り組んだ。 備忘録として残しておく。 www.marketechlabo.com logics-of-blue.com 使用したデータセットはコレ Default of Credit Card Clients Dataset | Kaggle library(ti…

【R】kaggleにはじめて挑戦 Home CreditコンペでLightGBM

kaggle初挑戦。とりあえずSubmitしてみた。 機械学習エンジニアの世界ではkaggleというデータコンペティションが流行している。 企業がkaggleにデータ分析に関する課題を提供し、 参加者が主に予測精度などを競うサイトである。 こういうのを見るとアメリカ…

【R言語】連続データをファクター化するcut関数

連続データをファクター化するcut関数 データを離散化するときに使用したcut関数の使用法を記録する。 #cut関数(連続データの離散値化) #連続データを適当な区間(breaksで指定)で分割し、factor化 #その後数値データに戻す n3 <- cut(n,breaks = seq(0,50…

【R言語】部分最小二乗法 plsパッケージ

plsパッケージによる部分最小二乗法 書籍「Rによる統計的学習入門」の防備メモとして記録しておく ・部分最小二乗法(PLS:partial least squares)とは ・PCRに代わる教師ありの手法 ・次元を削減する手法 ・元の特徴の線形結合によりM個の新たな特徴を作り、 …

【R言語】ロジスティック回帰モデルをggplotでグラフ化する

ロジスティック回帰モデルをggplotでグラフ化 オライリーのggplot2解説書「Rグラフィックスクックブック」では ggplotのバージョンが古くて、書籍と同じグラフが書けなかった。 早く更新されることを願う。 #ロジスティック回帰モデルのグラフを書く library…

【R言語】クロス集計表の連関を確認するコレスポンデンス分析

コレスポンデンス分析 Rによる多変量解析入門 データ分析の実践と理論 | Ohmsha 多変量解析の理論と実践のバランスが良い。 解析結果のレポートのテンプレートがあり、 まさに実務者向けの本である。 #13章のサンプル「自転車データ2.csv」の読み込み b2dat …

【R言語】綺麗な散布図行列 GGallyパッケージ

きれいな散布図行列を書く statmodeling.hatenablog.com mikutaifuku.hatenablog.com エレガントな散布図行列を書くコードを見つけた。 Bostonデータセットのサイズでは問題ないが、 データ量が多いとかなり重い処理となる。 サンプリングする必要があるだろ…

【R言語】x-means法でクラスタリング

x-means法でクラスタリング k-means法はクラスター数を指定する必要がある。 クラスター数を指定しないx-means法を下記を参考(マルパクリ)に試してみた。 aaaazzzz036.hatenablog.com #http://aaaazzzz036.hatenablog.com/entry/2013/11/27/210355 #s-kmea…

【R言語】t-sneで次元削減 -Rtsneパッケージ-→DBSCANクラスタリング

t-sneで次元削減 -Rtsneパッケージ- 大量の不良画像データをモード分けしたいことが多い。 いきなりkmeans法でクラスタリングしてもよいが、 tsneで2次元に落とし込んみ可視化すると、 意外な関係性が読み取れて面白かったのでメモする。 t-sneとは? tsneと…

【R言語】クラスタリングで不良品画像を自動でグルーピング

画像データをクラスタリングで自動でグルーピング カラー画像のデータ以下の図のような構成となっている。 簡単に言うと座標それぞれに対して、RGBの輝度データが入力されている。 画像データの構造・画素・RAWデータについて解説 | だえうホームページ rgb …

【R言語】k分割交差検証

k分割交差検証 Rによる統計学習入門 5章リサンプリング法に出ていた 交差検証について再確認する。 データセットをk個に分割して、残りの(k-1)個を検証にする手法である。 LOOCVより計算量が減るだけでなく、テスト誤差をより高い精度で推定できる。 (バイ…

【R言語】ランダムフォレストrangerパッケージ 変数の重要度を可視化

rangerパッケージにおける変数重要度の可視化 kefism.hatenablog.com こちらの関数がうまく動かなかったため改造して、関数を作成した。 library(tidyverse) library(ranger) # random sampling df <- diamonds str(df) n <- nrow(df) s <- sample(n, n * 0.…