Comments (2)
I'm very sorry for taking such a long time to reply to you. Your question did indeed trouble me for quite some time.
Let me start with the conclusion: there are no bugs in the program, and the differing results are within the normal range.
One way to improve the results is by specifying an appropriate value for the parameter lambda
in abess
. Additionally, removing highly correlated variables can be also helpful, particularly c500_c694, c640_c694, c220_c694, c750_c694, c92_c694, c235_c694, c811_c694, etc., when only one sample is non-zero for each of them.
Below is the specific reason behind the differing results: When selecting s variables, abess requires that there isn't excessive multicollinearity among any 2s variables. For instance, if we have 1000 samples and need to select 50 out of 10000 variables, even though there will inevitably be multicollinearity issues involving not more than 1000 variables in the data, abess typically works correctly. However, if variable1 and variable2 have a (nearly) perfect correlation (a multicollinearity issue involving only 2 variables), the choice of variable1 over variable2 by abess will depend on the underlying numerical computation. It's worth noting that either choice is correct, and abess does not perform any additional checks in this case.
In fact, I have observed the phenomenon where the line of code "Eigen::VectorXd beta_full = XTX.ldlt().solve(XTy);" yields different results on macOS and Windows. This is due to the fact that the matrix XTX
is singular, so the solution is not unique. This aligns with Eigen's documentation: "This method just tries to find as good a solution as possible." Since abess is an iterative algorithm, it's foreseeable that subsequent results may differ.
Finally, thank you for your feedback on the abess project. If you have any further questions or need to continue the discussion, please feel free to reach out. Your input is greatly appreciated.
from abess.
Thanks for looking into this. I appreciate the detailed response! In the pipeline we're developing we'll implement some additional screening to head this off before running ABESS.
from abess.
Related Issues (20)
- Is it possible to combine `group` and `always_select` to always select a whole group? HOT 3
- [Bug] No termination within reasonable time for Poisson regression in a specific case HOT 6
- Incorporation of `fit_intercept` to `LinearRegression`? HOT 9
- Why the data generator funciton `make_glm_data` for gamma will define n shape parameters for a data set HOT 2
- Incorrect optimal support size in a multitask learning problem with nonnegativity constraints HOT 15
- How I can aviod intercept when I do abess in R HOT 1
- Provide any option for inference? HOT 12
- Risk Score Card Develope HOT 3
- How to set test data HOT 1
- [Feature] Release new version of `abess` on PyPI and Conda HOT 2
- Any way to work with preselected sets of variables in abess & with MBIC criterion? HOT 8
- Version 0.4.7 crashing when LinearRegression.fit() invoked HOT 3
- Colname errors HOT 1
- [Feature] add a Wikipedia page about `abess` HOT 1
- Failed to build abess HOT 2
- What do multiple sets of coefficients mean? HOT 2
- Error in x_y_matching.glm(para, data) : Rows of x must be the same as rows of y! HOT 1
- 风险评分优化
- Compilation Fails on AARCH64 / ARM64 Due to x86 Specific Compiler Flags
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from abess.