Resolved: Problem with the attached code
The attached code does not work.
It seems to be a problem related to the version of the sci-kit learn package. I have just re-downloaded it, and the problem remains. It appears with the lines:
reg_with_pvalues = LinearRegression()
The error message is:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-29-fa0b9ff40e4e> in <module> 1 # When we create the regression everything is the same 2 reg_with_pvalues = LinearRegression() ----> 3 reg_with_pvalues.fit(x,y) <ipython-input-28-9291cc26caba> in fit(self, X, y, n_jobs) 29 30 def fit(self, X, y, n_jobs=1): ---> 31 self = super(LinearRegression, self).fit(X, y, n_jobs) 32 33 # Calculate SSE (sum of squared errors) ~\Anaconda3\lib\site-packages\sklearn\linear_model\_base.py in fit(self, X, y, sample_weight) 514 n_jobs_ = self.n_jobs 515 --> 516 accept_sparse = False if self.positive else ['csr', 'csc', 'coo'] 517 518 X, y = self._validate_data(X, y, accept_sparse=accept_sparse, AttributeError: 'LinearRegression' object has no attribute 'positive'
Thank you for reaching out!
As of version 0.24 of sklearn, the parameter
positive is added to the constructor. Therefore, you should change the
__init__ function in the following way:
# nothing changes in __init__ def __init__(self, fit_intercept=True, normalize=False, copy_X=True, n_jobs=1, positive = False): self.fit_intercept = fit_intercept self.normalize = normalize self.copy_X = copy_X self.n_jobs = n_jobs self.positive = positive
Here, I have added
positive = False as the default value and have added the following line at the end:
self.positive = positive
This should help you solve the error.
Thank you, Hristina. It worked, but it gives slightly different results as with the StatsModels package:
p-values for SAT and Rand1,2,3 respectively for each run:
- sklearn.LinearRegression before fix: 0.000 and 0.676
- sklearn.LinearRegression before fix: 0.000 and 0.757
- StastsModels: 0.000 and 0.762
The difference is minuscule. Is it supposed to be? Or is there a way to make them coincide exactly?
Hi, is there any course of 365 that can help me improve my Object-Oriented Programming skill? Thanks for your help !
Thank you for reaching out!
Python and R are the two object-oriented programming languages that we offer courses on. You can find the introductory and intermediate courses in the Programming for Data Science module:
Introduction to Python
Python Programmer Bootcamp
Intermediate Python Programming
Introduction to R Programming
In the same module, you can find other Python courses dealing with more specific topics such as preprocessing with the
pandas libraries, using the
matplotlib library for visualizations, working with dates, times, text files, etc.
Hope this helps!