当期望为正时获得负系数?

2024-09-30 09:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在对房屋数据集进行线性回归分析(在这里找到:https://www.kaggle.com/shree1992/housedata)。 我有以下代码(参见图1): image1

图中显示,当我打印每个卧室数量的平均价格时,趋势是,随着卧室数量的增加,价格会上升。 当进行一次线性回归时,我得到卧室的正系数,这是我所期望的。(见图2) image 2

虽然当我对数据集进行多元线性回归(添加更多特征/列)并打印coef_u时,我得到卧室的负coef_u(参见图3)。 image3

当平均价格随着卧室的增加而上涨时,这有什么意义

houses_preprocessed = houses[
    (houses.price<1.2*10**7) &
    (houses.bedrooms>0) &
    (houses.bedrooms <= 6) &
    (houses.bathrooms>0) &
    (houses.price>8000)].drop(columns=['country', 'date', 'street', 'city'])


houses_preprocessed.loc[houses_preprocessed['yr_renovated'] < 1, 'yr_renovated'] = 0
houses_preprocessed.loc[houses_preprocessed['yr_renovated'] > 1, 'yr_renovated'] = 1


X = houses_preprocessed[['bedrooms', 'bathrooms', 'sqft_living', 'sqft_lot', 'floors', 'waterfront', 'view', 'condition', 'sqft_above', 'sqft_basement', 'yr_built', 'yr_renovated']]
y = houses_preprocessed[['price']]

X_train, X_test, y_train, y_test = train_test_split(X,y)

reg = LinearRegression()
reg.fit(X_train, y_train)

K=reg.coef_
K


coef_dict = {}
for K, name in zip(K,X):
    coef_dict[name] = K
coef_dict

# Create a list of tuples sorted by index 1 i.e. value field 
listofTuples = sorted(coef_dict.items(), key=lambda e:e[1])

# Iterate over the sorted sequence
for elem in listofTuples :
    print(elem[0] , " ::" , elem[1] )

Tags: testtrain线性regpricedictsortedyr

热门问题