@神经网络-波士顿房价-数据分析-入门2
0 导入必要的包
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
import tensorflow as tf
1 加载数据
data = pd.read_csv(“d:/datasets/HousingData.csv”) #加载数据
‘’’
CRIM 城镇人均犯罪率
ZN 大于25,000平方英尺的地块划分为住宅用地的比例
INDUS 每个城镇非零售业务的比例
CHAS 查尔斯河虚拟变量(如果管道界限= 1则为河; =0则不为河)
NOX 一氧化氮浓度(每千万份)
RM 每间住宅的平均房间数
AGE 自住房屋是在1940年之前建造的比例
DIS 到加州五个就业中心的加权距离
RAD 对径向高速公路的可达性指数
TAX 每10,000美元的全价物业税
PTRATIO 城镇的学生与教师比例
B 1000(Bk-0.63)^ 2其中Bk是城镇的黑人的比例
LSTAT 低社会阶层人口比例%
MEDV 以1000美元为单位的自住房屋的中位数价值
‘’’
2 数据探索
data.head() #缺省前5行
data.tail() #缺省后5行
data.tail() #缺省后5行
data.describe()
data.info()
3 预处理
data.dropna(inplace=True) #去除不全的样本
data.info()
y = data[‘MEDV’] #取标签
X = data.copy().drop([‘MEDV’], axis=1) #取属性
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3) #测试集训练集划分
4 神经网络
构建模型
model=tf.keras.Sequential()
#单层
model.add(tf.keras.layers.Dense(1,input_shape=(13,)))
‘’‘
#多层
model.add(tf.keras.layers.Dense(16,input_shape=(13,)))
model.add(tf.keras.layers.Dense(32))
model.add(tf.keras.layers.Dense(1))
’‘’
查看模型
model.summary() #单层,无激活函数
编译模型
model.compile(optimizer=“adam”, loss=“mse”, metrics=[“mse”]) # 编译模型
训练模型
his=model.fit(X_train,y_train,epochs=4000)
过程可视化
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize=(10,5))
plt.plot(his.epoch, his.history.get(‘mse’))
plt.figure(figsize=(10,5))
plt.plot(his.epoch[40:], his.history.get(‘mse’)[40:])
预测与评价
y_pred = model.predict(X_test)
print(r2_score(y_test, y_pred))
print(mean_squared_error(y_test, y_pred))#均方误差