?? form1.cs.txt
字號:
//計算"edu4_6"+"edu1_3, edu7_9, edu10_12, edu13_14, edu15_16"的gini
D3.Clear();
D4.Clear();
D3.AddRange(d2);
D4.AddRange(d1);
D4.AddRange(d3);
D4.AddRange(d4);
D4.AddRange(d5);
D4.AddRange(d6);
gini = (double)D3.Count / d.Count * Gini(D3) + (double)D4.Count / d.Count * Gini(D4);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "education";
giniSplit.giniSplitCriterion.descriptionList.Add("edu4_6");
giniSplit.giniSplitCriterion.descriptionList.Add("edu1_3, edu7_9, edu10_12, edu13_14, edu15_16");
giniSplit.giniSplitCriterion.splitList.Add(D3);
giniSplit.giniSplitCriterion.splitList.Add(D4);
}
else
{
D3.Clear();
D4.Clear();
}
//計算"edu7_9"+"edu1_3, edu4_6, edu10_12, edu13_14, edu15_16"的gini
D5.Clear();
D6.Clear();
D5.AddRange(d3);
D6.AddRange(d1);
D6.AddRange(d2);
D6.AddRange(d4);
D6.AddRange(d5);
D6.AddRange(d6);
gini = (double)D5.Count / d.Count * Gini(D5) + (double)D6.Count / d.Count * Gini(D6);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "education";
giniSplit.giniSplitCriterion.descriptionList.Add("edu7_9");
giniSplit.giniSplitCriterion.descriptionList.Add("edu1_3, edu4_6, edu10_12, edu13_14, edu15_16");
giniSplit.giniSplitCriterion.splitList.Add(D5);
giniSplit.giniSplitCriterion.splitList.Add(D6);
}
else
{
D5.Clear();
D6.Clear();
}
//計算"edu10_12"+"edu1_3, edu4_6, edu7_9, edu13_14, edu15_16"的gini
D7.Clear();
D8.Clear();
D7.AddRange(d4);
D8.AddRange(d1);
D8.AddRange(d2);
D8.AddRange(d3);
D8.AddRange(d5);
D8.AddRange(d6);
gini = (double)D7.Count / d.Count * Gini(D7) + (double)D8.Count / d.Count * Gini(D8);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "education";
giniSplit.giniSplitCriterion.descriptionList.Add("edu10_12");
giniSplit.giniSplitCriterion.descriptionList.Add("edu1_3, edu4_6, edu7_9, edu13_14, edu15_16");
giniSplit.giniSplitCriterion.splitList.Add(D7);
giniSplit.giniSplitCriterion.splitList.Add(D8);
}
else
{
D7.Clear();
D8.Clear();
}
//計算"edu13_14"+"edu1_3, edu4_6, edu7_9, edu10_12, edu15_16"的gini
D9.Clear();
D10.Clear();
D9.AddRange(d5);
D10.AddRange(d1);
D10.AddRange(d2);
D10.AddRange(d3);
D10.AddRange(d4);
D10.AddRange(d6);
gini = (double)D9.Count / d.Count * Gini(D9) + (double)D10.Count / d.Count * Gini(D10);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "education";
giniSplit.giniSplitCriterion.descriptionList.Add("edu13_14");
giniSplit.giniSplitCriterion.descriptionList.Add("edu1_3, edu4_6, edu7_9, edu10_12, edu15_16");
giniSplit.giniSplitCriterion.splitList.Add(D9);
giniSplit.giniSplitCriterion.splitList.Add(D10);
}
else
{
D9.Clear();
D10.Clear();
}
//計算"edu15_16"+"edu1_3, edu4_6, edu7_9, edu10_12, edu13_14"的gini
D11.Clear();
D12.Clear();
D11.AddRange(d6);
D12.AddRange(d1);
D12.AddRange(d2);
D12.AddRange(d3);
D12.AddRange(d4);
D12.AddRange(d5);
gini = (double)D11.Count / d.Count * Gini(D11) + (double)D12.Count / d.Count * Gini(D12);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "education";
giniSplit.giniSplitCriterion.descriptionList.Add("edu15_16");
giniSplit.giniSplitCriterion.descriptionList.Add("edu1_3, edu4_6, edu7_9, edu10_12, edu13_14");
giniSplit.giniSplitCriterion.splitList.Add(D11);
giniSplit.giniSplitCriterion.splitList.Add(D12);
}
else
{
D11.Clear();
D12.Clear();
}
return giniSplit;
}
//計算"occupation"屬性的Ginioccupation
//occupationType共14類:Tech_support, Craft_repair, Other_service, Sales, Exec_managerial, Prof_specialty,
// Handlers_cleaners, Machine_op_inspct, Adm_clerical, Farming_fishing, Transport_moving,
// Priv_house_serv, Protective_serv, Armed_Forces
//計算"occupation"屬性的Gini
//occupationType { Tech_support, Craft_repair, Other_service, Sales, Exec_managerial, Prof_specialty }
private GiniSplit Ginioccupation(ArrayList d)
{
double gini;
ArrayList d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14;
ArrayList D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12;
ArrayList D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28;
GiniSplit giniSplit = new GiniSplit();
giniSplit.gini = 1;
D1 = new ArrayList();
D2 = new ArrayList();
D3 = new ArrayList();
D4 = new ArrayList();
D5 = new ArrayList();
D6 = new ArrayList();
D7 = new ArrayList();
D8 = new ArrayList();
D9 = new ArrayList();
D10 = new ArrayList();
D11 = new ArrayList();
D12 = new ArrayList();
D13 = new ArrayList();
D14 = new ArrayList();
D15 = new ArrayList();
D16 = new ArrayList();
D17 = new ArrayList();
D18 = new ArrayList();
D19 = new ArrayList();
D20 = new ArrayList();
D21 = new ArrayList();
D22 = new ArrayList();
D23 = new ArrayList();
D24 = new ArrayList();
D25 = new ArrayList();
D26 = new ArrayList();
D27 = new ArrayList();
D28 = new ArrayList();
d1 = CopySmallCollection(d, "occupation", occupationType.Tech_support);
d2 = CopySmallCollection(d, "occupation", occupationType.Craft_repair);
d3 = CopySmallCollection(d, "occupation", occupationType.Other_service);
d4 = CopySmallCollection(d, "occupation", occupationType.Sales);
d5 = CopySmallCollection(d, "occupation", occupationType.Exec_managerial);
d6 = CopySmallCollection(d, "occupation", occupationType.Prof_specialty);
d7 = CopySmallCollection(d, "occupation", occupationType.Handlers_cleaners);
d8 = CopySmallCollection(d, "occupation", occupationType.Machine_op_inspct);
d9 = CopySmallCollection(d, "occupation", occupationType.Adm_clerical);
d10 = CopySmallCollection(d, "occupation", occupationType.Farming_fishing);
d11 = CopySmallCollection(d, "occupation", occupationType.Transport_moving);
d12 = CopySmallCollection(d, "occupation", occupationType.Priv_house_serv);
d13 = CopySmallCollection(d, "occupation", occupationType.Protective_serv);
d14 = CopySmallCollection(d, "occupation", occupationType.Armed_Forces);
//計算"Tech_support"+"其它職業"的gini
D1.Clear();
D2.Clear();
D1.AddRange(d1);
D2.AddRange(d2);
D2.AddRange(d3);
D2.AddRange(d4);
D2.AddRange(d5);
D2.AddRange(d6);
D2.AddRange(d7);
D2.AddRange(d8);
D2.AddRange(d9);
D2.AddRange(d10);
D2.AddRange(d11);
D2.AddRange(d12);
D2.AddRange(d13);
D2.AddRange(d14);
gini = (double)D1.Count / d.Count * Gini(D1) + (double)D2.Count / d.Count * Gini(D2);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "occupation";
giniSplit.giniSplitCriterion.descriptionList.Add("Tech_support");
giniSplit.giniSplitCriterion.descriptionList.Add("其它職業");
giniSplit.giniSplitCriterion.splitList.Add(D1);
giniSplit.giniSplitCriterion.splitList.Add(D2);
}
else
{
D1.Clear();
D2.Clear();
}
//計算"Craft_repair"+"其它職業"的gini
D3.Clear();
D4.Clear();
D3.AddRange(d2);
D4.AddRange(d1);
D4.AddRange(d3);
D4.AddRange(d4);
D4.AddRange(d5);
D4.AddRange(d6);
D4.AddRange(d7);
D4.AddRange(d8);
D4.AddRange(d9);
D4.AddRange(d10);
D4.AddRange(d11);
D4.AddRange(d12);
D4.AddRange(d13);
D4.AddRange(d14);
gini = (double)D3.Count / d.Count * Gini(D3) + (double)D4.Count / d.Count * Gini(D4);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "occupation";
giniSplit.giniSplitCriterion.descriptionList.Add("Craft_repair");
giniSplit.giniSplitCriterion.descriptionList.Add("其它職業");
giniSplit.giniSplitCriterion.splitList.Add(D3);
giniSplit.giniSplitCriterion.splitList.Add(D4);
}
else
{
D3.Clear();
D4.Clear();
}
//計算"Other_service"+"其它職業"的gini
D5.Clear();
D6.Clear();
D5.AddRange(d3);
D6.AddRange(d1);
D6.AddRange(d2);
D6.AddRange(d4);
D6.AddRange(d5);
D6.AddRange(d6);
D6.AddRange(d7);
D6.AddRange(d8);
D6.AddRange(d9);
D6.AddRange(d10);
D6.AddRange(d11);
D6.AddRange(d12);
D6.AddRange(d13);
D6.AddRange(d14);
gini = (double)D5.Count / d.Count * Gini(D5) + (double)D6.Count / d.Count * Gini(D6);
if (gini < giniSplit.gini)
{
giniSplit.giniSplitCriterion.descriptionList.Clear();
giniSplit.giniSplitCriterion.splitList.Clear();
giniSplit.gini = gini;
giniSplit.giniSplitCriterion.attribute = "occupation";
giniSplit.giniSplitCriterion.de
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -