Main Content

라이브 편집기를 활용하여 탐색적 프로그래밍 가속화

다음은 라이브 편집기를 활용하여 탐색적 프로그래밍을 가속화하는 방법에 대한 예제입니다. 이 예제에서는 라이브 편집기를 사용하여 다음 작업을 수행할 수 있는 방법을 보여줍니다.

  • 출력값을 생성한 코드와 함께 출력값 표시

  • 프로그램을 섹션으로 나눠 개별적으로 코드 블록 실행

  • 시각화 기능 포함시키기

  • 컨트롤을 사용하여 파라미터 값 시험

  • 결과 요약과 공유

고속도로 사망률 데이터 불러오기

라이브 편집기에는 출력값을 생성한 코드와 출력값이 함께 표시됩니다. 섹션을 실행하려면 라이브 편집기 탭으로 이동하여 섹션 실행 버튼을 선택하십시오. 마우스를 섹션의 왼쪽 가장자리로 이동할 때 표시되는 파란색 표시줄을 클릭해도 됩니다.

이 예제에서는 일부 고속도로 사망률 데이터를 탐색해 보겠습니다. 먼저 데이터를 불러와 보겠습니다. 변수는 테이블의 열 제목으로 표시됩니다.

load fatalities
fatalities(1:10,:)
ans=10×8 table
                            longitude    latitude    deaths    drivers    vehicles    vehicleMiles    alcoholRelated    urbanPopulation
                            _________    ________    ______    _______    ________    ____________    ______________    _______________

    Wyoming                  -107.56      43.033      164      380.18      671.53         9261              54              65.226     
    District_of_Columbia     -77.027      38.892       43      349.12       240.4         3742              12                 100     
    Vermont                  -72.556      44.043       98      550.46      551.52         7855              20              38.196     
    North_Dakota               -99.5      47.469      100      461.78      721.84         7594              35              55.807     
    South_Dakota             -99.679      44.272      197       563.3      882.77         8784              76              51.923     
    Delaware                 -75.494      39.107      134      533.94      728.52         9301              48              80.021     
    Montana                  -110.58      46.867      229      712.88      1056.7        11207             100              54.031     
    Rhode_Island             -71.434      41.589       83      741.84       834.5         8473              41              90.936     
    New_Hampshire            -71.559      43.908      171      985.77      1244.6        13216              51              59.181     
    Maine                    -69.081      44.886      194      984.83      1106.8        14948              58              40.206     

사망률 계산하기

라이브 편집기를 사용하여 프로그램을 텍스트, 코드, 출력값이 포함된 섹션으로 나눌 수 있습니다. 새로운 섹션을 생성하려면 라이브 편집기 탭으로 이동하여 섹션 나누기 버튼을 클릭하십시오. 섹션의 코드는 개별적으로 실행할 수 있기 때문에 프로그램을 작성하면서 손쉽게 아이디어를 탐색할 수 있습니다.

차량 주행 거리 100만 마일당 사망률을 계산해 보겠습니다. 이 값을 통해 사망률이 가장 낮은 주와 가장 높은 주를 찾을 수 있습니다.

states = fatalities.Properties.RowNames;
rate = fatalities.deaths./fatalities.vehicleMiles;
[~, minIdx] = min(rate);                  % Minimum accident rate
[~, maxIdx] = max(rate);                  % Maximum accident rate
disp([states{minIdx} ' has the lowest fatality rate at ' num2str(rate(minIdx))])
Massachusetts has the lowest fatality rate at 0.0086907
disp([states{maxIdx} ' has the highest fatality rate at ' num2str(rate(maxIdx))])
Mississippi has the highest fatality rate at 0.022825

사망률 분포

프로그램에 시각화 기능을 포함시킬 수 있습니다. 출력값처럼, 플롯과 Figure를 생성한 코드와 플롯, Figure가 함께 표시됩니다.

막대 차트를 사용하여 미국 주의 사망률 분포를 확인할 수 있습니다. 사망률이 차량 주행 거리 100만 마일당 0.02명을 초과한 주는 11개입니다.

histogram(rate,10)
xlabel('Fatalities per Million Vehicle Miles')
ylabel('Number of States')

데이터에서 상관관계 찾기

라이브 편집기에서 파라미터 값을 시험하여 결과가 어떻게 변화하는지를 확인하면 데이터를 신속하게 탐색할 수 있습니다. 대화형 방식으로 파라미터 값을 변경하려면 컨트롤을 추가하십시오. 컨트롤을 추가하려면 라이브 편집기 탭으로 이동하여 컨트롤 버튼을 클릭한 다음 사용 가능한 옵션 중에서 선택하십시오.

데이터를 시험하여 테이블의 변수가 고속도로 사망률과 상관관계가 있는지 확인할 수 있습니다. 예를 들어, 주의 도시 인구 비율이 높을수록 고속도로 사망률이 낮은 것으로 보입니다.

dataToPlot = "urbanPopulation";
close                                      % Close any open figures
scatter(fatalities.(dataToPlot),rate)         % Plot fatalities vs. selected variable
xlabel(dataToPlot)
ylabel('Percent Fatalities per Million Vehicle Miles') 

hold on
xmin = min(fatalities.(dataToPlot));
xmax = max(fatalities.(dataToPlot));
p = polyfit(fatalities.(dataToPlot),rate,1);  % Calculate & plot least squares line
plot([xmin xmax], polyval(p,[xmin xmax]))

미국 지도에 사망률과 도시화 비율 플로팅하기

결과를 요약하고 동료들과 라이브 스크립트를 공유합니다. 동료들은 라이브 스크립트를 사용하여 분석을 다시 생성하고 확장할 수 있습니다. 퍼블리시를 위해 분석을 HTML, Microsoft® Word 또는 PDF 문서로 저장할 수도 있습니다.

이 분석을 기반으로 미국 본토 지도에 사망률과 도시 인구 비율을 플롯으로 그려 결과를 요약할 수 있습니다.

load usastates.mat
figure
geoplot([usastates.Lat], [usastates.Lon], 'black')
geobasemap darkwater
hold on
geoscatter(fatalities.latitude,fatalities.longitude,2000*rate,fatalities.urbanPopulation,'filled')
c = colorbar;
title(c,'Percent Urban')

관련 항목