Messprobleme – 1

Mar 20 2023
Mit diesem Artikel starte ich eine neue Miniserie zu Messproblemen, die im Bereich der Datenwissenschaft einen wichtigen Platz einnehmen. Diese Serie wird aus drei Haupttiteln bestehen: Nehmen wir an, wir entscheiden uns für den Kauf eines Produkts.

Mit diesem Artikel starte ich eine neue Miniserie zu Messproblemen, die im Bereich der Datenwissenschaft einen wichtigen Platz einnehmen.

Diese Serie wird aus drei Haupttiteln bestehen:

  • Bewertungsprodukte
  • Sortieren von Produkten
  • Bewertungen sortieren

Nehmen wir an, wir entscheiden uns für den Kauf eines Produkts. Wenn wir im Internet nach einem Produkt suchen, das wir kaufen möchten, sehen wir, dass es viele Möglichkeiten gibt.

Was sind also die Dinge, die uns in einer solchen Situation bei der Entscheidung helfen werden?

Sozialer Beweis

Unter Social Proof versteht man das Kopieren des Verhaltens anderer Menschen. Das heißt, wenn wir uns für den Kauf eines Produkts entscheiden, schauen wir uns die Kommentare und Bewertungen anderer Leute an und überlegen, welches Produkt wir wählen sollen, und das wirkt sich auf uns beim Kauf eines Produkts aus.

Natürlich kann ich diese Definition nicht psychologisch erklären, aber ich kann wohl sagen, dass wir uns grundsätzlich in der Komfortzone fühlen, wenn wir das bekommen, was alle gutheißen.

Der Begriff Social Proof wurde in seinem 1984 von Robert Cialdini veröffentlichten Buch vorgeschlagen .

Dies bringt uns zu einer anderen Definition:

Die Weisheit der Massen

Das Gefühl, dass, wenn jeder von so vielen Produkten dieses Produkt gekauft hat, ich das auch kaufen sollte. Denn warum nicht und ich möchte nicht zu viel nachdenken!

Überzeugen Sie, und Sie werden überzeugt sein!

Messprobleme

Hier muss der Marktplatz die Produkte so genau und objektiv wie möglich für die Kunden sortieren.

Dabei treten einige Messprobleme auf.

In diesem ersten Teil der Serie befassen wir uns mit dem Thema Bewertungsprodukte.

  • Bewertungsprodukte

*Durchschnitt

*Zeitbasierter gewichteter Durchschnitt

*Benutzerbasierter gewichteter Durchschnitt

*Gewichtete Bewertung

Ich werde versuchen, die oben genannten Methoden, die wir zur Produktbewertung verwenden werden, anhand eines Beispiels zu erläutern.

In diesem Beispiel untersuchen wir die Bewertungen eines Online-Kurses.

Installieren und importieren

import pandas as pd
import datetime as dt
import math
import scipy.stats as st
from sklearn.preprocessing import MinMaxScaler
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.width', 500)
pd.set_option('display.expand_frame_repr', False)
pd.set_option('display.float_format', lambda x: '%5f' % x)

df = pd.read_csv(r'C:\course_reviews.csv')
df.head()
df.shape

df['Rating'].value_counts()

df['Questions Asked'].value_counts()

df.groupby('Questions Asked').agg({'Questions Asked': 'count',
                                   'Rating': 'mean'})

df['Rating'].mean()

Es kann derzeit zu einem Anstieg oder Rückgang der Punktestände kommen, dies sollte ebenfalls ausgewertet werden.

In diesem Fall sollten wir den zeitbasierten gewichteten Durchschnitt auch zur Bewertung anderer Situationen verwenden.

*Zeitbasierter gewichteter Durchschnitt

Lassen Sie uns die Variable „Timestamp“ in eine Zeitvariable konvertieren

df['Timestamp'] = pd.to_datetime(df['Timestamp'])
current_date = pd.to_datetime('2021-02-10 0:0:0')

df['days'] = (current_date - df['Timestamp']).dt.days

df[df['days'] <= 30] .count()

df.loc[df['days'] <= 30, 'Rating'].mean()

df.loc[df['days'] <= 30, 'Rating'].mean() * 28/100 + \
df.loc[(df['days'] > 30) & (df['days'] <= 90), 'Rating'].mean() * 26/100 + \
df.loc[(df['days'] > 90) & (df['days'] <= 180), 'Rating'].mean() * 24/100 + \
df.loc[(df['days'] > 180), 'Rating'].mean() * 22/100

def time_based_weighted_average(dataframe, w1=28, w2=26, w3=24, w4=22):
    return  dataframe.loc[df['days'] <= 30, 'Rating'].mean() * w1/100 + \
            dataframe.loc[(df['days'] > 30) & (dataframe['days'] <= 90), 'Rating'].mean() * w2/100 + \
            dataframe.loc[(df['days'] > 90) & (dataframe['days'] <= 180), 'Rating'].mean() * w3/100 + \
            dataframe.loc[(df['days'] > 180), 'Rating'].mean() * w4/100

time_based_weighted_average(df)
time_based_weighted_average(df, 30, 26, 22, 22)

*Benutzerbasierter gewichteter Durchschnitt

Die Bewertungen von Nutzern, die den Kurs unterschiedlich schnell gesehen haben, sollten mit unterschiedlicher Gewichtung bewertet werden:

df.groupby('Progress').agg({'Rating': 'mean'})

So berechnen Sie die gewichtete Punktzahl anhand des Anzeigestatus des Kurses:

df.loc[df['Progress'] <= 10, 'Rating'].mean() * 22/100 + \
    df.loc[(df['Progress'] > 10) & (df['Progress'] <= 45), 'Rating'].mean() * 24/100 + \
    df.loc[(df['Progress'] > 45) & (df['Progress'] <= 75), 'Rating'].mean() * 26/100 + \
    df.loc[(df['Progress'] > 75), 'Rating'].mean() * 28/100

def user_based_weighted_average(dataframe, w1=22, w2=24, w3=26, w4=28):
    return  dataframe.loc[df['Progress'] <= 10, 'Rating'].mean() * w1/100 + \
            dataframe.loc[(df['Progress'] > 10) & (dataframe['Progress'] <= 45), 'Rating'].mean() * w2/100 + \
            dataframe.loc[(df['Progress'] > 45) & (dataframe['Progress'] <= 75), 'Rating'].mean() * w3/100 + \
            dataframe.loc[(df['Progress'] > 75), 'Rating'].mean() * w4/100

user_based_weighted_average(df)
user_based_weighted_average(df, 20, 24, 26, 30)

*Gewichtete Bewertung

Wir werden die Berechnungen des zeitbasierten gewichteten Durchschnitts und des benutzerbasierten gewichteten Durchschnitts in einer einzigen Funktion kombinieren.

def course_weighted_rating(dataframe, time_w=50, user_w=50):
    return time_based_weighted_average(dataframe) * time_w/100 + user_based_weighted_average(dataframe) * user_w/100

course_weighted_rating(df)

Abschluss

In diesem Artikel habe ich Dinge erklärt, die uns bei der Entscheidung helfen, wann wir ein Produkt kaufen möchten, und wir haben die Messprobleme gesehen, die auftreten können, wenn wir die Produkte möglichst genau und objektiv sortieren möchten.

Im nächsten Artikel befassen wir uns mit dem Thema Sortieren von Produkten.

Überzeugen Sie, und Sie werden überzeugt sein!

Beste Grüße, Neslihan