Last answered:

03 Feb 2023

Posted on:

11 Nov 2021

3

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()
reg_with_pvalues.fit(x,y)

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'




4 answers ( 1 marked as helpful)
Instructor
Posted on:

12 Nov 2021

3

Hey Omar,

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.

Kind regards,
365 Hristina

Posted on:

12 Nov 2021

1

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?

Kind regards,

Posted on:

01 Feb 2023

0

Hi, is there any course of 365 that can help me improve my Object-Oriented Programming skill? Thanks for your help !

Instructor
Posted on:

03 Feb 2023

0

Hey,

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 NumPy and pandas libraries, using the matplotlib library for visualizations, working with dates, times, text files, etc.

Hope this helps!

Kind regards,
365 Hristina

Submit an answer