ギャン・バギャム・ソルドン

一打粉砕に怒喝の心力を込め、万物を叩き割る剛剣の刃を生み出さん

8/22 生きる理由

最近、割と真剣に何の為に生きてるんだろうなと考える。そして特に生きる理由も見当たらない。別にだからこそ死のうなんて思わないけど、いざ「明日人類全員死ぬんで!」ってなった時に、他人と比べると後悔することは少ないんじゃないかと思う。むしろ自分より幸せな奴が巻き込まれるなんてラッキー!と嬉々とする可能性もある。

仕事はつまらないし。まぁこれは仕事内容もそうだし、昼休みに何食べようかと考える楽しみだったり、同期や仲良い先輩に会えないのもあって割とつらい。(こんな人間なので、何か用事が無いと連絡できない質なので)まぁ在宅勤務は良いっちゃ良いんだけど、この辺が本当にデメリットだなと感じる。

Aqoursのライブは中止になってしまったし。風呂屋とか映画館とかが営業をしている中で、何でライブだけって気持ちが無い訳じゃないけど、まぁ規模が規模だからしゃーないな...みたいな感じ。オンラインで見れるだけありがたい。

最近の楽しみ...何だろう。風呂屋、明日はメンズエステに行ってみようと考えてる。楽しみ。そう言えば、でっかいモニターを買った円盤を見る環境が整いすぎて、ノーパソで仕事しながらずっとライブの円盤見てる。最高過ぎてAqoursの持ってないライブ円盤全部買っちゃおうかなと思ってる。財布の紐はガバガバになってる、もう俺には何も守るものが無い。

財布ガバガバついでに、風呂も程々にして、多種多様な業種、場所の風俗店に行ってみようと思う。明日のメンズエステはその第一歩だ。(まぁメンズエステは風俗じゃないんですけど)風俗狂いも見方を変えたら趣味の一つだし、極めたら極めたでフォロワーの役に立てそう。ネットのレビューよりフォロワーの実体験とはよく言いますしね。個々のフォロワーに適したお店を紹介できるようになるまで3年くらいかかりそう。最近口を開けば風呂の話しかしてない気がするけど、気のせいです、多分。

最悪な話

良い1日の終わりには、最悪なブログを書くに限る。

ソープに行って参りました。自粛期間で中途半端にお金が貯まってしまい、またお金を貯めておく理由も無くなってしまったので、こう、躊躇の気持ちが無くなってきています。最近ちょっと危機感すら感じてますね。ソープに行って虚しい気持ちになれる人に羨ましさすら感じます。僕は「最高~~~!」って気持ちにしかならないので。もうダメだ。

今日は初めてのお店に行きました。一応、行き付け(?)のソープがあるのですが、行き慣れてしまいスリルを感じる事が出来なくなったし、もっと広い視野を持って色んなソープに行ってみるべきだなと思ったので、今日はちょっと冒険しました。

結論から言うと…めっちゃ良かったンゴぽよの翁w 学園を模した妹系のソープでした。きうは妹系の女の子が大好き。待合室には学校で使ってたような机が置いてあり、内装はとても凝ってましたね。忘れちゃいけないのが、カウンセリングシートと呼ばれる物で、これが本当に良かった。事前に希望のプレイなり嗜好をキャストさんに伝える事が出来るんですよ。美容院かよ…と思いました。「キスはどんなのをご希望でしょうか?」という質問の答えの欄には、フレンチ、普通、ディープ、ねっとり、唾ください、の5つが並びます。まぁ、そりゃ唾くださいに丸付けますよね。「キャストの雰囲気は?」「ウブorエロ」、すまんがエロ一択で。

あと特筆すべき点は、制服がガチってところですね。ちゃちなコスプレ制服じゃないですよアレは。ちゃんとした生地の厚みを感じました。まぁ、きうは女子の制服の事は1mmも知らないんですが。いやでも本格的でしたね。しかも部屋には机までありますからね。凄い拘りです。あっ、因みに女の子はめっちゃかわいくて大満足でした。最高。しかも名前が「かすみちゃん」とかいうも良さポイントあります。

ソープに行く時に緊張感を感じなくなったら、お店の替え時、とはよく言ったものですが、本当にその通りですね。まぁこの言葉は僕が考えたんですけど。人間やっぱり自分にとって新しい物を定期的に摂取しなければなと思いました。この尽きぬ探究心は何処へ向かっていくのやら…。

気になる人が居たらお店とか全然教えるので聞いて下さいね。てか、フォロワーなり友達を連行してみたいという欲が出てきた。1人じゃ怖くてソープに入れないそこのあなた、僕が付き添いましょう。そう、こうして時代は、「軽率に飲酒」から…「軽率にSOAP」へ…。

人を愛するという事

アイドルや声優(以下、アイドル&声優という意味で「アイドル」という言葉を用いています。)を好きになる行為は、とても自由だ。好きになりたい時に好きになって、消費し切れない程のコンテンツをマイペースに消費して、飽きたら離れて、また興味が出たら戻ってくる。誰も咎めるものは居ないし、好きになる事に責任を負う必要は無い。一見聞こえの悪い、誠実さの欠いた行動にも見えるが、これらの行為が許されているのは、アイドルの大きな魅力だと私は考えている。

また、自分の注ぐ愛情が(よっぽど変な事をしない限り)、それがどんなに重い感情であろうと、無条件で受け入れられるのも、アイドルの魅力なのだろう。ありったけの愛情をぶつけても壊れないサンドバッグに、僕はお金を使う。

自分が全力で声優を追いかけていた頃からこの考えを持っていた訳ではないが、少なくとも今の自分の価値観はここに書いたようなものだ。自覚がある。

 

…どうやら、僕の持つ愛情は一般的には「重い」方に分類されるらしい。まぁ確かに昔からその兆候はあった。いつだって、1つのアニメ、1人のアイドルに短期間で深く入り込んでいた。行き場のない愛情を、時にはインターネットの海に放ち、時にはオタクと喋りながら酒と一緒に飲み込んだ。

 

初めてアイドル以外の人間を好きになった。当たり前だが、アイドルを推すのとは訳が違う。そんな事は分かっていた。先述の通り、アイドルを好きになるのは自由だ。しかし、一般的に人を好きになるのは自由なのだろうか。私は No だと思う。勿論、何もかもが許さていない訳では無いが、不誠実な態度や中途半端な覚悟は相手を振り回してしまう。これは良くない。自他がアイドルを無責任に好きになる事に対して、一抹の罪悪感や気持ち悪さを抱いてきた僕は、必要以上に好きになる事、好きでいる事に責任を感じていたし、なんなら愛想尽かされるまでは、ずっと好きでいる覚悟もしていた(と思う)。明らかに重たいと感じるが、僕はこういう態度しか取れなかった。

 

別れてから数日経って、自分のダメだったところが次から次へと思い付く。恋は盲目とよく言うが、本当に何もかも見えていなかった。次があれば、もっと上手くやりたい。

彼女と別れました。

忘れたいけど、忘れたくないから、書く。

付き合う前、色んな人に恋愛相談をする度に「今が一番楽しい時期だね」と言われたのだが、当時の僕は「そんな訳ねぇだろ!!!!」と思っていた。だって好きな人と付き合って楽しくない訳ないじゃん。この言葉の正しさを実感する事になるとは思わなかった。

 めちゃくちゃ好きだった。でも相手の気持ちは変わっちゃうから仕方ない。こう、恋人の距離になれてない感じはちょっと前からあった。僕も僕でやっぱりそれは辛くて、多分このまま続いてもお互いに幸せになれなかったのだと思う。昨日あそこで僕が気持ちを打ち明けなかったら、このなぁなぁの関係がまた1ヶ月、2ヶ月と続いていたのかもしれない。それだったら僕の傷口が浅いうちに別れられて良かったと思う。ショックだったけど、ちゃんと面と向かって向こうが正直な気持ちを伝えてくれたのは、ありがたかった。5ヶ月弱の短い間だったけど、僕にとってはこれが初めてのちゃんとした恋だったし、簡単に忘れる事は出来なさそう。

手元に残ったのは、大事にし過ぎて1回も使ってない誕プレで貰ったマグカップと、今度しようねって言って買った大量の手持ち花火。あとデートで撮った写真。見ると思い出しちゃうから消したいけど、消したらもう一生この写真が目に入ることは無いんだなと思うと、消すのを躊躇ってしまう。

僕にも悪いところはあったのだと思う。この5ヶ月で2人の関係はそれほど進展しなかった。コロちゃんの影響で付き合い始めて2ヶ月目に全く会えない状況になってしまったのは、これはもう運が悪かったとしか言えないけど、ラブラブだった時期にもっと積極的になれてれば、今と違った未来があったのかなと思ったりする。

流石に昨日は死ぬほど辛かったけど、何だかこう、予兆みたいなものは感じ取っていたし、無意識のうちに心が別れの準備してたのか、今は普通に生きてられる。ただ今でも頭の片隅であの子の名前が浮かんだり消えたりしてるし、その度に辛くなるから、これだけは早めに無くなってほしいな。

またオタク家業に没頭出来れば良いんだけど、それも厳しそうだから、しばらく休憩したら新しい出会いを探しに行きたいなと思ってる。さぁどうなるかなぁ。いい男になって、将来、あの子に僕を振ったことを後悔させたい。

今日の頑張り

・今日の頑張り見て

SIGNATEの練習問題をやってたら一日経ってた。下のリンクから見れる。

【練習問題】民泊サービスの宿泊価格予測 | SIGNATE - Data Science Competition

1. MINPAKU.py

データの確認やクレンジング(欠損値の保管や、データのダミー変数化)、変数の返還方針の決定、変換したデータの吐き出し、変数同士の相関をヒートマップで見てる。

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# CSV の読み込み
data = pd.read_csv('C:\\work\\SIGNATE\\TRAIN_MINPAKU\\train.csv')

# 欠損地が何個あるか確認
# print(data.isnull().sum())
'''''
・欠損のあるデータと補完の仕方
bathrooms:風呂の数 平均
bedrooms:ベッドルーム数  平均
beds:ベッド数   平均
first_review:最初のレビュー日 x
host_has_profile_pic: ホストの写真があるかどうか    f埋め
host_identity_verified:ホストの身元確認が取れているか  f埋め
host_response_rate:ホストの返信率 平均
host_since:ホストの登録日 2020/1/1
last_review:最後のレビュー日 2020/1/1
neighbourhood:近隣情報 x
review_scores_rating:レビュースコア  平均
thumbnail_url:サムネイル画像リンク x
zipcode:郵便番号 x

・特徴量の選択、加工
1. 削除カラム
id ,description ,name ,neiborhood , thumbnail_url ,zipcode
latitude ,longitude

2. 加工カラム
amenities ⇒ 文字データからアメニティの個数に加工、その後amenities drop
bed_type ⇒ ダミー変数へ加工しdrop
cancellation_policy ⇒ ダミー変数へ加工しdrop
city ⇒ ダミー変数へ加工しdrop
cleaning_fee ⇒ダミー変数へ加工しdrop

last_review - host_since ⇒ 営業日数として扱う
その後 first_review,last_review,host_since drop

host_has_profile_pic ⇒ダミー変数へ加工しdrop
host_identity_verified ⇒ダミー変数へ加工しdrop
instant_bookable ⇒ダミー変数にしてdrop
property_type ⇒ダミー変数にしてdrop
room_type ⇒ ダミー変数にしてdrop

'''
# 欠損値を f で置換
data = data.fillna({'host_has_profile_pic':'f' ,
'host_identity_verified':'f' })
# ホストからの返信率は文字置換して数字型へ
data['host_response_rate'] = data['host_response_rate'].str.replace('%','')
data['host_response_rate'] = data['host_response_rate'].astype(float)
# 欠損値を 平均値 で置換
data = data.fillna({'bathrooms':data['bathrooms'].mean()
,'bedrooms':data['bedrooms'].mean()
,'beds':data['beds'].mean()
,'host_response_rate':data['host_response_rate'].mean()
,'review_scores_rating':data['review_scores_rating'].mean()})

# last_review - host_since を計算
# 日付のデータを - で分割
df_last = data['last_review'].str.split('-',expand=True)
df_since = data['host_since'].str.split('-',expand=True)
# 欠損部分を平均で置換
df_last = df_last.fillna(df_last.astype(float).mean())
df_since = df_since.fillna(df_since.astype(float).mean())
# period を営業している期間の長さとして定義
data = data.assign(period=365*(df_last[0].astype(float)-df_since[0].astype(float))
+ 30*(df_last[1].astype(float)-df_since[1].astype(float))
+ (df_last[2].astype(float)-df_since[2].astype(float)) )
# アメニティの文字データをアメニティの個数データに変換
df_amenities = data['amenities'].str.split(',',expand=True)
data = data.assign(amenities=len(df_amenities.columns) - df_amenities.isnull().sum(axis=1))
# 文字型の変数をダミー変数へ
data = pd.get_dummies(data,drop_first=True, columns=['bed_type','cancellation_policy','city','cleaning_fee'
,'host_has_profile_pic','host_identity_verified','instant_bookable','room_type'])
# 不要なカラムをdrop
data = data.drop(['property_type','last_review','host_since','id','description' , 'first_review','name', 'neighbourhood', 'thumbnail_url' ,'zipcode','latitude' ,'longitude'] ,axis=1)
# 全て1のカラムを追加
data = data.assign(seppen=1)

# 欠損地があるか再確認
# print(data.isnull().sum())

data.to_csv('train_trance.csv')
# ---------------------- 変換ここまで ------------------------------------------------
# ---------------------- 可視化 ------------------------------------------------------
# ダミー変数を除く変数でヒートマップを描いてみる
cols = ['accommodates','amenities','bathrooms','bedrooms','beds','host_response_rate',
'number_of_reviews','review_scores_rating','y','period']
cm = np.corrcoef(data[cols].values.T)
heat_map = sns.heatmap(cm
,cbar=True
,annot=True
,square=True
,fmt='.2f'
,yticklabels=cols
,xticklabels=cols)
plt.tight_layout()
plt.show()

>>出力

f:id:kiui_4:20200711182357p:plain

ヒートマップ

 

2. MINPAKU_LinerRegiression.py

回帰に使う変数や関数をクラスを定義して、線形単回帰と重回帰でパラメータを推定。テストデータで平均偏差を求めて、モデルの評価としてる。最後にSIGNATEのモデル評価用のデータを加工して、予測値を算出してcsvに吐いてる

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

# 加工したcsv を読み込み
df = pd.read_csv('train_trance.csv')

# ----------------------- 回帰の為のクラスを定義 ----------------------
class liner_Regression(object):
# 学習率とパラメータの更新回数を定義
def __init__(self,eta=0.00000005 ,n_iter=5000):
self.eta = eta
self.n_iter = n_iter

# パラメータを推定する fit メソッドを定義
def fit(self,X,y):
# パラメータ w を初期化
self.w = np.random.random(len(X.columns))
# 更新規則に則ってパラメータを更新
for i in range(self.n_iter):
# 推定値と実測値の誤差を計算
self.error = y - self.predict(X)
# j 番目のパラメータを推定
for j in range(len(X.columns)):
self.w[j] += self.eta * np.dot(X.iloc[:,j], self.error)
return self
# 入力に対して予測値を計算する関数を定義
def predict(self, X):
return np.dot(X, self.w)

# 平均2乗誤差を求める関数を定義
def error_ave_test(self,X,y):
self.errors = y - self.predict(X)
return np.sqrt(0.5 * (self.errors*self.errors).sum()/len(X))
# ----------------------- クラスの定義ここまで ------------------------------------------
# 学習データとテストデータへ分割
df_train, df_test = train_test_split(df,test_size=0.4)

# ----------------------------------------- 単回帰モデルの実装 ---------------------------------------
# 単回帰なので accommodates を説明変数にし、切片を求めるためにseppen を抽出
data_train = df_train[['accommodates','seppen']]
# 目的変数に y を設定
target_train = df_train['y']

# 回帰クラスをインスタンス
linerReg = liner_Regression()
# fit メソッドを呼び出して、学習データにfitするパラメータを推定。
linerReg.fit(data_train,target_train)

# モデルの性能を評価
error = linerReg.error_ave_test(data_train,target_train)
print('単回帰のトレーニン2乗誤差:',error)

# テストデータで2乗誤差を推定
data_test = df_test[['accommodates','seppen']]
target_test = df_test['y']

test_error = linerReg.error_ave_test(data_test,target_test)
print('単回帰のテスト2乗誤差   :',test_error)

# ------------------------------ 重回帰モデルの推定 ----------------------------------------------------
# カラムを指定して説明変数を用意
colmuns = ['accommodates','amenities','bathrooms','bedrooms','beds','bed_type_Couch','bed_type_Futon','bed_type_Pull-out Sofa','bed_type_Real Bed','cancellation_policy_moderate','cancellation_policy_strict','cancellation_policy_super_strict_30','cancellation_policy_super_strict_60','city_Chicago','city_DC','city_LA','city_NYC','city_SF','cleaning_fee_t','host_has_profile_pic_t','host_identity_verified_t','instant_bookable_t','room_type_Private room','room_type_Shared room','seppen']
data_train = df_train[colmuns]
# 目的変数に y を設定
target_train = df_train['y']

# 重回帰クラスをインスタンス
Multiple_regression = liner_Regression()
# fit メソッドを呼び出して、学習データにfitするパラメータを推定。
Multiple_regression.fit(data_train,target_train)
# モデルの性能を評価
error = Multiple_regression.error_ave_test(data_train,target_train)
print('重回帰のトレーニン2乗誤差:',error)

# テストデータで2乗誤差を推定
data_test = df_test[colmuns]
target_test = df_test['y']

test_error = Multiple_regression.error_ave_test(data_test,target_test)
print('重回帰のテスト2乗誤差   :',test_error)

# ----------------------- 予測した様子を可視化 ----------------------------------------------
plt.scatter(target_test, Multiple_regression.predict(data_test))
plt.xlabel('correct')
plt.ylabel('predict')
plt.show()

# ------------------------------- テストデータから予測値を計算 -----------------------------------------------
# CSV の読み込み
data = pd.read_csv('C:\\work\\SIGNATE\\TRAIN_MINPAKU\\test.csv')

# 欠損値を f で置換
data = data.fillna({'host_has_profile_pic':'f' ,
'host_identity_verified':'f' })
# ホストからの返信率は文字置換して数字型へ
data['host_response_rate'] = data['host_response_rate'].str.replace('%','')
data['host_response_rate'] = data['host_response_rate'].astype(float)
# 欠損値を 平均値 で置換
data = data.fillna({'bathrooms':data['bathrooms'].mean()
,'bedrooms':data['bedrooms'].mean()
,'beds':data['beds'].mean()
,'host_response_rate':data['host_response_rate'].mean()
,'review_scores_rating':data['review_scores_rating'].mean()})

# last_review - host_since を計算
# 日付のデータを - で分割
df_last = data['last_review'].str.split('-',expand=True)
df_since = data['host_since'].str.split('-',expand=True)
# 欠損部分を平均で置換
df_last = df_last.fillna(df_last.astype(float).mean())
df_since = df_since.fillna(df_since.astype(float).mean())
# period を営業している期間の長さとして定義
data = data.assign(period=365*(df_last[0].astype(float)-df_since[0].astype(float))
+ 30*(df_last[1].astype(float)-df_since[1].astype(float))
+ (df_last[2].astype(float)-df_since[2].astype(float)) )
# アメニティの文字データをアメニティの個数データに変換
df_amenities = data['amenities'].str.split(',',expand=True)
data = data.assign(amenities=len(df_amenities.columns) - df_amenities.isnull().sum(axis=1))
# 文字型の変数をダミー変数へ
data = pd.get_dummies(data,drop_first=True, columns=['bed_type','cancellation_policy','city','cleaning_fee'
,'host_has_profile_pic','host_identity_verified','instant_bookable','property_type','room_type'])
# 不要なカラムをdrop
data = data.drop(['last_review','host_since','id','description' , 'first_review','name', 'neighbourhood', 'thumbnail_url' ,'zipcode','latitude' ,'longitude'] ,axis=1)
# 全て1のカラムを追加
data = data.assign(seppen=1)

# データから予測値を計算
data = data[colmuns]
predicts = Multiple_regression.predict(data)
predicts = pd.DataFrame(predicts)
predicts.to_csv('predicts.csv',header=None)


# 参考 -----------------------正規方程式を使った回帰パラメータの推定 ------------------------------
def normal_equation(X,y):
param = np.linalg.pinv(X.T.dot(X)).dot(X.T).dot(y)
return param
W = normal_equation(data_train,target_train)

# --------------------------------------- ここまで ----------------------------------------------------

>>出力

単回帰のトレーニング2乗誤差: 101.35950150166111
単回帰のテスト2乗誤差   : 101.34383018796446
重回帰のトレーニング2乗誤差: 92.66598989721335
重回帰のテスト2乗誤差   : 92.4839200158771

プロセスは終了コード 0 で完了しました

まぁ重回帰の方が予測性能が良い、過学習してる様子も見られないし、線形回帰の限界はこの辺りにありそう。まぁデータから有益な特徴量を作れれば話は別なんだけど、どうやって作るんだろ...。今度は非線形の回帰も勉強してみるか...。因みに自分でクラスを定義したのは初めてだったんだけど、使ってみると便利さが分かるね...。

 

3. Nural_network_regression.py

線形回帰の限界をみたので、気になっているニューラルネットワーク回帰に手を出してみた。中身はブラックボックスだけど、やっぱり予測の精度は重回帰より全然よかった。ただ使う分にはこれで問題ないのだけど、やっぱり使うからには中身で何やってるか理解しないと何か気持ち悪いな...。何も分かってなくても回帰より良い結果が得られちゃうの、ちょっと怖い。

import numpy as np
import pandas as pd
from sklearn.neural_network import MLPRegressor
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

# 加工したcsv を読み込み
df = pd.read_csv('train_trance.csv')

# 学習データとテストデータへ分割
df_train, df_test = train_test_split(df,test_size=0.4)

colmuns = ['accommodates','amenities','bathrooms','bedrooms','beds','bed_type_Couch','bed_type_Futon','bed_type_Pull-out Sofa','bed_type_Real Bed','cancellation_policy_moderate','cancellation_policy_strict','cancellation_policy_super_strict_30','cancellation_policy_super_strict_60','city_Chicago','city_DC','city_LA','city_NYC','city_SF','cleaning_fee_t','host_has_profile_pic_t','host_identity_verified_t','instant_bookable_t','room_type_Private room','room_type_Shared room','seppen']
data_train = df_train[colmuns]
# 目的変数に y を設定
target_train = df_train['y']

# ニューラル回帰をインスタンス
mlp = MLPRegressor(hidden_layer_sizes=(100,), max_iter=500)
mlp.fit(data_train, target_train)

# テストデータの生成
data_test = df_test[colmuns]
target_test = df_test['y']

# predict関数で予測値を計算
pred = mlp.predict(data_test)
# 平均2乗誤差を計算
errors = np.sqrt(0.5*((target_test - pred)*(target_test - pred)).sum()/len(pred))
print('ニューラルネットワーク回帰の2乗誤差:',errors)

plt.scatter(target_test, pred)
plt.xlabel('correct')
plt.ylabel('predict')
# plt.show()

# -------------------------- テストデータに対して予測値を計算 -----------------------------------
# CSV の読み込み
data = pd.read_csv('C:\\work\\SIGNATE\\TRAIN_MINPAKU\\test.csv')

# 欠損値を f で置換
data = data.fillna({'host_has_profile_pic':'f' ,
'host_identity_verified':'f' })
# ホストからの返信率は文字置換して数字型へ
data['host_response_rate'] = data['host_response_rate'].str.replace('%','')
data['host_response_rate'] = data['host_response_rate'].astype(float)
# 欠損値を 平均値 で置換
data = data.fillna({'bathrooms':data['bathrooms'].mean()
,'bedrooms':data['bedrooms'].mean()
,'beds':data['beds'].mean()
,'host_response_rate':data['host_response_rate'].mean()
,'review_scores_rating':data['review_scores_rating'].mean()})

# last_review - host_since を計算
# 日付のデータを - で分割
df_last = data['last_review'].str.split('-',expand=True)
df_since = data['host_since'].str.split('-',expand=True)
# 欠損部分を平均で置換
df_last = df_last.fillna(df_last.astype(float).mean())
df_since = df_since.fillna(df_since.astype(float).mean())
# period を営業している期間の長さとして定義
data = data.assign(period=365*(df_last[0].astype(float)-df_since[0].astype(float))
+ 30*(df_last[1].astype(float)-df_since[1].astype(float))
+ (df_last[2].astype(float)-df_since[2].astype(float)) )
# アメニティの文字データをアメニティの個数データに変換
df_amenities = data['amenities'].str.split(',',expand=True)
data = data.assign(amenities=len(df_amenities.columns) - df_amenities.isnull().sum(axis=1))
# 文字型の変数をダミー変数へ
data = pd.get_dummies(data,drop_first=True, columns=['bed_type','cancellation_policy','city','cleaning_fee'
,'host_has_profile_pic','host_identity_verified','instant_bookable','property_type','room_type'])
# 不要なカラムをdrop
data = data.drop(['last_review','host_since','id','description' , 'first_review','name', 'neighbourhood', 'thumbnail_url' ,'zipcode','latitude' ,'longitude'] ,axis=1)
# 全て1のカラムを追加
data = data.assign(seppen=1)

colmuns = ['accommodates','amenities','bathrooms','bedrooms','beds','bed_type_Couch','bed_type_Futon','bed_type_Pull-out Sofa','bed_type_Real Bed','cancellation_policy_moderate','cancellation_policy_strict','cancellation_policy_super_strict_30','cancellation_policy_super_strict_60','city_Chicago','city_DC','city_LA','city_NYC','city_SF','cleaning_fee_t','host_has_profile_pic_t','host_identity_verified_t','instant_bookable_t','room_type_Private room','room_type_Shared room','seppen']
data = data[colmuns]

# predict関数で予測値を計算してcsvに吐き出す
pred = mlp.predict(data)
predicts = pd.DataFrame(pred)
predicts.to_csv('NN_predicts.csv',header=None)

>>出力

ConvergenceWarning: Stochastic Optimizer: Maximum iterations (500) reached and the optimization hasn't converged yet.
% self.max_iter, ConvergenceWarning)
ニューラルネットワーク回帰の2乗誤差: 86.69826189432175

ちょっとエラーは言えるけど原因分から無し、でも結果は出てるから無視...。

以上。

 

7月頭のお話

いつも通り日記付けようと思ったらブログ開設3周年ですと言われて、そういえば始めたのは7月の頭だったなと思い出してた。このブログについてそんな語ることもないので、これからも読んでくれたら嬉しいなとだけ言っておきます。まぁ別に読んでくれなくても貴方が生きてくれてるだけできうは嬉しいよ。

f:id:kiui_4:20200705193146p:image

 

・日記

実は友達とスポッチャに行こうという話があったのだけど、昨今の情勢を見て延期になってしまった。しょうがない事ではあるけど、割とショック...。スポッチャ行くなんて高校生以来だから、結構楽しみにしてた...。という訳で、週末は半ば虚無みたいな生活をしてました。

土曜の夜は暇すぎて話題のチェーンソーマンとかいう漫画を全巻買って読んじゃいましたね。おかげで、まぁ完全な虚無にはならなかったかなぁという感じです。チェーンソーマンは各所で面白いと騒がれていたし、実際に身近な人にも勧められたりして、面白いんだろうなと思っていましたが、まぁ読んでみると想像通り面白かったです。ですが、途中からは面白いと分かっている漫画を面白いと確認する作業のようになってしまって、意外と僕の心の奥底には響かなかったかなぁ...というのが正直なところです。多分、もっと違う出会い方をしたら、心を抉られるような作品として自分の中に幾分か残ったかもしれません。昔からそうですが、人から面と向かって勧められた作品は大体中途半端な消費に終わっちゃいますね何故か。自分の興味のままに触れる作品の方が、面白いか面白くないかは置いといて、有意義な消費になっている気がします。

今日は劇場版サンシャインを見ました。2ヶ月に1回くらいのペースで見たくなる作品。そして見る度にボロボロに泣く。泣くのは健康に良いらしいので、できれば定期的に泣いておきたい。春クールもアニメを見て面白いねぇ~とは思うのだけど、なんだかんだ言っても自分の中に残るような作品にはならなくて、まぁそんな何でもかんでも心に残りまくっても嫌だけど。感情のストレッチは大事だから、沢山の作品を見ていっぱい感動できる方が僕は良いなと思っているのだけど、出来ないものはできないわな。一先ず、まだ僕は劇場版ラブライブを見たり、激情版サンシャインを見て顔をぐちゃぐちゃに出来るので、それが出来なくなってから色々考えようと思う。

そういえば、6月末で僕が1年間お世話になった会社の先輩が退職してしまったのだけど、退職の挨拶のメールが凄く良くて泣きそうになってしまった。思い出話をするのは反則だと思う。そのメールに触発されてLINEでご挨拶の連絡をいれたら、また嬉しい返事が返ってきて、本当に素敵な人だなぁと思った。久々に熱い気持ちになった。こう、感情的になれる機会がもっとあればいいのになと思う。

いつのまにか6月末

徒然なるままに。

すっかりアニメ・声優のことも書かなくなって、ただの日記として運用している当ブログです。まぁ最初から好きなこと書くと決めていたので、いいかなと思っています。

何といいますか、最近はそもそもSNS上でアウトプットをしようという欲求自体が薄まっている気がします。1~2年前はめっちゃアウトプットしてましたね。日記に始まり、アニメの感想なり、講義中に考え事をTwitterやブログに吐き出す。これはとても楽しい。

アウトプットが嫌いになった訳ではないし、むしろ好きですけど。欲求が無くなった原因の一つは、仕事で日常的にアウトプットをしているから...なのかなと思います。この日記を書いている途中にふと思いました。仕事柄ドキュメントを作ったり、SQLをカタカタ書く機会が多いのですが、割とこれが僕のアウトプット欲を満たしている説があります。結局、目の前にある対象を理解して表現する。その部分の楽しさは今も昔も変わらずに感じ続けています。

リングフィットアドベンチャーを買いました。買ってから1週間ほど放置していましたが、昨日重い腰を上げてやってみると...結構楽しい!来週友達と運動しに行くので、それまで体力をなるべく戻したい...。昨日は10分やって辛すぎワロタ侍と化していましたが、今日はちょっと運動の強度を上げて地獄に堕ちてみようかなと思います。取り敢えず地獄に堕ちておけば、後は上がるだけなので何とかなるでしょ。(謎理論)

そんな訳で、1か月後には上腕二頭筋バッキバキになってるきうが居ると思います。いや、分からんけど。

6月のモヤモヤ

その日のモヤモヤ、その日のうちに。(まぁ昨日の話なんですけど)

手が繋ぎたい。いや彼女に手を繋ぎたいと言えない僕が全面的に悪いというか、手を繋がなかったくらいでモヤモヤする自分がしょーもないというか。今のモヤモヤはそんな感じ。

昨日は中目黒にドイツビールを飲みに行ったのだけど、オシャレな街だけあってカップルが多かった。道行くカップルはやっぱり手を繋いでいたり腕組みをしている。

身体に触れるって特別だ。触れたいのだけど、少し考えてしまう。本当に触っていいのだろうかって。やっぱり慣れなのかなぁ。

どう動けばいいのか分からないことだらけだ。自分の中にある弱さというか、女々しさというか、乙女みたいな一面を最近よく発見する。そして自分をちょっとだけ嫌いになる。でも、それと同時にやっぱりイチャつきたい気持ちにも駆られる。本能には勝てない。

難しい。難しいなぁ。このモヤモヤはインターネットにポイしたいけど、なんだかんだ引きずりそうだなぁ...。

あっ、昨日飲んだドイツビールはめっちゃ美味しかった。というかビールの美味しさで行きたいお店を選ぶ彼女好き。(かわいい)

6/6

本来なら今日は大阪まで行き、フォロワーとi☆Risの大阪公演を楽しみ尽くす予定だったのだが、こんなご時世なので叶わなくなってしまった。悲しいけど、しゃーなし。とは言うものの、今日は彼女と一緒にアジサイを見れたので実際の心の中は相当ハッピーだったりする。

約1年前にフォロワーとアジサイを見た場所に、今年は彼女と行ってきた。今年もアジサイは綺麗に咲いていた。2ヶ月ぶりに会った彼女も変わらずに元気そうで本当に良かった。

因みにこいつは粛々と咲いてるガクアジサイ

f:id:kiui_4:20200606190943j:image

色々と書ける事はあるけど、こんな所で。最後に今日あった良い事を3つ書いて終わりにする。 

 

・彼女と沢山お喋りできた。

・久々に顔を合わせられた。

・今日も可愛かった。

・一緒にお散歩できた。

・ケーキ美味しかった。

・誕生日プレゼントを貰った。(大切にする)

アジサイを見れた。

 

数が数えられなくなっちゃったらしい。もうダメだ…。

5/24

1日中ダラダラ過ごしていたので、ブログでも書いてから寝ることにする。

 

①えっちな話

午前中はスローセックスについての本を読んでいた。男はセックスの中でフェラや挿入等で簡単に気持ち良くなれるけど、女性は性的な快感を得るのにとても時間が掛かるらしい。この格差が、女性が気持ち良くなれないSEXを生み出してしまう。なるほどな〜と思った。女性の身体は性感帯を刺激すると性的な快楽が得られるという単純なメカニズムで出来ておらず、皮膚の摩擦による刺激が脳に伝達され、その刺激を脳が「性的な快楽だ」と認識する事によって初めて気持ち良くなれる、という記述が興味深かった。なので、大事なのは相手の脳に「ここを触ると気持ち良い」と解らせることで、解らせる為には相手がリラックス出来る環境と長い時間が必要だという話だった。パートナーとは絶対に独りよがりなセックスはしたくないので、胸にずっとしまっておきたい。性の話をおおっぴろげにするの、やっぱり好きだな…。

 

②Detroitの話

午後はDetroitの実況動画をずっと見てた。自分以外の人間がどんな選択をするのか見るのはとても楽しかった。そう言えば、このブログではDetroitについて書いたことは無かった。僕のルートではカーラはジェリコで射殺され、マーカスは革命の最後に追い詰められて街に核を落とし、コナーは変異してサイバーライフの大量のアンドロイドを解放するENDでした。初見であのゲームをしている時は、アンドロイド側に情が移ってしまって「人間は生かしちゃおけんな…」と思いながら暴力の限りを尽くしてました。あとは女のアンドロイドが殺されそうな時は必死で守るんですけど、男が殺されそうになったら割と見捨てがちでしたね。なので、平和的な手段に出たり、仲間を誰一人見捨てない人は凄いな…と思いながら実況動画を見てました。このゲーム、マジで人となりが出ちゃうので怖いですよね。

 

③スキンケアの話

スキンケアを初めてだった3ヶ月弱で分かった事としては、インターネットにある情報ってやっぱりそんなアテにならないな…って事ですかね。人間の肌質って個人差がめちゃくちゃあって、ネットにある無数の肌を綺麗にする手法やテクニックが、自分の肌に合う確率ってそんなに高くないんじゃないかなと思います。でも結局はやってみないと合うか合わないのか分からないのが、スキンケアの厄介なところなんですかね。3ヶ月色々と試行錯誤して分かりましたが、固形石鹸で洗顔するのが僕の最適解っぽいです。外側からのケアは固形石鹸→無印化粧水→日によって珪藻土パックやフェイスマスク、内側からのケアはハイチオールBクリアとエビオス錠。2週間くらいこれを続けていますが、一時期荒れていた肌が今はかなり綺麗になってきました。あと2ヶ月くらい続けたら、最強のゆで卵肌になってしまうかもしれん。