На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа Программа реализации метода главных компонент "МГК"

Информация:

Тип работы: курсовая работа. Добавлен: 05.09.2012. Сдан: 2011. Страниц: 16. Уникальность по antiplagiat.ru: < 30%

Описание (план):


Федеральное агентство по образованию РФ
Байкальский Государственный Университет Экономики  и Права
Факультет экономической кибернетики
Кафедра информатики и кибернетики 
 
 
 
 
 
 
 
 
 
 
 

КУРСОВОЙ  ПРОЕКТ 

программа реализации метода гЛАвных  компонент «МГК» 
 
 
 
 
 
 
 
 
 

                    Автор:   Леонов Е.Р.
                       ИС-07-1 
                       

                      Руководитель: Пешкова О.В. 
                       
                       

Иркутск
2009
 

Оглавление 

Введение……………………………………………………………… 2
Постановка задачи………………………………………………….....3
Системный анализ…………………………………………………….4
Проект программы......….…………………………………………….11
Тестирование и испытание ПП…………………………...………….20
Заключение………………...………………………………………….30
Список используемой литературы…………...……………………...31
Приложение………...…………………………………………………32 
 
 
 
 

 


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

    
Постановка задачи
    Целью данной курсовой работы является создание и документирование программы реализующей  «Метод главных компонент» и выявляющая признаки, вносящие наибольший вклад  в исходную совокупность. Метод предназначен для автоматизации процесса факториального анализа. 
    Во  время реализации курсового проекта  необходимо:
      Провести системный анализ, включающий
        Описание предметной области
        Описание методов и алгоритмов реализации
        Анализ и выбор средств разработки
      Разработать проект программы, содержащий
        Структуру и функции программы
        Схемы, описывающие взаимосвязи объектов
        Интерфейс программы
      Разработать программу
      Провести тестирование и отладку программы
      Составить комплекты эксплуатационной и технологической документации.
 


Системный анализ
О сущности задач снижения размерности 

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

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

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

     С другой стороны совсем необязательно  для описания состояния объекта  использовать какие-то из исходных признаков. Так, например, для определения специфики  фигуры человека при покупке одежды достаточно назвать значения двух признаков  – рост-размер – являющихся производными от измерения ряда параметров фигуры. При этом, конечно, теряется какая-то доля информации (портной замеряет до одиннадцати параметров). Однако к удовлетворительно классификации людей в зависимости от специфики фигуры приводит система, использующая три параметра, каждый из которых является некоторой комбинацией от большего числа признаков, замеренных на объекте параметров 

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

Определение главных компонент
     Главная компонента - нормировано-центрированная линейная комбинация показателей исследуемой  системы. 

     Первая  главная компонента - нормировано-центрированная линейная комбинация показателей исследуемой системы, которая среди прочих нормировано-центрированных линейных комбинаций обладает наибольшей дисперсией. 

     К-ая главная компонента – такая нормировано-центрированная линейная комбинация показателей исследуемой  системы, которая не коррелированна с k-1 предыдущими главными компонентами и среди прочих нормировано-центрированных и некоррелированных с предыдущими k-1 главными компонентами обладает наибольшей дисперсией.   
 

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

     Где l-  первая строка матрицы L (матрицы главных компонент).
     Учитывая  центрированность переменной Х и  то что Е(ХХТ) = ? получаем
     D (l1 X) = E (l1 X)2 = E(l1XXT ) = l1 ?
     где ? – ковариационная матрица исходных параметров.
     Исходя  из этого можем переписать задачу в виде
 

     Вводя функцию Лагранжа и дифференцируя ее по компонентам вектора-столбца , имеем:
     
     Что дает систему уравнений для определения  l1:
     (?  – ?I) =0 , где I- единичная матрица 

     Для того чтобы существовало ненулевое решение (в силу ограничения l1 =1), матрица (? – ?I) должна быть вырожденной, то есть ее определитель должен быть равен нулю
     |?  – ?I|=0
     Этого добиваются подбором соответствующих  значений ?. Уравнение такого вида называется характеристическим для матрицы ?. Известно, что для матрицы ковариаций ?, построенной для центрированных и нормированных исходных параметров, в силу своей симметричности и неотрицательнности, характеристическое уравнение имеет столько вещественных неотрицательных корней, сколько было исходных признаков (m), причем сумма корней в точности равна количеству исходных признаков.
           и   
     Полученные  характеристические числа показывают величину дисперсии каждой из компонент. Выбирая наибольшее, мы получаем Первую главную компоненту и так далее.
     Полагая ?1 наибольшей дисперсией из всей совокупности, подставляем значение в однородную систему уравнений (? – ?I) =0 и решая ее, определяем компоненты вектора l1.
     Таким образом первая главная компонента получается как линейная комбинация z(1) (X) = l1Х , где l1 – собственный вектор матрицы ?, соответствующий наибольшему собственному числу этой матрицы. 

     Далее аналогично можно показать что  z(k) (X) = lkХ , где lk – собственный вектор матрицы ?, соответствующий k-му по величине собственному числу.  
 
 
 

Матрица нагрузок
     Матрица нагрузок А , главных компонент на исходные признаки также является важной характеристикой главных компонент. Если анализируемые переменные Х предварительно пронормированы и процентрированы, то элементы иатрицы нагрузок определябт одновременно степень тесноты парной линейной связи (парный коэффициент корреляции) и удельный вес влияния пронормиронной j-й главной компоненты на признак х. 

     Матрица нагрузок определяется соотношением

где
 

Свойства  матрицы нагрузки
     Сумма квадратов элементов j-ого столбца  равна дисперсии j-ой главной компоненты. 

     Сумма квадратов элементов любой строки равна 1. 

     Приведенные свойства используются при содержательной интерпретации главных компонент.  
 

Свойство  наименьшей ошибки “автопрогноза” и  наилучшей самовоспроизводимости.
     Можно показать, что с помощью первых m' главных компонент исходных признаков  достигается наилучший прогноз этих признаков среди всех прогнозов, которые можно построить с помощью m линейных комбинаций набора из m' произвольных признаков. 

     Пусть требуется заменить исходный исследуемый m-мерный вектор Х на вектор Z меньшей  размерности m', теряя при этом не слишком много информации. Информативность нового вектора определим таким образом, чтобы она зависела от того, в какой степени m' введенных вспомогательных переменных дают возможность «реконструировать» m исходных признаков с помощью подходящих линейных комбинаций. Ошибка прогноза X по Z (обозначим через ?) будет определятся так называемой остаточной дисперсионной матрицей вектора Х при вычитании из него наилучшего прогноза по Z, т.е. матрицей ?= (?ij), где
 

     Здесь - наилучший, в смысле метода наименьших квадратов, прогноза x(i) по компонентам. Ошибка ? прогноза X по Z задается как функция от элементов матрицы ?, f(?) определяет некоторый критерий качества предсказания. 

     
       

     Здесь tr(?) и || ?|| - соответственно след и евклидова  норма матрица ?. Доказано что  f(?) достигает минимума (в обоих представлениях одновременно) тогда и только тогда, когда в качестве компонент выбраны первые m' главных компонент.
 

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

    построить матрицу ковариаций
      
    найти собственные  числа матрицы ковариации. Коэффициенты характеристического полинома находятся  разложением матрицы. Корни полинома отделяются, затем уточняются по методу Ньютона.
    полученные характеристические числа упорядочим по возрастанию (они являются дисперсиями главных компонент). Подставляя характеристические числа уравнение
      A - ?i? = 0 , где 0- нулевой вектор.
    Получаем  систему линейных однородных уравнений  с определителем равным нули и  ненулевым минором меньшего порядка. Разрешая систему находим собственный  вектор
    переходим к новым переменным (главным компонентам).
       , – новые переменные, «главные компоненты».
    строим матрицу нагрузок главных компонент на исходную совокупность.
 

Выбор и обоснование  средств реализации программы «Метод главных компонент»
    Разрабатываемая программа под рабочим названием «Метод главных компонент» направлена на взаимодействие с пользователем, поэтому для ее реализации был выбран интерфейс со свободной навигацией. Именно этот фактор является основным указателем на использование событийного программирования и объектного подхода. Для этого подходят такие современные среды визуального программирования, как C++, Delphi, Java, Visual Basic.
    Выбор конкретного языка программирования исходит  из анализа необходимых  параметров, таких как:
      скорость выполнения программы,
      возможности работы с текстовыми файлами,
      обработка исключительных ситуаций (для отслеживания ошибок выполнения программы, предупреждений о них и последующего исправления, если это возможно),
      управление памятью (для контроля загрузки оперативной памяти ПК),
      инструментарий для создания пользовательского интерфейса.
      Сравнительные таблицы выбранных языков программирования:
      Builder C++ Delphi Java Visual Basic
    Скорость  выполнения программы Выполняется быстро Выполняется быстро Выполняется быстро Работает медленнее
    Инструментарий  для создания пользовательского  интерфейса Стандартные средства Стандартные средства, возможность создания окна произвольной формы Стандартные средства Стандартные средства, возможность создания сложных нестандартных  окон и динамического изменения формы окна
    Управление  памятью Управляется программистом Управляется диспетчером  памяти Автоматическое  освобождение ресурсов Самостоятельно  управляет памятью
    Обработка исключительных ситуаций Есть необходимые  средства Есть необходимые  средства, но очень трудоемка работа с ними Есть необходимые  средства Есть необходимые  средства, возможность возврата в  блок, в котором исправлялась ошибка
    Работа  с текстовыми файлами Стандартные средства Файл можно  читать лишь с начала, нет произвольного  доступа Стандартные средства Стандартные средства
 
     Для выполнения поставленных задач лучше  всего подходят такие языки программирования, как Java и С++, но в силу экономии памяти и улучшения быстродействия был выбран C++ на платформе Builder из-за относительной простоты построения интерфейса.
    Подробный анализ выбранных языков программирования:
    C++ Builder:
    Скорость  выполнения программы Инструментарий  для создания пользовательско-го интерфейса Управление  памятью Обработка исключительных ситуаций Работа  с текстовыми файлами
    Компилируемый язык. Программа выполняется быстро, но не может исполняться на другой платформе. Машина, на которой она  выполняется, должна иметь похожую  конфигурацию. Например, если программа  использует dll, то эта библиотека должна быть установлена и на целевой машине. Создание пользовательско-го интерфейса приложения заключается  в добавлении в окно формы элементов  объектов C++ Builder, называемых компонентами. Каждый компонент C++ Builder имеет три  разновидности характеристик: свойства, события и методы. C++ Builder упрощает процесс создания программ для ОС Windows с графическим интерфейсом пользователя. При этом С++ автоматически создает исходный текст для пользовательского интерфейса: создает новые классы, объекты, вводит нужные переменные и функции. В языке C++ существуют средства выделения и освобождения памяти. Проблема состоит в том, что  программист сам отвечает за своевременное  освобождение блоков памяти после того, как в них отпадает необходимость - для этого также есть специальные  функции. Если программист забудет освободить блок, впоследствии может возникнуть нехватка. Частое  использование указателей памяти и  необходимость управления распределением памяти для программиста часто приводит к ошибкам.
    При возникновении  исключительной ситуации, которая не была перехвачена, присутствует вариант с завершением программы. Существуют инструкции для обнаружения, определения ошибки и ее обработки. Возможность открывать, закрывать, дописывать в файл. Компоненты языка позволяют удалять, вставлять  и добавлять строк, содержимое строк можно получит по номеру строки. Возможно присвоить некоторой строке текст для дальнейшей манипуляции содержимым текста как единой строкой и далее перенести исправленный текст опять в компоненты.
Проект  программы
Диаграмма классов 

    Базовый класс In
    Данные
    n : целое, static Количество  строк
    m : целое, static Количество  столбцов
    i : целое, private Счетчик
    j : целое, private Счетчик
    x[n][m] : дробное, static Матрица исходных признаков
    Функции
    inp () : public Функция ввода  размеров и матрицу исходных данных
 
    Производный класс pod
    Данные
    x[n][m] : дробное, static Матрица исходных признаков
    ss[m][m] Матрица ковариаций
    n : целое, static Количество  строк
    m : целое, static Количество  столбцов
    i : целое, private Счетчик
    j : целое, private Счетчик
    sr[m] : дробное, private Вектор средних  значений
    sig [m] : дробное, private Вектор средних  квадратичных отклонений
    d : дробное, private Дисперсия исходных признаков
    Функции
    rash() : public Функция, центрирующая и нормирующая исходные признаки
    covar() : public Функция, строящая матрицу ковариаций
 
    Производный класс harac
    Данные
    n : целое, static Количество  строк
    m : целое, static Количество  столбцов
    ss[m][m] : дробное, static Матрица ковариаций
    c[m+1] : дробное, static Вектор коэффициентов характеристического уравнения
    i : целое, private Счетчик
    j : целое, private Счетчик
    a[m][m] : дробное, private Вспомогательная матрица-буфер
    t[m][m] : дробное, private Вспомогательная матрица-буфер
    p[m] : целое, private Вектор для  вычисления перестановок
    det : дробное, private Определитель 
    Функции
    arac(): public Функция для  инициализации вспомогательных  векторов и переменных
    pril(): public Функция, заполняющая  матрицу-буфер
    determ(): public Функция для  вычисления определителя по методу Гаусса
    cut(int p, int u) : public Функция для  ”вырезания” указанной строки и столбца из матрицы
    fact(int x) : public Факториал числа  х
    xz (int tt, int i) Функция для  генерации перестановок
    elements (): public Функция для  вычисления коэффициентов характеристического уравнения
 
 
    Производный класс urv
    Данные
    c[m+1] : дробное, static Вектор коэффициентов  характеристического уравнения
    nx[m] : дробное, static Вектор собственных  чисел матрицы ковариации
    i : целое, private Счетчик
    j : целое, private Счетчик
    fx0,fx1,xi : дробное, private Вспомогательные переменные для решения характеристического  уравнения
    max, zam: дробное, private Вспомогательные переменные для сортировки
    Функции
    find() : public Функция поиска корней характеристического полинома
    sortirovka() : public Функция сортировки собственных чисел по возрастанию
 
 
    Производный класс komp
    Данные
    nx[m] : дробное, static Вектор собственных  чисел матрицы ковариации
    ss[m][m] : дробное, static Матрица ковариаций
    L[m][m] : дробное, static Матрица перехода к новым переменным - компонентам
    koo [m][m] : дробное, static Матрица Главных  компонент
    nag[m][m] : дробное, static Матрица нагрузок
    may[m] : дробное, private Собственный вектор
    t[m][m] : дробное, private Вспомогательная матрица-буфер
    Функции
    perexod() : public Построение  матрицы перехода
    komponent() : public Вычисление  Главных компонент
    hard () : public Построение  матрицы нагрузок
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

      
Диаграмма взаимодействий 

 

Диаграмма состояний
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Диаграмма действий
 
 
 
 
 
 
 
 
 
 
 
 

 

      
Диаграмма прецедентов 

 

    Формы входного документа
 
 
 

 

 

Формы выходного  документа
 


 


Тестирования  и испытание ПП

Введение

 
    Программа «МГК» предназначена для реализации метода главных компонент и выявления признаков, оказывающих влияние на конкретные компоненты.
    Для работы с программой пользователю необходимы базовые навыки работы с ПК.
    Пользователями являются системные аналитики, которых интересует влияние, оказываемое факторами на исходную совокупность. А так же ученые, проводящие статистический анализ данных. 

Исходные  данные для проведения тестирования 

Методы  тестирования программ 

     Для тестирования ПП «МГК» будет использоваться метод тестирования белого ящика, т.е. во время теста будет доступен исходный код программы. 

Эталонные значения и распределения  исходных и результирующих данных 

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

     Исходными данными в программе «МГК»  являются размерности исходной совокупности- целы числа больше 0. Исходная совокупность – матрица вещественных значений. Строка адреса – символьная строка, содержащая путь к файлу с исходными данными.
     Проведя расчеты при помощи пакета Exsel, были получены следующие эталонные значения: 

Первое  эталонное значение 

Исходные данные:
      Размерность: 20х5
      Матрица:
  Число тракторов Число комбайнов Число орудий ручной обработки Количество удобрений Количество средств  защиты растений
1 1,59 0,26 2,05 0,32 0,14
2 0,34 0,28 0,46 0,59 0,66
3 2,53 0,31
и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.