中國語文課程第二語言學習架構 學校管理人員及課程 …...中國語文課程第二語言學習架構的運用 系統層面: • 編班、分流 • 縱向檢視各級非華語學生的語文能力/個別學生的學習進程
程式語言
description
Transcript of 程式語言
程式語言程式語言
2
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
Create Random DataCreate Random Data• $mean_x[1] = 1;
$sdev_x[1] = 0.1;$mean_x[2] = -1;$sdev_x[2] = 0.15;$mean_x[3] = 1;$sdev_x[3] = 0.1;$mean_x[4] = -1;$sdev_x[4] = 0.15;
$mean_y[1] = 1;$sdev_y[1] = 0.1;$mean_y[2] = 1;$sdev_y[2] = 0.15;$mean_y[3] = -1;$sdev_y[3] = 0.1;$mean_y[4] = -1;$sdev_y[4] = 0.15;
Create Random DataCreate Random Data• @x=@y=();
open OUTFILE, ">xy.txt" or die "Cannot open gene_list.txt!\n ($!)";
for ($i=1;$i<=4;$i++){ for ($j=1;$j<=80;$j++) { $x_tmp = gaussian_rand() * $sdev_x[$i] + $mean_x[$i]; $y_tmp = gaussian_rand() * $sdev_y[$i] + $mean_y[$i];
printf(OUTFILE "%.2f \t %.2f \n", $x_tmp, $y_tmp); }}
Create Random DataCreate Random Data• for ($j=1;$j<=20;$j++)
{ $x_tmp = rand(2); $y_tmp = rand(2);
printf(OUTFILE "%.2f \t %.2f \n", $x_tmp, $y_tmp);}
Random Data GraphRandom Data Graph
7
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
CenterCenter• open (FILE1,“xy.txt”) || die “open error!” ; #FILE1¬Oradom date
open FILE2, “>aixes.txt” or die “Cannot open gene_list.txt!\n ($!)”;
@aa = <FILE1>;chomp (@aa);
# 用 @x_one 和 y_one 載 random date 的 x,y
• for ($z=0; $z<=$#aa; $z++){ $bb = $aa[$z]; $bb =~ /(\S+)\s+(\S+)/; @x_one[$z] =$1; @y_one[$z] =$2;}
CenterCenter# 計算出每點與各點的 potient, 用 @sum 裝•
while ($n <4){ @sum = 0, $bb = 0 ; for ($i=0; $i<=$#x_one ;$i++) {
for ($j=1; $j<=$#x_one; $j++) { $bb = exp ( -(($x_one[$i]-$x_one[$j])**2 + ($y_one[$i] - $y_one[$j])**2 ));
@sum[$i] += $bb; }
}
10
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
11
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
CenterCenter比較各點的 potient, 找出最高值為 cluster center $mix = $sum[0], $num = 0; for($k=1; $k<=$#x_one ; $k++){ if ( $sum[$k] > $mix ) { $mix = $sum[$k]; $num = $k ; }} print $x_one[$num]." , ".$y_one[$num]."\n";
printf(FILE2 "%s : %.2f , %.2f %s \n","cluster center", $x_one[$num], $y_one[$num], $m);
• Find cluster center!
14
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
15
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
CenterCenter• 計算出各點與 center 間的距離 -@dis
@dis =(); for ($c=0; $c<$#x_one;$c++) {
if ($c != $num) { $dis[$c] = ( ($x_one[$num] - $x_one[$c])**2 + ($y_one[$num] - $y_one[$c])**2 )**0.5 ;
}
}
centercenter• 比較各點之間的唔離大小 - 找出較小的距
離 -@sort
@sort = (); @sort = sort {$a <=> $b} @dis ;
centercenter• 把 cluster center 附近的點
@del = (); for ($d=0; $d<=90;$d++) { for ($c=0; $c<=$#dis;$c++) { if ($sort[$d] == $dis[$c]) { print OUTFILE “$x_one[$c] \t $y_one[$c] \t $m \n”); @del[$d] = $c; } } }
19
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
20
Subtractive ClusteringSubtractive Clustering
Repeat while any point (xi) is left to be
assigned to a cluster
a) Use Eq. (1) to get the potential of xi
b) Find the point with the highest potential and choose
it as the kth cluster center
c) Form the kth cluster by assigning N points closest to
the centroid (Euclidean distance)
d) Remove the chosen N points
n
j jii xxP1
2)exp( (1
)
CenterCenter• foreach (@del)
{ $x_one[$_] = shift; $y_one[$_] = shift;
}
for ($f=0, $g=0 ;$f<=$#x_one;$f++){ if ($x_one[$f] != "" and $y_one[$f] != "") { $x_one[$g] = $x_one[$f] ; $y_one[$g] = $y_one[$f] ; $g++;
}}
CenterCenter• for($e=0; $e<90; $e++)
{pop @x_one;pop @y_one;
}
$n++; $m++;}
Final Subtractive Clustering Final Subtractive Clustering Graph Graph