Help us understand the problem. What is going on with this article?

感情と気分を数理的にプロットする

More than 1 year has passed since last update.

感情は一時的かつ特定の事象に結びついているのに対し、気分は感情の集合で継続的かつ特定の事象に結びついていません1。この事実を利用してmatplotlibでプロットしてみます。

仮定

  1. 感情が引き起こると、ネガティブ(マイナス)またはポジティブ(プラス)のどちらかに対応した数値が入力される。
  2. 入力される感情はある一定の確率で入力される。入力がない場合は0が入力される。
  3. 感情は、次の入力(事象)がない場合(0の場合)は一定の率で減衰する。
  4. 気分は、現時点からn回前までの感情の平均で表される。
  5. 感情の入力範囲は-5から5までである。

モデル

コード

from random import random

def completion(y, rate=0.1):
    t = y[0]
    i = 0
    while(t==0):
        yield 0
        i += 1
        t = y[i]
        continue
    c = 0
    for x in y[i:]:
        if x != 0:
            c = x
        else:
            c *= rate
        yield c

def diff(y, n=3, alpha=1, beta=0.5):
    s = n
    return y[:s] + [(alpha*sum(y[i-s:i])/n)+beta for i in range(s,len(y))]

def gen_value(size, x_set):
    for i in range(size):
        if i in x_set:
            yield 0
        else:
            yield random()*10-5

if __name__ == "__main__":
    size = 50
    rate = 0.5
    n = int(size/7)
    x_set = [i for i in range(size) if random() > 0.5]
    x = [i for i in range(size)]
    y = list(gen_value(size, x_set))
    z = list(completion(y, rate))
    w = diff(z, n=n, alpha=1)
    v = diff(w, n=n, alpha=1)
    plt.bar(x, y)
    plt.plot(x,z, "r--") #感情モデル
    plt.plot(x,w, "g") #気分モデル
    plt.plot(x,v, "y") #高次の気分モデル

emotion_plot3.GIF

黄: 高次の気分モデル
緑: 気分モデル
赤: 感情モデル
青: 入力されたデータ

感情・気分を表す数理モデル

最初の「仮定」を満たす基で感情・気分を数理モデルに表す際に、データに基づくのか、理論に基づくのか、その両方かによってモデルは変わってきます。

前述のような特殊な仮定に基づいたデータが転がっていないため、理論に基づいたモデルを考えなければなりません。

しかし、理論に基づいたとして、果たしてこれらの数値になにか具体的な意味はあるのか、という点で大きな疑問があります。二次元のグラフ上に、ポジとネガという単純化された感情のみで表現することは、実世界の人間の実際の感情とどのように関係しているのか、そういうデータがほしいところです。

ちなみに、ここで仮定している入力は、例えばEmotion Trackerのような仕組みを用いて、感情の種類・事象・大きさ・日付を入力してもらうような状況を想定します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした