Отчет по лабораторной работе #2 выполнил(а):
- Ахидов Роман Игоревич
- РИ210934 Отметка о выполнении заданий (заполняется студентом):
Задание | Выполнение | Баллы |
---|---|---|
Задание 1 | * | 60 |
Задание 2 | * | 20 |
Задание 3 | * | 20 |
знак "*" - задание выполнено; знак "#" - задание не выполнено;
Работу проверили:
- к.т.н., доцент Денисов Д.В.
- к.э.н., доцент Панов М.А.
- ст. преп., Фадеев В.О.
Ознакомиться с основными операторами зыка Python на примере реализации линейной регрессии.
Pеализовать запись в Google-таблицу набора данных, полученных с помощью линейной регрессии из лабораторной работы 1.
import gspread
import numpy as np
gc = gspread.service_account(filename="unitydatascience-364207-4193ae536507.json")
sh = gc.open("UnitySheets")
x = [3,21,22,34,54,34,55,67,89,99]
x = np.array(x)
y = [2,22,24,65,79,82,55,130,150,199]
y = np.array(y)
def model(a, b, x):
return a*x + b
def loss_function(a, b, x, y):
num = len(x)
prediction=model (a,b, x)
return (0.5/num) * (np.square(prediction-y)).sum()
def optimize(a,b,x,y):
num = len(x)
prediction = model (a,b,x)
da = (1.0/num) * ((prediction -y)*x).sum()
db = (1.0/num) * ((prediction -y).sum())
a = a - Lr*da
b = b - Lr*db
return a, b
def iterate(a,b,x,y,times) :
for i in range(times):
a,b = optimize (a,b,x,y)
return a,b
a = np.random.rand(1)
print (a)
b = np.random.rand(1)
print (b)
Lr = 0.000001
for i in range(1, 12):
a, b = iterate(a, b, x, y, i)
prediction = model(a, b, x)
loss = str(loss_function(a, b, x, y))
loss = loss.replace(".", ",")
sh.sheet1.update(("D" + str(i)), str(float(a)))
sh.sheet1.update(("E" + str(i)), str(float(b)))
sh.sheet1.update(("F" + str(i)), loss)
Самостоятельно разработать сценарий воспроизведения звукового сопровождения в Unity в зависимости от изменения считанных данных в задании 2.
Будем считать среднее значение по loss и выбирать звук: хорошо) loss больше чем среднее значение нормально) loss +- 50 от среднего значения плохо) loss меньше чем среднее значение
import gspread
import numpy as np
gc = gspread.service_account(filename="unitydatascience-364207-4193ae536507.json")
sh = gc.open("UnitySheets")
x = [3,21,22,34,54,34,55,67,89,99]
x = np.array(x)
y = [2,22,24,65,79,82,55,130,150,199]
y = np.array(y)
def model(a, b, x):
return a*x + b
def loss_function(a, b, x, y):
num = len(x)
prediction=model (a,b, x)
return (0.5/num) * (np.square(prediction-y)).sum()
def optimize(a,b,x,y):
num = len(x)
prediction = model (a,b,x)
da = (1.0/num) * ((prediction -y)*x).sum()
db = (1.0/num) * ((prediction -y).sum())
a = a - Lr*da
b = b - Lr*db
return a, b
def iterate(a,b,x,y,times) :
for i in range(times):
a,b = optimize (a,b,x,y)
return a,b
a = np.random.rand(1)
print (a)
b = np.random.rand(1)
print (b)
Lr = 0.000001
sumA = 0
sumB = 0
sumLoss = 0
for i in range(1, 12):
a, b = iterate(a, b, x, y, i)
prediction = model(a, b, x)
loss = loss_function(a, b, x, y)
sumA += a
sumB += b
sumLoss += loss
sh.sheet1.update(("D" + str(i)), str(float(a)).replace(".", ","))
sh.sheet1.update(("E" + str(i)), str(float(b)).replace(".", ","))
sh.sheet1.update(("F" + str(i)), str(loss).replace(".", ","))
for i in range(1, 12):
sh.sheet1.update(("G" + str(i)), str(sumLoss/11).replace(".", ","))
void Update()
{
if (Abs(dataSet["Mon_" + i.ToString()]) <= 50 && statusStart == false && i != dataSet.Count)
{
StartCoroutine(PlaySelectAudioNormal());
Debug.Log(dataSet["Mon_" + i.ToString()]);
}
else if (dataSet["Mon_" + i.ToString()] > 0 && statusStart == false && i != dataSet.Count)
{
StartCoroutine(PlaySelectAudioGood());
Debug.Log(dataSet["Mon_" + i.ToString()]);
}
else if (statusStart == false && i != dataSet.Count)
{
StartCoroutine(PlaySelectAudioBad());
Debug.Log(dataSet["Mon_" + i.ToString()]);
}
}
IEnumerator GoogleSheets()
{
UnityWebRequest currentResp = UnityWebRequest.Get("https://sheets.googleapis.com/v4/spreadsheets/1QT50QwMxz4wMMGVfEYp9t-ac274d7PdqgjTWptEM7zU/values/Лист1?key=AIzaSyAcEn3Tt_8W3pqRVhXdhC8xxgyMDZC2AvE");
yield return currentResp.SendWebRequest();
string rawResp = currentResp.downloadHandler.text;
var rawJson = JSON.Parse(rawResp);
foreach(var itemRawJson in rawJson["values"])
{
var parseJson = JSON.Parse(itemRawJson.ToString());
var selectRaw = parseJson[0].AsStringList;
dataSet.Add(("Mon_" + selectRaw[0]), (float.Parse(selectRaw[5])-(float.Parse(selectRaw[6]))));
}
}
Я научился делать совместную работу и передачу данных в связке Python - Google Sheets - Unity, самостоятельно разработал алгоритм воспроизведения звуков.
Plugin | README |
---|---|
Dropbox | [plugins/dropbox/README.md][PlDb] |
GitHub | [plugins/github/README.md][PlGh] |
Google Drive | [plugins/googledrive/README.md][PlGd] |
OneDrive | [plugins/onedrive/README.md][PlOd] |
Medium | [plugins/medium/README.md][PlMe] |
Google Analytics | [plugins/googleanalytics/README.md][PlGa] |
BigDigital Team: Denisov | Fadeev | Panov