![]() |
|
|
![]()
|
|
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
Добрый день
есть сайт, на сайте статьи нужно расчитать две формулы первая: для вывода статей по определенной сортировке (сортировка как раз по этой формуле) вторая: для вывода статей тоже по определенной сортировке (для этого нужна вторая формула) теперь по формулам для первой формулы есть исходные данные: 1) время создания статьи (в формате юникс, т.е. число) 2) рейтинг статьи (положительное или отрицательное число) 3) количество комментариев у статьи (минимум 0) 4) количество жалоб на статью (минимум 0) 5) количество переходов на статью (минимум 0) тут главное это рейтинг статьи и важный параметр это время создания статьи (чем свежее тем лучше, но рейтинг важнее) комментарии тоже важны но не сильно жалобы очень важный понижающий параметр (больше жалоб, хуже статья) переходы на статью спорный параметр, вроде и чем больше просмотров, тем лучше статья, но это не факт... может еще параметры нужны? ТЕПЕРЬ вторая формулы она для вывода статей в следующем порядке первыми идут те статьи кому мы должны трафик в первую очередь (параметр must_send) + рейтинг так же имеет значение + время создания статьи итак исходные данные: 1) время создания статьи (в формате юникс, т.е. число) 2) рейтинг статьи (положительное или отрицательное число) 3) количество комментариев у статьи (минимум 0) 4) количество жалоб на статью (минимум 0) 5) количество просмотров статьи (сколько раз посмотрели на статью (не перешли)) 6) количество переходов на статью (минимум 0) 7) количество трафик которое мы должны отправить на статью (must_send) тут по важности так же идет рейтинг, НО более важно это сколько мы должны трафика отдать (must_send) так же важна дата создания статьи (свежее значит лучше, но не лучше чем рейтинг) жалобы это сильно понижающий параметр просмотры статьи так же понижающий параметр (больше посмотрели, реже показываем) переходы на статью (тоже понижающий параметр, чем больше перешли тем меньше должны), помоему лишинй параметр т.е. есть параметр must_send? вот собственно исходя из этого надо сделать 2 формулы кто сможет помочь? или тут или в аську (там договоримся) (96 НОЛЬ ТРИ ТРИ 0 восемь) |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Обычно для подобных вещей используют метод наименьших квадратов.
На примере первой формулы. Берём много статей, параметры 1) 2) 3) 4) 5) которых нам известны. Обозначим эти параметры x1, x2, x3, x4, x5. Для каждой статьи формируем параметр y - позиция в списке (просто пишем 1, 2 или 3.5 в зависимости от качества статьи). После обработки всех статей получается набор статья 1: примерная позиция y11, при исходных данных x11, x21, x31, x41, x51. статья 2: примерная позиция y12, при исходных данных x12, x22, x32, x42, x52. статья 3: примерная позиция y11, при исходных данных x13, x23, x33, x43, x53. ... статья n: примерная позиция y1n, при исходных данных x1n, x2n, x3n, x4n, x5n. Например, 1 при 5, 62, 0, 0, 15 2 при 5, 62, 0, 3, 18 1.5 при 5, 40, 0, 0, 17 3 при 15, 2, 0, 0, 17 Загоняем всё это в программу с МНК и строим линейную зависимость. Правда, могут быть уже готовые формулы. Глубину проработки теории в области анализа качества статей я не знаю. Можно поискать через Google. PS. А что в ICQ 7 символов? Это сообщение отредактировал(а) nworm - 27.12.2008, 23:28 |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
за формулу спасибо буду кумекать над ее реализацией, если будут вопросы тут напишу
насчет ICQ, да в моей 7 знакой, есть аськи и с пятью знаками (одни из первых) |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
почитал я про МНК, не подходит этот способ т.к. у меня статей несколько сот тысяч и даже миллионы, и складывать или перемножать всех их элементы не реально
есть другие варианты? Добавлено через 12 минут и 30 секунд вообщем смысл формул что бы они вычислялись для каждой конкретной статьи исходя только из ее данных (не беря данные ВСЕХ статей, т.к. данные статей меняются в реальном времени и каждый раз обсчитывать для всех не получится) только для одной конкретной статьи |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Да, формулу можно вывести, используя МНК.
Можно, например, выбрать 10 статей. По МНК вывести формулу (найти веса A,B,C,D,E) Y=A*X1+B*X2+C*X3+D*X4+E*X5 Посмотреть подходит или нет. Если не подходит, расширить количество статей. Попробовать построить по ним и т.д. В программе будет уже готовая формула: Например, Y=1*X1+5*X2+6*X3+0.5*X4+5*X5 Это сообщение отредактировал(а) nworm - 28.12.2008, 18:17 |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
сорри я в математике вообще дубовый =)
ничего не понимаю можно более конкретный пример конкретно написать: пример: статья 1, данные: 1) 1000 (время) 2) 2 (рейтинг) 3) 5 (комментарии) 4) 0 (жалобы) 5) 100 (переходы) статья 2, данные: 1) 1000 2) 5 3) 0 4) 2 5) 100 статья 3, данные: 1) 2000 (свежее) 2) 0 3) 0 4) 0 5) 0 статья 4, данные: 1) 2000 2) 1 3) 0 4) 0 5) 0 статья 5, данные: 1) 3000 2) 0 3) 5 4) 1 5) 50 вот исходя из этих пяти статей напишите пример плиз с ихними данные, а то не понимаю что куда ставить |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Смотрите Excel-левский файл.
Столбец место я просто с потолка взял. Формула: Y=-0,006*X1+0*X2+0,04*X3+0,1*X4+0,0009*X5+0,5 Например, первая статья: -0,006*100+0*0+0,04*5+0,1*2+0,0009*1000+0,5=1.2 сошлось с подобранным мной местом. То есть Вы выбираете статьи, присваиваете им места, заносите в Excel и выводите формулу. Присоединённый файл ( Кол-во скачиваний: 6 )
_____2.zip 1,75 Kb |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
оки в целом понял, спасибо
но боюсь это не подходит к моей задаче т.к. я не могу определять места каждой статье в ручную тут все таки формула нужна непосредственно исходя из данных по каждой статье, вычислять для нее же некое число по которому и будет происходить сортировка новостей пока я использую банально для первой формулы: (rating + comments) / (abuses + 1); где: rating - рейтинг comments - кол-во комментов abuses - кол-во жалоб для второй формулы: (must_send + rating) / (abuses + shows + outs + 1); где: must_send - сколько должны трафа rating - рейтинг abuses - жалобы shows - просмотры статьи (не переходы) outs - переходы на статью и потом в базе обновляю для конкретной статьи данные вот в таком духе мне нужна формула... для конкретной статьи |
|||
|
||||
| nworm |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 502 Регистрация: 22.10.2005 Репутация: 4 Всего: 8 |
Можете "место" прям по свей формуле посчитать.
И затем вывести линейную формулу, которая будет в программе Типа -0,006*time+0*rating+0,04*comments+0,1*abuses+0,0009*transition+0,5 Только с другим весами. |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
оки понял, буду пробывать
З.Ы. если у других читателей есть идеи и предложения плиз пишите не стесняйтесь =) |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
Здравствуйте
появился еще вопрос по поводу формулы выводятся статьи, каждая статья имеет свою ячейку (место) по каждому месту в целом по системе собирается статистика: сколько раз на этом месте было показано статей сколько раз кликнули на это место (на статью) т.е. мы имеем ctr ячейки так вот, нужно статье которая по выше приведенным формулам выявлена самой лучшей, поставить еще в лучшею ячейку другими словами, лучшей статье, лучшее место (ячейку) как быть? чет ничего на ум не приходит З.Ы. если есть хорошие математики которые смогут помочь с формулой, прошу стукнуть в аську: 425611557, если сможете помочь, оплачу труды (договоримся) |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Мне кажется, сама идея сведения нескольких несоизмеримых параметров к одному числу, чтобы по нему сортировать, порочна.
Нужно просто реализовать разумный многокритериальный оператор сравнения - больше ничего для сортировки не нужно. Например, можно попробовать применить что-то вроде нечеткой логики: выделить несколько классов оценки статьи "МАРАЗМ", "ПЛОХАЯ" ... "СУПЕР". По совокупоности признаков классифицировать каждую статью. Скажем, у "СУПЕР" статьи рейтинг должен быть таким-то (диапазон), другие параметры (возможно, не все) - такие-то и т.д. Принадлежность статьи к разным классам - однозначно их сравнивает; внутри одного класса можно уже рассматривать соотношение различных параметров. Можно для всех параметров выделить несколько диапазонов (на шкале "ХОРОШО"-"ПЛОХО") и разработать правила взаимодействия этих параметров в стиле нечеткой логики (т.е. применить таки твою формулу с весами, но уже к классифицированным критериям) - результат будет надежнее. -------------------- ... |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
хочется все же формулой свести все параметры в одно число...
например ротаторы в СЖях, в баннерных сетях и т.д. работают по такому принципу баннеры не совсем. а вот ротаторы галлерей (тумб) именно на таком принципе Добавлено через 49 секунд просто мне надо живую картину иметь, что бы статьи всегля "плясали", менялись местами, выше поднимались лучшие |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 1 Всего: 56 |
Ну если, так хочется, воспользуйся, например, такой:
100*Rating/MaxRating - (TimeNow - TimeCreate)/500000 + 0.5*CommentsCount - AbusesCount + 0.1*ViewsCount Если она хоть в чём-то не устроит, то всегда можно уточнить коэффициенты по МНК. Добавлено через 50 секунд Ах, да, чем больше результат по формуле, тем выше рейтинг статьи -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| DooZ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 206 Регистрация: 25.11.2005 Репутация: нет Всего: 1 |
2source777 спасибо за пример, но как тут использовать места + ctr статьи?
как лучше добавить? просто ctr статьи (outs / shows) показатель постоянно меняется а ctr ячейки вообще очень важен и он накапливается в целом по системе Добавлено @ 17:52 да еще забыл добавить любой параметр не должен превосходить рейтинг по значимости, в лучшем случае быть на равных (например ctr статьи) это очень важно! и еще важно лучшею статю разместить в лучшей ячейке, она например может быть под номерм 5 (ячейка), соответственно при сортировке по лучшему результату, лучшая статьи должна быть под номером 5, а не 1 (одина), вот как тут быть? Добавлено @ 17:54 еще вопрос к source777 правильно ли я понял, если рейтинг = 5 а максимальный рейтинг = 10 то Rating/MaxRating если рейтинг равен что угодно а максимальнай рейтинг равен (не целому числу) например 0.1 то Rating * MaxRating ? типа деление на не целое получается как умножение, что не верно? Добавлено @ 18:00 насчет последнего (деления) наверное проще и правильнее сделать так: Rating / (MaxRating + 1) что бы всегда привести к целому Это сообщение отредактировал(а) DooZ - 21.1.2009, 18:02 |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |