Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины [RSS Feed]

#1 Янв. 19, 2019 02:45:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины

PEHDOM
поэтому Биг Датой тут и не пахнет
Есть “Big data” и есть “Data mining”, вот не надо их путать.
Big data - это просто большие данные, имеющие свои свойства, типа объём, скорость (обработки, прироста), многообразие.
Data mining - получение из существующих данных через их анализ новых данных.
И эти два понятия часто связаны между собой, из-за чего их путают.

Data mining здесь было бы, например, если по этим безымянным значениям нужно было найти, где из них куб, где тетраэдр и так далее.

wiki. big data
wiki. data mining


tags: bigdata



Отредактировано py.user.next (Янв. 19, 2019 02:49:38)

Офлайн

#2 Янв. 21, 2019 09:26:21

uf4JaiD5
Зарегистрирован: 2018-12-28
Сообщения: 76
Репутация: +  4  -
Профиль   Отправить e-mail  

Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины

Aleksandr_Ph
Да, верно!
Верно!
Тогда я бы просто посчитал “вручную”:

 #
from numpy import zeros
from random import random
def coord2index(coordinates, bounds):
	index = []
	for x, b in zip(coordinates, bounds):
		if x<b[0] or x>b[-1]:
			print('Error. Out of bounds.',x,b)
			return None
			
		for i,value in enumerate(b[1:]):
			if value>=x:
				index.append(i)
				break
	
	return tuple(index)
bounds = [[0,1,2], [0,1,2,3]]
data = []
for i in range(10**3):
	y = random()*bounds[0][-1]
	x = random()*bounds[1][-1]
	data.append((y, x, x+y))
shape = tuple(len(b)-1  for b in bounds)
summ = zeros(shape, float)
num  = zeros(shape, int)
mean = zeros(shape, float)
for d in data:
	x = d[:-1]
	v = d[-1]
	index_tuple = coord2index(x,bounds)
	
	summ[index_tuple] += v
	num[index_tuple] += 1
mean.flat = [s/n for s,n in zip(summ.flat, num.flat)]
print(mean)

bounds - границы интервалов для каждой из осей. тут две оси.
data - данные для куба. тут из random, а должны читаться из файла.
summ, num – многомерные массивы (numpy.ndarray) с суммой значений функции попавших в интервал точек и их количеством. заполняются нулями при создании. всегда можно добавить дополнительные точки.
shape описывает размерность этих массивов.
mean – само среднее, сумма/кол-во. т.е. “куб”. после добавления точек пересчитывается:
mean.flat = ..
Не уверен, что так можно делать (что не начнёт вдруг путать последовательность), но вроде работает.
 num[index_tuple]
# вместо ndarray[i][j] можно писать ndarray[(i,j)], т.е. ndarray[tuple]

Дальше берём сколько угодно значений “из куба”:
 #
y =1.1, x= 1.2
index_tuple = coord2index([y,x], bounds)
v = mean[index_tuple]

Офлайн

#3 Янв. 21, 2019 09:49:48

Aleksandr_Ph
Зарегистрирован: 2019-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины

PEHDOM
Спасибо!

Куб будет ещё меньше, порядка 5х5х5, поэтому для каждого среднего будет больше данных, для самых часто встречающихся сочетаний тысяч по 30-50.

На первом этапе данные будут в Excel, потом подключение к базе данных.
Мне бы первый этап красиво сделать.

В Excel делать вручную? Разве что только по объёму подсчитать, а если подключить хотя бы ещё одну размерность - уже и долго, и удобства и наглядности нет.

Про Биг Дату спрашивал лишь с той идеей, что думается, что там это должно быть рядовая задача и решения должны быть типовыми, и уже описанными. То что считать это Биг Датой по объёму данных нельзя - это да, но по сложности статистической обработки и получения расчетных таблиц (кубов) - “почему бы и да”.

Подскажите, пожалуйста, форум бигдатников нормальный, где смогут ответить, сам пока не нашёл.

Отредактировано Aleksandr_Ph (Янв. 21, 2019 09:55:34)

Офлайн

#4 Янв. 21, 2019 15:45:53

Aleksandr_Ph
Зарегистрирован: 2019-01-17
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины

А что если натянуть сову на глобус натянуть задачу на скоринговую модель?
“Клиент” - предмет, параметры клиента - объём, вес, “вероятность отдаст/не отдаст” - это моё время? Получить скоринговую модель, а потом по ней уже и получать предполагаемые времена?

Должно же сработать? Если да, то нет ли у кого-нибудь описания решения простого и понятного ?

Офлайн

  • Начало
  • » Центр помощи
  • » Есть результаты экспериментов 1 млн строк, величина (время падения предмета) зависит от веса, объема, среды. Найти средние величины[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version