
рдпрд╣ .NET рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд░реВрдк рдореЗрдВ
рдХрд╛рдЧрд▓ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдЕрдВрдзреЗрд░реЗ рдЬрдВрдЧрд▓ рдореЗрдВ рдореЗрд░реА рдЪрд▓ рд░рд╣реА рдпрд╛рддреНрд░рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ (рд▓рдЧрднрдЧ) рд╢реБрджреНрдз рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ, рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдмрд╛рдК рд╣рд┐рд╕реНрд╕реЗ, рдЬреИрд╕реЗ рд▓рд╛рдкрддрд╛ рдореВрд▓реНрдп, рд╕реБрд╡рд┐рдзрд╛ рдЪрдпрди, рдЖрдЙрдЯрд▓реЗрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрджрд┐ рдХреЛ рднрд░рдирд╛ред рдЬрд╛рдирдмреВрдЭрдХрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЯреЗрдХ рд╕реНрдЯреИрдХ C # + TensorFlow
tf.keras API рд╣реЛрдЧрд╛ред рдЖрдЬ рддрдХ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рдмрдбрд╝реЗ рдореЙрдбрд▓ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рдордп рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд GPU рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдЪрд▓реЛ рдЕрдЪрд▓ рд╕рдВрдкрддреНрддрд┐ рдХреА рдХреАрдорддреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХрд░рддреЗ рд╣реИрдВ!
рд╣рд╛рдЙрд╕ рдХреА рдХреАрдорддреЗрдВ рдиреМрд╕рд┐рдЦрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЫреЛрдЯрд╛ рд╣реИ, рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рдирд╣реАрдВ рд╣реИрдВ, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реАрдбрд░рдмреЛрд░реНрдб рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реИрдВ, рдФрд░ рдЖрдк рдПрдХ рджрд┐рди рдореЗрдВ рдЕрдзрд┐рдХрддрдо 4 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЬрдорд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╛рдЧреНрд▓реЗ рдкрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ, рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ, рдФрд░ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд▓рдХреНрд╖реНрдп рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд┐рдХреНрд░реА рдореВрд▓реНрдп (рд╕реЗрд▓рдкреНрд░рд╛рдЗрд╕ рдХреЙрд▓рдо) рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА
рдХрд░рдирд╛ рд╣реИ ред рдкреБрд░рд╛рд▓реЗрдЦ рдореЗрдВ
train.csv рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ 1500 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ, рдЬрд┐рди рдкрд░ рдмрд┐рдХреНрд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреНрдЮрд╛рдд рдмрд┐рдХреНрд░реА рдореВрд▓реНрдп рд╣реИред рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдереЛрдбрд╝рд╛-рдмрд╣реБрдд рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ
рдХреНрдпрд╛ рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗ? рдореИрдВрдиреЗ рдЭреВрда рдмреЛрд▓рд╛! рдЖрдкрдХреЛ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рджреЗрдЦ рд▓реЗрдирд╛ рд╣реИредрдЕрдкрдиреЗ рдЖрд╢реНрдЪрд░реНрдп рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ .NET рдорд╛рдирдХ рдХреНрд▓рд╛рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдПрдХ .csv рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ NuGet рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ
CsvHelper рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдирд╛ рдирдпрд╛ рдкрд╕рдВрджреАрджрд╛ LINQ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреИрдХреЗрдЬ
MoreLinq рднреА рдорд┐рд▓рд╛ред
DataTable рдореЗрдВ .csv рдбреЗрдЯрд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИstatic DataTable LoadData(string csvFilePath) { var result = new DataTable(); using (var reader = new CsvDataReader(new CsvReader(new StreamReader(csvFilePath)))) { result.Load(reader); } return result; }
ML.NETрдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП
рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред
ML.NET рдХреЛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ .csv рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдкреЗрдкреЗрд░реЗрд╢рди рдФрд░ рдЕрдиреНрд╡реЗрд╖рдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рдерд╛, рдЬрдм рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рд╣рд╛рдЙрд╕ рдкреНрд░рд╛рдЗрд╕ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛ рдерд╛ред
рдбреЗрдЯрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдХреБрдЫ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдФрд░ рд╕реНрддрдВрдн):
рдИрдж | MSSubClass | MSZoning | LotFrontage | LotArea |
1 | 60 | рдЖрд░ рдПрд▓ | 65 | 8450 |
2 | 20 | рдЖрд░ рдПрд▓ | 80 | 9600 |
3 | 60 | рдЖрд░ рдПрд▓ | 68 | 11250 |
4 | 70 | рдЖрд░ рдПрд▓ | 60 | 9550 |
рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ
Id рдХреЙрд▓рдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдШрд░ рдХреА рдХреАрдорддреЛрдВ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИ:
var trainData = LoadData("train.csv"); trainData.Columns.Remove("Id");
рдХреЙрд▓рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
DataTable рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрддрдВрднреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рддрд╛рд░ рд╣реИред рддреЛ рдЕрдЧрд▓рд╛ рдХрджрдо рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЖрдБрдХрдбрд╝реЛрдВ рдХреА рдЧрдгрдирд╛ рдХреА: рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рддрдиреЗ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдирдВрдмрд░ рд╣реИрдВ (рд╕рднреА рд╕рд╣рд╛рдпрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛):
var values = rows.Select(row => (string)row[column]); double floats = values.Percentage(v => double.TryParse(v, out _)); double ints = values.Percentage(v => int.TryParse(v, out _)); int distincts = values.Distinct().Count();
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реНрддрдВрдн
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрддрдВрдн рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрдиреНрдЯрд╕ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЬреНрдпрд╛рджрд╛рддрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдирдВрдмрд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдбрдмрд▓реНрд╕ рдореЗрдВ рдмрджрд▓ рджреЗрдВрдЧреЗред
рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╕реНрддрдВрдн
рдЕрдиреНрдп рдХреЙрд▓рдо рдЙрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдмрд┐рдХреНрд░реА рдкрд░ рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдереАред рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ
рдбрдмрд▓ рдореЗрдВ рднреА рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред
рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ 0 рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯрд╡реНрдпреВрдХрд╛рдЙрдВрдЯ - 1 рддрдХ рдЙрдиреНрд╣реЗрдВ рд╕реМрдВрдкрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рдореБрдЦреМрдЯрд╛: рд╣рд░рд╛" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдореБрдЦреМрдЯрд╛: рд╣рд░рд╛" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдирд╣реАрдВ рд╣реИред рдЗрддрдиреА рдЬрд▓реНрджреА рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдХрд┐ рдЬрд┐рд╕реЗ
рдПрдХ-рд╣реЙрдЯ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЗрдирдкреБрдЯ рдХреЙрд▓рдо рдорд┐рд▓рддрд╛ рд╣реИред рдЬреИрд╕реЗ "рдореБрдЦреМрдЯрд╛: рдиреАрд▓рд╛" [1,0,0] рдмрди рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ "рдореБрдЦреМрдЯрд╛: рд╕рдлреЗрдж" рдмрди рдЬрд╛рддрд╛ рд╣реИ [0,0,1]ред
рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
рдбреЗрдЯрд╛ рдПрдХреНрд╕рдкреНрд▓реЛрд░реЗрд╢рди рдХрд╛ рдмрдбрд╝рд╛ рдЖрдЙрдЯрдкреБрдЯCentralAir: 2 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рд╕рдбрд╝рдХ: 2 рдореВрд▓реНрдп, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ: 2 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
рдЧрд▓реА: 3 рдорд╛рди, рд╕реНрдпрд╛рд╣реА: 0.00%, рддреИрд░рддрд╛: 0.00%
BsmtHalfBath: 3 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рд╣рд╛рдлрдмреИрде: 3 рдорд╛рди, рдЗрдиреНрдЯрд╕: 100.00%, рдлреНрд▓реЛрдЯреНрд╕: 100.00%
LandSlope: 3 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
PavedDrive: 3 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
BsmtFullBath: 4 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рдмрд╛рд╣рд░реА: 4 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
Fireplaces: 4 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
FullBath: 4 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рдЧреИрд░рд╛рдЬ рдлрд╝рд┐рдирд┐рд╢: 4 рдорд╛рди, рдЗрдирдЯреНрд╕: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
KitchenAbvGr: 4 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рдХрд┐рдЪреЗрдиреБрдЕрд▓: 4 рд╡реИрд▓реНрдпреВ, рдЗрдирдЯреНрд╕: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
LandContour: 4 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рд▓реЙрдЯрд╢реЗрдк: 4 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рдкреВрд▓рдХреНрдпреВрд╕реА: 4 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
BldgType: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
BsmtCond: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
BsmtExposure: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
BsmtQual: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
ExterCond: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рдмрд╛рдбрд╝: 5 рдорд╛рди, рд╕реНрдпрд╛рд╣реА: 0.00%, рддреИрд░рддрд╛: 0.00%
рдЧреИрд░рд╛рдЬрдХрд╛рд░реНрд╕: 5 рдорд╛рди, рдЗрдиреНрдЯреНрд╕: 100.00%, рдлреНрд▓реЛрдЯреНрд╕: 100.00%
рддрд╛рдк рдХреНрдпреВрд╕реАрд╕реА: 5 рдорд╛рди, рдЗрдирдЯреНрд╕: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рд▓реЙрдЯреЛрдВрдлрд┐рдЧ: 5 рдорд╛рди, рдЗрдиреНрдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
MasVnrType: 5 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
MiscFeature: 5 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
MSZoning: 5 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
YrSold: 5 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХрд▓: 6 рдорд╛рди, рдЗрдиреНрдЯрд╕: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рдлрд╛рдпрд░рдкреНрд▓реЗрд╕: 6 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рдлрд╛рдЙрдВрдбреЗрд╢рди: 6 рдореВрд▓реНрдп, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рдЧреИрд░рд╛рдЬрдХреЙрдиреНрдб: 6 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рдЧреИрд░рд╛рдЬрдХреНрдпреВрдЕрд▓: 6 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рддрд╛рдк: 6 рдорд╛рди, рдЗрдиреНрдЯрд╕: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
рд░реВрдлрд╕рд╛рдЗрд▓: рем рдорд╛рди, рдЗрдирдЯ: реж.режреж%, рдлреНрд▓реЛрдЯ: реж.режреж%
рдмрд┐рдХреНрд░реА рдХреЗрдВрджреНрд░: 6 рдореВрд▓реНрдп, рд╕реНрдпрд╛рд╣реА: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
BsmtFinType1: 7 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
BsmtFinType2: 7 рдорд╛рди, ints: 0.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 0.00%
рдХрд╛рд░реНрдпрд╛рддреНрдордХ: 7 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рдЧреИрд░рд╛рдЬ рдЯрд╛рдЗрдк: 7 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рд╢рдпрдирдХрдХреНрд╖рдЕрд╡рдЧреНрд░: 8 рдорд╛рди, рдЗрдиреНрдЯреНрд╕: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рдХрдВрдбреАрд╢рди 2: 8 рдорд╛рди, рдЗрдиреНрдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
HouseStyle: 8 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рдкреВрд▓рдЖрд░реЗ: 8 рдорд╛рди, рдЗрдирдЯ: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рд░реВрдлрдорд╛рд▓реНрдЯ: 8 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рдХрдВрдбреАрд╢рди 1: 9 рдорд╛рди, рдЗрдирдЯ: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рдУрд╡рд░рдСрд▓ рдХрд╛рдВрдб: 9 рдореВрд▓реНрдп, рд╕реНрдпрд╛рд╣реА: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
SaleType: 9 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
TotalQual: 10 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
MoSold: 12 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
TotRmsAbvGrd: 12 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рдПрдХреНрд╕рдЯрд░реНрдирд▓ резрд╕реНрдЯ: резрел рд╡реИрд▓реНрдпреВ, рдЗрдиреНрдЯреНрд╕: реж.режреж%, рдлреНрд▓реЛрдЯреНрд╕: реж.режреж%
MSSubClass: 15 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рдПрдХреНрд╕рдЯрд░реНрдирд▓2nd: 16 рдорд╛рди, рдЗрдиреНрдЯреНрд╕: 0.00%, рдлреНрд▓реЛрдЯреНрд╕: 0.00%
3SnPorch: 20 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
MiscVal: 21 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
LowQualFinSF: 24 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
рдЖрд╕ - рдкрдбрд╝реЛрд╕: 25 рдорд╛рди, ints: 0.00%, рдлреНрд▓реЛрдЯ: 0.00%
рд╡рд░реНрд╖рдореЛрдбрд╝: 61 рдорд╛рди, рдЗрдиреНрдЯрд╕: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
ScreenPorch: 76 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рдЧреИрд░рд╛рдЬрдпреВрд░рдмреЗрд▓реНрдЯ: 98 рдорд╛рди, ints: 94.45%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 94.45%
рд▓реЙрдЯрдлреНрд░реЗрдЯреЗрдЬ: 111 рдорд╛рди, рдЗрдирдЯ: 82.26%, рдлреНрд▓реЛрдЯ: 82.26%
рд╡рд░реНрд╖рдмреЗрд▓реНрдЯ: 112 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рд╕рдВрд▓рдЧреНрдирдХ: 120 рдорд╛рди, рдЗрдирдЯ: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
BsmtFinSF2: 144 рдореВрд▓реНрдп, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
OpenPorchSF: 202 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рд╡реБрдбрдбреЗрд╕реНрдХ: 274 рдореВрд▓реНрдп, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
MasVnrArea: 328 рдореВрд▓реНрдп, ints: 99.45%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 99.45%
2ndFlrSF: 417 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рдЧреИрд░рд╛рдЬрдПрд░реЗ: 441 рдореВрд▓реНрдп, рдЗрдиреНрдЯреНрд╕: 100.00%, рдлреНрд▓реЛрдЯреНрд╕: 100.00%
BsmtFinSF1: 637 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
SalePrice: 663 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
TotalBsmtSF: 721 рдорд╛рди, ints: 100.00%, рдлрд╝реНрд▓реЛрдЯреНрд╕: 100.00%
1stFrSF: 753 рдорд╛рди, рдЗрдиреНрдЯреНрд╕: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
BsmtUnfSF: 780 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
GrLivArea: 861 рдорд╛рди, ints: 100.00%, рдлреНрд▓реЛрдЯ: 100.00%
рд▓реЙрдЯрдЖрд░реЗ: резреж ,рей рдореВрд▓реНрдп, рдЗрдиреНрдЯреНрд╕: 100.00%, рдлреНрд▓реЛрдЯреНрд╕: 100.00%
рдХрдИ рдорд╛рди рд╕реНрддрдВрдн:
рдПрдХреНрд╕рдЯрд░реНрдирд▓ резрд╕реНрдЯ: рдПрд╕рдмрд╢реЗрдВрдЧ, рдПрд╕реНрдлрди, рдмреНрд░реИрдХрдо, рдмреНрд░реИрдХрдлреИрд╕, рд╕реАрдмрд▓реЙрдХ, рдХреЗрдордмреЗрдВрдЯ, рдПрдЪрдбрдмреЙрд░реНрдб, рдЗрдорд╕реНрдЯреИрдб, рдореЗрдЯрд▓рд╕реНрдб, рдкреНрд▓рд╛рдЗрд╡реБрдб, рд╕реНрдЯреЛрди, рдкреНрд▓рд╛рд╕реНрдЯрд░, рд╡рд┐рдирд╛рдЗрд▓реНрдбреНрд╕, рдбрдмреНрд▓реВрдбрдмреНрд▓реВ рдПрд╕рдбреАрдбреА, рдбрдмреНрд▓реНрдпреВрдбреАрдПрд╕рд╣рд┐рдВрдЧ
рдПрдХреНрд╕рдЯрд░реНрдирд▓ 2nd: рдПрд╕рдмрд╢реЗрдВрдЧ, рдПрд╕рдлрд╢реЗрди, рдмреНрд░реНрдХ рд╕реАрдПрдордПрди, рдмреНрд░реИрдХрдлреИрд╕, рд╕реАрдмреНрд▓реЙрдХ, рд╕рд┐рдордбрдм, рдПрдЪрдбрдмреЙрд░реНрдб, рдЗрдорд╕реНрдЯреИрдб, рдореЗрдЯрд▓рд╕реНрдж, рдЕрджрд░, рдкреНрд▓рд╛рдЗрд╡реБрдб, рд╕реНрдЯреЛрди, рд╕реНрдЯреИрдЯреЛ, рд╡рд┐рдирд╛рдЗрд▓рдПрд╕рдб, рдбрдмреНрд▓реНрдпреВрдбреА рд╢рд┐рдВрдЧ, рдбрдмреНрд▓реНрдпреВрдбреА рд╢реЗрдВрдЧ
рдЖрд╕ - рдкрдбрд╝реЛрд╕: Blmngtn, Blueste, BrDale, BrkSide, ClearCr, CollgCr, Crawfor, Edwards, Gilbert, IDOTRR, MeadowV, Mitchel, NAmes, NoRidge, NPkVill, NridgHt, NWAmes, OldTown, Sawyer ,WW, Veenker
рдЧреИрд░-рдкрд╛рд░реНрд╕рдмрд▓ рдлрд╝реНрд▓реЛрдЯреНрд╕
рдЧреИрд░рд╛рдЬрдпреВрд░рдмреЗрд▓реНрдЯ: рдПрдирдП
рд▓реЛрдЯрдлреНрд░реЙрд╕реНрдЯреЗрдЬ: рдПрдирдП
MasVnrArea: рдПрдирдП
рдлреНрд▓реЛрдЯ рд░реЗрдВрдЬ:
рдмрд╕реНрдордерд╛рд▓рдлрдмрде: 0 ... 2
рдЕрд░реНрдзрдмреЗрде: 0 ... 2
BsmtFullBath: 0 ... 3
рдЬреБрдЧрдиреВ: 0 ... 3
рдлреБрд▓рдмрд╛рде: 0 ... 3
рдХрд┐рдЪрдирдЕрд╡рдЧрд░: 0 ... 3
рдЧреИрд░рд╛рдЬрдХрд╛рд░реНрд╕: 0 ... 4
рдпрд░реЛрд▓реНрдб: 2006 ... 2010
рд╢рдпрдирдХрдХреНрд╖рдЕрд╡рдЧреНрд░рд╣: 0 ... 8
рдкреВрд▓рдЖрд░реЗ: 0 ... 738
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░: 1 ... 9
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░: 1 ... 10
MoSold: 1 ... 12
рдЯреЛрдЯреНрд░рдореНрд╕рдЕрдмрдЧрд╛рд░реНрдб: 2 ... 14
MSSubClass: 20 ... 190
3SnPorch: 0 ... 508
MiscVal: 0 ... 15500
рд▓реЛрдХреН рдпреВрдЕрд▓рдлрд┐рдирдПрд╕рдПрдл: 0 ... 572
рд╡рд░реНрд╖рдорд╛рдиреЛрджрдп: 1950 ... 2010
рд╕реНрдХреНрд░реАрдирдкреЙрд░реНрдЪ: 0 ... 480
рдЧреИрд░рд╛рдЬрдпреВрд░рдмреЗрд▓реНрдЯ: 1900 ... 2010
рд▓реЛрдЯрдлреНрд░реЙрд╕реНрдЯреЗрдЬ: 21 ... 313
рд╡рд░реНрд╖рдмреБрд▓реА: 1872 ... 2010
рд╕рдВрд▓рдЧреНрдирдХ: 0 ... 552
BsmtFinSF2: 0 ... 1474
OpenPorchSF: 0 ... 547
рд╡реБрдбрдбреЗрд╕реНрдХ: 0 ... 857
рдорд╛рд╕рд╡рд░реНрдиреНрд░рд┐рдпрд╛: 0 ... 1600
2ndFlrSF: 0 ... 2065
рдЧреИрд░реЗрдЬреЗрдЬ: реж ... резрекрез 0
BsmtFinSF1: 0 ... 5644
SalePrice: 34,900 ... 755,000
TotalBsmtSF: 0 ... 6110
1stFrSF: 334 ... 4692
BsmtUnfSF: 0 ... 2336
рдЧреНрд░рд┐рд▓рд┐рд╡реНрд░рд┐рдпрд╛: 334 ... 5642
рд▓реЙрдЯреНрд░рд┐рдпрд╛: 1300 ... 215245
рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
ValueNormalizer рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛, рдЬреЛ рдХреЙрд▓рдо рдХреЗ рдЕрдВрджрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд▓реЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдорд╛рди (рдПрдХ
рд╕реНрдЯреНрд░рд┐рдВрдЧ ) рдХреЛ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ (
рдбрдмрд▓ [] ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╕реБрд╡рд┐рдзрд╛ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:
ValueNormalizer static Func<string, double[]> ValueNormalizer( double floats, IEnumerable<string> values) { if (floats > 0.01) { double max = values.AsDouble().Max().Value; return s => new[] { double.TryParse(s, out double v) ? v / max : -1 }; } else { string[] domain = values.Distinct().OrderBy(v => v).ToArray(); return s => new double[domain.Length+1] .Set(Array.IndexOf(domain, s)+1, 1); } }
рдЕрдм рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдпрд╣ рдПрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдПрдХ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдПрдБ
рдЖрдЬ рддрдХ, рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛрдЬ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛редрдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Python рдФрд░ TensorFlow 1.1x рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдмрд╕ рдЬрд░реВрд░рдд рд╣реИ
<PackageReference Include="Gradient" Version="0.1.10-tech-preview3" />
рдЕрдкрдиреА рдЖрдзреБрдирд┐рдХ .csproj рдлрд╝рд╛рдЗрд▓ рдореЗрдВред рдЕрдиреНрдпрдерд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдореИрдиреБрдЕрд▓ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред
рдПрдХ рдмрд╛рд░ рдкреИрдХреЗрдЬ рдЙрдардиреЗ рдФрд░ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдЙрдерд▓рд╛ рдЧрд╣рд░рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
using tensorflow; using tensorflow.keras; using tensorflow.keras.layers; using tensorflow.train; ... var model = new Sequential(new Layer[] { new Dense(units: 16, activation: tf.nn.relu_fn), new Dropout(rate: 0.1), new Dense(units: 10, activation: tf.nn.relu_fn), new Dense(units: 1, activation: tf.nn.relu_fn), }); model.compile(optimizer: new AdamOptimizer(), loss: "mean_squared_error");
рдпрд╣ 3 рдиреНрдпреВрд░реЙрди рдкрд░рддреЛрдВ рдФрд░ рдПрдХ рдбреНрд░реЙрдкрдЖрдЙрдЯ рдкрд░рдд рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдПрдЧрд╛, рдЬреЛ рдУрд╡рд░рдлрд┐рдЯрд┐рдВрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
tf.nn.relu_fntf.nn.relu_fn рд╣рдорд╛рд░реЗ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдпрдг рдХрд╛рд░реНрдп рд╣реИред
ReLU рдХреЛ рдЧрд╣рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣
рдЧрд╛рдпрдм рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдврд╛рд▓ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛
рд╣реИ : рдореВрд▓ рдЧреИрд░-рд░реЗрдЦреАрдп рд╕рдХреНрд░рд┐рдпрдг рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡реНрдпреБрддреНрдкрдиреНрди рдЬрдм рдЫреЛрдЯреЗ рд╕реНрддрд░ рдкрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдЧрд╣рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рд▓реЗрдпрд░ рд╕реЗ рд╡рд╛рдкрд╕ рдлреИрд▓ рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐, рдЗрдирдкреБрдЯ рдХреЗ рдХрд░реАрдм рдХреА рдкрд░рддреЗрдВ рдХреЗрд╡рд▓ рдмрд╣реБрдд рдереЛрдбрд╝рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВрдЧреА, рдЬрд┐рд╕рдиреЗ рдЧрд╣рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЛ рдХрд╛рдлреА рдзреАрдорд╛ рдХрд░ рджрд┐рдпрд╛ред
рдЦрд╝рд╛рд░рд┐рдЬ рдХрд┐рдпрд╛ рд╣реБрдЖрдбреНрд░реЙрдкрдЖрдЙрдЯ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖-рдлрд╝рдВрдХреНрд╢рди рдкрд░рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдиреНрдпреВрд░реЙрдиреНрд╕ рдЬреИрд╕реЗ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдирдкреБрдЯ рдХреЛ рд▓реЗ рдХрд░ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ 0 рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛ рдпрд╣ рдореВрд▓ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЧреБрдЬрд░рддрд╛ рд╣реИ)ред рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рдЫреЛрдЯреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдХрдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ
рдУрд╡рд░рдлрд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо
Id рдХреЙрд▓рдо рдХреЛ рдирд╣реАрдВ рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рддреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ <Id> -> <SalePrice> рдореИрдкрд┐рдВрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдкрд░ 100% рд╕рдЯреАрдХрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛ред
рд╣рдореЗрдВ рдбреНрд░реЙрдкрдЖрдЙрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рд╣рдорд╛рд░реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдореЗрдВ рдХреЗрд╡рд▓ ~ 1500 рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдФрд░ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЗрд╕ рдЫреЛрдЯреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ> 1800 рдЯреНрдпреВрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рднрд╛рд░ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╣реБрдкрдж рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рдЙрд╕ рдХреАрдордд рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдореЗрд▓ рдЦрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдмрд┐рд▓реНрдХреБрд▓ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рддрдм рдпрд╣ рдореВрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕реЗрдЯ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА рдЬрд╛рдирдХрд╛рд░реА рдкрд░ рднрд╛рд░реА рдореВрд▓реНрдп рд╣реЛрдЧрд╛ред
рдбрд╛рдЯрд╛ рдлреАрдб рдХрд░реЗрдВ
TensorFlow рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рдпрд╛ рддреЛ NumPy рд╕рд░рдгрд┐рдпреЛрдВ, рдпрд╛ рдореМрдЬреВрджрд╛ рдЯреЗрдВрд╕рд░реЛрдВ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдореИрдВ DataRows рдХреЛ NumPy рд╕рд░рдгрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
using numpy; ... const string predict = "SalePrice"; ndarray GetInputs(IEnumerable<DataRow> rowSeq) { return np.array(rowSeq.Select(row => np.array( columnTypes .Where(c => c.column.ColumnName != predict) .SelectMany(column => column.normalizer( row.Table.Columns.Contains(column.column.ColumnName) ? (string)row[column.column.ColumnName] : "-1")) .ToArray())) .ToArray() ); } var predictColumn = columnTypes.Single(c => c.column.ColumnName == predict); ndarray trainOutputs = np.array(predictColumn.trainValues .AsDouble() .Select(v => v ?? -1) .ToArray()); ndarray trainInputs = GetInputs(trainRows);
рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ
DataRow рдХреЛ рдПрдХ
ndarray рдореЗрдВ
рдмрджрд▓рдХрд░ рдЙрд╕рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рд▓реЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдХреЙрд▓рдо рдХреЗ рдЕрдиреБрд░реВрдк
ValueNormalizer рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рд╣рдо рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдФрд░
ndarray рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рд░рдгреА рдХрд╛ рдПрдХ рд╕рд░рдгреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред
рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдБ рд╣рдо рдЯреНрд░реЗрди рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рджреВрд╕рд░реЗ
ndarray рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВ ред
рдврд╛рд▓ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХрд╛ рд╕рдордп
рдЗрд╕ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рде, рд╣рдо рд╕рднреА рдХреЛ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЗ
рдлрд┐рдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛
рд╣реИ :
model.fit(trainInputs, trainOutputs, epochs: 2000, validation_split: 0.075, verbose: 2);
рдпрд╣ рдХреЙрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдЕрдВрддрд┐рдо 7.5% рдХреЛ рдЕрд▓рдЧ рдХрд░ рджреЗрдЧрд╛, рдлрд┐рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд 2000 рдмрд╛рд░ рджреЛрд╣рд░рд╛рдПрдЧрд╛:
- рдЯреНрд░реЗрди рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЪрдордЧрд╛рджрдбрд╝реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ
- рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдЗрди рдмреИрдЪреЛрдВ рдХреЛ рдЦрд┐рд▓рд╛рдПрдВ
- рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдиреБрдХрд╕рд╛рди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдгрдирд╛ рдХреА рдЧрдИ рддреНрд░реБрдЯрд┐
- рд╡реНрдпрдХреНрддрд┐рдЧрдд рдиреНрдпреВрд░реЙрди рдХрдиреЗрдХреНрд╢рди рдХреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдмреИрдХрдкреНрд░реЗрдЧреЗрдЯ рдХрд░реЗрдВ, рд╡рдЬрди рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдХрд░реЗрдЧрд╛, рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП
val_loss рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдХреЗрд╡рд▓
рдиреБрдХрд╕рд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдбреЗрдЯрд╛ рдкрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред рдЖрдорддреМрд░ рдкрд░, рдЕрдЧрд░
val_loss рдиреБрдХрд╕рд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ
рдУрд╡рд░рдлрд┐рдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реВрдВрдЧрд╛ред
рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдиреБрдХрд╕рд╛рди рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдПрдХ
рд╡рд░реНрдЧрдореВрд▓ 20000 рдХреЗ рдЖрджреЗрд╢ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╕реНрддреБрдд
рдореИрдВ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдмрд╛рдд рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛ред рдЖрдЙрдЯрдкреБрдЯ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕рд░рд▓ рд╣реИ:
const string SubmissionInputFile = "test.csv"; DataTable submissionData = LoadData(SubmissionInputFile); var submissionRows = submissionData.Rows.Cast<DataRow>(); ndarray submissionInputs = GetInputs(submissionRows); ndarray sumissionOutputs = model.predict(submissionInputs);
рдЬреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдлрд┐рд░ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ .csv рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдЬреЛ рдХрд┐ рдмрд╕ рдИрдж рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рдЬреЛрдбрд╝реЗ рдЬреЛрдбрд╝реЗред
рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 0.17 рдХреЗ рдЖрджреЗрд╢ рдкрд░ рдПрдХ рдЕрдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реАрдбрд░рдмреЛрд░реНрдб рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЕрдВрддрд┐рдо рддрд┐рдорд╛рд╣реА рдореЗрдВ рдХрд╣реАрдВ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣реЗ, рдЕрдЧрд░ рдпрд╣ 27 рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреЗ рд╕рд╛рде 3 рдкрд░рдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд░рд▓ рдерд╛, рддреЛ рдЙрди pesky рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЛ рдкреНрд░рдореБрдЦ рдЕрдореЗрд░рд┐рдХреА рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ $ 300k + / y рдХреБрд▓ рдореБрдЖрд╡рдЬрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред
рд▓рдкреЗрдЯрддрд╛ рд╣реБрдЖ
рдЗрд╕ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб (рд╕рднреА рд╕рд╣рд╛рдпрдХреЛрдВ рдХреЗ рд╕рд╛рде, рдФрд░ рдореЗрд░реЗ рдкрд╣рд▓реЗ рдХреЗ рдЕрдиреНрд╡реЗрд╖рдг рдФрд░ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдХреБрдЫ рдЯрд┐рдкреНрдкрдгреА рдХрд┐рдП рдЧрдП рд╣рд┐рд╕реНрд╕реЗ)
рдкреЗрд╕реНрдЯрдмрд┐рди рдкрд░ рд▓рдЧрднрдЧ 200 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдореЗрд░реЗ рд╢реАрдирд┐рдЧрдиреНрд╕ рдЙрд╕ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд▓реАрдбрд░рдмреЛрд░реНрдб рдХреЗ рд╢реАрд░реНрд╖ 50% рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдПрдХ рд╢реМрдХрд┐рдпрд╛ рдпрд╛рддреНрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд╕рд╛рд╣рд╕рд┐рдХ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рдШреВрдордиреЗ рд╡рд╛рд▓реЗ рдкрд╡рдирдЪрдХреНрдХреА рдХреЗ рд╕рд╛рде рдПрдХ рд▓рдбрд╝рд╛рдИ рдЬреЛ рдкрдерд┐рдХ рдХреЗ рдкрд╛рд╕ рд╣реИ - рдПрдХ рдмрдбрд╝рд╛ рдореЙрдбрд▓ (рдЬреИрд╕реЗ рдЧрд╣рд░реА рдПрдирдПрди, рдпрд╛рдж рд░рдЦреЗрдВ, рдХреЛрдИ рдореИрдиреБрдЕрд▓ рдлреАрдЪрд░ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдирд╣реАрдВ!)ред рдпрд╣ рдПрдХ рдХреЛрдбрд┐рдВрдЧ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдХрдо рд╣реЛрдЧрд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрдорд╛рд╢ рдЧрдгрд┐рдд рдФрд░ рдПрдХ рдЕрдЬреАрдм рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЛрдЪрд╛ рдЦреЛрдЬ рдХрд╛ рдЕрдзрд┐рдХред рджреЗрдЦрддреЗ рд░рд╣реЛ!
рд▓рд┐рдВрдХ
KaggleрдХрд╛рдЧрд▓ рдкрд░ рд╣рд╛рдЙрд╕ рдкреНрд░рд╛рдЗрд╕ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛TensorFlow рдкреНрд░рддрд┐рдЧрдорди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓TensorFlow рдореБрдЦ рдкреГрд╖реНрдаTensorFlow рдПрдкреАрдЖрдИ рд╕рдВрджрд░реНрднрдЧреНрд░реЗрдбрд┐рдПрдВрдЯ (TensorFlow рдмрд╛рдЗрдВрдбрд┐рдВрдЧ)