2010年4月1日

          最近在擺弄數(shù)據(jù)離散度的時(shí)候遇到一種圖形,叫做盒圖(boxplot)。它對于顯示數(shù)據(jù)的離散的分布情況效果不錯(cuò)。

          盒圖是在1977年由美國的統(tǒng)計(jì)學(xué)家約翰·圖基(John Tukey)發(fā)明的。它由五個(gè)數(shù)值點(diǎn)組成:最小值(min),下四分位數(shù)(Q1),中位數(shù)(median),上四分位數(shù)(Q3),最大值(max)。也可以往盒圖里面加入平均值(mean)。如上圖。下四分位數(shù)、中位數(shù)、上四分位數(shù)組成一個(gè)“帶有隔間的盒子”。上四分位數(shù)到最大值之間建立一條延伸線,這個(gè)延伸線成為“胡須(whisker)”。
          由于現(xiàn)實(shí)數(shù)據(jù)中總是存在各式各樣地“臟數(shù)據(jù)”,也成為“離群點(diǎn)”,于是為了不因這些少數(shù)的離群數(shù)據(jù)導(dǎo)致整體特征的偏移,將這些離群點(diǎn)單獨(dú)匯出,而盒圖中的胡須的兩級修改成最小觀測值與最大觀測值。這里有個(gè)經(jīng)驗(yàn),就是最大(最小)觀測值設(shè)置為與四分位數(shù)值間距離為1.5個(gè)IQR(中間四分位數(shù)極差)。即

          • IQR = Q3-Q1,即上四分位數(shù)與下四分位數(shù)之間的差,也就是盒子的長度。
          • 最小觀測值為min = Q1 - 1.5*IQR,如果存在離群點(diǎn)小于最小觀測值,則胡須下限為最小觀測值,離群點(diǎn)單獨(dú)以點(diǎn)匯出。如果沒有比最小觀測值小的數(shù),則胡須下限為最小值。
          • 最大觀測值為max = Q3 -1.5*IQR,如果存在離群點(diǎn)大于最大觀測值,則胡須上限為最大觀測值,離群點(diǎn)單獨(dú)以點(diǎn)匯出。如果沒有比最大觀測值大的數(shù),則胡須上限為最大值。
          通過盒圖,在分析數(shù)據(jù)的時(shí)候,盒圖能夠有效地幫助我們識別數(shù)據(jù)的特征:
          1. 直觀地識別數(shù)據(jù)集中的異常值(查看離群點(diǎn))。
          2. 判斷數(shù)據(jù)集的數(shù)據(jù)離散程度和偏向(觀察盒子的長度,上下隔間的形狀,以及胡須的長度)。

          posted @ 2010-04-01 22:22 Norvid 閱讀(71729) | 評論 (9)編輯 收藏


          2008年4月14日

          原文:http://java.ccidnet.com/art/3539/20080413/1418265_1.html

          步驟:

          1.生成證書

          在任意目錄下輸入以下命令:
          %Java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA

          依據(jù)提示輸入各種信息。其中密碼一項(xiàng),Tomcat的keystore默認(rèn)密碼是“changeit”。完成后,keytool會在你的用戶主目錄下生成一個(gè)“.keystore”的文件。

          2.配置Tomcat

          修改Tomcat的$CATALINA_HOME/conf/server.xml配置文件。找到如下內(nèi)容:
          < !--
          < Connector
          port="8443" minProcessors="5" maxProcessors="75" enableLookups="true" disableUploadTimeout="true" acceptCount="100" debug="0" scheme="https" secure="true"; clientAuth="false" sslProtocol="TLS"/>
          -->
          去掉注釋,同時(shí)增加keystoreFile和keystorePass這兩個(gè)屬性,指定你存放證書的路徑(如:keystoreFile="C:/.keystore")和剛才設(shè)置的密碼(如:keystorePass="123456")。

          3.啟動(dòng)Tomcat

          啟動(dòng)Tomcat,然后輸入地址如https://localhost:8443即可訪問。

          posted @ 2008-04-14 22:21 Norvid 閱讀(515) | 評論 (0)編輯 收藏


          2008年3月21日

          在08年3月期的“程序員”中,潘加宇的“用例有粒度嗎”這篇文章感覺非常好,讓我有種茅塞頓開之感。遂作筆記如下。
          1. 做用例前,要先弄清楚研究對象是什么,并時(shí)刻提醒自己不要偏離主題。不然會發(fā)生“患者到醫(yī)院掛號”,或者“患者到醫(yī)院信息系統(tǒng)看病”之類的笑話。
          2. 只要在形式上能寫出符合需求標(biāo)準(zhǔn)的路徑、步驟,都可以作為用例。注意,是“可以”,并不是“一定”。
          3. 做用例分析時(shí)最常犯的錯(cuò)誤是:把步驟當(dāng)作用例。如“取款”用例中的“驗(yàn)證密碼”與“扣除帳戶金額”,它們是“取款”用例的步驟,而不是其子用例。
          4. include的目的是為了復(fù)用有價(jià)值的步驟集合。形式往往是多個(gè)大用例include一個(gè)可復(fù)用的用例,即“多個(gè)老大include一個(gè)小弟”。
          5. 用例是否用對了的一個(gè)判斷標(biāo)準(zhǔn)是:其是否加強(qiáng)了和涉眾的聯(lián)系。如多級審批中,局長樂意跟科長共享一個(gè)審批功能嗎?
          6. 層次問題的出現(xiàn)常常是因?yàn)榘蜒芯繉ο笈e(cuò)了,或者將系統(tǒng)契約與非契約混在一起。如將醫(yī)院的職責(zé)“強(qiáng)加”給了醫(yī)院信息系統(tǒng)。
          7. 講究“復(fù)用”不是需求要考慮的事情,而是設(shè)計(jì)要考慮的。高煥堂老師說:需求是收益面,設(shè)計(jì)是成本面。
          8. 用例的步驟應(yīng)該是回合制的,一個(gè)回合內(nèi)包括一下幾類步驟:
            • 1.執(zhí)行者請求;
            • 2.系統(tǒng)驗(yàn)證(可選);
            • 3.系統(tǒng)改變(可選);
            • 4.系統(tǒng)回應(yīng)。

          posted @ 2008-03-21 00:08 Norvid 閱讀(882) | 評論 (0)編輯 收藏


          2008年3月19日

          在一些大數(shù)據(jù)量的應(yīng)用中,通常會將一些數(shù)據(jù)量大的表分成多個(gè)。最簡單的情況是設(shè)置一個(gè)實(shí)時(shí)表,用來保存最近一段時(shí)間的數(shù)據(jù),我們叫它recent_data;同時(shí)又有一個(gè)保存歷史數(shù)據(jù)的表,名叫history_data。當(dāng)然,也可以采用一段時(shí)間一個(gè)表的方式,如一個(gè)月一張表:data_200803。

          recent_data保存最新的數(shù)據(jù),通常是為了提供預(yù)覽、監(jiān)視等對顯示速度要求高的功能,使用者此時(shí)往往是想要一個(gè)數(shù)據(jù)的大概印象,因此響應(yīng)速度十分重要;而history_data則面向詳細(xì)查詢,這時(shí)使用者關(guān)注的數(shù)據(jù),因此,慢是可以接受的。

          介紹背景介紹得有點(diǎn)跑題了,還是回來說說正題。面對recent_data和history_data這兩張表要使用hibernate進(jìn)行封裝時(shí),該怎么解決呢?

          這里有三個(gè)方法。

          1. 使用古老而笨拙的方法——為每個(gè)table建立一個(gè)class,如RecentData和HistoryData。然后在上層程序中使用這兩個(gè)類。
          優(yōu)點(diǎn):簡單,方便,快捷,還不費(fèi)腦子!(僅對負(fù)責(zé)Hibernate封裝的人來說……)
          缺點(diǎn):上層使用極其復(fù)雜,明明就是同一個(gè)東西,偏偏弄成兩個(gè)對象,要寫兩套實(shí)現(xiàn)……&@&*¥#%

          2. 建立一個(gè)基類Data,然后派生出RecentData和HistoryData,分別映射兩個(gè)表。派生出的兩個(gè)類不用寫什么東西,僅僅是extends了Data就行了。對外一致以基類Data出現(xiàn),這樣上層使用時(shí),就可以統(tǒng)一用Data類了。此法為第一種方法的改進(jìn)版,也是我偏愛的解決方法。
          優(yōu)點(diǎn):Hibernate映射簡單,上層使用也簡單
          缺點(diǎn):多了兩個(gè)類,盡管里面啥也沒有

          3. 使用Hibernate3新增加的entity-name特性,用一個(gè)類來映射多個(gè)table。這里有一個(gè)詳細(xì)的例子(http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=3150)
          優(yōu)點(diǎn):不用定義那么多類,映射也挺簡單
          缺點(diǎn):Hibernate3才有此功能(如果你還在用之前的版本的話……)

          -- EOF --


          posted @ 2008-03-19 23:58 Norvid 閱讀(1762) | 評論 (0)編輯 收藏


          2008年2月23日

               摘要: 原文:http://today.java.net/pub/a/today/2008/02/12/reflection-in-action.html 你曾經(jīng)為IDE會自動(dòng)的列舉出所有你所編寫的類的詳情,甚至連私有的字段和方法也“難逃魔掌”而感到驚訝嗎?此外,這些IDE居然還能夠識別那些并不提供源碼并壓縮成JAR文件的類。它們是怎么做到的? 這些都是因?yàn)榉瓷洹? ...  閱讀全文

          posted @ 2008-02-23 11:37 Norvid 閱讀(977) | 評論 (0)編輯 收藏


          僅列出標(biāo)題  

          posts - 0, comments - 9, trackbacks - 0, articles - 13

          Copyright © Norvid

          主站蜘蛛池模板: 九龙县| 神池县| 红桥区| 双鸭山市| 陇西县| 鹤壁市| 麦盖提县| 崇礼县| 屯留县| 泰顺县| 屏南县| 丰宁| 澜沧| 永寿县| 申扎县| 江津市| 攀枝花市| 盐边县| 麻城市| 阜阳市| 友谊县| 静海县| 惠东县| 石家庄市| 虎林市| 图木舒克市| 唐海县| 泌阳县| 柞水县| 江门市| 紫阳县| 沛县| 德州市| 南郑县| 巍山| 井陉县| 峨边| 永嘉县| 延津县| 仙居县| 上杭县|