Ex 2 TP1
Ex 2 TP1
November 5, 2024
[61]: df1=pd.read_csv("housing.csv")
df1.head()
[62]: df1.shape
[63]: df1.isnull().sum()
1
[63]: longitude 0
latitude 0
housing_median_age 0
total_rooms 0
total_bedrooms 207
population 0
households 0
median_income 0
median_house_value 0
ocean_proximity 0
dtype: int64
[64]: df2=df1.dropna()
df2.isnull().sum()
[64]: longitude 0
latitude 0
housing_median_age 0
total_rooms 0
total_bedrooms 0
population 0
households 0
median_income 0
median_house_value 0
ocean_proximity 0
dtype: int64
x=df2.drop(['median_house_value'],axis=1)
y=df2['median_house_value']
[66]: x
2
population households median_income ocean_proximity
0 322.0 126.0 8.3252 NEAR BAY
1 2401.0 1138.0 8.3014 NEAR BAY
2 496.0 177.0 7.2574 NEAR BAY
3 558.0 219.0 5.6431 NEAR BAY
4 565.0 259.0 3.8462 NEAR BAY
… … … … …
20635 845.0 330.0 1.5603 INLAND
20636 356.0 114.0 2.5568 INLAND
20637 1007.0 433.0 1.7000 INLAND
20638 741.0 349.0 1.8672 INLAND
20639 1387.0 530.0 2.3886 INLAND
[67]: y
[67]: 0 452600.0
1 358500.0
2 352100.0
3 341300.0
4 342200.0
…
20635 78100.0
20636 77100.0
20637 92300.0
20638 84700.0
20639 89400.0
Name: median_house_value, Length: 20433, dtype: float64
[69]: train_data=x_train.join(y_train)
#train_data
#train_data['ocean_proximity'].unique()
[70]: train_data.hist()
3
[71]: train_data.corr(numeric_only=True)
plt.figure()
sns.heatmap(train_data.corr(numeric_only=True), annot=True, cmap="YlGnBu")
plt.show()
[72]: train_data['total_rooms']=np.log(train_data['total_rooms']+1)
train_data['total_bedrooms']=np.log(train_data['total_bedrooms']+1)
train_data['population']=np.log(train_data['population']+1)
4
train_data['households']=np.log(train_data['households']+1)
[73]: train_data.hist()
[74]: train_data.ocean_proximity.value_counts()
[74]: ocean_proximity
<1H OCEAN 7217
INLAND 5170
NEAR OCEAN 2118
NEAR BAY 1837
ISLAND 4
Name: count, dtype: int64
[75]: #pd.get_dummies(train_data.ocean_proximity).astype(int)
#train_data.join(pd.get_dummies(train_data.ocean_proximity.astype(int))).
↪drop(['ocean_proximity'],axis=1)
dummies = pd.get_dummies(train_data['ocean_proximity']).astype(int)
5
train_data = train_data.join(dummies).drop(['ocean_proximity'], axis=1)
train_data
[76]: plt.figure()
sns.heatmap(train_data.corr(),annot=True,cmap="YlGnBu")
plt.show()
6
[77]: plt.figure()
sns.scatterplot(x='longitude',y='latitude',data=train_data,␣
↪hue="median_house_value",palette="coolwarm")
7
[78]: train_data['bedrooms_ratio']=train_data['total_bedrooms'] /␣
↪train_data['total_rooms']
train_data['household_rooms']=train_data['total_rooms'] /␣
↪train_data['households']
[79]: plt.figure()
sns.heatmap(train_data.corr(),annot=True,cmap="YlGnBu")
plt.show()
[80]: x_train=train_data.drop(['median_house_value'],axis=1)
y_train=train_data['median_house_value']
model=LinearRegression()
model.fit(x_train_scaled,y_train_scaled)
[80]: LinearRegression()
[81]: test_data=x_test.join(y_test)
test_data['total_rooms']=np.log(test_data['total_rooms']+1)
test_data['total_bedrooms']=np.log(test_data['total_bedrooms']+1)
8
test_data['population']=np.log(test_data['population']+1)
test_data['households']=np.log(test_data['households']+1)
test_data = test_data.join(pd.get_dummies(test_data['ocean_proximity']).
↪astype(int)).drop(['ocean_proximity'], axis=1)
test_data['bedrooms_ratio']=test_data['total_bedrooms'] /␣
↪test_data['total_rooms']
test_data['household_rooms']=test_data['total_rooms'] / test_data['households']
#pd.get_dummies(test_data['ocean_proximity'])
[82]: test_data
9
15752 0 0 1 0 0.821052 1.224872
8273 0 0 0 1 0.830170 1.216547
1746 0 0 1 0 0.800733 1.259419
15696 0 0 1 0 0.828558 1.230051
[136]: x_test,y_test=test_data.
↪drop(['median_house_value'],axis=1),test_data['median_house_value']
x_test_scaled = scaler.transform(x_test)
#y_test_scaled = scaler.transform(y_test.values.reshape(-1, 1))
'''
y_scaler = StandardScaler()
y_train_scaled = y_scaler.fit_transform(y_train.values.reshape(-1, 1))
y_test_scaled = y_scaler.transform(y_test.values.reshape(-1, 1))
'''
[84]: x_test
10
20468 0 0 0.784443 1.265578
17148 0 1 0.765113 1.305429
7645 0 0 0.842051 1.193588
17440 0 1 0.780848 1.269284
… … … … …
14905 0 1 0.800043 1.269291
15752 1 0 0.821052 1.224872
8273 0 1 0.830170 1.216547
1746 1 0 0.800733 1.259419
15696 1 0 0.828558 1.230051
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[138], line 1
----> 1 model.score(x_train_scaled, y_train_scaled)
[87]: 57926172223.61929
[88]: RandomForestRegressor()
[89]: forest.score(x_test,y_test)
[89]: 0.8146615773444194
11
C:\Users\king\anaconda3\Lib\site-packages\keras\src\layers\core\dense.py:87:
UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When
using Sequential models, prefer using an `Input(shape)` object as the first
layer in the model instead.
super().__init__(activity_regularizer=activity_regularizer, **kwargs)
Model: "sequential"
����������������������������������������������������������������������������
� Layer (type) � Output Shape � Param # �
����������������������������������������������������������������������������
� dense (Dense) � (None, 1) � 16 �
����������������������������������������������������������������������������
Epoch 1/5
511/511 �������������������� 3s 4ms/step -
loss: 55905394688.0000 - val_loss: 57862823936.0000
Epoch 2/5
511/511 �������������������� 3s 6ms/step -
loss: 55015342080.0000 - val_loss: 57816014848.0000
Epoch 3/5
511/511 �������������������� 2s 4ms/step -
loss: 55397969920.0000 - val_loss: 57769230336.0000
Epoch 4/5
511/511 �������������������� 3s 5ms/step -
loss: 55470444544.0000 - val_loss: 57722441728.0000
Epoch 5/5
511/511 �������������������� 2s 3ms/step -
12
loss: 55485304832.0000 - val_loss: 57675702272.0000
Epoch 1/10
511/511 �������������������� 2s 3ms/step -
loss: 56076288000.0000 - val_loss: 57629020160.0000
Epoch 2/10
511/511 �������������������� 3s 6ms/step -
loss: 55215300608.0000 - val_loss: 57582419968.0000
Epoch 3/10
511/511 �������������������� 1s 2ms/step -
loss: 55182422016.0000 - val_loss: 57535737856.0000
Epoch 4/10
511/511 �������������������� 1s 3ms/step -
loss: 54860214272.0000 - val_loss: 57489137664.0000
Epoch 5/10
511/511 �������������������� 1s 3ms/step -
loss: 55305433088.0000 - val_loss: 57442570240.0000
Epoch 6/10
511/511 �������������������� 2s 3ms/step -
loss: 54938718208.0000 - val_loss: 57396002816.0000
Epoch 7/10
511/511 �������������������� 2s 3ms/step -
loss: 55876726784.0000 - val_loss: 57349505024.0000
Epoch 8/10
511/511 �������������������� 2s 3ms/step -
loss: 55152832512.0000 - val_loss: 57302986752.0000
Epoch 9/10
511/511 �������������������� 1s 3ms/step -
loss: 54960181248.0000 - val_loss: 57256488960.0000
Epoch 10/10
511/511 �������������������� 3s 6ms/step -
loss: 56382586880.0000 - val_loss: 57210064896.0000
Epoch 1/15
511/511 �������������������� 2s 3ms/step -
loss: 55094513664.0000 - val_loss: 57163624448.0000
Epoch 2/15
511/511 �������������������� 2s 3ms/step -
loss: 55323426816.0000 - val_loss: 57117188096.0000
Epoch 3/15
511/511 �������������������� 3s 5ms/step -
loss: 55270674432.0000 - val_loss: 57070817280.0000
Epoch 4/15
511/511 �������������������� 1s 3ms/step -
loss: 53296803840.0000 - val_loss: 57024409600.0000
Epoch 5/15
511/511 �������������������� 2s 3ms/step -
loss: 54269583360.0000 - val_loss: 56978063360.0000
Epoch 6/15
511/511 �������������������� 2s 3ms/step -
13
loss: 54459072512.0000 - val_loss: 56931782656.0000
Epoch 7/15
511/511 �������������������� 2s 3ms/step -
loss: 54719565824.0000 - val_loss: 56885473280.0000
Epoch 8/15
511/511 �������������������� 2s 4ms/step -
loss: 53834076160.0000 - val_loss: 56839192576.0000
Epoch 9/15
511/511 �������������������� 2s 4ms/step -
loss: 54277263360.0000 - val_loss: 56793022464.0000
Epoch 10/15
511/511 �������������������� 3s 5ms/step -
loss: 54326079488.0000 - val_loss: 56746799104.0000
Epoch 11/15
511/511 �������������������� 2s 4ms/step -
loss: 55075880960.0000 - val_loss: 56700678144.0000
Epoch 12/15
511/511 �������������������� 2s 3ms/step -
loss: 54168629248.0000 - val_loss: 56654499840.0000
Epoch 13/15
511/511 �������������������� 2s 4ms/step -
loss: 55217995776.0000 - val_loss: 56608378880.0000
Epoch 14/15
511/511 �������������������� 2s 3ms/step -
loss: 54757396480.0000 - val_loss: 56562302976.0000
Epoch 15/15
511/511 �������������������� 2s 3ms/step -
loss: 54337257472.0000 - val_loss: 56516194304.0000
[95]: plot_performance(train_5, 5)
plot_performance(train_10, 10)
plot_performance(train_15, 15)
14
15
[96]: model.summary()
Model: "sequential"
����������������������������������������������������������������������������
� Layer (type) � Output Shape � Param # �
����������������������������������������������������������������������������
� dense (Dense) � (None, 1) � 16 �
����������������������������������������������������������������������������
[ ]:
16