Beispiel #1
0
        /// <summary>
        /// 计算关键属性的依赖度
        /// </summary>
        /// <returns>依赖度集合1-13存储在0-12</returns>
        public List <double> calDependance()
        {
            List <double> keyDependance = new List <double>();   //关键属性的依赖度
            int           sampleNum     = trainCollection.Count; //相似样本个数
            //计算决策属性的划分
            Depend dec = new Depend(true);

            for (int j = 0; j < sampleNum; j++)//遍历相似样本,进行属性划分
            {
                dec.addRecord(trainCollection[j][0].ToString(), j);
            }
            int keyNum = keyCollection.Count;

            for (int i = 1; i < keyNum; i++)//遍历属性求出相应的依赖度
            {
                //计算关键属性的划分
                Depend depend = new Depend(true);   //不考虑属性类型,一律按照文本处理
                for (int j = 0; j < sampleNum; j++) //遍历样本,进行属性划分
                {
                    depend.addRecord(trainCollection[j][i].ToString(), j);
                }
                //求出依赖度
                keyDependance.Add(depend.getDependance(dec, sampleNum));
            }
            //for (int i = 0; i < keyDependance.Count; i++)
            //{
            //    Console.Write(keyDependance[i].ToString() + " ");
            //}
            return(keyDependance);
        }