Ejemplo n.º 1
0
        private float[] GetFloatInfo(string field)
        {
            ulong  lenULong;
            IntPtr result;
            int    output = XGBOOST_NATIVE_METHODS.XGDMatrixGetFloatInfo(_handle, field, out lenULong, out result);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }

            int len = unchecked ((int)lenULong);

            float[] floatInfo = new float[len];
            for (int i = 0; i < len; i++)
            {
                byte[] floatBytes = new byte[4];
                floatBytes[0] = Marshal.ReadByte(result, 4 * i + 0);
                floatBytes[1] = Marshal.ReadByte(result, 4 * i + 1);
                floatBytes[2] = Marshal.ReadByte(result, 4 * i + 2);
                floatBytes[3] = Marshal.ReadByte(result, 4 * i + 3);
                float f = BitConverter.ToSingle(floatBytes, 0);
                floatInfo[i] = f;
            }
            return(floatInfo);
        }
Ejemplo n.º 2
0
        public void Update(DMatrix train, int iter)
        {
            var output = XGBOOST_NATIVE_METHODS.XGBoosterUpdateOneIter(Handle, iter, train.Handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
        }
Ejemplo n.º 3
0
        public void SetParameter(string name, string val)
        {
            int output = XGBOOST_NATIVE_METHODS.XGBoosterSetParam(handle, name, val);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
        }
Ejemplo n.º 4
0
        private void SetFloatInfo(string field, float[] floatInfo)
        {
            ulong len    = (ulong)floatInfo.Length;
            int   output = XGBOOST_NATIVE_METHODS.XGDMatrixSetFloatInfo(_handle, field, floatInfo, len);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
        }
Ejemplo n.º 5
0
        public Booster(DMatrix train)
        {
            var dmats  = new[] { train.Handle };
            var len    = unchecked ((ulong)dmats.Length);
            var output = XGBOOST_NATIVE_METHODS.XGBoosterCreate(dmats, len, out handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
        }
Ejemplo n.º 6
0
        public Booster(string fileName, int silent = 1)
        {
            IntPtr tempPtr;
            var    newBooster = XGBOOST_NATIVE_METHODS.XGBoosterCreate(null, 0, out tempPtr);
            var    output     = XGBOOST_NATIVE_METHODS.XGBoosterLoadModel(tempPtr, fileName);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
            handle = tempPtr;
        }
Ejemplo n.º 7
0
        public float[] Predict(DMatrix test)
        {
            ulong  predsLen;
            IntPtr predsPtr;
            var    output = XGBOOST_NATIVE_METHODS.XGBoosterPredict(
                handle, test.Handle, normalPrediction, 0, out predsLen, out predsPtr);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }
            return(GetPredictionsArray(predsPtr, predsLen));
        }
Ejemplo n.º 8
0
        public Booster(IDictionary <string, object> parameters, DMatrix train)
        {
            var dmats  = new[] { train.Handle };
            var len    = unchecked ((ulong)dmats.Length);
            var output = XGBOOST_NATIVE_METHODS.XGBoosterCreate(dmats, len, out handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }

            SetParameters(parameters);
        }
Ejemplo n.º 9
0
        public DMatrix(float[] data1D, ulong nrows, ulong ncols, float[] labels = null)
        {
            int output = XGBOOST_NATIVE_METHODS.XGDMatrixCreateFromMat(data1D, nrows, ncols, Missing, out _handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }

            if (labels != null)
            {
                Label = labels;
            }
        }
Ejemplo n.º 10
0
        // Dispose pattern from MSDN documentation
        protected virtual void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            int output = XGBOOST_NATIVE_METHODS.XGDMatrixFree(_handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }

            disposed = true;
        }
Ejemplo n.º 11
0
        public DMatrix(float[][] data, float[] labels = null)
        {
            float[] data1D = Flatten2DArray(data);
            ulong   nrows  = unchecked ((ulong)data.Length);
            ulong   ncols  = unchecked ((ulong)data[0].Length);
            int     output = XGBOOST_NATIVE_METHODS.XGDMatrixCreateFromMat(data1D, nrows, ncols, Missing, out _handle);

            if (output == -1)
            {
                throw new DllFailException(XGBOOST_NATIVE_METHODS.XGBGetLastError());
            }

            if (labels != null)
            {
                Label = labels;
            }
        }