Рубрики
Без рубрики

Что такое случайность? Это предсказуемо?

С древних времен люди задавались вопросом о неопределенности в последствиях событий. От T … Tagged с помощью машинного обучения, Python, Intovercial Science, Math.

С древних времен люди задавались вопросом о неопределенности в последствиях событий. От прокатки костей, до вращения карты между двумя консолями, концепция случайности развивалась. Случайность, как определение, не очень хорошо основана, но мы можем просто назвать это непредсказуемым состоянием кучи событий. Например, когда кубик раскатывается, его результат не может быть предсказан; Вероятность появления вдвое больше, чем на 1 раза больше, чем 1.

В этой статье мы рассмотрим неопределенность, начиная с недавнего прошлого. Наконец, мы рассмотрим случай оценки с некоторыми регрессионными моделями. Прежде чем мы начнем, давайте рассмотрим нашу статью в коротких заголовках:

  1. Резюме
  2. Что такое случайность?
  3. Это предсказуемо?
  4. Заявление
  5. Результат

Случайность сама по себе не является результатом. Результат голов и хвостов хаотичен, а не случайный. (См.: Теория хаоса) Это признак того, что у нас нет инструментов, которые могут измерить ее случайность. Центр тяжести металлической монеты не ясен из -за узоров на ней. Эти деньги влияют на результат таких ситуаций, как брошенные с любой стороны, угол стрельбы. Наличие слишком большого количества переменных в результате не позволяет полностью оценить его на практике. Я хотел бы подчеркнуть, что в теории это не невозможно.

Концепция случайности является мерой неопределенности. Невозможно поймать случайность, за исключением квантового состояния, которое я упомяну в ближайшее время. Я упомянул причину этого. Практически невозможно найти все переменные отдельно и рассчитать результат. Чтобы привести пример, давайте захотим выбирать между объектами с одинаковыми свойствами; Мы не можем искать чистую случайность в этом выборе. Поскольку мы интерпретируем в стопке вероятностей, более проще, мы можем предсказать результат с некоторой точностью.

Вы знакомы с тем, что в Microuniverse мы называем субатомный уровень, мы не можем применить ряд законов. Причина в том, что неопределенность, то есть квантовое состояние. Радиоактивные материалы состоят из атомов, которые распадаются со временем. Атомы, которые распадаются, распадаются на более мелкие атомы. С научной точки зрения вероятность того, что атом затухает в определенном интервале времени, может быть рассчитана, но невозможно предсказать, какой атом является следующим, чтобы разрушить. “Бог не бросает кости!” он сказал. Что касается этого утверждения, он упомянул, что, хотя используемые методы имеют большую пользу в теории, они не являются хорошим вариантом, чтобы приблизить его к его секрету. Сказал, что Бог – это философский Бог, определенный самим Эйнштейном.

Если вам удалось прийти в этот раздел, вы можете интерпретировать ответ на вопрос самостоятельно. За исключением квантового состояния, которое мы называем особым случаем, можно сделать прогнозы о распределении результатов в рамках вероятности. В предсказуемой ситуации я хотел бы отметить, что ее можно предсказать очень нереально, когда переменные в хаотической ситуации, которую я упоминал ранее, игнорируются.

Мы привлекли наши примеры физически, но можно ли создать случайные числа в компьютерной среде? Краткий ответ заключается в том, что случайная генерация не может быть сделана. Это может быть определено в результате сложных алгоритмов. Я хочу подчеркнуть, что это было определено; Алгоритмы использовали работу детерминированно. Каким бы ни был вывод, это наверняка.

Мы будем построить случай псевдолупая с языком питона и обсудим его предсказуемость. Поскольку эта часть предназначена для фантазии, вы можете перейти к заключительной части. Давайте узнаем набор данных:

У нас есть 5 «независимые» переменные: пол, возраст, количество ежемесячных записей в приложение, количество ежемесячных покупок, средние значения этих покупок и, наконец, заключительная часть, которую мы ожидаем прекратить подавать заявку. Однако в нашем эксперименте; У нас есть в общей сложности 11 «независимых» переменных, чтобы сделать запись, количество покупок и среднее 3 каждая. Значение, которое мы прогнозируем, оставит, является зависимой переменной.

import random
import json
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import confusion_matrix
from sklearn.svm import SVC
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LinearRegression



def jsonToCSV(numberOfDatas):
    name = ["data" + str(numberOfDatas[i]) for i in range(len(numberOfDatas))] #filenames = data + numberofdata's items
    fig, axs = plt.subplots(len(numberOfDatas)) #row numbers
    fig.suptitle('Epic Prediction')
    plt.setp(axs, yticklabels = ['SVC','LR','KN',"GNB",'DT',"RF"]) #label names
    y_pos = np.arange(len(['SVC','LR','KN',"GNB",'DT',"RF"])) #customizations
    fig.tight_layout()#customizations
    for i in range(len(name)): #We will generate random numbers as many as the element in the list numberOfDatas
        axs[i].set_yticks(y_pos+1)
        def gender():
            genderBinary = random.randint(0,1)
            return genderBinary
        def age():
            ageRandom = random.randint(18,65)
            return ageRandom

        def enteries():
            enteriesRandom = random.randint(0,300)
            return enteriesRandom

        def purchases():
            purchasesRandom = random.randint(1,100)
            return purchasesRandom

        def purchasesAv():
            purchasesAvRandom = random.randint(10,1500)
            return purchasesAvRandom

        def isLeave():
            isLeaveRandom = random.randint(0,1)
            return isLeaveRandom

        limit,index = 0,0
        dicts = {}
        while True: 
            dicts[str(index)] = [gender(),
            age(),
            enteries(),enteries(),enteries(),
            purchases(),purchases(),purchases(),
            purchasesAv(),purchasesAv(),purchasesAv(),
            isLeave()]
            index +=1
            limit +=1
            if limit == numberOfDatas[i]:
                break

        with open(f'{name[i]}.json', 'w') as outfile: #We saved it in document datax.json (x = numberofdata's items)
            json.dump(dicts, outfile)

        df = pd.read_json(rf'{name[i]}.json')
        df.T.to_csv (rf'{name[i]}.csv', index = None) #We converted it to csv document. + transpose

        dataset = pd.read_csv(f'{name[i]}.csv') #we separated it as dependent independent variable.
        allOfThem= dataset.iloc[:,1:11].values 
        willPredict = dataset.iloc[:,11:12].values

        X_train, X_test, y_train, y_test = train_test_split(allOfThem, willPredict, test_size = 0.25, random_state = 3)

        sc = StandardScaler()
        X_train = sc.fit_transform(X_train)
        X_test = sc.transform(X_test)
        """
        confusion matrix results 
        [A B
         C D]
        Accuracy = (A+D/A+B+C+D ) * 100 => %bla bla
        """

        classifier = SVC(kernel = 'sigmoid', random_state = 4)
        classifier.fit(X_train, y_train)
        y_pred = classifier.predict(X_test)
        cm_SVC = confusion_matrix(y_test, y_pred)
        cm_SVC_C = (cm_SVC[0][0]+cm_SVC[1][1])/len(y_test)*100
        #print("SVC: %",cm_SVC_C)

        logr = LogisticRegression(random_state=3)
        logr.fit(X_train,y_train)
        y_pred = logr.predict(X_test)
        cm_LR = confusion_matrix(y_test, y_pred)
        cm_LR_C = (cm_LR[0][0]+cm_LR[1][1])/len(y_test)*100
        #print("LR: %",cm_LR_C)

        knn = KNeighborsClassifier(n_neighbors=11, metric='minkowski')
        knn.fit(X_train,y_train)
        y_pred = knn.predict(X_test)
        cm_KNN = confusion_matrix(y_test,y_pred)
        cm_KNN_C = (cm_KNN[0][0]+cm_KNN[1][1])/len(y_test)*100
        #print("KN: %",cm_KNN_C)

        gnb = GaussianNB()
        gnb.fit(X_train, y_train)
        y_pred = gnb.predict(X_test)
        cm_GNB = confusion_matrix(y_test,y_pred)
        cm_GNB_C = (cm_GNB[0][0]+cm_GNB[1][1])/len(y_test)*100
        #print("GaussianNB: %",cm_GNB_C)
        #print("Score:" , gnb.score(y_test, y_pred))

        dtc = DecisionTreeClassifier(criterion = 'entropy')
        dtc.fit(X_train,y_train)
        y_pred = dtc.predict(X_test)
        cm_DT = confusion_matrix(y_test,y_pred)
        cm_DT_C = (cm_DT[0][0]+cm_DT[1][1])/len(y_test)*100
        #print("DT: %",cm_DT_C)

        rfc = RandomForestClassifier(n_estimators=10, criterion = 'entropy')
        rfc.fit(X_train,y_train)
        y_pred = rfc.predict(X_test)
        cm_RF = confusion_matrix(y_test,y_pred)
        cm_RF_C= (cm_RF[0][0]+cm_RF[1][1])/len(y_test)*100
        #print("RF: %",cm_RF_C)

        listOfResults_X = [round(cm_SVC_C,4),round(cm_LR_C,4),round(cm_KNN_C,4),round(cm_GNB_C,4),round(cm_DT_C,4),round(cm_RF_C,4)]#we rounded the numbers
        listOfResults_Y = [1,2,3,4,5,6]

        axs[i].barh(1,cm_SVC_C,height = 1,color = "darkcyan", label='SVC')
        axs[i].barh(2,cm_LR_C,height = 1,color = "darkturquoise", label='LR')
        axs[i].barh(3,cm_KNN_C,height = 1,color = "steelblue", label='KN')
        axs[i].barh(4,cm_GNB_C, height = 1,color = "palevioletred", label='GNB')
        axs[i].barh(5,cm_DT_C, height = 1,color = "darkmagenta", label='DT')
        axs[i].barh(6,cm_RF_C,height = 1,color = "rosybrown", label='RF')

        for x in range(6):
            axs[i].text(x = listOfResults_X[x] , y = listOfResults_Y[x] - 0.25, s = listOfResults_X[x], size = 9)
        axs[i].set_title("The Number Of Data : " + str(numberOfDatas[i]))
        axs[i].set_xlabel('Prediction Rate')
        axs[i].set_ylabel('Regression Models')
    axs[-1].legend(loc=2)        
    plt.show()   

jsonToCSV([100,1000,5000]) #If you want, you can change these items.

Поскольку мы ввели значения 100,1000 и 5000, мы получили 3 графика результатов. В случае низких чисел данных модели более предсказуемы, в то время как тем выше это число, тем ниже скорость производительности. Прежде всего, мы можем сделать этот комментарий. Затем мы сосредоточимся на том факте, что когда данные увеличатся, скорости правильной оценки уменьшаются и результаты регрессионных моделей близки друг к другу. Почему это так низко? Хотя он низкий, как и почему он показывает результаты около 50%? На самом деле, мы можем интерпретировать такие низкие показатели, как тот факт, что между данными нет связи. Аналогичным образом, мы можем связать его сходимость с 50% с распределением вероятностей, о которых я упоминал ранее. Вы можете Нажмите здесь Для статьи по этой теме.

Оригинал: “https://dev.to/alicanakca/what-is-randomness-is-it-predictable-108j”