Содержание
Введение
3
Глава 1. Теоретические и методологические основы кредитования физических лиц
6
1.1. Понятие и критерии кредитоспособности заемщика — физического лица 6
1.2. Виды и формы кредитования физических лиц в России:
современные тенденции 8
1.3. Риски кредитования физических лиц и способы их снижения 13
1.4. Методика оценки кредитоспособности заемщика. Скоринговая
оценка заемщика — физического лица 16
1.5. Зарубежные подходы к оценке кредитоспособности физических лиц 23
1.6. Нормативно-правовые требования и рекомендации ЦБ РФ в
сфере кредитования физических лиц 26
Глава 2. Организация работы банка ОАО «Сберегательный Банк» Российской Федерации по анализу и оценке кредитоспособности физического лица
33
2.1. Общая организационно-экономическая характеристика
деятельности банка ОАО «Сберегательный Банк» Российской Федерации 33
2.2 Виды кредитов, предоставляемые банком ОАО
«Сбербанка России» физическим лицам 41
2.3 Механизм кредитования физических лиц банком
ОАО «Сберегательный Банк» Российской Федерации 44
2.4 Методика оценки кредитоспособности физических лиц в банке
ОАО «Сберегательный Банк» Российской Федерации 49
2.5. Анализ и оценка кредитоспособности заемщиков — физических лиц при различных видах кредитных продуктов 55
2.6 Рекомендации по совершенствованию методики оценки кредитоспособности физических лиц в банке ОАО «Сберегательный Банк» Российской Федерации 63
Заключение 72
Список использованной литературы76
Приложения
80
Выдержка из текста работы
Целью работы является ознакомление с принципами работы программы STATISTICA 8 Neural Networks, а также проведение оценки кредитоспособности физических лиц с помощью нейронных сетей.
Методом изучения является …
Получены результат в виде построенной нейронной сети с удовлетворительным показателем ее работы.
ВВЕДЕНИЕ
В последние годы научные школы многих стран мира активно осваивают программные продукты на основе нейронных сетей (НС), разрабатывают программные системы для применения в таких вопросах, как операции на товарном рынке, оценка вероятности банкротства банка, оценка кредитоспособности, контроль инвестиций, размещение займов. Являясь мощным технологическим инструментом, нейросетевые технологии облегчают процесс принятия важных и неочевидных решений в условиях неопределенности и дефицита времени.
В современном обществе деятельность банковских учреждений многообразна. Банки занимаются различными видами операций: организацией денежного оборота, кредитными отношениями, финансированием народного хозяйства, совершением купли-продажи ценных бумаг, посредническими сделками и управлением имуществом. Они участвуют в обсуждении законодательных и народнохозяйственных программ, ведут статистику, имеют свои подсобные предприятия. Однако главной исторически сложившейся функцией банков является кредитование.
В настоящее время в российской экономике наблюдается стабилизация. Это одна из основных причин бурного развития рынка кредитования частных лиц: выдачи потребительских кредитов, автокредитования, ипотечного кредитования, образовательного кредитования, кредитования при помощи пластиковых карт. Рост рынка кредитования неизбежно влечет за собой появление дополнительных кредитных рисков как отдельного банка, так и банковской системы в целом. Экстенсивное развитие кредитования проходит в условиях жесткой продуктовой и ценовой конкуренции основных участников рынка, что неизбежно ведет к снижению доходности данного направления банковского бизнеса. В этой ситуации качество управления кредитными рисками приобретает огромное значение.
Анализируя зарубежные источники, а также труды российских учёных, мы пришли к выводу, что нейросетевая поддержка принятия решений в экономике в целом и в кредитных организациях в частности в современной литературе освещена не достаточно и поверхностно. Достаточно мало публикаций, касающихся применения искусственных НС в финансово-экономической деятельности. Интерес представляют работы Бэстенса Д.-Э., Ван Ден Берга В.-М., Вуда Д. [5], Киричевского М.Л. [8], Ежова А.А., Шумского С.А. [7]. В диссертационных исследованиях Просаловой В.С. [15] и Корниенко С.Л. [10] проведена оценка кредитоспособности юридических лиц в условиях развития нейросетевых экспертных систем. В частности, Корниенко С.Л. строит альтернативную систему рейтинговой оценки кредитоспособности предприятий с использованием НС, позволяющую эффективно учитывать неограниченное количество факторов кредитоспособности, предлагает механизм функционирования различных типов нейронных сетей, в т.ч. сети Кохонена, для оценки кредитоспособности заемщика. Что касается подобной оценки для физических лиц, то лишь некоторые практические аспекты применения НС для определения кредитоспособности заемщика рассмотрены в исследовании Абричкиной Г.Б. [1].
В ряде работ [6, 14, 18] отмечается, что не существует идеальных систем финансовых коэффициентов и моделей оценки кредитоспособности, все они, в той или иной мере, дают лишь большую или меньшую вероятность ошибки прогноза и, как следствие, потери актива банка. Поэтому, например Сбербанк РФ для получения более точного результата использует количественный анализ кредитоспособности заемщика по пяти различным моделям, которые используют различные системы финансовых коэффициентов. Исходя из этого, существует возможность возникновения ситуации, когда различные модели оценки вероятности банкротства (кредитоспособности), одновременно указывают на разные классы кредитоспособности одного заемщика и сотруднику банка приходится принимать решение о присвоении рейтинга кредитоспособности клиента на основе противоречивых данных [14]. Таким образом, специалистам банка бывает тяжело охарактеризовать окончательную кредитоспособность заемщика, которая является базой для определения условий кредитной сделки. Решением подобной задачи, была бы разработка комплексной методики количественной оценки кредитоспособности клиента банка, которая позволяла уменьшить противоречивость результатов с одной стороны, а с другой использовала бы плюсы существующих, в том числе и классических моделей, осуществляя, таким образом, более высокое качество принятия решения, средствами компьютерной поддержки [6, 7].
Актуальность данной работы обусловлена необходимостью дальнейшего совершенствования математических и инструментальных средств управления кредитными рисками, направленных на оптимальное распределение финансовых ресурсов банков с помощью скоринг-систем.
Целью работы является ознакомление с принципами работы программы STATISTICA 8 Neural Networks, а также проведение оценки кредитоспособности физических лиц с помощью нейронных сетей.
Основные задачи работы:
1. Анализ научной, научно-методической, математической и экономической литературы, банковской документации по данной теме исследования.
2. Изучение программы STATISTICA 8 Neural Networks, её возможностей для решения задач классификации.
3. Описание математической модели кредитования физических лиц.
4. Применение программы STATISTICA 8 Neural Networks
для обработки информации, связанной с процессом оценки кредитоспособности.
5. Оценка полученных результатов.
Дипломная работа состоит из введения, двух глав, заключения.
Во введении проведен анализ литературы по теме исследования, обоснована актуальность работы, определены цель, задачи, описана её структура.
Первая глава посвящена теоретическим основам построения экономико-математической и компьютерной моделей оценки кредитоспособности, дана сравнительная характеристика основных методов оценки риска кредитования, а также описаны нейронные сети как метод решения задачи классификации.
Во второй главе описаны возможности программы STATISTICA 8 Neural Networks для решения задачи классификации, рассмотрены основные этапы нейросетевого моделирования при оценке кредитоспособности физических лиц.
В заключении даны выводы к диплому, подведены итоги, намечены пути дальнейшей работы.
кредитоспособность банк нейронный программа
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПОСТРОЕНИЯ ЭКОНОМИКО-МАТЕМАТИЧЕСКОЙ И КОМПЬЮТЕРНОЙ МОДЕЛИ ОЦЕНКИ КРЕДИТОСПОСОБНОСТИ
Банковский кредит — денежная ссуда, выдаваемая банком на определённый срок на условиях возвратности и оплаты кредитного процента. Основные организационно-экономические формы кредита ? коммерческий и банковский.
Коммерческим называют кредит, который предоставляется товарами с отсрочкой платежа. Он возникает, когда приобретатель продукции не может немедленно расплатиться за нее наличными деньгами. Этот кредит возможен только между фирмами, непосредственно связанными хозяйственными отношениями (лишь теми предприятиями, которые создают средства производства, и теми фирмами, которые их потребляют). Его нельзя использовать, например, для оплаты труда работников.
Универсальный характер имеет банковский кредит, который выдается в виде денежных ссуд. В отличие от коммерческого займа он может предоставляться в значительно большем объеме, на более длительные сроки каждому бизнесмену и на любые цели.
Другие формы кредитных отношений:
а) потребительский кредит (продажа отдельным лицам товаров через розничные магазины с отсрочкой платежа, предоставление банками ссуды на потребительские цели);
б) ипотечный кредит (долгосрочный заем под залог недвижимости — земли, зданий);
в) межхозяйственный кредит (выпуск предприятиями и организациями для предоставления друг другу акций, облигаций и других ценных бумаг);
г) государственный кредит (выпуск облигаций государственных займов, покупаемых бизнесменами и населением).
Приведём пример расчета лимита кредита физического лица на приобретение автомобиля.
Пусть D — чистый среднемесячный доход семьи заемщика (доход супругов) как правило, за последние 12 месяцев, но не менее чем за 6 месяцев (рассчитывается исходя из представленных физическим лицом документов). Это среднемесячный доход за вычетом всех обязательных платежей, указанных в справке и анкете (подоходный налог, взносы, алименты, компенсация ущерба, погашение задолженности и уплата процентов по другим кредитам, сумма обязательств по предоставленным поручительствам, выплаты в погашение стоимости приобретенных в рассрочку товаров и др.). Обозначим через N — общее количество членов семьи заемщика, а через — величину прожиточного минимума на душу населения (сведения публикуются ежеквартально в официальных изданиях). Пусть также Т — срок кредитования и А — годовая процентная ставка по кредиту. Тогда расчет платежеспособности заемщика (Р) производится по следующей формуле:
Т.е. платежеспособность предполагаемого заёмщика — это разница между чистым среднемесячным доходом и произведением показателей количества членов семьи на величину прожиточного минимума, умноженная на срок кредитования (в месяцах).
Расчет максимальной суммы кредита заемщика (S) производится по формуле:
Пусть зарплата заёмщика 25000 руб., а его жены 15000 руб., тогда совокупный доход семьи (без налогов) составляет
D=25000+15000=40000 (руб.)
Пусть общее количество членов семьи N=4 и прожиточный минимум руб. Срок кредитования Т и годовая процентная ставка по кредиту А определены банком исходя из его программы кредитования (1-2 года, автокредит — 5 лет). Итак, пусть Т=24 (мес.), А=23 (% годовых). Согласно формуле (1) имеем:
Отсюда следует, что 424000:24=17600 (руб.) заёмщик может направить в месяц на погашение кредита.
рублей — максимальная сумма кредита, которую может предоставить банк.
Если в кредитный калькулятор [9] завести единовременную комиссию 300 руб. и ежемесячную комиссию 1,2%, то эффективная процентная ставка возрастает до 58,6%.
При выдаче кредита банк, прежде всего, интересует кредитоспособность потенциального заемщика (клиента), то есть способность полностью и в срок рассчитаться с банком по своим долговым обязательствам.
Оценка кредитоспособности осуществляется с целью принятия решения о целесообразности выдачи ссуд, проведения операции (осуществления сделки) и формировании (регулировании) размера резерва на возможные потери по ссудам и по прочим требованиям (условным обязательствам кредитного характера). Конечным результатом оценки является определение рейтинга кредитоспособности клиента, на основании которого определяется уровень кредитного риска.
1.1 Модели оценки кредитоспособности физических лиц в российских банках
В мировой практике существует два основных метода оценки риска кредитования, которые могут применяться как отдельно, так и в сочетании с друг другом:
? субъективное заключение экспертов или кредитных инспекторов;
? автоматизированные системы скоринга [28].
1.1.1 Внутрибанковская оценка
Внутрибанковская оценка ? сложная и тщательная оценка заемщика, которая применяется при выдаче физическим лицам кредитов на неотложные потребительские нужды: покупку дорогих вещей (мебели), оплату каких-либо услуг (плата за обучение), работ (финансирование ремонта жилья). Платежеспособность заемщика определяется на основании документов с места работы о доходах и размерах удержаний, а также по данным анкеты. Перечень информации, используемой для анализа, включает в себя обязательную к представлению информацию (анкета, сведения о доходах и размере удержаний и выплат, внутренняя информация о клиенте — кредитная история) и дополнительную информацию о доходах физического лица, используемую для анализа по мере необходимости и/или доступности.
Оценка финансового состояния клиента при внутрибанковской оценке состоит из следующих этапов:
? анализ финансового состояния на основе анкетирования (по представленным документам и результатам интервьюирования клиента) и/или расчета экономических показателей;
? присвоение клиенту рейтинга кредитоспособности.
Анкета клиента: персональные данные; данные о документе, удостоверяющем личность; адрес регистрации и фактического проживания; телефоны; семейное положение; место работы; дополнительные сведения.
Справка с места работы содержит информацию об организации-работодателе: полное наименование, ИНН, контактный телефон, а также среднемесячный доход и удержания (с расшифровкой по видам) за последние 6 месяцев.
Для определения кредитоспособности клиента применяется балльный метод оценки имеющихся данных о клиенте: возраст, семейное положение, количество иждивенцев, социальный статус, имущество, образование, трудовой стаж на последнем месте работы, регистрация, длительность проживания по месту регистрации, кредитная история, платежеспособность, наличие обеспечения. Сотрудники заполняют таблицу (табл. 1) и рассчитывают общую балльную оценку. Рейтинг кредитоспособности клиента присваивается в зависимости от количества набранных баллов.
Таблица 1
1 |
Возраст |
21?30 лет |
1 2 3 |
|
31?45 лет |
||||
свыше 45 лет |
||||
2 |
Семейное положение |
Женат/Замужем |
1 2 3 4 |
|
Не женат/Не замужем |
||||
В разводе |
||||
Гражданский брак |
||||
3 |
Количество иждивенцев |
0?1 |
1 2 3 |
|
2 |
||||
3 и более |
||||
4 |
Социальный статус |
руководящие сотрудники |
1 2 3 4 |
|
специалисты/служащие |
||||
вспомогательный персонал |
||||
студент/пенсионер |
||||
5 |
Имущество клиента |
до 50% кредита |
1 2 3 |
|
51?100% кредита |
||||
100% и свыше |
||||
6 |
Образование |
Высшее |
1 2 3 4 |
|
Незаконченное высшее |
||||
Среднее специальное |
||||
Среднее |
||||
7 |
Трудовой стаж на последнем месте работы |
до 6 месяцев |
1 2 3 4 |
|
0,5?1 год |
||||
1?3 года |
||||
свыше 3х лет |
||||
8 |
Регистрация |
Краснодар |
1 2 3 |
|
Краснодарский край |
||||
РФ |
||||
9 |
Количество смен мест регистрации за 6 лет |
до 2 раз |
1 2 3 |
|
3 раза |
||||
4 и более раз |
||||
10 |
Кредитная история |
Положительная кредитная история |
1 2 3 |
|
Новый Клиент, кредитная история отсутствует |
||||
Плохая кредитная история |
||||
11 |
Платежеспособность клиента |
покрывает 50% кредита |
1 2 3 |
|
покрывает 51?100% кредита |
||||
покрывает 100% кредита и всех выплат по нему |
||||
12 |
Наличие обеспечения |
без обеспечения |
1 2 3 4 5 6 |
|
обеспечение покрывает 0?25% кредита |
||||
обеспечение покрывает 26?50% кредита |
||||
обеспечение покрывает 51?75% кредита |
||||
обеспечение покрывает 76?100% кредита |
||||
обеспечение покрывает 100% кредита и всех выплат по нему |
||||
13 |
Ответ банка |
Положительный Запрос дополнительной информации/Снижение суммы кредита Отрицательный |
A B C |
Финансовое состояние клиента не может быть оценено как хорошее, если стала известна информация:
? о прекращении трудовых отношений между работодателем и физическим лицом при отсутствии у последнего существенных накоплений;
? о наличии решений суда о привлечении физического лица к уголовной ответственности в виде лишения свободы;
? о наличии сведений об отзыве лицензии у кредитной организации, в которой размещен вклад физического лица;
? другая негативная информация о клиенте.
В зависимости от качества обслуживания долга ссуды относятся в одну из трех категорий:
? хорошее обслуживание долга — платежи по основному долгу, процентам и комиссии осуществляются своевременно и в полном объеме, имеется единичный случай просроченных платежей до 30 дней включительно;
? среднее обслуживание долга — ссуда реструктурирована, имеются случаи просроченных платежей по основному долгу, процентам и комиссии от 31 до 60 дней включительно;
? неудовлетворительное облуживание долга — имеются просроченные платежи по основному долгу, процентам и комиссии свыше 60 дней.
1.1.2 Андеррайтинг
При ипотечном кредитовании физических лиц основной способ снижения кредитного риска банка — проведение андеррайтинга заемщика.
Андеррайтинг — это модель оценки вероятности погашения кредита, предполагающая анализ платежеспособности потенциального клиента в порядке, установленном банком, а также принятие положительного решения по заявлению на ипотечный кредит или отказ в предоставлении ссуды [29].
Специальный сотрудник банка, андеррайтер, (кредитный эксперт, инспектор), а также юридическая служба, служба безопасности, отдел ценных бумаг, отдел жилищного строительства анализируют и проверяют информацию, которую заемщик банка предоставляет о себе.
При оценке вероятности погашения кредита устанавливаются основные критерии: способность клиента погасить кредит (оценка уровня доходов заемщика), его готовность погасить кредит (анализ кредитной истории заемщика) и стоимость закладываемого имущества (анализ результатов независимой оценки имущества). Положительное или отрицательное решение о предоставлении ипотечного кредита банк принимает по результатам анализа сведений, содержащихся в основном и дополнительном документационных пакетах.
Основные документы для проведения андеррайтинга: копия паспорта, копия трудовой книжки либо копии трудовых договоров (договоров подряда); справка о доходах 2-НДФЛ МНС РФ; ИНН; свидетельство о гос. пенсионном страховании; диплом; военный билет и водительское удостоверение; копия свидетельства о браке; копии свидетельств о рождении. Подтвердить свой доход можно справкой по форме банка или организации, в которой работает потенциальный заемщик, за подписью руководства, либо с его устным подтверждением. В ряде банков гражданин может предоставить данные о доходе в заявлении-декларации.
Важным этапом процедуры андеррайтинга является анализ кредитной истории будущего заемщика. Бюро кредитных историй (БКИ) выступают в качестве информационных посредников, либо учрежденных и принадлежащих самим кредиторам, либо действующих независимо и получающих прибыль от своей деятельности. Кредиторы снабжают БКИ данными о своих клиентах, оно сопоставляет их с информацией, полученной из других источников (суды, государственные регистрационные и налоговые органы и т. д.) и формирует картотеку на каждого заемщика.
Основным документом, регулирующим деятельность БКИ в Российской Федерации, является Федеральный закон «О кредитных историях» [25]. Согласно ему, кредитная история — это совокупность информации о заемщике и заключенных им кредитных договорах, состоящая из открытой (титульной) и закрытой (конфиденциальной) частей и хранящаяся в бюро кредитных историй; бюро кредитных историй — юридическое лицо, осуществляющее деятельность по получению информации из соответствующих источников, формированию, хранению и обработке кредитных историй, а также предоставлению кредитных отчетов по запросу пользователей.
Спектр услуг бюро постепенно расширяется и они постепенно удаляются от функции обычного хранилища данных и предлагают все больше и больше аналитических услуг.
Процедура андеррайтинга сложная и трудоемкая, ход которой каждый банк разрабатывает самостоятельно.
Оценивая методику андеррайтинга, можно сделать вывод, что здесь применяется системный подход к анализу ссудозаемщика. Положительная сторона методики — возможность банка к любому потенциальному заемщику выработать индивидуальный подход, в рамках которого будет учтено необходимое количество характеристик. Минус данной оценки — трудоемкость ее выполнения, требующая особой квалификации банковских сотрудников. Большинство банков предпочитают компенсировать кредитный риск с помощью повышения процентной ставки. Используют и другие методы, применение которых не требует больших затрат времени и труда.
1.1.3 Скоринг как модель оценки кредитоспособности
Задаче выбора кредитоспособных заемщиков служат также автоматизированные скоринговые системы.
Скоринг — это математическая (статистическая) модель, с помощью которой на базе кредитной истории уже имеющихся клиентов банк определяет, насколько велика вероятность, что тот или иной клиент вернет кредит в назначенный срок. Если в ходе этого процесса заемщик не набирает строго определенного количества баллов, то в получении кредита ему отказывают [28].
Скоринг осуществляется в основном автоматически при оформлении кредита в магазинах.
Основные типы скоринга, применяемые в российской банковской практике:
— аpplication-скоринг — оценка кредитоспособности гражданина для получения кредита;
— fraud-скоринг — оценка вероятности мошенничества потенциального заемщика;
— сollection-скоринг — механизм работы с просроченной задолженностью.
Сущность скоринга заключается в определении совокупного кредитного балла заемщика в результате его оценки по ряду критериев: уровень среднемесячного дохода, частота смены места работы, возраст, семейное положение, количество иждивенцев, образование, наличие недвижимости и личного автомобиля и т.д. Эти критерии имеют различные удельные веса и агрегируются в совокупный кредитный балл. Модель дает ответ на главный вопрос: выдать кредит потенциальному кредитополучателю или нет. Кредитный балл сравнивается с определенным числовым порогом — линией безубыточности для банка. Кредит выдается тем клиентам, интегральный показатель которых выше этой линии.
Преимущества скоринговых моделей:
1) снижение уровня невозврата кредита, быстрота и беспристрастность принятия решений;
2) возможность эффективного управления кредитным портфелем;
3) отсутствие длительного обучения сотрудников кредитного департамента;
4) возможность провести экспресс-анализ заявки на кредит в присутствии клиента.
К недостаткам можно отнести то, что определение оценивающих характеристик производится только на базе информации о тех клиентах, которым банк уже предоставил кредит. Учитывая это, сотрудникам банка приходится периодически проверять качество работы системы и, когда оно ухудшается, разрабатывать новую модель. Поскольку в основе кредитного скоринга лежат статистические законы — значит в процессе скоринга возможны ошибки с определенной долей вероятности, что компенсируется большей процентной ставкой по кредиту.
Приведём ниже сравнительный анализ рассмотренных моделей оценки кредитоспособности заёмщика — физического лица (табл. 2) [29].
Таблица 2
Скоринг
|
Внутрибанковская оценка
|
Андеррайтнг
|
||
Вид кредита
|
Экспресс кредитование, кредитные карты |
Кредит на неотложные нужды |
Ипотечный кредит |
|
Документы, предоставляемые заёмщиком для оценки
|
Паспорт, заявление, анкета |
Паспорт, заявление-анкета, справки о доходах с места работы, документы по объекту залога и другие документы по требованию банка |
||
Время рассмотрения
|
15?30 минут |
1?14 дней |
15?30 дней |
|
Подразделения банка, участвующие в анализе клиента
|
Кредитный |
Кредитный департамент, служба безопасности, юридический департамент |
Кредитный департамент, служба безопасности, юридический департамент, отдел ценных бумаг, отдел оценки, отдел жилищного строительства |
|
Показатели, характеристики
|
Качественные |
Количественные |
Качественные и количественные показатели, оценка недвижимости |
|
Степень автоматизации
|
100% |
70% |
60% |
1.2 Нейронные сети как метод решения задачи классификации
Скоринг представляет собой классификационную задачу: исходя из имеющейся информации, необходимо получить функцию, наиболее точно разделяющую выборку клиентов на «плохих» и «хороших». Для решения этой задачи производится выборка клиентов кредитной организации. Она называется «обучающей» выборкой. Разделяется на две группы: «хорошие» и «плохие» риски. К «плохим» рискам обычно относят клиентов, задерживающих очередную выплату на три месяца. Иногда к «плохим» рискам относят клиентов, которые слишком рано возвращают кредит, и банк не успевает ничего на них заработать.
Предварительно преобразовывается имеющаяся информация в форму, поддающуюся анализу. Это можно осуществить следующими двумя способами.
1. Преобразовать каждый признак в отдельную двоичную переменную. Этот подход неудобен в том плане, что приводит к большому количеству переменных, хотя он не навязывает никаких дополнительных отношений между зависимой и независимыми переменными.
2. Преобразовать каждую характеристику в переменную, которая будет принимать значения, соответствующие отношению числа «плохих» клиентов с данным признаком к числу «хороших» клиентов с этим же признаком. Более усложненный вариант — взять логарифм этого отношения. Таким образом, каждый признак получает числовую величину, соответствующую уровню его «рискованности».
Методы собственно классификации весьма разнообразны и включают в себя:
— статистические методы, основанные на дискриминантном анализе (линейная регрессия, логистическая регрессия);
— различные варианты линейного программирования;
— дерево классификации или рекурсионно-партиционный алгоритм;
— нейронные сети;
— генетический алгоритм;
— метод ближайших соседей.
Традиционными и наиболее распространенными являются регрессионные методы, прежде всего линейная многофакторная регрессия:
где р — вероятность дефолта, w — весовые коэффициенты, x — характеристики клиента. Недостаток данной модели заключается в том, что в левой части уравнения находится вероятность, которая принимает значения от 0 до 1, а переменные в правой части могут принимать любые значения
от -Ґ до + Ґ.
Этот недостаток позволяет преодолеть логистическая регрессия:
Для применения логистической регрессии необходимы гораздо более сложные расчеты для получения весовых коэффициентов и, следовательно, более мощная компьютерная база и усовершенствованное компьютерное обеспечение. Но при современном уровне развития компьютерной техники это не является проблемой, и в настоящее время логистическая регрессия является лидером скоринговых систем. Преимущество логистической регрессии еще и в том, что она может подразделять клиентов как на две группы (0 — плохой, 1 — хороший), так и на несколько групп (1, 2, 3, 4 группы риска).
Все регрессионные методы чувствительны к корреляции между характеристиками, поэтому в модели не должно быть сильно коррелированных независимых переменных.
Линейное программирование также приводит к линейной скоринговой модели. Провести абсолютно точную классификацию на плохих и хороших клиентов невозможно, но желательно свести ошибку к минимуму. Задачу можно сформулировать как поиск весовых коэффициентов, для которых ошибка и будет минимальной.
Деревья классификации — это метод, позволяющий предсказывать принадлежность наблюдений или объектов к тому или иному классу категориальной зависимой переменной в зависимости от соответствующих значений одной или нескольких предикторных переменных. Построение деревьев классификации — один из наиболее важных методов, используемых при проведении «добычи данных». Деревья классификации идеально приспособлены для графического представления, и поэтому сделанные на их основе выводы гораздо легче интерпретировать, чем если бы они были представлены только в числовой форме.
Генетический алгоритм основан на аналогии с биологическим процессом естественного отбора. В сфере кредитования это выглядит следующим образом: имеется набор классификационных моделей, которые подвергаются «мутации», «скрещиваются», и в результате отбирается «сильнейший», т. е. модель, дающая наиболее точную классификацию.
При использовании метода ближайших соседей выбирается единица измерения для определения расстояния между клиентами. Все клиенты в выборке получают определенное пространственное положение. Каждый новый клиент классифицируется исходя из того, каких клиентов — плохих или хороших — больше вокруг него [28].
Решение задачи классификации является одним из важнейших применений нейронных сетей.
Задача классификации представляет собой задачу отнесения образца к одному из нескольких попарно не пересекающихся множеств. Примером таких задач может быть, например, медицинские задачи, в которых необходимо определить, например, исход заболевания, решение задач управления портфелем ценных бумаг (продать купить или «придержать» акции в зависимости от ситуации на рынке), задача определения жизнеспособных и склонных к банкротству фирм. К задаче классификации относится и решаемая нами задача определения кредитоспособности клиента банка.
Нейронная сеть (НС) ? динамическая система из совокупности связанных между собой (как узлы направленного графа) элементарных процессов (формальных нейронов) и способная генерировать выходную информацию в ответ на входное действие [23].
Искусственные нейронные сети (ИНС) ? математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей ? сетей нервных клеток живого организма.
С точки зрения машинного обучения нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т.п. С математической точки зрения обучение нейронных сетей ? это многопараметрическая задача нелинейной оптимизации.
В зависимости от функций, выполняемых нейронами в сети, можно выделить три их типа:
? входные нейроны, на которые подается вектор, кодирующий входное воздействие или образ внешней среды, в них обычно не осуществляется вычислительных процедур, а информация передается с входа на выход путем изменения их активации;
? выходные нейроны, выходные значения которых представляют выходы нейронной сети; преобразования в них осуществляются по выражениям. Несут важную функцию приведения значения выхода сети в требуемый промежуток (осуществляется это с помощью функции активации);
? промежуточные нейроны, составляющие основу нейронных сетей, преобразования в которых выполняются также по выражениям.
Топологией нейронной сети называют её структуру межнейронных связей, т.е. топология сети определяет, как соединены нейроны между собой в сети [27].
С точки зрения топологии можно выделить три основных типа нейронных сетей:
? полносвязные (рис. 1, а);
? многослойные или слоистые (рис. 1, б);
? слабосвязные (с локальными связями) (рис. 1, в).
Рисунок 1. Архитектуры нейронных сетей
В нашей работе будет построена многослойная (двуслойная) нейронная сеть с прямой связью (рис. 2).
Рисунок 2. Многослойная (двухслойная) сеть с прямой связью
Выбор такой архитектуры связан с тем, что сети с прямой связью являются универсальным средством аппроксимации функций, что позволяет их использовать в решении задач классификации.
Оценка качества работы НС ? например, среднеквадратическая ошибка выхода сети на обучаемом множестве из n примеров такова:
где ? синаптические коэффициенты, ? для устойчивости работы сети, т.е. при изменении меньше интерпретация ответов не меняется, ? вес -го примера в обучающей выборке, ? реальный выход, ? желаемый выход
-го примера. Предъявление сети обучающей выборки можно производить до тех пор, пока ошибка не станет меньше заданной или пока не перестанет меняться в течение нескольких «эпох» ? показов выборки [23].
Как правило, нейронные сети оказываются наиболее эффективным способом классификации, потому что генерируют фактически большое число регрессионных моделей (которые используются в решении задач классификации статистическими методами).
Далее рассматривается применение нейронных сетей для процесса скоринга.
2 ПРИМЕНЕНИЕ ПРОГРАММЫ STATISTICA NEURAL NETWORKS ДЛЯ ОЦЕНКИ КРЕДИТОСПОСОБНОСТИ ФИЗИЧЕСКИХ ЛИЦ В РОССИЙСКИХ БАНКАХ
2.1 Описание возможностей программы STATISTICA 8 Neural Networks
Обработка анкет и решение задачи классификации производилась с помощью пакета «Нейронные сети» программы STATISTICA 8 Neural Networks (SNN). STATISTICA ? это интегрированная система, предназначенная для статистического анализа и обработки данных. Она включает в себя широкий набор аналитических процедур и методов: более 100 различных типов графиков, описательные и внутригрупповые статистики, разведочный анализ данных, корреляции, быстрые основные статистики и блоковые статистики, интерактивный вероятностный калькулятор, T-критерии (и другие критерии групповых различий), таблицы частот, сопряженности, флагов и заголовков, анализ многомерных откликов, множественная регрессия, непараметрические статистики, общая модель дисперсионного и ковариационного анализа, подгонка распределений, добыча данных, нейронные сети и многое другое.
Продукты серии STATISTICA основаны на самых современных технологиях, полностью соответствуют последним достижениям в области IT, позволяют решать любые задачи в области анализа и обработки данных, идеально подходят для решения практических задач в маркетинге, финансах, страховании, экономике, бизнесе, промышленности, медицине и т.д.
Система STATISTICA производится фирмой StatSoft Inc. (США), основанной в 1984 г. в городе Тулса (США). Первые программные продукты были предназначены для обработки социологических данных. В 1986 г. начинается работа по созданию интегрированных статистических пакетов комплексной обработки данных.
Система STATISTICA имеет более полумиллиона зарегистрированных пользователей во всем мире. Пользователями системы являются крупнейшие университеты, исследовательские центры, компании, банки всего мира, государственные учреждения [26].
Это программное обеспечение является полнофункциональной, мощной и быстрой средой анализа нейросетевых моделей, соответствует наиболее современным требованиям, с автоматическим обучением и сравнением качества обучения, и технологиям в сфере работы с нейронными сетями и показывает высокий уровень производительности, предназначено для проведения нейросетевых исследований в промышленности, маркетинге, финансах, геологоразведке и других отраслях. Все аналитические инструменты STATISTICA доступны как отдельные компоненты единого интегрированного пакета.
2.2 Этапы нейросетевого моделирования
Была поставлена следующая классификационная задача: исходя из имеющейся анкетной информации о потенциальных клиентах банка, наиболее точно разделить их на «плохих», «хороших» и «средний». Для решения этой задачи были использованы возможности нейронных сетей. Нейросетевое моделирование проводилось в несколько этапов:
1) сбор и подготовка данных, разделение на обучающие и тестовые выборки;
2) предобработка данных, преобразование для подачи на вход НС;
3) конструирование и обучение сети;
4) диагностика сети.
Первый этап работы заключался в подготовке исходных данных. Банк предоставил нам данные о клиентах без указания их имен и контактной информации с решением о предоставлении кредита. В соответствии с этим была выбрана система признаков, характерных для данной задачи (возраст, семейное положение, количество иждивенцев, социальный статус, имущество, образование, трудовой стаж, регистрация, количество смен мест регистрации за 6 лет, кредитная история, платежеспособность, наличие обеспечения), и составлена база данных на 150 клиентов. Исходные данные были разделены на 2 множества: обучающее (100), на котором проводилось обучение, и тестовое (50) — верификация.
Второй этап ? предобработка имеющихся данных, преобразование для подачи на вход НС. Задача продиктовала следующую структуру НС: входной слой состоял из 12 нейронов (признаков), а выходной — из одного нейрона (ответ банка о возможности предоставления кредита). Также была выбрана система выходных значений , где A — значение, соответствующее клиенту, которому можно предоставить кредит («хороший клиент»), B — значение, соответствующее клиенту, которому необходимо предоставить дополнительную информацию о себе для решения вопроса о предоставлении ему кредита («средний клиент»), и C — значение, соответствующее клиенту, которому отказано в предоставлении кредита(«плохой клиент»).
Работа с программой SNN осуществлялась по следующему алгоритму. Чтобы начать работу, в меню «Пуск/Все программы» запускаем программу. Выбираем File/New... (рис. 3).
Рисунок 3
В следующем окне «Create New Document» задаем количество столбцов и строк в создаваемой таблице, в нашем случае 13 столбцов
(12 входных и 1 выходная переменные) и 150 строк (случаев) (рис. 4) и нажимаем «Ok».
Рисунок 4
В окне «Data: Анкеты (13v by 150c)» заполняем созданную таблицу. Введём обозначения всех входных переменных: Var1 — возраст, Var2 — семейное положение, Var3 — количество иждивенцев, Var4 — социальный статус, Var5 — имущество клиента, Var6 — образование, Var7 — трудовой стаж на последнем месте работы, Var8 — регистрация, Var9 — количество смен мест регистрации за 6 лет, Var10 — кредитная история, Var11 — платежеспособность клиента, Var12 — наличие обеспечения. В строках с номерами 101 — 150 оставляем пустым 13 столбец, для того, чтобы в нём после построения сети видеть её предсказания по 50 клиентам (рис. 5).
Рисунок 5
Таким образом, получаем обучающую выборку D — набор наблюдений, для которых указаны значения входных и выходных переменных:
,где (рис. 6).
Для анализа нужно иметь порядка сотен или тысяч наблюдений; чем больше в задаче переменных, тем больше нужно иметь наблюдений. Наша таблица данных состоит из 150 случаев и 13 переменных: двенадцати входных переменных и одной выходной переменной (ответ банка, результат).
Рисунок 6
На третьем этапе нейросетевого анализа производилось конструирование и обучение НС. Задача заключалась в том, чтобы построить нейронную сеть на имеющихся данных и произвести её обучение. Для этого выбираем на панели задач вкладку Statistics/Automated Neural Networks (рис. 7).
Рисунок 7
Задаем следующие необходимые настройки. В открывшемся окне «SANN — Analysis/Deployment» для анализа данных нужно задать тип решаемой задачи — классификация (Classification) (рис. 8).
Рисунок 8
В следующем окне «SANN — Data selection» нажимаем на вкладку Variables, чтобы указать входные и выходные переменные (рис.9) .
Рисунок 9
В «Select variables for analysis» выделяем один выходной параметр
(13-й столбец) и 12 входных параметров (1-12 столбцы), т.к. все входные параметры являются числовыми, то выделяем их как Continuous inputs (рис. 10).
Рисунок 10
Другие вкладки содержат опции для более тщательного управления процессом, включая задание доверительных уровней классификации и выбор типа и сложности создаваемых сетей с возможностью задания некоторых аспектов поиска. Например, во вкладке «Sampling» можно указать разделение в процентном соотношении обучающего множества на выборку для обучения и самостоятельного тестирования сети, по умолчанию 80% и 20% соотвественно (рис. 11).
Рисунок 11
Следующее окно «SANN — Automated Network Search» оставляем без изменений, в нем можно указать количество сетей, которые будут построены, и количество сохраняемых сетей. По умолчанию программа строит 20 сетей и оставляет 5 лучших (рис. 12).
Рисунок 12
Далее производилось обучение нейронной сети по 100 кредитополучателям, исход деловых отношений с которыми известен. Для этого после задания всех нужных настроек, нажимаем «Train», и программа строит методом перебора оптимальную топологию нейронной сети и проводит её обучение на нашей выборке.
Этап обучения закончен. В результате было построено 10 НС, из них выбрана наилучшая по ошибке верификации. В следующем окне мы можем просмотреть результаты и сохранить нейронную сеть для дальнейшего тестирования или переобучения. После сохранения сеть можно использовать для определения кредитоспособности новых клиентов (рис. 14).
Рисунок 14
Четвертый этап состоял в диагностике и проверке адекватности НС. После сохранения полученной сети мы можем проверить эффективность ее работы на тестовых данных. Открываем вкладку «Predictions», в ней можно видеть предсказание по 50 последним случаям, которое делает каждая построенная сеть (рис.є15).
Рисунок 15
Выбираем сеть MLP 12?5?3, архитектура которой носит название многослойный персептрон. Сравним имеющийся результат, предоставленный банком (тестовое множество), с полученным предсказанием. Видим, что совпадение происходит в 87% случаев, поэтому можно сделать вывод, что полученную сеть можно использовать для определения кредитоспособности клиентов. Архитектура (число слоёв и число нейронов в каждом слое) обученной формальной нейронной сети представлена на рис. 16.
Рисунок 16
Анализ чувствительности показал степень влияния каждого фактора анкеты на результат: чем меньше ранг, соответствующий переменной, тем больше влияние её на выходной параметр (рис. 17).
Рисунок 17
Для сохранения сети нужно нажать на вкладку «Save networks>C/C++ language ». Сеть была сохранена на языке программирования С++, что даёт возможность использовать её автономно. Код программы представлен в приложении 1. Для запуска сети использовался компилятор
«Dev-C++ 4.9.9.2». Вводим возможные значения анкетных данных (рис. 18), видим предсказание сети (рис. 19).
Рисунок 18
Рисунок 19
В результате проведённого эксперимента на имеющейся выборке НС построена с точностью 87%, что является удовлетворительным показателем ее работы (минимальное количество правильных предсказаний должно быть на уровне не ниже 80%). Это позволяет сделать вывод о целесообразности использования данного программного продукта банками для автоматизированной оценки кредитоспособности потенциальных клиентов. Для реального предложения кредитным организациям требуется пополнение клиентской базы, дообучение НС для серьёзного функционирования.
ЗАКЛЮЧЕНИЕ
Качественно и количественно разработанная оценка кредитоспособности клиентов необходима банку для дальнейшего совершенствования своей кредитной деятельности. От правильной оценки часто зависит жизнеспособность банка. Неправильная оценка может привести к невозврату кредита, что в свою очередь способно нарушить ликвидность банка и в конечном счете привести к банкротству кредитной организации. Поэтому банки придают огромное значение разработке современной методологической базы оценки кредитоспособности.
Анализ практической деятельности российских банков привёл к выделению трёх основных моделей оценки кредитоспособности: скоринг, внутрибанковская оценка и андеррайтинг. Каждая из указанных моделей подробно описана, имеет как преимущества, так и отрицательные стороны, указанные в работе.
Была выявлена связь нейротехнологий с определением кредитоспособности физических лиц, проведено построение нейронной сети, которую можно использовать для классификации клиентов. Сравнение полученных результатов проведенного нейросетевого анализа и рейтинговой оценки, позволяет сделать заключение о возможности ее дальнейшего использования для комплексной оценки кредитозаемщика.
Таким образом, в процессе написания дипломной работы была выполнена поставленная цель и решены поставленные задачи.
В дальнейшем планируется провести более тщательное обучение сети с целью улучшения качества и производительности сети.
Результаты данной работы были опубликованы в журналах «Известия Кубанского государственного университета. Естественные науки» [19], «Вестник студенческого научного общества» [20, 21], а также представлены на Всероссийском конкурсе научно-исследовательских работ студентов и аспирантов в области информатики и информационных технологий, проведенном ФГАОУ ВПО «Белгородский государственный национальный исследовательский университет» при поддержке Министерства образования и науки РФ в рамках реализации федеральной целевой программы «Научные и научно-педагогические кадры инновационной России», и также опубликованы в сборнике научных работ проведенного конкурса [22].
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Абричкина Г.Б. Инструментальные методы управления кредитными рисками регионального банка: Дис. … канд. экон. наук, Воронеж, 2004. 156 c.
2. Боровиков В.П. Нейронные сети. Методология и технологии современного анализа данных. 2 издание. Москва, 2008.
3. Боровиков В.П. Популярное введение в программу STATISTICA.
4. Боровиков В.П. Statistica: исскуство анализа данных на компьютере. Для профессионалов. Санкт-Петербург, 2001.
5. Бэстенс Д.-Э., Ван Ден Берг В.-М., Вуд Д. Нейронные сети и финансовые рынки. Принятие решений в торговых операциях. М., 1997.
6. Дебок Г., Кохонен Т. Анализ финансовых данных с помощью самоорганизующихся карт: Пер. с англ. М.: Издательский дом « Альпина», 2001. 230 с.
7. Ежов А.А., Шумский С.А. Нейрокомпьютинг и его приложения в экономике и бизнесе. М., 1998.
8. Кричевский М.Л. Нейронные сети в задачах риск-менеджмента. Научн. сессия проф.-преп. состава СПбГУЭФ. Сб. докл. СПб, 2002.
9. Кредитный калькулятор. http://calculatorcredit.ru/calculator.php
10. Корниенко С.Л. Оценка кредитоспособности заемщика в процессе управления кредитным риском: Дис. … канд. экон. наук: 08.00.10: М., 2003. 230 c.
11. Нейронные сети. STATISTICA Neural Networks. Москва, 2001.
12. Нортон М. Нервный бизнес. Банковские технологии. 1995. № 3.
13. Официальный сайт StatSoft Russia. http://www.statsoft.ru
14. Пещанская И.В. Краткосрочный кредит: теория и практика. М.: Издательство «Экзамен», 2003. 320 с.
15. Просалова В.С. Оценка банками кредитоспособности юридических лиц в условиях развития нейросетевых экспертных систем: На примере Приморского края: Дис. … канд. экон. наук: 08.00.10. Владивосток, 2006. 186с.: ил.
16. Райзберг Б.А., Лозовский Л.Ш., Стародубцева Е.Б. Современный экономический словарь. — 5-е изд., перераб. и доп.. — М.: ИНФРА-М, 2006. — 495 с.
17. Рындина С.В. Математические модели application-скоринга. // Проблемы информатики в образовании, управлении, экономике и технике: Сб. статей Всерос. научно-техн. конф. Пенза, 2008. С. 32?35.
18. Селезнева Н.Н., Ионова А.Ф. Финансовый анализ. М.: Юнити, 2002. 479с.
19. Соколова И.В., Титяева А.А., Тохадзе А.А. Интеллектуальная нейросетевая поддержка принятия решений в кредитных организациях// Известия Кубанского государственного университета. Естественные науки. Краснодар 2012. Вып.2. С.12?16.
20. Титяева А.А., Соколова И.В. Применение нейротехнологий для скоринговой сиситемы оценки кредитования физических лиц// Вестник студенческого научного общества ФМКН КубГУ. Краснодар, 2011. Вып.2. С.26?33.
21. Титяева А.А., Соколова И.В. Оценка кредитоспособности физических лиц с помощью нейронных сетей // Вестник студенческого научного общества ФМКН КубГУ. Краснодар, 2012. Вып.3. С. 31?37.
22. Титяева А.А. Применение нейронных сетей для оценки кредитоспособности физических лиц// Всероссийском конкурс научно-исследовательских работ студентов и аспирантов в области информатики и информационных технологий 10?12 июля 2012 года. Сборник научных работ в трёх томах. Белгород 2012. Том 2. С. 105?109. http://meta-analysis.bsu.edu.ru/file.php/1/Contest_2012_1/Tom2.pdf
23. Усатиков С.В., Соколова И.В. Теоретические основы информатики. Практикум. Краснодар, 2008.
24. Усачёв С. Кредитный скоринг: решения desktop или enterprise // «Банки и технологии»// № 4. 2008 г.
25. Федеральный закон от 30 декабря 2004 г. N 218-ФЗ «О кредитных историях» // Собрание законодательства Российской Федерации. — 3 января 2005г. — №1.
26. Халафян А.А. STATISTICA 6. Статистический анализ данных. 3-е издание. Учебник ? М.: ООО «Бином-Пресс», 2007 г.
27. Хомич А.В., Жуков Л.А. Оптимизация топологии рекуррентных и многослойных нейронных сетей с применением генетических алгоритмов // Нейроинформтика. 2004. Часть 2. С. 68?74.
28. Андреева Г.В. Скоринг как метод оценки кредитного риска // Банковские технологии. http://www.cfin.ru/finanalysis/banks/scoring.shtml
29. Ворошилова И.В., Сурина И.В. К вопросу о совершенствовании механизма оценки кредитоспособности индивидуальных заемщиков. http://ej.kubagro.ru/2005/08/03/
ПРИЛОЖЕНИЕ 1
//Analysis Type — Classification
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
double input_hidden_weights[5][12]=
{-1,64409787875360e+000, 1,09180895320871e+000, 4,77154785465406e+000, 6,36931007598949e+000, 2,26521240652561e+000, 7,67748055853597e+000, 2,20230812056259e+000, -4,05057179736207e+000, 6,86952042253827e+000, 8,06302585562581e+000, -3,92930200746640e+000, -1,35025352122010e+001 },
{-3,80316410899550e+000, -1,02379666228051e+001, -2,46833828572332e+000, -4,39631483693691e+000, 1,27571950630982e+001, -1,98531923270009e+000, 5,74697080563126e+000, -4,59886786051631e+000, -3,20234286930440e+000, -6,97779655167443e+000, 9,40359548483022e+000, 6,29580684655405e+000 },
{-4,67149656505120e-001, -6,09590774067550e+000, 1,75210100895654e+000, -3,13956250775567e+000, 1,43068245551182e+001, -7,85053944357368e-001, 4,24516927798281e+000, -2,59941858924333e+000, 6,03602215289459e-001, -2,18964575431617e+000, 1,14808888593193e+001, 7,03883507225023e+000 },
{-1,00981535367063e+000, -6,32535934729304e+000, 4,01064987145387e+000, 1,48465851842388e+000, 9,81770015310024e+000, 3,56768950228247e+000, 2,09026878326488e+000, -3,56947927444606e+000, 3,78673354205937e+000, 6,97345367206553e+000, 3,56882993548831e+000, 4,76152715633977e-001 },
{-8,54838370143648e-001, -6,96381955453000e+000, 3,30845287107656e+000, 8,45395665670600e-001, 1,02274795138672e+001, 2,97825904668851e+000, 2,34064744676174e+000, -4,02916055317983e+000, 3,23672074326387e+000, 5,90548752061914e+000, 4,22109537118753e+000, 7,78710016942739e-001 }
double hidden_bias[5]={ -4,89949635603894e-001, -1,92268683845077e+000, 4,34461990732500e+000, 2,67856825427872e+000, 2,22697833237394e+000 };
double hidden_output_wts[3][5]=
{-3,31754742496978e+000, 8,98228051391912e+000, 4,09646018637776e+000, -2,98424512535983e+000, -6,24495119880673e+000},
{1,29127644257301e+000, -3,38886487369035e+000, 4,27371800423730e+000, -7,54734238002245e-002, 5,79364818806007e-001 },
{2,10323923959187e+000, -5,53525376784362e+000, -8,23942580395382e+000, 3,02222658249428e+000, 5,59800454230386e+000 }
double output_bias[3]={ 2,55329441003075e+000, 9,52241585555783e-001, -3,56191361399268e+000 };
double max_input[12]={ 3,00000000000000e+000, 4,00000000000000e+000, 3,00000000000000e+000, 4,00000000000000e+000, 3,00000000000000e+000, 4,00000000000000e+000, 4,00000000000000e+000, 3,00000000000000e+000, 3,00000000000000e+000, 3,00000000000000e+000, 3,00000000000000e+000, 6,00000000000000e+000 };
double min_input[12]={ 1,00000000000000e+000, 1,00000000000000e+000, 0,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000, 1,00000000000000e+000 };
double input[12];
double hidden[5];
double output[3];
void FindMax(double* vec, double* max, long* maxIndex,int len)
long i;
*max = vec[0];
*maxIndex = 0;
for(i=1; i<len; i++)
if(vec[i]>*max)
*max = vec[i];
*maxIndex = i;
void ScaleInputs(double* input, double minimum, double maximum, int size)
double delta;
long i;
for(i=0; i<size; i++)
delta = (maximum-minimum)/(max_input[i]-min_input[i]);
input[i] = minimum — delta*min_input[i]+ delta*input[i];
void softmax(double* vec,int len)
long i, j;
double sum=0.0;
for(i=0; i<len; i++)
if(vec[i]>200)
double max;
long maxIndex;
FindMax(vec, &max, &maxIndex,len);
for(j=0; j<len; j++)
{ if(j==maxIndex) vec[j] = 1.0;
else vec[j] = 0.0;
return;
else
vec[i] = exp(vec[i]);
sum += vec[i];
if(sum==0)
long a = 1;
if(sum!=0.0)
for(i=0; i<len; i++) vec[i] = vec[i]/sum;
else for(i=0; i<len; i++) vec[i] = 1.0/(double)len;
double logistic(double x)
if(x > 100.0) x = 1.0;
else if (x < -100.0) x = 0.0;
else x = 1.0/(1.0+exp(-x));
return x;
void ComputeFeedForwardSignals(double* MAT_INOUT,double* V_IN,double* V_OUT, double* V_BIAS,int size1,int size2,int layer)
int row,col;
for(row=0;row < size2; row++)
V_OUT[row]=0.0;
for(col=0;col<size1;col++)V_OUT[row]+=(*(MAT_INOUT+(row*size1)+col)*V_IN[col]);
V_OUT[row]+=V_BIAS[row];
if(layer==0) V_OUT[row] = logistic(V_OUT[row]);
void RunNeuralNet_Classification ()
ComputeFeedForwardSignals((double*)input_hidden_weights,input,hidden,hidden_bias,12, 5,0);
ComputeFeedForwardSignals((double*)hidden_output_wts,hidden,output,output_bias,5, 3,1);
int main()
int index;
int i=0;
int keyin=1;
double max;
while(1)
max=3.e-300;
printf(«\nEnter values for Continuous inputs\n»);
printf(«Cont. Input-0(Var1): «);
scanf(«%lg»,&input[0]);
printf(«Cont. Input-1(Var2): «);
scanf(«%lg»,&input[1]);
printf(«Cont. Input-2(Var3): «);
scanf(«%lg»,&input[2]);
printf(«Cont. Input-3(Var4): «);
scanf(«%lg»,&input[3]);
printf(«Cont. Input-4(Var5): «);
scanf(«%lg»,&input[4]);
printf(«Cont. Input-5(Var6): «);
scanf(«%lg»,&input[5]);
printf(«Cont. Input-6(Var7): «);
scanf(«%lg»,&input[6]);
printf(«Cont. Input-7(Var8): «);
scanf(«%lg»,&input[7]);
printf(«Cont. Input-8(Var9): «);
scanf(«%lg»,&input[8]);
printf(«Cont. Input-9(Var10): «);
scanf(«%lg»,&input[9]);
printf(«Cont. Input-10(Var11): «);
scanf(«%lg»,&input[10]);
printf(«Cont. Input-11(Var12): «);
scanf(«%lg»,&input[11]);
ScaleInputs(input,0,1,12);
RunNeuralNet_Classification();
//Output Activation is Softmax;
softmax(output, 3);
for(i=0;i<3;i++)
if(max<output[i])
max=output[i];
index=i+1;
printf(«\nPredicted category = «);
switch(index)
case 1: printf(«A\n»); break;
case 2: printf(«B\n»); break;
case 3: printf(«C\n»); break;
default: break;
printf(«\nConfidence level = %.14f»,max);
printf(«\n\nPress any key to make another prediction or enter 0 to quit the program.\n»);
keyin=getch();
if(keyin==48)break;
return 0;
Размещено на