def fc_kernel(X, Y, copy_X=True, W=None, B=None, ret_reg=False, fit_intercept=True): """ return: n c """ assert copy_X == True assert len(X.shape) == 2 if dcfgs.ls == cfgs.solvers.gd: w = Worker() def wo(): from .GDsolver import fc_GD a, b = fc_GD(X, Y, W, B, n_iters=1) return {'a': a, 'b': b} outputs = w.do(wo) return outputs['a'], outputs['b'] elif dcfgs.ls == cfgs.solvers.tls: return tls(X, Y, debug=True) elif dcfgs.ls == cfgs.solvers.keras: _reg = keras_kernel() _reg.fit(X, Y, W, B) return _reg.coef_, _reg.intercept_ elif dcfgs.ls == cfgs.solvers.lightning: #_reg = SGDRegressor(eta0=1e-8, intercept_decay=0, alpha=0, verbose=2) _reg = CDRegressor(n_jobs=-1, alpha=0, verbose=2) if 0: _reg.intercept_ = B _reg.coef_ = W elif dcfgs.fc_ridge > 0: _reg = Ridge(alpha=dcfgs.fc_ridge) else: _reg = LinearRegression(n_jobs=-1, copy_X=copy_X, fit_intercept=fit_intercept) _reg.fit(X, Y) if ret_reg: return _reg return _reg.coef_, _reg.intercept_
def fc_kernel(X, Y, copy_X=True, W=None, B=None, ret_reg=False,fit_intercept=True): """ return: n c """ assert copy_X == True assert len(X.shape) == 2 if dcfgs.ls == cfgs.solvers.gd: w = Worker() def wo(): from .GDsolver import fc_GD a,b=fc_GD(X,Y, W, B, n_iters=1) return {'a':a, 'b':b} outputs = w.do(wo) return outputs['a'], outputs['b'] elif dcfgs.ls == cfgs.solvers.tls: return tls(X,Y, debug=True) elif dcfgs.ls == cfgs.solvers.keras: _reg=keras_kernel() _reg.fit(X, Y, W, B) return _reg.coef_, _reg.intercept_ elif dcfgs.ls == cfgs.solvers.lightning: #_reg = SGDRegressor(eta0=1e-8, intercept_decay=0, alpha=0, verbose=2) _reg = CDRegressor(n_jobs=-1,alpha=0, verbose=2) if 0: _reg.intercept_=B _reg.coef_=W elif dcfgs.fc_ridge > 0: _reg = Ridge(alpha=dcfgs.fc_ridge) else: #redprint("fc_kernel entry here") _reg = LinearRegression(n_jobs=-1 , copy_X=copy_X, fit_intercept=fit_intercept) #redprint("[in fc_kernel],X.shape=%s,Y.shape=%s"%(str(X.shape),str(Y.shape))) _reg.fit(X, Y) #用LinearRegression这个库,拟合从x(66维)到y(64维)的线性隐射 #其中Coefficients是系数部分,所以是个矩阵【64,66】:y=W*x',intercept是bias #print('Coefficients.shape:', _reg.coef_.shape) #print('intercept.shape : ', _reg.intercept_.shape) if ret_reg: return _reg return _reg.coef_, _reg.intercept_