
2011年9月14日
摘要: if 語句
使用命令的退出狀態
比較和測試輸入和文件
if/then/else 結構
if/then/elif/else 結構
使用和測試位置參數
嵌套 if 語句
布爾表達式
使用 case 語句
閱讀全文
posted @
2011-10-18 15:17 柳桐 閱讀(426) |
評論 (0) |
編輯 收藏
future
支持2套模板:Struts1+Spring2+iBatis2;Struts2+Spring3+Hibernate3
考慮支持grails
version0.3.0
模型定義自動填充默認值:
必填項,field和javaType必填,
chs字段應為label,默認為field;
inputItem預填,autoIncrement="true" -> inputItem="false";
itemType項類型預填,方案未定。
支持反向生成,從demo代碼生成模板
import更有針對性,能夠針對不同類
單元測試
version0.2.0
Y 模型定義自動填充默認值:
表名默認值${package}_${首字母小寫clazz};
列名默認為Java字段名;列類型默認為Java對應的類型(除特殊類型外);列長度默認值由字段類型確定;
Dto和Form中的import類自動識別,填入到table/import節點下
Y 支持一對多,下拉列表;以及對自身的一對多;允許一對多時,關聯項為空
N 支持多對多的實體關系,復選框;
Y 生成maven的項目
Y 將Integer.parseInt和Long.parseLong改為Integer.valueOf和Long.valueOf
Y Dto和Form默認值
posted @
2011-10-15 11:15 柳桐 閱讀(209) |
評論 (0) |
編輯 收藏
摘要: 轉載請注明出處 http://www.aygfsteel.com/fireflyk/ 接上文,[OSGi] OSGi + Spring + Web Demo [1] 1. 同樣方法創建helloworldweb Bundle,用Maven方式創建并轉為PDE Tools。 2. &nb...
閱讀全文
posted @
2011-10-09 13:12 柳桐 閱讀(3388) |
評論 (2) |
編輯 收藏
轉載請注明出處 http://www.aygfsteel.com/fireflyk/archive/2011/09/25/359447.html
1. 分類
1.1 定義:通過學習得到一個目標函數f,把每個屬性集x映射到一個預先定義的類標號y。

狹隘地說,有大量數據,預先知道所有的類型,但無法分類,通過將數據的多個屬性維度來推測每條數據項屬于哪個類型。(男,高,瘦,帥) -> 極品帥哥,(男,矮,胖,丑) -> 猥瑣男。
嚴格來說,“分類”可以用于描述性建模和預測性建模。
1.2 應用場景
適合預測或描述二元或標稱的,對于序數分類,分類技術不太有效,其他形式的聯系會被忽略。(復習:標稱的,=和≠,教師和工人;序數的,<和>,收入高和收入低)
例如,前幾天看的一個科學研究,個人認為不適合用分類來做。科學家找來志愿者,按臀圍大小分為兩組做智商測試,發現臀圍大的明顯比臀圍小的智商測試結果高。于是得出結論,臀圍大的智商高。我認為,這就是最明顯的一個錯誤,智商高低是序數分類,不能用分類方法來做。它隱藏了一些內在聯系,例如智商高的相對來說愛學習、坐辦公室、少運動導致肥胖、臀圍大。而不是你把臀圍搞大就一定能智商高!
1.3 實現方法
訓練數據 -> 學習模型 -> 模型 -> 應用模型 -> 校驗數據
簡單說就是先訓練,得出結論再校驗。分類方法包括決策樹分類法、基于規則的分類法、神經網絡、支持向量機和樸素貝葉斯分類法。
模型準確率 = 正確預測數 / 總數
2. 決策樹分類
2.1 定義
圖2-1
如上圖,通過提出一系列精心構思的問題,可以解決分類問題,每當一個問題得到答案,后續問題將隨之解決。
根節點、內部節點都是非終結點,是屬性測試條件。葉節點也是終結點,是分類結果。
2.2 建立決策樹
Hunt算法,是許多決策樹算法的基礎,包括ID3,C4.5,CART。
訓練數據集,(Tid, 有房者, 婚姻狀況, 年收入, 拖欠貸款),具體數據見《數據挖掘導論》P94。
大量數據是不拖欠貸款的,所以選取類標號,“拖欠貸款=否”。然后選擇測試條件“有房者”。接下來,再看生成數種,哪個葉子節點是無法確定到類標號的,無法確定的遞歸調用如上步驟,選取測試條件“婚姻狀況”,然后是“年收入”。一棵決策樹建立好了,為何按照這樣的順序?后邊解釋。
測試條件,可以是二元的(男,女),標稱的(單身、已婚、離異),序數的(S號,M號,L號,XL號,分類結果不能是序數的,但是測試條件可以是序數的),連續的(工資是連續屬性)。
2.3 選擇最佳的劃分度量
p(i|t)表示給定節點t中屬于類i的記錄所占的比例,有時候省略t,直接用pi表示。這里介紹不純性(我稱它為區分度,數字越小,區分度越大)度量的一種方法,c是類的個數,

2.3.1 二元屬性劃分
劃分A,結點N1,類C0,4個,類C1,3個;結點N2,類C0,2個,類C1,3個。
Gini(1) = 1-(4/7)2-(3/7)2 = 24/49
Gini(2) = 1-(2/5)2-(3/5)2 = 12/25
加權Gini = Gini(1) * 7/12 + Gini(2) * 5/12 = 0.486
劃分B,同理得到Gini=0.371,由此說明劃分B更好。
2.3.2 標稱屬性劃分
與二元屬性(一個屬性,屬性值多元)劃分衡量方法相同,有三元或多元(一個屬性,屬性值多元)的情況,根據計算Gini來決定如何劃分(可以劃分為多路劃分,不局限于兩路劃分)。
2.3.3 連續屬性劃分
把訓練集中每一項都作為一個“<=測試條件”,列出每一個結點下的C0數量和C1數量,計算每一個點的Gini。而事實上,不用每一個點都計算。如《數據挖掘導論》P100中,60,70,75連續且類標號相同,120,125,220連續且類標號相同,所以劃分點選取不能切斷他們,所以這幾個點不用計算Gini值。
2.4 決策樹歸納特點
會有重復的數據碎片,即存在相同兩棵子樹,如圖2-1。
目前為止,每個測試條件只包含一個屬性,對于x1+x2<1,也是可以允許的,稱為斜決策樹。
posted @
2011-09-25 13:49 柳桐 閱讀(891) |
評論 (0) |
編輯 收藏
轉載請注明出處 http://www.aygfsteel.com/fireflyk/archive/2011/09/18/358922.html
網上找了很多例子,看了很多資料發現都不能完全重現一個OSGi的Web Demo
本文結合了《OSGi原理與最佳實踐》+公司同事的《OSGi開發》+自己的理解。
環境WindowXP + eclipse3.4 + Spring OSGi1.2.1
1. 創建timeservice Bundle,提供輸出時間的功能
1.1 eclipse內創建Maven Project,選quickstart project:timeservice,package org.osgichina.demo.timeservice
1.2 創建好后,remove maven的jar包,刪掉project中的App和AppTest,在項目上右鍵->PDE Tools->Convert
1.3
package org.osgichina.demo.timeservice;
public interface TimeService {
String getCurrentTime();
}
public class TimeServiceImpl implements TimeService {
public String getCurrentTime() {
return (new Date()).toString();
}
}
1.4 Spring配置
配置放在META-INF/spring目錄下,框架啟動時會按照這個路徑去尋找配置文件
timeservice.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- timeService bean -->
<bean name="timeService" class="org.osgichina.demo.timeservice.impl.TimeServiceImpl" />
</beans>
timeservice-osgi.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/osgi http://www.springframework.org/schema/osgi/spring-osgi.xsd">
<!-- 將timeService 這個bean發布為OSGi服務的定義-->
<osgi:service id="osgiTimeService" ref="timeService" interface="org.osgichina.demo.timeservice.TimeService">
</osgi:service>
</beans>
這個Bundle到此已經完成了,下一節會講解helloworldweb Bundle,涉及Import Package,OSGi的啟動,Spring+Web的配置等
posted @
2011-09-18 21:13 柳桐 閱讀(2353) |
評論 (1) |
編輯 收藏
簡單介紹,Grails是Groovy的Web框架,可以從名字看出它的特點Groovy+rails=Grails
今天在單位開講前,同事笑稱講座題目是Girls,呵呵,可別看錯了。閑言少敘,下面是例子。
環境WindowsXP
HelloWorld Demo1. 解壓groovy1.8.1和grails1.3.7,分別設定GROOVY_HOME和GRAILS_HOME
2. f: 回車 mkdir grails-app 回車 cd grails-app
3. grails create-app 回車 racetrack
4. cd racetrack 回車 grails run-app
5. 訪問 http://localhost:8080/racetrack/
CRUD Demo1. 接著如上操作。在racetrack路徑,
grails create-domain-class 回車 Race 回車
grails create-domain-class 回車 Registration
2. Race.groovy
class Race {
String name
Date startDateTime
String city
String state
Float distance
Float cost
Integer maxRunners = 10000
static hasMany = [registration:Registration]
}
Registration.groovy
class Registration {
Race race
String name
Date dataOfBirth
String gender = 'F'
String postalAddress
String emailAddress
Date createdAt = new Date()
static belongsTo = Race
static optionals = ["postalAddress", "gender"]
}
3. grails create-controller 回車 Race 回車
grails create-controller 回車 Registration
Race.groovy
class RaceController {
def scaffold = Race
}
Registraion.groovy
class RegistrationController {
def scaffold = Registration
}
4. 運行

這個CRUD的例子,不僅支持增刪改查,還支持一對多的關聯關系,之后會有詳細的介紹。
posted @
2011-09-16 21:32 柳桐 閱讀(627) |
評論 (0) |
編輯 收藏
使用Maven開發dashboard,發現report.jar不是用Maven開發的,怎么用Maven依賴report.jar呢?
命令如下:
mvn install:install-file -DgroupId=<your_group_name> -DartifactId=<your_artifact_name> -Dversion=<snapshot> -Dfile=<path_to_your_jar_file> -Dpackaging=jar -DgeneratePom=true
示例:
mvn install:install-file -DgroupId=com.bupt.liutong -DartifactId=report -Dversion=1.0 -Dfile=e:/report.jar -Dpackaging=jar -DgeneratePom=true
執行成功后,
在pom.xml文件中添加:
<dependency>
<groupId>com.bupt.liutong</groupId>
<artifactId>report</artifactId>
<version>1.0</version>
</dependency>
posted @
2011-09-14 13:05 柳桐 閱讀(2005) |
評論 (0) |
編輯 收藏