再來介紹實際運用Neural Networks能達到多大的效用這邊我們利用tensorflow playground來做實驗
首先針對中間與外圍分布的數據來測試看看
好吧大家一定還是對它還有存疑,那下面這個實驗我特徵全部給它來使用看看啊
就如同我前一天所講的,每個神經元都是你的小幫手會幫你記住所有資訊,讓你可以不用那麼累,所以它只要負責圖中的一小部分,如果有相關資訊的話可以互相告知讓大家都知道,有點像是學校的模範生跟帶領大家進步讓全校成績都變好的概念。
前面說了那麼多關於神經網路的優點,沒錯今天就是要來建造屬於我們自己的神經網路了,這次使用的是DNNRegressor,看到這個名詞就知道我們要做關於回歸的模型,題目是有關於房價分析的中位數,一樣先創建、notebooks接著切換至training-data-analyst > courses > machine_learning > deepdive > 05_artandscience > labs打開c_neuralnetwork.ipynb,開始進行實驗。
首先先匯入相關的套件與檔案math、shutil、numpy、pandas、tensorflow
等,接著去獲取數據
head()、describe()
來看數據內的資料是否正去與正確drop()
參數把總房間與臥室、人口、戶口的資訊拿掉,確保資料不重複接著就是最重要的一步,就是要去定義相關的參數以及分配數據
key()
來查看是否正確featcols['longitude'] = tf.feature_column.bucketized_column(tf.feature_column.numeric_column('longitude'), np.linspace(-124.3, -114.3, 5).tolist())
featcols['latitude'] = tf.feature_column.bucketized_column(tf.feature_column.numeric_column('latitude'), np.linspace(32.5, 42, 10).tolist())
msk = np.random.rand(len(data)) < 0.8
train = data[msk]
eval = data[~msk]
BATCH= xxx
OUTDIR = 'xxx'
train_input_fn =
(x = train輸入 , y = train輸出/SCALE ,num_epochs = none, batch_size = BATCH, shuffle = True)
eval_input_fn =
(x = eval輸入, y = eval輸出/SCALE, num_epochs = 1, batch_size = eval輸入, shuffle=False)
終於來到我們的最後一步了,就是建造我們的neural network model
myopt = tf.train.FtrlOptimizer(learning_rate = 0.01)
estimator = tf.estimator.LinearRegressor
(model_dir = output_dir, feature_columns = featcols.values(),optimizer = myopt)
myopt = tf.train.FtrlOptimizer(learning_rate = 0.01)
estimator = tf.estimator.DNNRegressor
(model_dir = output_dir,hidden_units = [100, 50, 20],feature_columns = featcols.values(),optimizer = myopt,dropout = 0.1)