Tensor Flow, Google рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИред рдЖрдкрдХреЛ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╡рд┐рд╡рд░рдг рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рд╕реАрдзреЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдПрдХ рдмрд╣реБрдд рд╣реА рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЪреАрдЬ, рдпрд╣ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдЬреНрдЮрд╛рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдиреЗ, рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ Habr├й рдкрд░ рдПрдХ рднреА рд╕рдордЭрджрд╛рд░ рдкрд╛рда рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдирд╛ рд▓рд┐рдЦрд╛ред рдиреАрдЪреЗ рд╣рдо рдЯреЗрдВрд╕рд░ рдлреНрд▓реЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╢рд░реВрдо рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред рд╡реИрд╕реЗ, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдХреИрдВрд╕рд░ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╛ рдкреЛрдХрд░ рдореЗрдВ рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рдореЗрдВ рдХрд╛рд░реНрдбред
рдХрд╛рд░реНрдп
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рд░: рдлрдВрдЧрд╕ рдХреЗ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕рдХреА рдПрдбрд┐рдмрд┐рд▓рд┐рдЯреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╣реИрдВ, рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╣реИрдЯ рдЖрдХрд╛рд░" рдкреИрд░рд╛рдореАрдЯрд░ "рдлреНрд▓реИрдЯ" рдпрд╛ "рдЙрддреНрддрд▓" рдпрд╛ "рд╢рдВрдХреБ рдХреЗ рдЖрдХрд╛рд░" рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рд▓рд┐рдП рдЧрдП рдиреЗрдЯрд╡рд░реНрдХ рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдорд╢рд░реВрдо рдорд╢рд░реВрдоред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рддрд░рд╣ рдХрд╛ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА
рдЗрд░реЗрдЬ рдХреА
рд╕рдорд╕реНрдпрд╛ , рдЬрд╣рд╛рдВ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдлреВрд▓реЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрд░реЛрдд рдХреЛрдб
рдЖрдк рдЧрд┐рддреБрдм:
рд▓рд┐рдВрдХ рдкрд░ рдореЗрд░реЗ рднрдВрдбрд╛рд░ рд╕реЗ рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреЛрдб рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░реЗрдВред рдХреЗрд╡рд▓ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдХреЗрдд рдФрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд╣рд╛рдВ рджреЗрдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдЯреЗрдВрд╕рд░ рдлреНрд▓реЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк
рд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрд░реЛрдд рдХреЛрдб
from __future__ import absolute_import from __future__ import division from __future__ import print_function import tensorflow as tf import numpy as np import pandas as pd from sklearn.model_selection import train_test_split import os
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВ
рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЧрдИ
рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВрдЧреЗред рд╕рднреА рдбреЗрдЯрд╛ рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЧрдП рд╣реИрдВ: agaricus-lepiota.data рдФрд░ agaricus-lepiota.namesред рдкрд╣рд▓реА 8124 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ 22 рд╕реНрддрдВрднред рдПрдХ рдкрдВрдХреНрддрд┐ рдПрдХ рдорд╢рд░реВрдо рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдкреВрд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╢рдмреНрдж рд╕реЗ рдПрдХ рдХрдореА рдЪрд░рд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╢рд░реВрдо рдХреЗ 22 рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рд╕рднреА рдкрд╛рддреНрд░реЛрдВ рдХреА рдХрд┐рдВрд╡рджрдВрддреА agarius-lepiota.names рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИред
рдЯреИрдиреНрд╕реЛрд░ рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдлреЙрд░реНрдо рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд╣рд▓реЗ рд╣рдо рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ
from __future__ import absolute_import from __future__ import division from __future__ import print_function import tensorflow as tf import numpy as np import pandas as pd from sklearn.model_selection import train_test_split import os
рдлрд┐рд░ рд╣рдо рдЯреЗрдВрд╕рд░ рдлреНрд▓реЛ рдХреЗ рд▓рд┐рдП рдорд╢рд░реВрдо рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдПрдХ рд╣реЗрдбрд░ рдмрдирд╛рдПрдВрдЧреЗ, рддрд╛рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреМрди рд╕рд╛ рдХреЙрд▓рдо рдХрд┐рд╕ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЯреЛрдкреА рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЪрд┐рдкрдХреА рд╣реБрдИ рд╣реИред рд╣рдо рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рддрддреНрд╡ рдлрд╝рд╛рдЗрд▓ agaricus-lepiota.names рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВред
header = ['class', 'cap_shape', 'cap_surface', 'cap_color', 'bruises', 'odor', 'gill_attachment', 'gill_spacing', 'gill_size', 'gill_color', 'stalk_shape', 'stalk_root', 'stalk_surface_above_ring', 'stalk_surface_below_ring', 'stalk_color_above_ring', 'stalk_color_below_ring', 'veil_type', 'veil_color', 'ring_number', 'ring_type', 'spore_print_color', 'population', 'habitat'] df = pd.read_csv(data_file_name, sep=',', names=header)
рдЕрдм рдЖрдкрдХреЛ рд▓рд╛рдкрддрд╛ рдбреЗрдЯрд╛ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддреАрдХ "?" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрдЬрд╛рдп agaricus-lepiota.data рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдХрдо рд╕реЗ рдХрдо рдПрдХ рд▓рд╛рдкрддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкреВрд░реА рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗред
df.replace('?', np.nan, inplace=True) df.dropna(inplace=True)
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд╕рдВрдкрд╛рджрди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдбрд┐рдЬрд┐рдЯрд▓ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, "p" рдФрд░ "e" рдХреЛ 0 рдФрд░ 1 рд╕реЗ рдмрджрд▓реЗрдВред
df['class'].replace('p', 0, inplace=True) df['class'].replace('e', 1, inplace=True)
рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдмрд╛рдХреА рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдЕрдВрдХ рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдкрд╛рдВрдбрд╛ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ get_dummies рдлрд╝рдВрдХреНрд╢рди рдХрд░рддрд╛ рд╣реИред
cols_to_transform = header[1:] df = pd.get_dummies(df, columns=cols_to_transform)
рдХрд┐рд╕реА рднреА рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдХрд╛рдо рдХреА рд╕рдЯреАрдХрддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реЗ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХреЛ рджреЛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВрдЧреЗ - рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдЕрдВрд╢рд╛рдВрдХрдиред рдкрд╣рд▓рд╛ рджреВрд╕рд░реЗ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
df_train, df_test = train_test_split(df, test_size=0.1)
рдФрд░ рдЖрдЦрд┐рд░реА рд╡рд╛рд▓рд╛ред Tensor Flow рдХреЛ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдЕрдВрд╢рд╛рдВрдХрди рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдореА CSV рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░
рдЕрдВрд╢рд╛рдВрдХрди ред
рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ Tensor Flow рдореЗрдВ рдлреЗрдВрдХ рджреЗрдВ
рдЕрдм рдЬрдм рд╣рдордиреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдорд╢рд░реВрдо рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЯреЗрдиреНрд╕рд░ рдлреНрд▓реЛ рдореЗрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ load_csv_with_header () рдлрдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
training_set = tf.contrib.learn.datasets.base.load_csv_with_header( filename='mushroom_train.csv', target_dtype=np.int, features_dtype=np.int, target_column=0) test_set = tf.contrib.learn.datasets.base.load_csv_with_header( filename='mushroom_test.csv', target_dtype=np.int, features_dtype=np.int, target_column=0)
Load_csv_with_header () рдлрд╝рдВрдХреНрд╢рди рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИред рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рдВрдХреНрд╢рди рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ target_dtype рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдЕрдВрдд рдореЗрдВ рдЕрдиреБрдорд╛рдирд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрд╡рдХ рдХреА edibility рдпрд╛ рд╡рд┐рд╖рд╛рдХреНрддрддрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕рд┐рдЦрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕реЗ 1 рдпрд╛ 0. рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ target_dtype рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рд╣реИред features_dtype - рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд╣рд╛рдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХреГрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рднреА рд╣реИ (рд╢реБрд░реВ рдореЗрдВ рд╡реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдереЗ, рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрдЫрд╛рдбрд╝ рджрд┐рдпрд╛)ред рдЕрдВрдд рдореЗрдВ, target_column рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЙрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓рдо рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╣реИ рдЬрд┐рд╕реЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рд╣реИред рдпрд╛рдиреА рдПрдбрд┐рдмрд┐рд▓рд┐рдЯреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рдеред
рдПрдХ Tensor Flow Classifier Object рдмрдирд╛рдПрдВ
рдЕрд░реНрдерд╛рддреН, рдПрдХ рд╡рд░реНрдЧ рдХреА рдПрдХ рд╡рд╕реНрддреБ рдЬреЛ рд╕реАрдзреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рд╡рд░реНрдЧред
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=98)] classifier = tf.contrib.learn.DNNClassifier( feature_columns=feature_columns, hidden_units=[10, 20, 10], n_classes=2, model_dir="/tmp/mushroom_model")
рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ feature_columns рд╣реИред рдпреЗ рдорд╢рд░реВрдо рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рд╡рд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╣реИред рд╡рд╣рд╛рдВ, рдЗрдирдкреБрдЯ рдкрд░, рдЖрдпрд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди 98 рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдВрдкрд╛рджрди рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде, рдорд╢рд░реВрдо рдХреЗ 98 рд╡рд┐рднрд┐рдиреНрди рдкреИрд░рд╛рдореАрдЯрд░ред
Hidden_units - рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдореЗрдВ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрд▓рд╛ рдХреЗ рд╕реНрддрд░ рдкрд░ рдЙрдирдореЗрдВ рдкрд░рддреЛрдВ рдФрд░ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕рд╣реА рдЪрдпрди рдХреБрдЫ рд╣реИред рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рдж рд╣реА рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╣рдордиреЗ рдЗрди рдирдВрдмрд░реЛрдВ рдХреЛ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ Tensor Flow рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВред рдФрд░ рд╡реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
n_classes - рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдирдореЗрдВ рд╕реЗ рджреЛ рд╣реИрдВ - рдЦрд╛рджреНрдп рдФрд░ рдирд╣реАрдВред
model_dir - рд╡рд╣ рдкрде рдЬрд╣рд╛рдВ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рд╣рд░ рдмрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рди рдХрд░реЗрдВред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдХрд╛рд░реНрдп рдмрдирд╛рдПрдВрдЧреЗ:
def get_test_inputs(): x = tf.constant(test_set.data) y = tf.constant(test_set.target) return x, y def get_train_inputs(): x = tf.constant(training_set.data) y = tf.constant(training_set.target) return x, y
рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ - рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдВрд╢рд╛рдВрдХрди рдХреЗ рд▓рд┐рдПред x рдФрд░ y рдЯреЗрдиреНрд╕рд░ рдлреНрд▓реЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд░реВрдкрд░реЗрдЦрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рд╡рд░рдг рдореЗрдВ рдордд рдЬрд╛рдУ, рдмрд╕ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛ рдФрд░ рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмреАрдЪ рдПрдХ рдордзреНрдпрд╕реНрде рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
classifier.fit(input_fn=get_train_inputs, steps=2000)
рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рдКрдкрд░ рд╕реЗ рдКрдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ - рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЪрд░рдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдлрд┐рд░ рд╕реЗ, рдЯреЗрдиреНрд╕рд░ рдлреНрд▓реЛ рдореИрдиреБрдЕрд▓ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдирдВрдмрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рд╕рдордЭ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рдЖрдПрдЧреАред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░реЗрдВред рдпрд╣ рдКрдкрд░ рдЙрддреНрдкрдиреНрди рдЕрдВрд╢рд╛рдВрдХрди рдбреЗрдЯрд╛ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рднрд╡рд┐рд╖реНрдп рдХреА рдиреЗрдЯрд╡рд░реНрдХ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ (рд╕рдЯреАрдХрддрд╛_рд╕реНрдХреЛрд░) рдХреА рд╕рдЯреАрдХрддрд╛ рд╣реЛрдЧреАред
accuracy_score = classifier.evaluate(input_fn=get_test_inputs, steps=1)["accuracy"] print("\n : {0:f}\n".format(accuracy_score))
рд╣рдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ
рдЕрдм рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рддреИрдпрд╛рд░ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдХрд╡рдХ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
def new_samples(): return np.array([[0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]], dtype=np.int)
рдЙрдкрд░реЛрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рджреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдорд╢рд░реВрдо рдХрд╛ рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдореЗрдВ рдпрд╛ рдЕрдВрд╢рд╛рдВрдХрди рд╕реЗрдЯ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рдереЗ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ рдмрд╕ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕реЗ рдЦреАрдВрдЪрд╛ рдЧрдпрд╛ рдерд╛)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЦрд░реАрджрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдЧрд╛:
predictions = list(classifier.predict(input_fn=new_samples)) print(" : {}\n" .format(predictions))
рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
: [0, 1]
рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдкрд╣рд▓рд╛ рдорд╢рд░реВрдо рдЬрд╣рд░реАрд▓рд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦрд╛рджреНрдп рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпрд╛рдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рдорд╢рд░реВрдо рд╣реЛ, рд▓реЛрдЧ рд╣реЛрдВ, рдЬрд╛рдирд╡рд░ рд╣реЛрдВ рдпрд╛ рдХреБрдЫ рднреА рд╣реЛред рдпрд╣ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдФрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдПрдХ рдорд░реАрдЬ рдХреА рдЕрддрд╛рд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдпрд╛ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкрд░ рд╕реНрдЯреЙрдХ рдореВрд▓реНрдп рдЖрдВрджреЛрд▓рдиред