diff --git a/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ar.png b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ar.png new file mode 100644 index 00000000..02913005 Binary files /dev/null and b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ar.png differ diff --git a/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.bn.png b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.bn.png new file mode 100644 index 00000000..281a1f10 Binary files /dev/null and b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.bn.png differ diff --git a/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.mo.png b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.mo.png new file mode 100644 index 00000000..9c72c8bf Binary files /dev/null and b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.mo.png differ diff --git a/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ru.png b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ru.png new file mode 100644 index 00000000..281a1f10 Binary files /dev/null and b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ru.png differ diff --git a/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ur.png b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ur.png new file mode 100644 index 00000000..74eb486e Binary files /dev/null and b/translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ur.png differ diff --git a/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ar.png b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ar.png new file mode 100644 index 00000000..fd1f8097 Binary files /dev/null and b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ar.png differ diff --git a/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.bn.png b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.bn.png new file mode 100644 index 00000000..d7940c04 Binary files /dev/null and b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.bn.png differ diff --git a/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.mo.png b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.mo.png new file mode 100644 index 00000000..2c261de3 Binary files /dev/null and b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.mo.png differ diff --git a/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ru.png b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ru.png new file mode 100644 index 00000000..2fd172f4 Binary files /dev/null and b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ru.png differ diff --git a/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ur.png b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ur.png new file mode 100644 index 00000000..e79b4431 Binary files /dev/null and b/translated_images/00-Title.8af36cd35da1ac555b678627fbdc6e320c75f0100876ea41d30ea205d3b08d22.ur.png differ diff --git a/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ar.png b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ar.png new file mode 100644 index 00000000..e7898f11 Binary files /dev/null and b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ar.png differ diff --git a/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.bn.png b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.bn.png new file mode 100644 index 00000000..93ad5efc Binary files /dev/null and b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.bn.png differ diff --git a/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.mo.png b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.mo.png new file mode 100644 index 00000000..a5bf4531 Binary files /dev/null and b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.mo.png differ diff --git a/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ru.png b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ru.png new file mode 100644 index 00000000..1891210e Binary files /dev/null and b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ru.png differ diff --git a/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ur.png b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ur.png new file mode 100644 index 00000000..ba0cfd24 Binary files /dev/null and b/translated_images/01-Definitions.1b14ddc9525dc0d9416a2f500f30e8652d21622f4e184100d405bd874ecbc17d.ur.png differ diff --git a/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ar.png b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ar.png new file mode 100644 index 00000000..c47edbeb Binary files /dev/null and b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ar.png differ diff --git a/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.bn.png b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.bn.png new file mode 100644 index 00000000..138f421e Binary files /dev/null and b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.bn.png differ diff --git a/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.mo.png b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.mo.png new file mode 100644 index 00000000..1dcebb13 Binary files /dev/null and b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.mo.png differ diff --git a/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ru.png b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ru.png new file mode 100644 index 00000000..63677fc8 Binary files /dev/null and b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ru.png differ diff --git a/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ur.png b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ur.png new file mode 100644 index 00000000..32116724 Binary files /dev/null and b/translated_images/02-Ethics.728d166895302ab09c726c2a8385abbf7c3e36752f0ee933bba7ea8f78f5cdca.ur.png differ diff --git a/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ar.png b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ar.png new file mode 100644 index 00000000..61a0d6fa Binary files /dev/null and b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ar.png differ diff --git a/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.bn.png b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.bn.png new file mode 100644 index 00000000..66b86aa7 Binary files /dev/null and b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.bn.png differ diff --git a/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.mo.png b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.mo.png new file mode 100644 index 00000000..9f520d5a Binary files /dev/null and b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.mo.png differ diff --git a/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ru.png b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ru.png new file mode 100644 index 00000000..64d96cbe Binary files /dev/null and b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ru.png differ diff --git a/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ur.png b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ur.png new file mode 100644 index 00000000..40790efa Binary files /dev/null and b/translated_images/03-DefiningData.f800817186949e078a81e7d5fdf9bb83834e561316bf790d4645c970ed4ff9ae.ur.png differ diff --git a/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ar.png b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ar.png new file mode 100644 index 00000000..227c7d7b Binary files /dev/null and b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ar.png differ diff --git a/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.bn.png b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.bn.png new file mode 100644 index 00000000..b0549019 Binary files /dev/null and b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.bn.png differ diff --git a/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.mo.png b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.mo.png new file mode 100644 index 00000000..649d5b6c Binary files /dev/null and b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.mo.png differ diff --git a/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ru.png b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ru.png new file mode 100644 index 00000000..d83805d2 Binary files /dev/null and b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ru.png differ diff --git a/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ur.png b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ur.png new file mode 100644 index 00000000..2259c771 Binary files /dev/null and b/translated_images/04-Statistics-Probability.cfc569d84a9f186748b69af7fdac3fa560329ccfc0e28994bfa65450ed78bdde.ur.png differ diff --git a/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ar.png b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ar.png new file mode 100644 index 00000000..32f7a9d7 Binary files /dev/null and b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ar.png differ diff --git a/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.bn.png b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.bn.png new file mode 100644 index 00000000..5d9fd9e3 Binary files /dev/null and b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.bn.png differ diff --git a/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.mo.png b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.mo.png new file mode 100644 index 00000000..9b633e42 Binary files /dev/null and b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.mo.png differ diff --git a/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ru.png b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ru.png new file mode 100644 index 00000000..44c6561e Binary files /dev/null and b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ru.png differ diff --git a/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ur.png b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ur.png new file mode 100644 index 00000000..11f47eae Binary files /dev/null and b/translated_images/05-RelationalData.af50f5a3e50f7456f1d895326b489d3b3f608a09abc28933d5dc6ba6ac191565.ur.png differ diff --git a/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ar.png b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ar.png new file mode 100644 index 00000000..44b7d081 Binary files /dev/null and b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ar.png differ diff --git a/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.bn.png b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.bn.png new file mode 100644 index 00000000..25bdb79a Binary files /dev/null and b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.bn.png differ diff --git a/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.mo.png b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.mo.png new file mode 100644 index 00000000..81b22d9e Binary files /dev/null and b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.mo.png differ diff --git a/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ru.png b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ru.png new file mode 100644 index 00000000..39566618 Binary files /dev/null and b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ru.png differ diff --git a/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ur.png b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ur.png new file mode 100644 index 00000000..14ed8852 Binary files /dev/null and b/translated_images/06-NoSQL.42a91ea0cd5769fe43e3c21554eb6d308b1fdf1435a6ae7c47b1a9dedab2da84.ur.png differ diff --git a/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ar.png b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ar.png new file mode 100644 index 00000000..3726a580 Binary files /dev/null and b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ar.png differ diff --git a/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.bn.png b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.bn.png new file mode 100644 index 00000000..c65a3c4d Binary files /dev/null and b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.bn.png differ diff --git a/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.mo.png b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.mo.png new file mode 100644 index 00000000..15bb1a65 Binary files /dev/null and b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.mo.png differ diff --git a/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ru.png b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ru.png new file mode 100644 index 00000000..f04c412d Binary files /dev/null and b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ru.png differ diff --git a/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ur.png b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ur.png new file mode 100644 index 00000000..f6ab6eea Binary files /dev/null and b/translated_images/07-WorkWithPython.8bf4a5013718bef90cb3887355e158974494de38d2ad420b6cdce2fcd982cd89.ur.png differ diff --git a/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ar.png b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ar.png new file mode 100644 index 00000000..b3b9b7e1 Binary files /dev/null and b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ar.png differ diff --git a/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.bn.png b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.bn.png new file mode 100644 index 00000000..3731c14c Binary files /dev/null and b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.bn.png differ diff --git a/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.mo.png b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.mo.png new file mode 100644 index 00000000..024517c6 Binary files /dev/null and b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.mo.png differ diff --git a/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ru.png b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ru.png new file mode 100644 index 00000000..ddd6634a Binary files /dev/null and b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ru.png differ diff --git a/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ur.png b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ur.png new file mode 100644 index 00000000..612a309e Binary files /dev/null and b/translated_images/08-DataPreparation.e3b185c37958e96435267555edc6e54f2eb0f2d18745cfd550d3f9ba34877072.ur.png differ diff --git a/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ar.png b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ar.png new file mode 100644 index 00000000..472df71c Binary files /dev/null and b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ar.png differ diff --git a/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.bn.png b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.bn.png new file mode 100644 index 00000000..0b01188c Binary files /dev/null and b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.bn.png differ diff --git a/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.mo.png b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.mo.png new file mode 100644 index 00000000..f8adc4f6 Binary files /dev/null and b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.mo.png differ diff --git a/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ru.png b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ru.png new file mode 100644 index 00000000..327b3b44 Binary files /dev/null and b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ru.png differ diff --git a/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ur.png b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ur.png new file mode 100644 index 00000000..cb7d88eb Binary files /dev/null and b/translated_images/09-Visualizing-Quantities.5c846edd805a5238789865f960b1e2615b6889c715852f02a20a722484d97fbb.ur.png differ diff --git a/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ar.png b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ar.png new file mode 100644 index 00000000..60c8fb2e Binary files /dev/null and b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ar.png differ diff --git a/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.bn.png b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.bn.png new file mode 100644 index 00000000..8c0980d5 Binary files /dev/null and b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.bn.png differ diff --git a/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.mo.png b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.mo.png new file mode 100644 index 00000000..5004ad5d Binary files /dev/null and b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.mo.png differ diff --git a/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ru.png b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ru.png new file mode 100644 index 00000000..7409fc8b Binary files /dev/null and b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ru.png differ diff --git a/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ur.png b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ur.png new file mode 100644 index 00000000..9d4e2ae1 Binary files /dev/null and b/translated_images/10-Visualizing-Distributions.8097fd8abd7221a1da63a156aaca497d844697e6a0ef0bbf8795e0f6a0bf7309.ur.png differ diff --git a/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ar.png b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ar.png new file mode 100644 index 00000000..c47c8a14 Binary files /dev/null and b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ar.png differ diff --git a/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.bn.png b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.bn.png new file mode 100644 index 00000000..4a7b949f Binary files /dev/null and b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.bn.png differ diff --git a/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.mo.png b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.mo.png new file mode 100644 index 00000000..594909e6 Binary files /dev/null and b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.mo.png differ diff --git a/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ru.png b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ru.png new file mode 100644 index 00000000..b86d0674 Binary files /dev/null and b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ru.png differ diff --git a/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ur.png b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ur.png new file mode 100644 index 00000000..38fb4a87 Binary files /dev/null and b/translated_images/11-Visualizing-Proportions.3e82f24af94d206e51faf9aff1b454a52c8e69887296ac549d6286450cc64d1f.ur.png differ diff --git a/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ar.png b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ar.png new file mode 100644 index 00000000..b2e70b86 Binary files /dev/null and b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ar.png differ diff --git a/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.bn.png b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.bn.png new file mode 100644 index 00000000..9c5ae1cf Binary files /dev/null and b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.bn.png differ diff --git a/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.mo.png b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.mo.png new file mode 100644 index 00000000..f56ce813 Binary files /dev/null and b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.mo.png differ diff --git a/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ru.png b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ru.png new file mode 100644 index 00000000..dc213839 Binary files /dev/null and b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ru.png differ diff --git a/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ur.png b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ur.png new file mode 100644 index 00000000..863c54c1 Binary files /dev/null and b/translated_images/12-Visualizing-Relationships.4466f9bd260f03dd29dc04933456ade8466d7ed2a37a98b78ed47f061488d57a.ur.png differ diff --git a/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ar.png b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ar.png new file mode 100644 index 00000000..d61bfc54 Binary files /dev/null and b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ar.png differ diff --git a/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.bn.png b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.bn.png new file mode 100644 index 00000000..1fbb19c8 Binary files /dev/null and b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.bn.png differ diff --git a/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.mo.png b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.mo.png new file mode 100644 index 00000000..4921e6c7 Binary files /dev/null and b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.mo.png differ diff --git a/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ru.png b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ru.png new file mode 100644 index 00000000..188b8019 Binary files /dev/null and b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ru.png differ diff --git a/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ur.png b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ur.png new file mode 100644 index 00000000..e4e44e67 Binary files /dev/null and b/translated_images/13-MeaningfulViz.4db6f1997e519908c85e4b9b3b54609b2e9e90a27be9423a9b956ab9a7329c80.ur.png differ diff --git a/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ar.png b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ar.png new file mode 100644 index 00000000..e6da92ba Binary files /dev/null and b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ar.png differ diff --git a/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.bn.png b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.bn.png new file mode 100644 index 00000000..05c2646c Binary files /dev/null and b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.bn.png differ diff --git a/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.mo.png b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.mo.png new file mode 100644 index 00000000..fb4fbe08 Binary files /dev/null and b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.mo.png differ diff --git a/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ru.png b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ru.png new file mode 100644 index 00000000..978c4353 Binary files /dev/null and b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ru.png differ diff --git a/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ur.png b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ur.png new file mode 100644 index 00000000..4f041b79 Binary files /dev/null and b/translated_images/14-DataScience-Lifecycle.2c9f277e4d69fbaadc814c2b295be5e2df8f006b80543a974d109324f0897b7b.ur.png differ diff --git a/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ar.png b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ar.png new file mode 100644 index 00000000..7397ef87 Binary files /dev/null and b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ar.png differ diff --git a/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.bn.png b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.bn.png new file mode 100644 index 00000000..30a95f54 Binary files /dev/null and b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.bn.png differ diff --git a/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.mo.png b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.mo.png new file mode 100644 index 00000000..6bf6e5a7 Binary files /dev/null and b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.mo.png differ diff --git a/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ru.png b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ru.png new file mode 100644 index 00000000..854ce13e Binary files /dev/null and b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ru.png differ diff --git a/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ur.png b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ur.png new file mode 100644 index 00000000..17f7c622 Binary files /dev/null and b/translated_images/15-Analyzing.b501f3dbdc958f6fab0a507e307381c29e76707c3c41e174977e380a8b4063a9.ur.png differ diff --git a/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ar.png b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ar.png new file mode 100644 index 00000000..92a785b8 Binary files /dev/null and b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ar.png differ diff --git a/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.bn.png b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.bn.png new file mode 100644 index 00000000..00c4ea23 Binary files /dev/null and b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.bn.png differ diff --git a/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.mo.png b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.mo.png new file mode 100644 index 00000000..ab1397a9 Binary files /dev/null and b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.mo.png differ diff --git a/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ru.png b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ru.png new file mode 100644 index 00000000..92a785b8 Binary files /dev/null and b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ru.png differ diff --git a/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ur.png b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ur.png new file mode 100644 index 00000000..92a785b8 Binary files /dev/null and b/translated_images/16-Communicating.f1d29cd7984442a4804d0df8b7e8438b1abc7c1fcf5b3471e89eaf2e9ba087d9.ur.png differ diff --git a/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ar.png b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ar.png new file mode 100644 index 00000000..4eeb4f89 Binary files /dev/null and b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ar.png differ diff --git a/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.bn.png b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.bn.png new file mode 100644 index 00000000..e4b76ee9 Binary files /dev/null and b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.bn.png differ diff --git a/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.mo.png b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.mo.png new file mode 100644 index 00000000..c3fe1cdc Binary files /dev/null and b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.mo.png differ diff --git a/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ru.png b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ru.png new file mode 100644 index 00000000..3629e2ba Binary files /dev/null and b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ru.png differ diff --git a/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ur.png b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ur.png new file mode 100644 index 00000000..9fb5531d Binary files /dev/null and b/translated_images/17-DataScience-Cloud.0df76ac874805c141082935ca07e8eca7d3790b83df25d641a807495e4f19de2.ur.png differ diff --git a/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ar.png b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ar.png new file mode 100644 index 00000000..af22bc3a Binary files /dev/null and b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ar.png differ diff --git a/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.bn.png b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.bn.png new file mode 100644 index 00000000..f73850e2 Binary files /dev/null and b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.bn.png differ diff --git a/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.mo.png b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.mo.png new file mode 100644 index 00000000..04eec995 Binary files /dev/null and b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.mo.png differ diff --git a/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ru.png b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ru.png new file mode 100644 index 00000000..e410a0e9 Binary files /dev/null and b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ru.png differ diff --git a/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ur.png b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ur.png new file mode 100644 index 00000000..145149d8 Binary files /dev/null and b/translated_images/18-DataScience-Cloud.3a7292e8182b74ebfe5b246c0193c42592164aef625fe66e44194c19b2971f1a.ur.png differ diff --git a/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ar.png b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ar.png new file mode 100644 index 00000000..cf535cfc Binary files /dev/null and b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ar.png differ diff --git a/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.bn.png b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.bn.png new file mode 100644 index 00000000..3173d58a Binary files /dev/null and b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.bn.png differ diff --git a/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.mo.png b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.mo.png new file mode 100644 index 00000000..61e4248c Binary files /dev/null and b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.mo.png differ diff --git a/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ru.png b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ru.png new file mode 100644 index 00000000..1d490454 Binary files /dev/null and b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ru.png differ diff --git a/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ur.png b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ur.png new file mode 100644 index 00000000..20ec4911 Binary files /dev/null and b/translated_images/19-DataScience-Cloud.177b38fb86301fc6f06dea5b25a58f8abe1aa762d3a815d811c83ee22d8a8d6a.ur.png differ diff --git a/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ar.png b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ar.png new file mode 100644 index 00000000..4abec54a Binary files /dev/null and b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ar.png differ diff --git a/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.bn.png b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.bn.png new file mode 100644 index 00000000..25e7bd53 Binary files /dev/null and b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.bn.png differ diff --git a/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.mo.png b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.mo.png new file mode 100644 index 00000000..3495b587 Binary files /dev/null and b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.mo.png differ diff --git a/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ru.png b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ru.png new file mode 100644 index 00000000..39164b0a Binary files /dev/null and b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ru.png differ diff --git a/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ur.png b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ur.png new file mode 100644 index 00000000..d78b9e3d Binary files /dev/null and b/translated_images/20-DataScience-Humanities.1d1a155f4d12a6679eb4f2be1074a456957f00affe8137c9cb22dedd6e7337e7.ur.png differ diff --git a/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ar.png b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ar.png new file mode 100644 index 00000000..77d771d0 Binary files /dev/null and b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ar.png differ diff --git a/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.bn.png b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.bn.png new file mode 100644 index 00000000..6514e941 Binary files /dev/null and b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.bn.png differ diff --git a/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.mo.png b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.mo.png new file mode 100644 index 00000000..aa156d1a Binary files /dev/null and b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.mo.png differ diff --git a/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ru.png b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ru.png new file mode 100644 index 00000000..8bcd9cb6 Binary files /dev/null and b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ru.png differ diff --git a/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ur.png b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ur.png new file mode 100644 index 00000000..6e97848f Binary files /dev/null and b/translated_images/20-DataScience-RealWorld.976976229ee113426d617ef7a1a8cb8f80f7b7bca6860a167b1ca155b891415b.ur.png differ diff --git a/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ar.png b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ar.png new file mode 100644 index 00000000..30083020 Binary files /dev/null and b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ar.png differ diff --git a/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.bn.png b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.bn.png new file mode 100644 index 00000000..aee69aa4 Binary files /dev/null and b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.bn.png differ diff --git a/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.mo.png b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.mo.png new file mode 100644 index 00000000..b4f55c7a Binary files /dev/null and b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.mo.png differ diff --git a/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ru.png b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ru.png new file mode 100644 index 00000000..5e0b4944 Binary files /dev/null and b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ru.png differ diff --git a/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ur.png b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ur.png new file mode 100644 index 00000000..66de49d1 Binary files /dev/null and b/translated_images/20-DataScience-Research.da434814c51b4ef8cd15a8efa161d066eff282b59286a2ab33b834434df96db9.ur.png differ diff --git a/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ar.png b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ar.png new file mode 100644 index 00000000..69f0f797 Binary files /dev/null and b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ar.png differ diff --git a/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.bn.png b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.bn.png new file mode 100644 index 00000000..78d09aec Binary files /dev/null and b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.bn.png differ diff --git a/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.mo.png b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.mo.png new file mode 100644 index 00000000..9aaa5e08 Binary files /dev/null and b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.mo.png differ diff --git a/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ru.png b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ru.png new file mode 100644 index 00000000..36d61449 Binary files /dev/null and b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ru.png differ diff --git a/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ur.png b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ur.png new file mode 100644 index 00000000..e3774709 Binary files /dev/null and b/translated_images/20-DataScience-Sustainability.d4097bc684431da6b8f4b5f60896b6db7ca915f2366774416b2cd9939609a0c4.ur.png differ diff --git a/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ar.png b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ar.png new file mode 100644 index 00000000..4c766c19 Binary files /dev/null and b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ar.png differ diff --git a/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.bn.png b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.bn.png new file mode 100644 index 00000000..b8b368b9 Binary files /dev/null and b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.bn.png differ diff --git a/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.mo.png b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.mo.png new file mode 100644 index 00000000..e23c7ce6 Binary files /dev/null and b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.mo.png differ diff --git a/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ru.png b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ru.png new file mode 100644 index 00000000..9876f25c Binary files /dev/null and b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ru.png differ diff --git a/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ur.png b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ur.png new file mode 100644 index 00000000..b7cd1361 Binary files /dev/null and b/translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ur.png differ diff --git a/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ar.png b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ar.png new file mode 100644 index 00000000..24faf080 Binary files /dev/null and b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ar.png differ diff --git a/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.bn.png b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.bn.png new file mode 100644 index 00000000..ab5197f0 Binary files /dev/null and b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.bn.png differ diff --git a/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.mo.png b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.mo.png new file mode 100644 index 00000000..0a9f1a62 Binary files /dev/null and b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.mo.png differ diff --git a/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ru.png b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ru.png new file mode 100644 index 00000000..3a85f737 Binary files /dev/null and b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ru.png differ diff --git a/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ur.png b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ur.png new file mode 100644 index 00000000..243ff2f3 Binary files /dev/null and b/translated_images/2D.b3342157139dd804f8fb5adc58721f77e59273fc980175b4ef735ec18686713c.ur.png differ diff --git a/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ar.png b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ar.png new file mode 100644 index 00000000..ab474ea5 Binary files /dev/null and b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ar.png differ diff --git a/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.bn.png b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.bn.png new file mode 100644 index 00000000..c1a6fab9 Binary files /dev/null and b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.bn.png differ diff --git a/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.mo.png b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.mo.png new file mode 100644 index 00000000..865e09de Binary files /dev/null and b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.mo.png differ diff --git a/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ru.png b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ru.png new file mode 100644 index 00000000..b9869976 Binary files /dev/null and b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ru.png differ diff --git a/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ur.png b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ur.png new file mode 100644 index 00000000..79210346 Binary files /dev/null and b/translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ur.png differ diff --git a/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ar.png b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ar.png new file mode 100644 index 00000000..614ccca9 Binary files /dev/null and b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ar.png differ diff --git a/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.bn.png b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.bn.png new file mode 100644 index 00000000..ed671aca Binary files /dev/null and b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.bn.png differ diff --git a/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.mo.png b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.mo.png new file mode 100644 index 00000000..c2198bb6 Binary files /dev/null and b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.mo.png differ diff --git a/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ru.png b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ru.png new file mode 100644 index 00000000..d4d3c761 Binary files /dev/null and b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ru.png differ diff --git a/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ur.png b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ur.png new file mode 100644 index 00000000..cd6b7d9a Binary files /dev/null and b/translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ur.png differ diff --git a/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ar.png b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ar.png new file mode 100644 index 00000000..cbe3b7ef Binary files /dev/null and b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ar.png differ diff --git a/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.bn.png b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.bn.png new file mode 100644 index 00000000..ed671aca Binary files /dev/null and b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.bn.png differ diff --git a/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.mo.png b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.mo.png new file mode 100644 index 00000000..c2198bb6 Binary files /dev/null and b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.mo.png differ diff --git a/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ru.png b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ru.png new file mode 100644 index 00000000..d4d3c761 Binary files /dev/null and b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ru.png differ diff --git a/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ur.png b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ur.png new file mode 100644 index 00000000..cd6b7d9a Binary files /dev/null and b/translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ur.png differ diff --git a/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ar.png b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ar.png new file mode 100644 index 00000000..0bce1e1c Binary files /dev/null and b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ar.png differ diff --git a/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.bn.png b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.bn.png new file mode 100644 index 00000000..ae561d4c Binary files /dev/null and b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.bn.png differ diff --git a/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.mo.png b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.mo.png new file mode 100644 index 00000000..9301af8d Binary files /dev/null and b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.mo.png differ diff --git a/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ru.png b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ru.png new file mode 100644 index 00000000..1e91666c Binary files /dev/null and b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ru.png differ diff --git a/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ur.png b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ur.png new file mode 100644 index 00000000..0a687a3a Binary files /dev/null and b/translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ur.png differ diff --git a/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ar.png b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ar.png new file mode 100644 index 00000000..6d9e9f9a Binary files /dev/null and b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ar.png differ diff --git a/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.bn.png b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.bn.png new file mode 100644 index 00000000..b929c812 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.bn.png differ diff --git a/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.mo.png b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.mo.png new file mode 100644 index 00000000..02d03980 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.mo.png differ diff --git a/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ru.png b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ru.png new file mode 100644 index 00000000..cf6f81e4 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ru.png differ diff --git a/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ur.png b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ur.png new file mode 100644 index 00000000..e99b3b1d Binary files /dev/null and b/translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ur.png differ diff --git a/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ar.png b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ar.png new file mode 100644 index 00000000..123e28b5 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ar.png differ diff --git a/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.bn.png b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.bn.png new file mode 100644 index 00000000..42f0350c Binary files /dev/null and b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.bn.png differ diff --git a/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.mo.png b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.mo.png new file mode 100644 index 00000000..67fbf6a9 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.mo.png differ diff --git a/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ru.png b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ru.png new file mode 100644 index 00000000..20896ec4 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ru.png differ diff --git a/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ur.png b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ur.png new file mode 100644 index 00000000..14937587 Binary files /dev/null and b/translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ur.png differ diff --git a/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ar.png b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ar.png new file mode 100644 index 00000000..1a720d7c Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ar.png differ diff --git a/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.bn.png b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.bn.png new file mode 100644 index 00000000..a042f91b Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.bn.png differ diff --git a/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.mo.png b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.mo.png new file mode 100644 index 00000000..38ed9405 Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.mo.png differ diff --git a/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ru.png b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ru.png new file mode 100644 index 00000000..43d3d60e Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ru.png differ diff --git a/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ur.png b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ur.png new file mode 100644 index 00000000..b2be7942 Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ur.png differ diff --git a/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ar.png b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ar.png new file mode 100644 index 00000000..795158b2 Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ar.png differ diff --git a/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.bn.png b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.bn.png new file mode 100644 index 00000000..6c69a591 Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.bn.png differ diff --git a/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.mo.png b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.mo.png new file mode 100644 index 00000000..cf5e4c7a Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.mo.png differ diff --git a/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ru.png b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ru.png new file mode 100644 index 00000000..80c8829f Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ru.png differ diff --git a/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ur.png b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ur.png new file mode 100644 index 00000000..0266c6b9 Binary files /dev/null and b/translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ur.png differ diff --git a/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ar.png b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ar.png new file mode 100644 index 00000000..6770c8da Binary files /dev/null and b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ar.png differ diff --git a/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.bn.png b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.bn.png new file mode 100644 index 00000000..fe7ab4df Binary files /dev/null and b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.bn.png differ diff --git a/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.mo.png b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.mo.png new file mode 100644 index 00000000..66c4b212 Binary files /dev/null and b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.mo.png differ diff --git a/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ru.png b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ru.png new file mode 100644 index 00000000..cec5b85b Binary files /dev/null and b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ru.png differ diff --git a/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ur.png b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ur.png new file mode 100644 index 00000000..a855f152 Binary files /dev/null and b/translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ur.png differ diff --git a/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ar.png b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ar.png new file mode 100644 index 00000000..0b57916b Binary files /dev/null and b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ar.png differ diff --git a/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.bn.png b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.bn.png new file mode 100644 index 00000000..731e3c78 Binary files /dev/null and b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.bn.png differ diff --git a/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.mo.png b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.mo.png new file mode 100644 index 00000000..8d730b53 Binary files /dev/null and b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.mo.png differ diff --git a/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ru.png b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ru.png new file mode 100644 index 00000000..26f36eff Binary files /dev/null and b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ru.png differ diff --git a/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ur.png b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ur.png new file mode 100644 index 00000000..9a5e3085 Binary files /dev/null and b/translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ur.png differ diff --git a/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ar.png b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ar.png new file mode 100644 index 00000000..55bbeeed Binary files /dev/null and b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ar.png differ diff --git a/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.bn.png b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.bn.png new file mode 100644 index 00000000..cc4e2ed4 Binary files /dev/null and b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.bn.png differ diff --git a/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.mo.png b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.mo.png new file mode 100644 index 00000000..74b16eba Binary files /dev/null and b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.mo.png differ diff --git a/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ru.png b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ru.png new file mode 100644 index 00000000..77d4537a Binary files /dev/null and b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ru.png differ diff --git a/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ur.png b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ur.png new file mode 100644 index 00000000..69c0bd60 Binary files /dev/null and b/translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ur.png differ diff --git a/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ar.png b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ar.png new file mode 100644 index 00000000..462d77de Binary files /dev/null and b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ar.png differ diff --git a/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.bn.png b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.bn.png new file mode 100644 index 00000000..484a8626 Binary files /dev/null and b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.bn.png differ diff --git a/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.mo.png b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.mo.png new file mode 100644 index 00000000..c974bd02 Binary files /dev/null and b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.mo.png differ diff --git a/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ru.png b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ru.png new file mode 100644 index 00000000..5dae6154 Binary files /dev/null and b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ru.png differ diff --git a/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ur.png b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ur.png new file mode 100644 index 00000000..f95f16e8 Binary files /dev/null and b/translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ur.png differ diff --git a/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ar.png b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ar.png new file mode 100644 index 00000000..5e0f98b3 Binary files /dev/null and b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ar.png differ diff --git a/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.bn.png b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.bn.png new file mode 100644 index 00000000..c5127480 Binary files /dev/null and b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.bn.png differ diff --git a/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.mo.png b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.mo.png new file mode 100644 index 00000000..7f91b462 Binary files /dev/null and b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.mo.png differ diff --git a/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ru.png b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ru.png new file mode 100644 index 00000000..35e1cd5d Binary files /dev/null and b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ru.png differ diff --git a/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ur.png b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ur.png new file mode 100644 index 00000000..b2e8c8b7 Binary files /dev/null and b/translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ur.png differ diff --git a/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ar.png b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ar.png new file mode 100644 index 00000000..5228c4e7 Binary files /dev/null and b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ar.png differ diff --git a/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.bn.png b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.bn.png new file mode 100644 index 00000000..677bd062 Binary files /dev/null and b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.bn.png differ diff --git a/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.mo.png b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.mo.png new file mode 100644 index 00000000..62d18a8c Binary files /dev/null and b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.mo.png differ diff --git a/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ru.png b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ru.png new file mode 100644 index 00000000..f006209d Binary files /dev/null and b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ru.png differ diff --git a/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ur.png b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ur.png new file mode 100644 index 00000000..f8e225dc Binary files /dev/null and b/translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ur.png differ diff --git a/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ar.jpg b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ar.jpg new file mode 100644 index 00000000..ea5e0127 Binary files /dev/null and b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ar.jpg differ diff --git a/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.bn.jpg b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.bn.jpg new file mode 100644 index 00000000..8f411581 Binary files /dev/null and b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.bn.jpg differ diff --git a/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.mo.jpg b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.mo.jpg new file mode 100644 index 00000000..bdbc8b0b Binary files /dev/null and b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.mo.jpg differ diff --git a/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ru.jpg b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ru.jpg new file mode 100644 index 00000000..84d1ec0b Binary files /dev/null and b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ru.jpg differ diff --git a/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ur.jpg b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ur.jpg new file mode 100644 index 00000000..246a1141 Binary files /dev/null and b/translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ur.jpg differ diff --git a/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ar.jpg b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ar.jpg new file mode 100644 index 00000000..0b61d65b Binary files /dev/null and b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ar.jpg differ diff --git a/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.bn.jpg b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.bn.jpg new file mode 100644 index 00000000..8f411581 Binary files /dev/null and b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.bn.jpg differ diff --git a/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.mo.jpg b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.mo.jpg new file mode 100644 index 00000000..0c9be914 Binary files /dev/null and b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.mo.jpg differ diff --git a/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ru.jpg b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ru.jpg new file mode 100644 index 00000000..5719b413 Binary files /dev/null and b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ru.jpg differ diff --git a/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ur.jpg b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ur.jpg new file mode 100644 index 00000000..246a1141 Binary files /dev/null and b/translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ur.jpg differ diff --git a/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ar.jpg b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ar.jpg new file mode 100644 index 00000000..8fe1cc18 Binary files /dev/null and b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ar.jpg differ diff --git a/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.bn.jpg b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.bn.jpg new file mode 100644 index 00000000..7d3b06fb Binary files /dev/null and b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.bn.jpg differ diff --git a/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.mo.jpg b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.mo.jpg new file mode 100644 index 00000000..109dbaa1 Binary files /dev/null and b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.mo.jpg differ diff --git a/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ru.jpg b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ru.jpg new file mode 100644 index 00000000..8910496c Binary files /dev/null and b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ru.jpg differ diff --git a/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ur.jpg b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ur.jpg new file mode 100644 index 00000000..4e0992d0 Binary files /dev/null and b/translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ur.jpg differ diff --git a/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ar.jpg b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ar.jpg new file mode 100644 index 00000000..8fe1cc18 Binary files /dev/null and b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ar.jpg differ diff --git a/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.bn.jpg b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.bn.jpg new file mode 100644 index 00000000..81f70519 Binary files /dev/null and b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.bn.jpg differ diff --git a/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.mo.jpg b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.mo.jpg new file mode 100644 index 00000000..4d095502 Binary files /dev/null and b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.mo.jpg differ diff --git a/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ru.jpg b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ru.jpg new file mode 100644 index 00000000..19263909 Binary files /dev/null and b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ru.jpg differ diff --git a/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ur.jpg b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ur.jpg new file mode 100644 index 00000000..4e0992d0 Binary files /dev/null and b/translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ur.jpg differ diff --git a/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ar.jpg b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ar.jpg new file mode 100644 index 00000000..7d541590 Binary files /dev/null and b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ar.jpg differ diff --git a/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.bn.jpg b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.bn.jpg new file mode 100644 index 00000000..af2c5f31 Binary files /dev/null and b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.bn.jpg differ diff --git a/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.mo.jpg b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.mo.jpg new file mode 100644 index 00000000..72008744 Binary files /dev/null and b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.mo.jpg differ diff --git a/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ru.jpg b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ru.jpg new file mode 100644 index 00000000..fb7f93b3 Binary files /dev/null and b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ru.jpg differ diff --git a/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ur.jpg b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ur.jpg new file mode 100644 index 00000000..6fc5025a Binary files /dev/null and b/translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ur.jpg differ diff --git a/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ar.jpg b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ar.jpg new file mode 100644 index 00000000..7648b61d Binary files /dev/null and b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ar.jpg differ diff --git a/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.bn.jpg b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.bn.jpg new file mode 100644 index 00000000..3b97bc2b Binary files /dev/null and b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.bn.jpg differ diff --git a/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.mo.jpg b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.mo.jpg new file mode 100644 index 00000000..72008744 Binary files /dev/null and b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.mo.jpg differ diff --git a/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ru.jpg b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ru.jpg new file mode 100644 index 00000000..62110c25 Binary files /dev/null and b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ru.jpg differ diff --git a/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ur.jpg b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ur.jpg new file mode 100644 index 00000000..fef83295 Binary files /dev/null and b/translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ur.jpg differ diff --git a/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ar.jpg b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ar.jpg new file mode 100644 index 00000000..032326e9 Binary files /dev/null and b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ar.jpg differ diff --git a/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.bn.jpg b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.bn.jpg new file mode 100644 index 00000000..032326e9 Binary files /dev/null and b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.bn.jpg differ diff --git a/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.mo.jpg b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.mo.jpg new file mode 100644 index 00000000..032326e9 Binary files /dev/null and b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.mo.jpg differ diff --git a/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ru.jpg b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ru.jpg new file mode 100644 index 00000000..032326e9 Binary files /dev/null and b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ru.jpg differ diff --git a/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ur.jpg b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ur.jpg new file mode 100644 index 00000000..032326e9 Binary files /dev/null and b/translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ur.jpg differ diff --git a/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ar.png b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ar.png new file mode 100644 index 00000000..cabaf781 Binary files /dev/null and b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ar.png differ diff --git a/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.bn.png b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.bn.png new file mode 100644 index 00000000..e97fd9c0 Binary files /dev/null and b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.bn.png differ diff --git a/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.mo.png b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.mo.png new file mode 100644 index 00000000..f4ac6544 Binary files /dev/null and b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.mo.png differ diff --git a/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ru.png b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ru.png new file mode 100644 index 00000000..8868d959 Binary files /dev/null and b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ru.png differ diff --git a/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ur.png b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ur.png new file mode 100644 index 00000000..67cf373d Binary files /dev/null and b/translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ur.png differ diff --git a/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ar.png b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ar.png new file mode 100644 index 00000000..1376ad71 Binary files /dev/null and b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ar.png differ diff --git a/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.bn.png b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.bn.png new file mode 100644 index 00000000..880271ed Binary files /dev/null and b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.bn.png differ diff --git a/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.mo.png b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.mo.png new file mode 100644 index 00000000..35fb0292 Binary files /dev/null and b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.mo.png differ diff --git a/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ru.png b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ru.png new file mode 100644 index 00000000..fa0e778f Binary files /dev/null and b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ru.png differ diff --git a/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ur.png b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ur.png new file mode 100644 index 00000000..d67be17d Binary files /dev/null and b/translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ur.png differ diff --git a/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ar.png b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ar.png new file mode 100644 index 00000000..28ce25b9 Binary files /dev/null and b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ar.png differ diff --git a/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.bn.png b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.bn.png new file mode 100644 index 00000000..d7f92880 Binary files /dev/null and b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.bn.png differ diff --git a/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.mo.png b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.mo.png new file mode 100644 index 00000000..0b434dac Binary files /dev/null and b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.mo.png differ diff --git a/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ru.png b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ru.png new file mode 100644 index 00000000..8d8b56fa Binary files /dev/null and b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ru.png differ diff --git a/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ur.png b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ur.png new file mode 100644 index 00000000..c5c631e0 Binary files /dev/null and b/translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ur.png differ diff --git a/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ar.png b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ar.png new file mode 100644 index 00000000..d1d127b0 Binary files /dev/null and b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ar.png differ diff --git a/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.bn.png b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.bn.png new file mode 100644 index 00000000..608adc58 Binary files /dev/null and b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.bn.png differ diff --git a/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.mo.png b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.mo.png new file mode 100644 index 00000000..e7e07587 Binary files /dev/null and b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.mo.png differ diff --git a/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ru.png b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ru.png new file mode 100644 index 00000000..07e347d9 Binary files /dev/null and b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ru.png differ diff --git a/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ur.png b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ur.png new file mode 100644 index 00000000..4e91e5e4 Binary files /dev/null and b/translated_images/boxplot_explanation.4039b7de08780fd493ef798b41f7291d753f1f84de8955645f00c586e65f16a3.ur.png differ diff --git a/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ar.png b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ar.png new file mode 100644 index 00000000..f4a36d97 Binary files /dev/null and b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ar.png differ diff --git a/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.bn.png b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.bn.png new file mode 100644 index 00000000..d3d4dca0 Binary files /dev/null and b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.bn.png differ diff --git a/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.mo.png b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.mo.png new file mode 100644 index 00000000..9d1fa3b3 Binary files /dev/null and b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.mo.png differ diff --git a/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ru.png b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ru.png new file mode 100644 index 00000000..fd8be8e2 Binary files /dev/null and b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ru.png differ diff --git a/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ur.png b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ur.png new file mode 100644 index 00000000..8dbef40f Binary files /dev/null and b/translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ur.png differ diff --git a/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ar.png b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ar.png new file mode 100644 index 00000000..f4a36d97 Binary files /dev/null and b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ar.png differ diff --git a/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.bn.png b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.bn.png new file mode 100644 index 00000000..d3d4dca0 Binary files /dev/null and b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.bn.png differ diff --git a/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.mo.png b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.mo.png new file mode 100644 index 00000000..8fb7583c Binary files /dev/null and b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.mo.png differ diff --git a/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ru.png b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ru.png new file mode 100644 index 00000000..fd8be8e2 Binary files /dev/null and b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ru.png differ diff --git a/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ur.png b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ur.png new file mode 100644 index 00000000..8dbef40f Binary files /dev/null and b/translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ur.png differ diff --git a/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ar.png b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ar.png new file mode 100644 index 00000000..3913a883 Binary files /dev/null and b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ar.png differ diff --git a/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.bn.png b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.bn.png new file mode 100644 index 00000000..854ce234 Binary files /dev/null and b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.bn.png differ diff --git a/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.mo.png b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.mo.png new file mode 100644 index 00000000..3a513977 Binary files /dev/null and b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.mo.png differ diff --git a/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ru.png b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ru.png new file mode 100644 index 00000000..eac32539 Binary files /dev/null and b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ru.png differ diff --git a/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ur.png b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ur.png new file mode 100644 index 00000000..972bd1c5 Binary files /dev/null and b/translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ur.png differ diff --git a/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ar.png b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ar.png new file mode 100644 index 00000000..6132710f Binary files /dev/null and b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ar.png differ diff --git a/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.bn.png b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.bn.png new file mode 100644 index 00000000..6132710f Binary files /dev/null and b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.bn.png differ diff --git a/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.mo.png b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.mo.png new file mode 100644 index 00000000..6132710f Binary files /dev/null and b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.mo.png differ diff --git a/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ru.png b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ru.png new file mode 100644 index 00000000..6132710f Binary files /dev/null and b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ru.png differ diff --git a/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ur.png b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ur.png new file mode 100644 index 00000000..6132710f Binary files /dev/null and b/translated_images/category-counts.abee8188c4c9b6f0b4e13e2920039c9fa5cc151031a5c28e5a5ff6fb8c072ab4.ur.png differ diff --git a/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ar.png b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ar.png new file mode 100644 index 00000000..48bd235c Binary files /dev/null and b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ar.png differ diff --git a/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.bn.png b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.bn.png new file mode 100644 index 00000000..05e7a129 Binary files /dev/null and b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.bn.png differ diff --git a/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.mo.png b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.mo.png new file mode 100644 index 00000000..261ca982 Binary files /dev/null and b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.mo.png differ diff --git a/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ru.png b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ru.png new file mode 100644 index 00000000..182f2ac6 Binary files /dev/null and b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ru.png differ diff --git a/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ur.png b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ur.png new file mode 100644 index 00000000..97c14ed9 Binary files /dev/null and b/translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ur.png differ diff --git a/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ar.png b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ar.png new file mode 100644 index 00000000..573898ac Binary files /dev/null and b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ar.png differ diff --git a/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.bn.png b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.bn.png new file mode 100644 index 00000000..148e0d61 Binary files /dev/null and b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.bn.png differ diff --git a/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.mo.png b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.mo.png new file mode 100644 index 00000000..a46c2443 Binary files /dev/null and b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.mo.png differ diff --git a/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ru.png b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ru.png new file mode 100644 index 00000000..2ea6d024 Binary files /dev/null and b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ru.png differ diff --git a/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ur.png b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ur.png new file mode 100644 index 00000000..3eb38357 Binary files /dev/null and b/translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ur.png differ diff --git a/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ar.png b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ar.png new file mode 100644 index 00000000..bea2b83a Binary files /dev/null and b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ar.png differ diff --git a/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.bn.png b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.bn.png new file mode 100644 index 00000000..bea2b83a Binary files /dev/null and b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.bn.png differ diff --git a/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.mo.png b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.mo.png new file mode 100644 index 00000000..bea2b83a Binary files /dev/null and b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.mo.png differ diff --git a/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ru.png b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ru.png new file mode 100644 index 00000000..bea2b83a Binary files /dev/null and b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ru.png differ diff --git a/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ur.png b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ur.png new file mode 100644 index 00000000..bea2b83a Binary files /dev/null and b/translated_images/category-length.b0d9a0208a7b37136bed52d3abd90190543fbca94bde6f51652313cc6d017187.ur.png differ diff --git a/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ar.jpg b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ar.jpg new file mode 100644 index 00000000..30a2ba6e Binary files /dev/null and b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ar.jpg differ diff --git a/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.bn.jpg b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.bn.jpg new file mode 100644 index 00000000..30a2ba6e Binary files /dev/null and b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.bn.jpg differ diff --git a/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.mo.jpg b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.mo.jpg new file mode 100644 index 00000000..30a2ba6e Binary files /dev/null and b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.mo.jpg differ diff --git a/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ru.jpg b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ru.jpg new file mode 100644 index 00000000..30a2ba6e Binary files /dev/null and b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ru.jpg differ diff --git a/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ur.jpg b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ur.jpg new file mode 100644 index 00000000..30a2ba6e Binary files /dev/null and b/translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ur.jpg differ diff --git a/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ar.png b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ar.png new file mode 100644 index 00000000..25011902 Binary files /dev/null and b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ar.png differ diff --git a/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.bn.png b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.bn.png new file mode 100644 index 00000000..daa75259 Binary files /dev/null and b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.bn.png differ diff --git a/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.mo.png b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.mo.png new file mode 100644 index 00000000..fb13a250 Binary files /dev/null and b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.mo.png differ diff --git a/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ru.png b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ru.png new file mode 100644 index 00000000..c50627f0 Binary files /dev/null and b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ru.png differ diff --git a/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ur.png b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ur.png new file mode 100644 index 00000000..9150df04 Binary files /dev/null and b/translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ur.png differ diff --git a/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ar.png b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ar.png new file mode 100644 index 00000000..a4b22713 Binary files /dev/null and b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ar.png differ diff --git a/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.bn.png b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.bn.png new file mode 100644 index 00000000..b70683c9 Binary files /dev/null and b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.bn.png differ diff --git a/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.mo.png b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.mo.png new file mode 100644 index 00000000..abcd0660 Binary files /dev/null and b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.mo.png differ diff --git a/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ru.png b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ru.png new file mode 100644 index 00000000..83be0dce Binary files /dev/null and b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ru.png differ diff --git a/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ur.png b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ur.png new file mode 100644 index 00000000..28b030ef Binary files /dev/null and b/translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ur.png differ diff --git a/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ar.png b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ar.png new file mode 100644 index 00000000..f6c41447 Binary files /dev/null and b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ar.png differ diff --git a/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.bn.png b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.bn.png new file mode 100644 index 00000000..0ca72607 Binary files /dev/null and b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.bn.png differ diff --git a/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.mo.png b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.mo.png new file mode 100644 index 00000000..ce6958b4 Binary files /dev/null and b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.mo.png differ diff --git a/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ru.png b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ru.png new file mode 100644 index 00000000..1e88eedf Binary files /dev/null and b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ru.png differ diff --git a/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ur.png b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ur.png new file mode 100644 index 00000000..7c71f066 Binary files /dev/null and b/translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ur.png differ diff --git a/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ar.png b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ar.png new file mode 100644 index 00000000..1ab4f501 Binary files /dev/null and b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ar.png differ diff --git a/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.bn.png b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.bn.png new file mode 100644 index 00000000..7742452a Binary files /dev/null and b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.bn.png differ diff --git a/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.mo.png b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.mo.png new file mode 100644 index 00000000..bcdb6fec Binary files /dev/null and b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.mo.png differ diff --git a/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ru.png b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ru.png new file mode 100644 index 00000000..5e139197 Binary files /dev/null and b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ru.png differ diff --git a/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ur.png b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ur.png new file mode 100644 index 00000000..9922f91c Binary files /dev/null and b/translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ur.png differ diff --git a/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ar.jpg b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ar.jpg new file mode 100644 index 00000000..afc36c9d Binary files /dev/null and b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ar.jpg differ diff --git a/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.bn.jpg b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.bn.jpg new file mode 100644 index 00000000..a4c26c03 Binary files /dev/null and b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.bn.jpg differ diff --git a/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.mo.jpg b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.mo.jpg new file mode 100644 index 00000000..4d9de02b Binary files /dev/null and b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.mo.jpg differ diff --git a/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ru.jpg b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ru.jpg new file mode 100644 index 00000000..59186b72 Binary files /dev/null and b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ru.jpg differ diff --git a/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ur.jpg b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ur.jpg new file mode 100644 index 00000000..afc36c9d Binary files /dev/null and b/translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ur.jpg differ diff --git a/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ar.png b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ar.png new file mode 100644 index 00000000..742afe33 Binary files /dev/null and b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ar.png differ diff --git a/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.bn.png b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.bn.png new file mode 100644 index 00000000..de6a3c1a Binary files /dev/null and b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.bn.png differ diff --git a/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.mo.png b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.mo.png new file mode 100644 index 00000000..661313de Binary files /dev/null and b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.mo.png differ diff --git a/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ru.png b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ru.png new file mode 100644 index 00000000..146fc259 Binary files /dev/null and b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ru.png differ diff --git a/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ur.png b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ur.png new file mode 100644 index 00000000..29d9674e Binary files /dev/null and b/translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ur.png differ diff --git a/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ar.png b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ar.png new file mode 100644 index 00000000..72e15e6c Binary files /dev/null and b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ar.png differ diff --git a/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.bn.png b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.bn.png new file mode 100644 index 00000000..3f656ab1 Binary files /dev/null and b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.bn.png differ diff --git a/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.mo.png b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.mo.png new file mode 100644 index 00000000..ff1e2e18 Binary files /dev/null and b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.mo.png differ diff --git a/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ru.png b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ru.png new file mode 100644 index 00000000..8c0371ed Binary files /dev/null and b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ru.png differ diff --git a/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ur.png b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ur.png new file mode 100644 index 00000000..84c7a392 Binary files /dev/null and b/translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ur.png differ diff --git a/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ar.png b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ar.png new file mode 100644 index 00000000..a3bec81b Binary files /dev/null and b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ar.png differ diff --git a/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.bn.png b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.bn.png new file mode 100644 index 00000000..b2062cdf Binary files /dev/null and b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.bn.png differ diff --git a/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.mo.png b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.mo.png new file mode 100644 index 00000000..e85d4c7b Binary files /dev/null and b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.mo.png differ diff --git a/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ru.png b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ru.png new file mode 100644 index 00000000..d6a63d4d Binary files /dev/null and b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ru.png differ diff --git a/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ur.png b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ur.png new file mode 100644 index 00000000..8ffaa0a4 Binary files /dev/null and b/translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ur.png differ diff --git a/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ar.png b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ar.png new file mode 100644 index 00000000..1a3509d1 Binary files /dev/null and b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ar.png differ diff --git a/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.bn.png b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.bn.png new file mode 100644 index 00000000..cf177e4e Binary files /dev/null and b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.bn.png differ diff --git a/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.mo.png b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.mo.png new file mode 100644 index 00000000..6b73f70e Binary files /dev/null and b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.mo.png differ diff --git a/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ru.png b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ru.png new file mode 100644 index 00000000..aae48acd Binary files /dev/null and b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ru.png differ diff --git a/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ur.png b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ur.png new file mode 100644 index 00000000..0bdd92f4 Binary files /dev/null and b/translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ur.png differ diff --git a/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ar.png b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ar.png new file mode 100644 index 00000000..26c0152a Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ar.png differ diff --git a/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.bn.png b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.bn.png new file mode 100644 index 00000000..22033b51 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.bn.png differ diff --git a/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.mo.png b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.mo.png new file mode 100644 index 00000000..695fe75a Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.mo.png differ diff --git a/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ru.png b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ru.png new file mode 100644 index 00000000..2eda42d2 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ru.png differ diff --git a/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ur.png b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ur.png new file mode 100644 index 00000000..b9670397 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ur.png differ diff --git a/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ar.png b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ar.png new file mode 100644 index 00000000..f339bd39 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ar.png differ diff --git a/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.bn.png b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.bn.png new file mode 100644 index 00000000..3cb1a4e3 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.bn.png differ diff --git a/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.mo.png b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.mo.png new file mode 100644 index 00000000..794ef091 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.mo.png differ diff --git a/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ru.png b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ru.png new file mode 100644 index 00000000..dbb97908 Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ru.png differ diff --git a/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ur.png b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ur.png new file mode 100644 index 00000000..343dfa3d Binary files /dev/null and b/translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ur.png differ diff --git a/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ar.png b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ar.png new file mode 100644 index 00000000..7a17dbc5 Binary files /dev/null and b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ar.png differ diff --git a/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.bn.png b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.bn.png new file mode 100644 index 00000000..d30c803d Binary files /dev/null and b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.bn.png differ diff --git a/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.mo.png b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.mo.png new file mode 100644 index 00000000..36ed2bc2 Binary files /dev/null and b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.mo.png differ diff --git a/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ru.png b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ru.png new file mode 100644 index 00000000..94e5573c Binary files /dev/null and b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ru.png differ diff --git a/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ur.png b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ur.png new file mode 100644 index 00000000..079b2379 Binary files /dev/null and b/translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ur.png differ diff --git a/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ar.png b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ar.png new file mode 100644 index 00000000..60391e6f Binary files /dev/null and b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ar.png differ diff --git a/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.bn.png b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.bn.png new file mode 100644 index 00000000..0b45a6ef Binary files /dev/null and b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.bn.png differ diff --git a/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.mo.png b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.mo.png new file mode 100644 index 00000000..628ceb97 Binary files /dev/null and b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.mo.png differ diff --git a/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ru.png b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ru.png new file mode 100644 index 00000000..55f356e4 Binary files /dev/null and b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ru.png differ diff --git a/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ur.png b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ur.png new file mode 100644 index 00000000..fb2f69c2 Binary files /dev/null and b/translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ur.png differ diff --git a/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ar.jpg b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ar.jpg new file mode 100644 index 00000000..3d4954e3 Binary files /dev/null and b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ar.jpg differ diff --git a/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.bn.jpg b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.bn.jpg new file mode 100644 index 00000000..d97bfb2f Binary files /dev/null and b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.bn.jpg differ diff --git a/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.mo.jpg b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.mo.jpg new file mode 100644 index 00000000..0c33a833 Binary files /dev/null and b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.mo.jpg differ diff --git a/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ru.jpg b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ru.jpg new file mode 100644 index 00000000..54145b36 Binary files /dev/null and b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ru.jpg differ diff --git a/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ur.jpg b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ur.jpg new file mode 100644 index 00000000..3d4954e3 Binary files /dev/null and b/translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ur.jpg differ diff --git a/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ar.png b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ar.png new file mode 100644 index 00000000..7b9d21e5 Binary files /dev/null and b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ar.png differ diff --git a/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.bn.png b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.bn.png new file mode 100644 index 00000000..7f8fb2c3 Binary files /dev/null and b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.bn.png differ diff --git a/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.mo.png b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.mo.png new file mode 100644 index 00000000..87551754 Binary files /dev/null and b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.mo.png differ diff --git a/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ru.png b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ru.png new file mode 100644 index 00000000..9b0043fc Binary files /dev/null and b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ru.png differ diff --git a/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ur.png b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ur.png new file mode 100644 index 00000000..68723ae1 Binary files /dev/null and b/translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ur.png differ diff --git a/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ar.jpg b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ar.jpg new file mode 100644 index 00000000..e64293a3 Binary files /dev/null and b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ar.jpg differ diff --git a/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.bn.jpg b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.bn.jpg new file mode 100644 index 00000000..d27f105a Binary files /dev/null and b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.bn.jpg differ diff --git a/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.mo.jpg b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.mo.jpg new file mode 100644 index 00000000..14df55b7 Binary files /dev/null and b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.mo.jpg differ diff --git a/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ru.jpg b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ru.jpg new file mode 100644 index 00000000..d8304329 Binary files /dev/null and b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ru.jpg differ diff --git a/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ur.jpg b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ur.jpg new file mode 100644 index 00000000..48353470 Binary files /dev/null and b/translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ur.jpg differ diff --git a/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ar.jpg b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ar.jpg new file mode 100644 index 00000000..06922474 Binary files /dev/null and b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ar.jpg differ diff --git a/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.bn.jpg b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.bn.jpg new file mode 100644 index 00000000..8bacc8a4 Binary files /dev/null and b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.bn.jpg differ diff --git a/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.mo.jpg b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.mo.jpg new file mode 100644 index 00000000..0e34e6fc Binary files /dev/null and b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.mo.jpg differ diff --git a/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ru.jpg b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ru.jpg new file mode 100644 index 00000000..2260bd9a Binary files /dev/null and b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ru.jpg differ diff --git a/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ur.jpg b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ur.jpg new file mode 100644 index 00000000..766c5350 Binary files /dev/null and b/translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ur.jpg differ diff --git a/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ar.png b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ar.png new file mode 100644 index 00000000..11e7ab49 Binary files /dev/null and b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ar.png differ diff --git a/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.bn.png b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.bn.png new file mode 100644 index 00000000..66c6ced8 Binary files /dev/null and b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.bn.png differ diff --git a/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.mo.png b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.mo.png new file mode 100644 index 00000000..52299090 Binary files /dev/null and b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.mo.png differ diff --git a/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ru.png b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ru.png new file mode 100644 index 00000000..12b13cb7 Binary files /dev/null and b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ru.png differ diff --git a/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ur.png b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ur.png new file mode 100644 index 00000000..69682a44 Binary files /dev/null and b/translated_images/dataframe-1.caf409f0c688e84c85b793998b945f3cb66554e13dbb490d4a52f37909a41eb4.ur.png differ diff --git a/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ar.jpg b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ar.jpg new file mode 100644 index 00000000..ab3a6be4 Binary files /dev/null and b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ar.jpg differ diff --git a/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.bn.jpg b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.bn.jpg new file mode 100644 index 00000000..9c0b9b31 Binary files /dev/null and b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.bn.jpg differ diff --git a/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.mo.jpg b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.mo.jpg new file mode 100644 index 00000000..543374a4 Binary files /dev/null and b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.mo.jpg differ diff --git a/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ru.jpg b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ru.jpg new file mode 100644 index 00000000..c085499d Binary files /dev/null and b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ru.jpg differ diff --git a/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ur.jpg b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ur.jpg new file mode 100644 index 00000000..6d85af28 Binary files /dev/null and b/translated_images/datascienceinthecloud.59ffb059a670fb0a68fee3f0f2906239b25240a57c3990b8c0809c9c7703eabd.ur.jpg differ diff --git a/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ar.png b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ar.png new file mode 100644 index 00000000..207687bd Binary files /dev/null and b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ar.png differ diff --git a/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.bn.png b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.bn.png new file mode 100644 index 00000000..006fbb89 Binary files /dev/null and b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.bn.png differ diff --git a/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.mo.png b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.mo.png new file mode 100644 index 00000000..fdc71022 Binary files /dev/null and b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.mo.png differ diff --git a/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ru.png b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ru.png new file mode 100644 index 00000000..b7581521 Binary files /dev/null and b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ru.png differ diff --git a/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ur.png b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ur.png new file mode 100644 index 00000000..1eab6efa Binary files /dev/null and b/translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ur.png differ diff --git a/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ar.png b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ar.png new file mode 100644 index 00000000..7b8681a4 Binary files /dev/null and b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ar.png differ diff --git a/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.bn.png b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.bn.png new file mode 100644 index 00000000..2f55a9f4 Binary files /dev/null and b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.bn.png differ diff --git a/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.mo.png b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.mo.png new file mode 100644 index 00000000..133b28ff Binary files /dev/null and b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.mo.png differ diff --git a/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ru.png b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ru.png new file mode 100644 index 00000000..e3cbd142 Binary files /dev/null and b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ru.png differ diff --git a/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ur.png b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ur.png new file mode 100644 index 00000000..6b8173ae Binary files /dev/null and b/translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ur.png differ diff --git a/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ar.png b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ar.png new file mode 100644 index 00000000..e2d4111d Binary files /dev/null and b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ar.png differ diff --git a/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.bn.png b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.bn.png new file mode 100644 index 00000000..dcfc9b37 Binary files /dev/null and b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.bn.png differ diff --git a/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.mo.png b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.mo.png new file mode 100644 index 00000000..3aa4ecc7 Binary files /dev/null and b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.mo.png differ diff --git a/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ru.png b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ru.png new file mode 100644 index 00000000..9d1feafb Binary files /dev/null and b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ru.png differ diff --git a/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ur.png b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ur.png new file mode 100644 index 00000000..60d7a9f5 Binary files /dev/null and b/translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ur.png differ diff --git a/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ar.png b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ar.png new file mode 100644 index 00000000..f898e3f8 Binary files /dev/null and b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ar.png differ diff --git a/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.bn.png b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.bn.png new file mode 100644 index 00000000..37c6832b Binary files /dev/null and b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.bn.png differ diff --git a/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.mo.png b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.mo.png new file mode 100644 index 00000000..1a35381f Binary files /dev/null and b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.mo.png differ diff --git a/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ru.png b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ru.png new file mode 100644 index 00000000..a8dbc0bd Binary files /dev/null and b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ru.png differ diff --git a/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ur.png b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ur.png new file mode 100644 index 00000000..278e66c6 Binary files /dev/null and b/translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ur.png differ diff --git a/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ar.png b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ar.png new file mode 100644 index 00000000..2aef7283 Binary files /dev/null and b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ar.png differ diff --git a/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.bn.png b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.bn.png new file mode 100644 index 00000000..b1b15518 Binary files /dev/null and b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.bn.png differ diff --git a/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.mo.png b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.mo.png new file mode 100644 index 00000000..bd7bd0b7 Binary files /dev/null and b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.mo.png differ diff --git a/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ru.png b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ru.png new file mode 100644 index 00000000..af75b17e Binary files /dev/null and b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ru.png differ diff --git a/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ur.png b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ur.png new file mode 100644 index 00000000..eac00e54 Binary files /dev/null and b/translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ur.png differ diff --git a/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ar.png b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ar.png new file mode 100644 index 00000000..33113443 Binary files /dev/null and b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ar.png differ diff --git a/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.bn.png b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.bn.png new file mode 100644 index 00000000..66fbf117 Binary files /dev/null and b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.bn.png differ diff --git a/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.mo.png b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.mo.png new file mode 100644 index 00000000..58eff633 Binary files /dev/null and b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.mo.png differ diff --git a/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ru.png b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ru.png new file mode 100644 index 00000000..453a2343 Binary files /dev/null and b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ru.png differ diff --git a/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ur.png b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ur.png new file mode 100644 index 00000000..4cdabc6b Binary files /dev/null and b/translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ur.png differ diff --git a/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ar.png b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ar.png new file mode 100644 index 00000000..eca1e896 Binary files /dev/null and b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ar.png differ diff --git a/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.bn.png b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.bn.png new file mode 100644 index 00000000..677ae088 Binary files /dev/null and b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.bn.png differ diff --git a/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.mo.png b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.mo.png new file mode 100644 index 00000000..6432aac3 Binary files /dev/null and b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.mo.png differ diff --git a/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ru.png b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ru.png new file mode 100644 index 00000000..8e926ca1 Binary files /dev/null and b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ru.png differ diff --git a/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ur.png b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ur.png new file mode 100644 index 00000000..4b3853bd Binary files /dev/null and b/translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ur.png differ diff --git a/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ar.png b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ar.png new file mode 100644 index 00000000..fa7db79e Binary files /dev/null and b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ar.png differ diff --git a/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.bn.png b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.bn.png new file mode 100644 index 00000000..acd20b88 Binary files /dev/null and b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.bn.png differ diff --git a/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.mo.png b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.mo.png new file mode 100644 index 00000000..4044573b Binary files /dev/null and b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.mo.png differ diff --git a/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ru.png b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ru.png new file mode 100644 index 00000000..0b82f378 Binary files /dev/null and b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ru.png differ diff --git a/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ur.png b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ur.png new file mode 100644 index 00000000..0eeab3ac Binary files /dev/null and b/translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ur.png differ diff --git a/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ar.png b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ar.png new file mode 100644 index 00000000..ed3f0777 Binary files /dev/null and b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ar.png differ diff --git a/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.bn.png b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.bn.png new file mode 100644 index 00000000..7e96365d Binary files /dev/null and b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.bn.png differ diff --git a/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.mo.png b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.mo.png new file mode 100644 index 00000000..1cca2a04 Binary files /dev/null and b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.mo.png differ diff --git a/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ru.png b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ru.png new file mode 100644 index 00000000..f149cfd3 Binary files /dev/null and b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ru.png differ diff --git a/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ur.png b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ur.png new file mode 100644 index 00000000..d0fc4d58 Binary files /dev/null and b/translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ur.png differ diff --git a/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ar.png b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ar.png new file mode 100644 index 00000000..40b9d51b Binary files /dev/null and b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ar.png differ diff --git a/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.bn.png b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.bn.png new file mode 100644 index 00000000..67958aad Binary files /dev/null and b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.bn.png differ diff --git a/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.mo.png b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.mo.png new file mode 100644 index 00000000..90c0233e Binary files /dev/null and b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.mo.png differ diff --git a/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ru.png b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ru.png new file mode 100644 index 00000000..b6f29750 Binary files /dev/null and b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ru.png differ diff --git a/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ur.png b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ur.png new file mode 100644 index 00000000..fd86bd82 Binary files /dev/null and b/translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ur.png differ diff --git a/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ar.png b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ar.png new file mode 100644 index 00000000..ef4a3f29 Binary files /dev/null and b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ar.png differ diff --git a/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.bn.png b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.bn.png new file mode 100644 index 00000000..2ceacfeb Binary files /dev/null and b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.bn.png differ diff --git a/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.mo.png b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.mo.png new file mode 100644 index 00000000..b4c3079f Binary files /dev/null and b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.mo.png differ diff --git a/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ru.png b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ru.png new file mode 100644 index 00000000..c54da20f Binary files /dev/null and b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ru.png differ diff --git a/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ur.png b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ur.png new file mode 100644 index 00000000..ab85ebe3 Binary files /dev/null and b/translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ur.png differ diff --git a/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ar.png b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ar.png new file mode 100644 index 00000000..a1c7ec8f Binary files /dev/null and b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ar.png differ diff --git a/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.bn.png b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.bn.png new file mode 100644 index 00000000..865cf12b Binary files /dev/null and b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.bn.png differ diff --git a/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.mo.png b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.mo.png new file mode 100644 index 00000000..afead018 Binary files /dev/null and b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.mo.png differ diff --git a/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ru.png b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ru.png new file mode 100644 index 00000000..76e26737 Binary files /dev/null and b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ru.png differ diff --git a/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ur.png b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ur.png new file mode 100644 index 00000000..22549cb6 Binary files /dev/null and b/translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ur.png differ diff --git a/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ar.png b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ar.png new file mode 100644 index 00000000..ccc99767 Binary files /dev/null and b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ar.png differ diff --git a/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.bn.png b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.bn.png new file mode 100644 index 00000000..ccc99767 Binary files /dev/null and b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.bn.png differ diff --git a/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.mo.png b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.mo.png new file mode 100644 index 00000000..ccc99767 Binary files /dev/null and b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.mo.png differ diff --git a/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ru.png b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ru.png new file mode 100644 index 00000000..ccc99767 Binary files /dev/null and b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ru.png differ diff --git a/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ur.png b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ur.png new file mode 100644 index 00000000..ccc99767 Binary files /dev/null and b/translated_images/dist1.0010100b00231819be7540ba60a4909cbda8a1a83c1cc1ceb4d4e8a5bcb325f4.ur.png differ diff --git a/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ar.png b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ar.png new file mode 100644 index 00000000..2554b3ca Binary files /dev/null and b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ar.png differ diff --git a/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.bn.png b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.bn.png new file mode 100644 index 00000000..ad5bc648 Binary files /dev/null and b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.bn.png differ diff --git a/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.mo.png b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.mo.png new file mode 100644 index 00000000..097b5324 Binary files /dev/null and b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.mo.png differ diff --git a/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ru.png b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ru.png new file mode 100644 index 00000000..5d32450b Binary files /dev/null and b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ru.png differ diff --git a/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ur.png b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ur.png new file mode 100644 index 00000000..dcf4c55e Binary files /dev/null and b/translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ur.png differ diff --git a/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ar.png b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ar.png new file mode 100644 index 00000000..f2d0f317 Binary files /dev/null and b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ar.png differ diff --git a/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.bn.png b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.bn.png new file mode 100644 index 00000000..f2d0f317 Binary files /dev/null and b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.bn.png differ diff --git a/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.mo.png b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.mo.png new file mode 100644 index 00000000..f2d0f317 Binary files /dev/null and b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.mo.png differ diff --git a/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ru.png b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ru.png new file mode 100644 index 00000000..f2d0f317 Binary files /dev/null and b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ru.png differ diff --git a/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ur.png b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ur.png new file mode 100644 index 00000000..f2d0f317 Binary files /dev/null and b/translated_images/dist2.c398bfd5320401b924305d2cc20a6c0f6670455e61abaf827a359d07b4248969.ur.png differ diff --git a/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ar.png b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ar.png new file mode 100644 index 00000000..05bbc028 Binary files /dev/null and b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ar.png differ diff --git a/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.bn.png b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.bn.png new file mode 100644 index 00000000..19ec7bf0 Binary files /dev/null and b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.bn.png differ diff --git a/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.mo.png b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.mo.png new file mode 100644 index 00000000..4ff3b060 Binary files /dev/null and b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.mo.png differ diff --git a/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ru.png b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ru.png new file mode 100644 index 00000000..957ac063 Binary files /dev/null and b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ru.png differ diff --git a/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ur.png b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ur.png new file mode 100644 index 00000000..4ecd07cb Binary files /dev/null and b/translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ur.png differ diff --git a/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ar.png b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ar.png new file mode 100644 index 00000000..e48b0151 Binary files /dev/null and b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ar.png differ diff --git a/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.bn.png b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.bn.png new file mode 100644 index 00000000..e48b0151 Binary files /dev/null and b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.bn.png differ diff --git a/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.mo.png b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.mo.png new file mode 100644 index 00000000..e48b0151 Binary files /dev/null and b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.mo.png differ diff --git a/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ru.png b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ru.png new file mode 100644 index 00000000..e48b0151 Binary files /dev/null and b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ru.png differ diff --git a/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ur.png b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ur.png new file mode 100644 index 00000000..e48b0151 Binary files /dev/null and b/translated_images/dist3.ad4d9658559690f561d0ac76bfee5843cce918f9c83805be66e0790ac824ef07.ur.png differ diff --git a/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ar.png b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ar.png new file mode 100644 index 00000000..88ccb072 Binary files /dev/null and b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ar.png differ diff --git a/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.bn.png b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.bn.png new file mode 100644 index 00000000..1744ce55 Binary files /dev/null and b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.bn.png differ diff --git a/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.mo.png b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.mo.png new file mode 100644 index 00000000..40adc2dc Binary files /dev/null and b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.mo.png differ diff --git a/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ru.png b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ru.png new file mode 100644 index 00000000..aa20ff12 Binary files /dev/null and b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ru.png differ diff --git a/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ur.png b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ur.png new file mode 100644 index 00000000..e6f74ae7 Binary files /dev/null and b/translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ur.png differ diff --git a/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ar.png b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ar.png new file mode 100644 index 00000000..ddff4a45 Binary files /dev/null and b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ar.png differ diff --git a/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.bn.png b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.bn.png new file mode 100644 index 00000000..b970949a Binary files /dev/null and b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.bn.png differ diff --git a/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.mo.png b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.mo.png new file mode 100644 index 00000000..4fc704f2 Binary files /dev/null and b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.mo.png differ diff --git a/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ru.png b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ru.png new file mode 100644 index 00000000..2738aea1 Binary files /dev/null and b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ru.png differ diff --git a/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ur.png b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ur.png new file mode 100644 index 00000000..57d66966 Binary files /dev/null and b/translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ur.png differ diff --git a/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ar.png b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ar.png new file mode 100644 index 00000000..dc85aec4 Binary files /dev/null and b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ar.png differ diff --git a/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.bn.png b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.bn.png new file mode 100644 index 00000000..64db8acf Binary files /dev/null and b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.bn.png differ diff --git a/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.mo.png b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.mo.png new file mode 100644 index 00000000..f0af577d Binary files /dev/null and b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.mo.png differ diff --git a/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ru.png b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ru.png new file mode 100644 index 00000000..20fde468 Binary files /dev/null and b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ru.png differ diff --git a/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ur.png b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ur.png new file mode 100644 index 00000000..cf4ff171 Binary files /dev/null and b/translated_images/document-db.ddeec48c6dc9e5fd1c905a6de302537f57a2e74c82753baeaa27e992512282b9.ur.png differ diff --git a/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ar.png b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ar.png new file mode 100644 index 00000000..1baf61a8 Binary files /dev/null and b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ar.png differ diff --git a/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.bn.png b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.bn.png new file mode 100644 index 00000000..8815dbd5 Binary files /dev/null and b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.bn.png differ diff --git a/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.mo.png b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.mo.png new file mode 100644 index 00000000..1dac6d5f Binary files /dev/null and b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.mo.png differ diff --git a/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ru.png b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ru.png new file mode 100644 index 00000000..11f73511 Binary files /dev/null and b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ru.png differ diff --git a/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ur.png b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ur.png new file mode 100644 index 00000000..82c1849d Binary files /dev/null and b/translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ur.png differ diff --git a/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ar.png b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ar.png new file mode 100644 index 00000000..5a0c24a7 Binary files /dev/null and b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ar.png differ diff --git a/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.bn.png b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.bn.png new file mode 100644 index 00000000..0f4b9b45 Binary files /dev/null and b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.bn.png differ diff --git a/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.mo.png b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.mo.png new file mode 100644 index 00000000..37c777b2 Binary files /dev/null and b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.mo.png differ diff --git a/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ru.png b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ru.png new file mode 100644 index 00000000..1acf1e37 Binary files /dev/null and b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ru.png differ diff --git a/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ur.png b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ur.png new file mode 100644 index 00000000..7e549994 Binary files /dev/null and b/translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ur.png differ diff --git a/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ar.png b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ar.png new file mode 100644 index 00000000..24e4f5a8 Binary files /dev/null and b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ar.png differ diff --git a/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.bn.png b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.bn.png new file mode 100644 index 00000000..4deefec6 Binary files /dev/null and b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.bn.png differ diff --git a/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.mo.png b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.mo.png new file mode 100644 index 00000000..1230b389 Binary files /dev/null and b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.mo.png differ diff --git a/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ru.png b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ru.png new file mode 100644 index 00000000..e109b4c9 Binary files /dev/null and b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ru.png differ diff --git a/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ur.png b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ur.png new file mode 100644 index 00000000..24e4f5a8 Binary files /dev/null and b/translated_images/donut.f016d7be7f08c8f8c49e9217b2ee05e952ecd1bd8c6f5c49466080f4991ad790.ur.png differ diff --git a/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ar.png b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ar.png new file mode 100644 index 00000000..3d793ba7 Binary files /dev/null and b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ar.png differ diff --git a/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.bn.png b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.bn.png new file mode 100644 index 00000000..946d83f7 Binary files /dev/null and b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.bn.png differ diff --git a/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.mo.png b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.mo.png new file mode 100644 index 00000000..1da2ceb9 Binary files /dev/null and b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.mo.png differ diff --git a/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ru.png b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ru.png new file mode 100644 index 00000000..541ad4f3 Binary files /dev/null and b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ru.png differ diff --git a/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ur.png b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ur.png new file mode 100644 index 00000000..a703de16 Binary files /dev/null and b/translated_images/ds-for-beginners.d01930c9193ef5228caf620d5462a4189dc1a551e34d121eb777e0463889d7a5.ur.png differ diff --git a/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ar.png b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ar.png new file mode 100644 index 00000000..8ff4cf62 Binary files /dev/null and b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ar.png differ diff --git a/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.bn.png b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.bn.png new file mode 100644 index 00000000..d5e2398d Binary files /dev/null and b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.bn.png differ diff --git a/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.mo.png b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.mo.png new file mode 100644 index 00000000..cc2e88bc Binary files /dev/null and b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.mo.png differ diff --git a/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ru.png b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ru.png new file mode 100644 index 00000000..ffbfc7fc Binary files /dev/null and b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ru.png differ diff --git a/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ur.png b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ur.png new file mode 100644 index 00000000..34e424fc Binary files /dev/null and b/translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ur.png differ diff --git a/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ar.png b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ar.png new file mode 100644 index 00000000..46cedbf2 Binary files /dev/null and b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ar.png differ diff --git a/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.bn.png b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.bn.png new file mode 100644 index 00000000..1d5960e6 Binary files /dev/null and b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.bn.png differ diff --git a/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.mo.png b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.mo.png new file mode 100644 index 00000000..4b51257b Binary files /dev/null and b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.mo.png differ diff --git a/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ru.png b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ru.png new file mode 100644 index 00000000..28e19b17 Binary files /dev/null and b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ru.png differ diff --git a/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ur.png b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ur.png new file mode 100644 index 00000000..0b2867d7 Binary files /dev/null and b/translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ur.png differ diff --git a/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ar.png b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ar.png new file mode 100644 index 00000000..465026c5 Binary files /dev/null and b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ar.png differ diff --git a/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.bn.png b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.bn.png new file mode 100644 index 00000000..2f7eb1ac Binary files /dev/null and b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.bn.png differ diff --git a/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.mo.png b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.mo.png new file mode 100644 index 00000000..64059948 Binary files /dev/null and b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.mo.png differ diff --git a/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ru.png b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ru.png new file mode 100644 index 00000000..8b9c1d2d Binary files /dev/null and b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ru.png differ diff --git a/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ur.png b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ur.png new file mode 100644 index 00000000..f6ea4a5f Binary files /dev/null and b/translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ur.png differ diff --git a/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ar.png b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ar.png new file mode 100644 index 00000000..dac2f756 Binary files /dev/null and b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ar.png differ diff --git a/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.bn.png b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.bn.png new file mode 100644 index 00000000..773f2225 Binary files /dev/null and b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.bn.png differ diff --git a/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.mo.png b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.mo.png new file mode 100644 index 00000000..8495ea8d Binary files /dev/null and b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.mo.png differ diff --git a/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ru.png b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ru.png new file mode 100644 index 00000000..9773f440 Binary files /dev/null and b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ru.png differ diff --git a/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ur.png b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ur.png new file mode 100644 index 00000000..dac2f756 Binary files /dev/null and b/translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ur.png differ diff --git a/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ar.png b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ar.png new file mode 100644 index 00000000..a6407a36 Binary files /dev/null and b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ar.png differ diff --git a/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.bn.png b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.bn.png new file mode 100644 index 00000000..d8aa4702 Binary files /dev/null and b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.bn.png differ diff --git a/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.mo.png b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.mo.png new file mode 100644 index 00000000..529583f8 Binary files /dev/null and b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.mo.png differ diff --git a/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ru.png b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ru.png new file mode 100644 index 00000000..ff8512d4 Binary files /dev/null and b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ru.png differ diff --git a/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ur.png b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ur.png new file mode 100644 index 00000000..ff252800 Binary files /dev/null and b/translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ur.png differ diff --git a/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ar.png b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ar.png new file mode 100644 index 00000000..26e0ae43 Binary files /dev/null and b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ar.png differ diff --git a/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.bn.png b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.bn.png new file mode 100644 index 00000000..26e0ae43 Binary files /dev/null and b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.bn.png differ diff --git a/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.mo.png b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.mo.png new file mode 100644 index 00000000..26e0ae43 Binary files /dev/null and b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.mo.png differ diff --git a/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ru.png b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ru.png new file mode 100644 index 00000000..26e0ae43 Binary files /dev/null and b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ru.png differ diff --git a/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ur.png b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ur.png new file mode 100644 index 00000000..26e0ae43 Binary files /dev/null and b/translated_images/favicon.37b561214b36d454f9fd1f725d77f310fe256eb88f2a0ae08b9cb18aeb30650c.ur.png differ diff --git a/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ar.png b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ar.png new file mode 100644 index 00000000..ec865da8 Binary files /dev/null and b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ar.png differ diff --git a/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.bn.png b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.bn.png new file mode 100644 index 00000000..881b34ab Binary files /dev/null and b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.bn.png differ diff --git a/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.mo.png b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.mo.png new file mode 100644 index 00000000..648ef884 Binary files /dev/null and b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.mo.png differ diff --git a/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ru.png b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ru.png new file mode 100644 index 00000000..2629dca7 Binary files /dev/null and b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ru.png differ diff --git a/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ur.png b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ur.png new file mode 100644 index 00000000..45389e55 Binary files /dev/null and b/translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ur.png differ diff --git a/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ar.png b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ar.png new file mode 100644 index 00000000..66bb35d1 Binary files /dev/null and b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ar.png differ diff --git a/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.bn.png b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.bn.png new file mode 100644 index 00000000..d8741b9d Binary files /dev/null and b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.bn.png differ diff --git a/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.mo.png b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.mo.png new file mode 100644 index 00000000..68d0a526 Binary files /dev/null and b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.mo.png differ diff --git a/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ru.png b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ru.png new file mode 100644 index 00000000..0051dbb5 Binary files /dev/null and b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ru.png differ diff --git a/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ur.png b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ur.png new file mode 100644 index 00000000..04d18201 Binary files /dev/null and b/translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ur.png differ diff --git a/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ar.png b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ar.png new file mode 100644 index 00000000..b0b8683c Binary files /dev/null and b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ar.png differ diff --git a/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.bn.png b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.bn.png new file mode 100644 index 00000000..14aa3c50 Binary files /dev/null and b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.bn.png differ diff --git a/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.mo.png b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.mo.png new file mode 100644 index 00000000..e6417e25 Binary files /dev/null and b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.mo.png differ diff --git a/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ru.png b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ru.png new file mode 100644 index 00000000..0fb0e634 Binary files /dev/null and b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ru.png differ diff --git a/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ur.png b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ur.png new file mode 100644 index 00000000..47fbbec8 Binary files /dev/null and b/translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ur.png differ diff --git a/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ar.png b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ar.png new file mode 100644 index 00000000..137fa611 Binary files /dev/null and b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ar.png differ diff --git a/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.bn.png b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.bn.png new file mode 100644 index 00000000..fad27632 Binary files /dev/null and b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.bn.png differ diff --git a/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.mo.png b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.mo.png new file mode 100644 index 00000000..56f5f819 Binary files /dev/null and b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.mo.png differ diff --git a/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ru.png b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ru.png new file mode 100644 index 00000000..ee9ce3e4 Binary files /dev/null and b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ru.png differ diff --git a/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ur.png b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ur.png new file mode 100644 index 00000000..c41d3086 Binary files /dev/null and b/translated_images/full-data-bar.a0b37da71a6cd23610c83d1e737c4f0aff0524724ed527b9bed12c0bac5f2f07.ur.png differ diff --git a/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ar.png b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ar.png new file mode 100644 index 00000000..8d46b99e Binary files /dev/null and b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ar.png differ diff --git a/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.bn.png b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.bn.png new file mode 100644 index 00000000..c151954c Binary files /dev/null and b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.bn.png differ diff --git a/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.mo.png b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.mo.png new file mode 100644 index 00000000..384dcde5 Binary files /dev/null and b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.mo.png differ diff --git a/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ru.png b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ru.png new file mode 100644 index 00000000..bc10488e Binary files /dev/null and b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ru.png differ diff --git a/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ur.png b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ur.png new file mode 100644 index 00000000..e07a6570 Binary files /dev/null and b/translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ur.png differ diff --git a/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ar.png b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ar.png new file mode 100644 index 00000000..da237f74 Binary files /dev/null and b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ar.png differ diff --git a/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.bn.png b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.bn.png new file mode 100644 index 00000000..7afe2851 Binary files /dev/null and b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.bn.png differ diff --git a/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.mo.png b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.mo.png new file mode 100644 index 00000000..0610e12a Binary files /dev/null and b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.mo.png differ diff --git a/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ru.png b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ru.png new file mode 100644 index 00000000..6893d146 Binary files /dev/null and b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ru.png differ diff --git a/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ur.png b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ur.png new file mode 100644 index 00000000..a1d22e25 Binary files /dev/null and b/translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ur.png differ diff --git a/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ar.png b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ar.png new file mode 100644 index 00000000..b01efc79 Binary files /dev/null and b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ar.png differ diff --git a/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.bn.png b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.bn.png new file mode 100644 index 00000000..e5710238 Binary files /dev/null and b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.bn.png differ diff --git a/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.mo.png b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.mo.png new file mode 100644 index 00000000..4009f192 Binary files /dev/null and b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.mo.png differ diff --git a/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ru.png b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ru.png new file mode 100644 index 00000000..09dcc959 Binary files /dev/null and b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ru.png differ diff --git a/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ur.png b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ur.png new file mode 100644 index 00000000..b01efc79 Binary files /dev/null and b/translated_images/height-boxplot.ccb66b2848b5f51cd28e3acf89512ac7101ad36d0c07fc7b93762c9dcf368d7d.ur.png differ diff --git a/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ar.png b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ar.png new file mode 100644 index 00000000..683f76bd Binary files /dev/null and b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ar.png differ diff --git a/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.bn.png b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.bn.png new file mode 100644 index 00000000..af08e831 Binary files /dev/null and b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.bn.png differ diff --git a/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.mo.png b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.mo.png new file mode 100644 index 00000000..ee0033e3 Binary files /dev/null and b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.mo.png differ diff --git a/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ru.png b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ru.png new file mode 100644 index 00000000..208d9ac0 Binary files /dev/null and b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ru.png differ diff --git a/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ur.png b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ur.png new file mode 100644 index 00000000..dda078c4 Binary files /dev/null and b/translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ur.png differ diff --git a/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ar.png b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ar.png new file mode 100644 index 00000000..98cdaa77 Binary files /dev/null and b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ar.png differ diff --git a/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.bn.png b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.bn.png new file mode 100644 index 00000000..922e9888 Binary files /dev/null and b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.bn.png differ diff --git a/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.mo.png b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.mo.png new file mode 100644 index 00000000..fef2e5e7 Binary files /dev/null and b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.mo.png differ diff --git a/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ru.png b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ru.png new file mode 100644 index 00000000..66110d99 Binary files /dev/null and b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ru.png differ diff --git a/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ur.png b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ur.png new file mode 100644 index 00000000..36c5ee80 Binary files /dev/null and b/translated_images/histogram-conservation.13b3542e7784e41585a3763ba6dfbfaa2a372bcd9edae90675ad18f7b13fa7e3.ur.png differ diff --git a/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ar.png b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ar.png new file mode 100644 index 00000000..55403111 Binary files /dev/null and b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ar.png differ diff --git a/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.bn.png b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.bn.png new file mode 100644 index 00000000..e1e53361 Binary files /dev/null and b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.bn.png differ diff --git a/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.mo.png b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.mo.png new file mode 100644 index 00000000..67e6de6a Binary files /dev/null and b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.mo.png differ diff --git a/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ru.png b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ru.png new file mode 100644 index 00000000..ac1bf109 Binary files /dev/null and b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ru.png differ diff --git a/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ur.png b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ur.png new file mode 100644 index 00000000..d7cb9a2d Binary files /dev/null and b/translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ur.png differ diff --git a/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ar.png b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ar.png new file mode 100644 index 00000000..4de62d97 Binary files /dev/null and b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ar.png differ diff --git a/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.bn.png b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.bn.png new file mode 100644 index 00000000..d985a3c9 Binary files /dev/null and b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.bn.png differ diff --git a/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.mo.png b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.mo.png new file mode 100644 index 00000000..5bddc545 Binary files /dev/null and b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.mo.png differ diff --git a/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ru.png b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ru.png new file mode 100644 index 00000000..83c8a8b9 Binary files /dev/null and b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ru.png differ diff --git a/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ur.png b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ur.png new file mode 100644 index 00000000..1a4c5548 Binary files /dev/null and b/translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ur.png differ diff --git a/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ar.png b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ar.png new file mode 100644 index 00000000..c594c545 Binary files /dev/null and b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ar.png differ diff --git a/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.bn.png b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.bn.png new file mode 100644 index 00000000..6ee56b07 Binary files /dev/null and b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.bn.png differ diff --git a/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.mo.png b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.mo.png new file mode 100644 index 00000000..ba1b8340 Binary files /dev/null and b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.mo.png differ diff --git a/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ru.png b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ru.png new file mode 100644 index 00000000..8c162be5 Binary files /dev/null and b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ru.png differ diff --git a/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ur.png b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ur.png new file mode 100644 index 00000000..58ce4ddb Binary files /dev/null and b/translated_images/labeled-wingspan.900ffedd7e3ec6de17070dac63c1cf624cb083fb5b6a157bbb1d60f327f331aa.ur.png differ diff --git a/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ar.png b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ar.png new file mode 100644 index 00000000..598ab13d Binary files /dev/null and b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ar.png differ diff --git a/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.bn.png b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.bn.png new file mode 100644 index 00000000..56ffc2e9 Binary files /dev/null and b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.bn.png differ diff --git a/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.mo.png b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.mo.png new file mode 100644 index 00000000..1470a708 Binary files /dev/null and b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.mo.png differ diff --git a/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ru.png b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ru.png new file mode 100644 index 00000000..6aa49c79 Binary files /dev/null and b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ru.png differ diff --git a/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ur.png b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ur.png new file mode 100644 index 00000000..63c0fd5f Binary files /dev/null and b/translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ur.png differ diff --git a/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ar.png b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ar.png new file mode 100644 index 00000000..7d218a36 Binary files /dev/null and b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ar.png differ diff --git a/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.bn.png b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.bn.png new file mode 100644 index 00000000..dc3547b9 Binary files /dev/null and b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.bn.png differ diff --git a/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.mo.png b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.mo.png new file mode 100644 index 00000000..594518dd Binary files /dev/null and b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.mo.png differ diff --git a/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ru.png b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ru.png new file mode 100644 index 00000000..108fb53f Binary files /dev/null and b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ru.png differ diff --git a/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ur.png b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ur.png new file mode 100644 index 00000000..ac016250 Binary files /dev/null and b/translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ur.png differ diff --git a/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ar.png b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ar.png new file mode 100644 index 00000000..55c19113 Binary files /dev/null and b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ar.png differ diff --git a/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.bn.png b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.bn.png new file mode 100644 index 00000000..82dd860a Binary files /dev/null and b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.bn.png differ diff --git a/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.mo.png b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.mo.png new file mode 100644 index 00000000..f3ff1220 Binary files /dev/null and b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.mo.png differ diff --git a/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ru.png b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ru.png new file mode 100644 index 00000000..108fb53f Binary files /dev/null and b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ru.png differ diff --git a/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ur.png b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ur.png new file mode 100644 index 00000000..d4623ab1 Binary files /dev/null and b/translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ur.png differ diff --git a/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ar.png b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ar.png new file mode 100644 index 00000000..c926c108 Binary files /dev/null and b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ar.png differ diff --git a/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.bn.png b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.bn.png new file mode 100644 index 00000000..f36c4966 Binary files /dev/null and b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.bn.png differ diff --git a/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.mo.png b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.mo.png new file mode 100644 index 00000000..60c44664 Binary files /dev/null and b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.mo.png differ diff --git a/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ru.png b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ru.png new file mode 100644 index 00000000..ed1d077b Binary files /dev/null and b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ru.png differ diff --git a/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ur.png b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ur.png new file mode 100644 index 00000000..3fe3f948 Binary files /dev/null and b/translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ur.png differ diff --git a/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ar.png b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ar.png new file mode 100644 index 00000000..bc7b4994 Binary files /dev/null and b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ar.png differ diff --git a/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.bn.png b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.bn.png new file mode 100644 index 00000000..7b2cbaa6 Binary files /dev/null and b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.bn.png differ diff --git a/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.mo.png b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.mo.png new file mode 100644 index 00000000..a7e78dbf Binary files /dev/null and b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.mo.png differ diff --git a/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ru.png b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ru.png new file mode 100644 index 00000000..5bcd0ad1 Binary files /dev/null and b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ru.png differ diff --git a/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ur.png b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ur.png new file mode 100644 index 00000000..78fc706c Binary files /dev/null and b/translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ur.png differ diff --git a/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ar.png b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ar.png new file mode 100644 index 00000000..deaaf2ba Binary files /dev/null and b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ar.png differ diff --git a/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.bn.png b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.bn.png new file mode 100644 index 00000000..9f5ce55a Binary files /dev/null and b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.bn.png differ diff --git a/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.mo.png b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.mo.png new file mode 100644 index 00000000..44ae6468 Binary files /dev/null and b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.mo.png differ diff --git a/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ru.png b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ru.png new file mode 100644 index 00000000..42f7e434 Binary files /dev/null and b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ru.png differ diff --git a/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ur.png b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ur.png new file mode 100644 index 00000000..fed620de Binary files /dev/null and b/translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ur.png differ diff --git a/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ar.png b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ar.png new file mode 100644 index 00000000..b5053934 Binary files /dev/null and b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ar.png differ diff --git a/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.bn.png b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.bn.png new file mode 100644 index 00000000..8ba2bccf Binary files /dev/null and b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.bn.png differ diff --git a/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.mo.png b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.mo.png new file mode 100644 index 00000000..7e92a98f Binary files /dev/null and b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.mo.png differ diff --git a/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ru.png b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ru.png new file mode 100644 index 00000000..e4a7cf0e Binary files /dev/null and b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ru.png differ diff --git a/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ur.png b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ur.png new file mode 100644 index 00000000..55ec741b Binary files /dev/null and b/translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ur.png differ diff --git a/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ar.png b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ar.png new file mode 100644 index 00000000..1dae063f Binary files /dev/null and b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ar.png differ diff --git a/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.bn.png b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.bn.png new file mode 100644 index 00000000..e3a15f6a Binary files /dev/null and b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.bn.png differ diff --git a/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.mo.png b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.mo.png new file mode 100644 index 00000000..c02eab9d Binary files /dev/null and b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.mo.png differ diff --git a/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ru.png b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ru.png new file mode 100644 index 00000000..4df95786 Binary files /dev/null and b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ru.png differ diff --git a/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ur.png b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ur.png new file mode 100644 index 00000000..cc8bd900 Binary files /dev/null and b/translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ur.png differ diff --git a/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ar.png b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ar.png new file mode 100644 index 00000000..07e8db73 Binary files /dev/null and b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ar.png differ diff --git a/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.bn.png b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.bn.png new file mode 100644 index 00000000..65799bbd Binary files /dev/null and b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.bn.png differ diff --git a/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.mo.png b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.mo.png new file mode 100644 index 00000000..896fb6a3 Binary files /dev/null and b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.mo.png differ diff --git a/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ru.png b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ru.png new file mode 100644 index 00000000..96713a66 Binary files /dev/null and b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ru.png differ diff --git a/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ur.png b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ur.png new file mode 100644 index 00000000..ae8d19eb Binary files /dev/null and b/translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ur.png differ diff --git a/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ar.png b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ar.png new file mode 100644 index 00000000..3a17d8df Binary files /dev/null and b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ar.png differ diff --git a/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.bn.png b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.bn.png new file mode 100644 index 00000000..e7939af7 Binary files /dev/null and b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.bn.png differ diff --git a/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.mo.png b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.mo.png new file mode 100644 index 00000000..7630be4f Binary files /dev/null and b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.mo.png differ diff --git a/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ru.png b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ru.png new file mode 100644 index 00000000..75059ab6 Binary files /dev/null and b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ru.png differ diff --git a/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ur.png b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ur.png new file mode 100644 index 00000000..0d878ee3 Binary files /dev/null and b/translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ur.png differ diff --git a/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ar.png b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ar.png new file mode 100644 index 00000000..0c37ab05 Binary files /dev/null and b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ar.png differ diff --git a/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.bn.png b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.bn.png new file mode 100644 index 00000000..0c37ab05 Binary files /dev/null and b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.bn.png differ diff --git a/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.mo.png b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.mo.png new file mode 100644 index 00000000..0c37ab05 Binary files /dev/null and b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.mo.png differ diff --git a/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ru.png b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ru.png new file mode 100644 index 00000000..0c37ab05 Binary files /dev/null and b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ru.png differ diff --git a/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ur.png b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ur.png new file mode 100644 index 00000000..0c37ab05 Binary files /dev/null and b/translated_images/max-wingspan-labels.46f0cc3c48edd4e00e6ab6d8797e2717a33b4b94d97af3539c5442a1299d03c1.ur.png differ diff --git a/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ar.png b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ar.png new file mode 100644 index 00000000..72f5a3e4 Binary files /dev/null and b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ar.png differ diff --git a/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.bn.png b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.bn.png new file mode 100644 index 00000000..72f5a3e4 Binary files /dev/null and b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.bn.png differ diff --git a/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.mo.png b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.mo.png new file mode 100644 index 00000000..72f5a3e4 Binary files /dev/null and b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.mo.png differ diff --git a/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ru.png b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ru.png new file mode 100644 index 00000000..72f5a3e4 Binary files /dev/null and b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ru.png differ diff --git a/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ur.png b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ur.png new file mode 100644 index 00000000..72f5a3e4 Binary files /dev/null and b/translated_images/max-wingspan.0b8d0858436414aa1c53556bfd07e7d4267120782d236abe10e0473252de0760.ur.png differ diff --git a/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ar.png b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ar.png new file mode 100644 index 00000000..382f49ba Binary files /dev/null and b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ar.png differ diff --git a/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.bn.png b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.bn.png new file mode 100644 index 00000000..0605155a Binary files /dev/null and b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.bn.png differ diff --git a/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.mo.png b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.mo.png new file mode 100644 index 00000000..ae6f4d1e Binary files /dev/null and b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.mo.png differ diff --git a/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ru.png b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ru.png new file mode 100644 index 00000000..d540a007 Binary files /dev/null and b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ru.png differ diff --git a/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ur.png b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ur.png new file mode 100644 index 00000000..3005da05 Binary files /dev/null and b/translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ur.png differ diff --git a/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ar.png b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ar.png new file mode 100644 index 00000000..626d391e Binary files /dev/null and b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ar.png differ diff --git a/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.bn.png b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.bn.png new file mode 100644 index 00000000..f512d5c2 Binary files /dev/null and b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.bn.png differ diff --git a/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.mo.png b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.mo.png new file mode 100644 index 00000000..e45ce269 Binary files /dev/null and b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.mo.png differ diff --git a/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ru.png b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ru.png new file mode 100644 index 00000000..66418ed1 Binary files /dev/null and b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ru.png differ diff --git a/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ur.png b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ur.png new file mode 100644 index 00000000..bd5f0177 Binary files /dev/null and b/translated_images/new-container.650e10c7a20a5f83824264bfaa0f818d8c203f98136f4647385bd0c369b5035b.ur.png differ diff --git a/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ar.png b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ar.png new file mode 100644 index 00000000..e8b49cf9 Binary files /dev/null and b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ar.png differ diff --git a/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.bn.png b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.bn.png new file mode 100644 index 00000000..8f4a30a6 Binary files /dev/null and b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.bn.png differ diff --git a/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.mo.png b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.mo.png new file mode 100644 index 00000000..4804bb47 Binary files /dev/null and b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.mo.png differ diff --git a/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ru.png b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ru.png new file mode 100644 index 00000000..3e9ab8ac Binary files /dev/null and b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ru.png differ diff --git a/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ur.png b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ur.png new file mode 100644 index 00000000..4fa581c0 Binary files /dev/null and b/translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ur.png differ diff --git a/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ar.png b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ar.png new file mode 100644 index 00000000..f8111918 Binary files /dev/null and b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ar.png differ diff --git a/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.bn.png b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.bn.png new file mode 100644 index 00000000..94618107 Binary files /dev/null and b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.bn.png differ diff --git a/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.mo.png b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.mo.png new file mode 100644 index 00000000..7e999586 Binary files /dev/null and b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.mo.png differ diff --git a/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ru.png b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ru.png new file mode 100644 index 00000000..057d3a5f Binary files /dev/null and b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ru.png differ diff --git a/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ur.png b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ur.png new file mode 100644 index 00000000..f0d10325 Binary files /dev/null and b/translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ur.png differ diff --git a/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ar.png b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ar.png new file mode 100644 index 00000000..bf7bcba8 Binary files /dev/null and b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ar.png differ diff --git a/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.bn.png b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.bn.png new file mode 100644 index 00000000..91777b1d Binary files /dev/null and b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.bn.png differ diff --git a/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.mo.png b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.mo.png new file mode 100644 index 00000000..77f67ab1 Binary files /dev/null and b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.mo.png differ diff --git a/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ru.png b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ru.png new file mode 100644 index 00000000..c8adb648 Binary files /dev/null and b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ru.png differ diff --git a/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ur.png b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ur.png new file mode 100644 index 00000000..0ae09c42 Binary files /dev/null and b/translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ur.png differ diff --git a/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ar.png b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ar.png new file mode 100644 index 00000000..21a1f54c Binary files /dev/null and b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ar.png differ diff --git a/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.bn.png b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.bn.png new file mode 100644 index 00000000..20966fd4 Binary files /dev/null and b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.bn.png differ diff --git a/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.mo.png b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.mo.png new file mode 100644 index 00000000..75ea524f Binary files /dev/null and b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.mo.png differ diff --git a/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ru.png b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ru.png new file mode 100644 index 00000000..9bec860a Binary files /dev/null and b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ru.png differ diff --git a/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ur.png b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ur.png new file mode 100644 index 00000000..8b78de26 Binary files /dev/null and b/translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ur.png differ diff --git a/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ar.png b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ar.png new file mode 100644 index 00000000..c8a87e25 Binary files /dev/null and b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ar.png differ diff --git a/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.bn.png b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.bn.png new file mode 100644 index 00000000..2be2482e Binary files /dev/null and b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.bn.png differ diff --git a/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.mo.png b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.mo.png new file mode 100644 index 00000000..549dd21e Binary files /dev/null and b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.mo.png differ diff --git a/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ru.png b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ru.png new file mode 100644 index 00000000..fd8fd248 Binary files /dev/null and b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ru.png differ diff --git a/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ur.png b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ur.png new file mode 100644 index 00000000..57c09a8c Binary files /dev/null and b/translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ur.png differ diff --git a/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ar.png b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ar.png new file mode 100644 index 00000000..40b41406 Binary files /dev/null and b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ar.png differ diff --git a/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.bn.png b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.bn.png new file mode 100644 index 00000000..a0fcea64 Binary files /dev/null and b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.bn.png differ diff --git a/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.mo.png b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.mo.png new file mode 100644 index 00000000..112ea05a Binary files /dev/null and b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.mo.png differ diff --git a/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ru.png b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ru.png new file mode 100644 index 00000000..fe15d3cb Binary files /dev/null and b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ru.png differ diff --git a/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ur.png b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ur.png new file mode 100644 index 00000000..2627a4a3 Binary files /dev/null and b/translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ur.png differ diff --git a/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ar.png b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ar.png new file mode 100644 index 00000000..7561dbda Binary files /dev/null and b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ar.png differ diff --git a/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.bn.png b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.bn.png new file mode 100644 index 00000000..8aad8970 Binary files /dev/null and b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.bn.png differ diff --git a/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.mo.png b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.mo.png new file mode 100644 index 00000000..24b5bc5a Binary files /dev/null and b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.mo.png differ diff --git a/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ru.png b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ru.png new file mode 100644 index 00000000..1bd4b4b7 Binary files /dev/null and b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ru.png differ diff --git a/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ur.png b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ur.png new file mode 100644 index 00000000..42ee30ff Binary files /dev/null and b/translated_images/pie1.8f6a8bfac96de60e38ced1a1ac39fd9caafa95142b3bbcb65d540bcad678806f.ur.png differ diff --git a/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ar.png b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ar.png new file mode 100644 index 00000000..f44886a1 Binary files /dev/null and b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ar.png differ diff --git a/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.bn.png b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.bn.png new file mode 100644 index 00000000..4e4220a8 Binary files /dev/null and b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.bn.png differ diff --git a/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.mo.png b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.mo.png new file mode 100644 index 00000000..c5f67d78 Binary files /dev/null and b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.mo.png differ diff --git a/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ru.png b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ru.png new file mode 100644 index 00000000..e2c6052e Binary files /dev/null and b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ru.png differ diff --git a/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ur.png b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ur.png new file mode 100644 index 00000000..07b4f77a Binary files /dev/null and b/translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ur.png differ diff --git a/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ar.png b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ar.png new file mode 100644 index 00000000..a750a894 Binary files /dev/null and b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ar.png differ diff --git a/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.bn.png b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.bn.png new file mode 100644 index 00000000..8a56e58a Binary files /dev/null and b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.bn.png differ diff --git a/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.mo.png b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.mo.png new file mode 100644 index 00000000..5d0270d0 Binary files /dev/null and b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.mo.png differ diff --git a/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ru.png b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ru.png new file mode 100644 index 00000000..276636a0 Binary files /dev/null and b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ru.png differ diff --git a/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ur.png b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ur.png new file mode 100644 index 00000000..35739e5c Binary files /dev/null and b/translated_images/probability-density.a8aad29f17a14afb519b407c7b6edeb9f3f9aa5f69c9e6d9445f604e5f8a2bf7.ur.png differ diff --git a/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ar.png b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ar.png new file mode 100644 index 00000000..159157cd Binary files /dev/null and b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ar.png differ diff --git a/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.bn.png b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.bn.png new file mode 100644 index 00000000..6beb2fea Binary files /dev/null and b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.bn.png differ diff --git a/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.mo.png b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.mo.png new file mode 100644 index 00000000..bf302676 Binary files /dev/null and b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.mo.png differ diff --git a/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ru.png b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ru.png new file mode 100644 index 00000000..9ed134f5 Binary files /dev/null and b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ru.png differ diff --git a/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ur.png b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ur.png new file mode 100644 index 00000000..6eb1983f Binary files /dev/null and b/translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ur.png differ diff --git a/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ar.png b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ar.png new file mode 100644 index 00000000..d5b21831 Binary files /dev/null and b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ar.png differ diff --git a/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.bn.png b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.bn.png new file mode 100644 index 00000000..6beb2fea Binary files /dev/null and b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.bn.png differ diff --git a/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.mo.png b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.mo.png new file mode 100644 index 00000000..bf302676 Binary files /dev/null and b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.mo.png differ diff --git a/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ru.png b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ru.png new file mode 100644 index 00000000..9ed134f5 Binary files /dev/null and b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ru.png differ diff --git a/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ur.png b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ur.png new file mode 100644 index 00000000..6eb1983f Binary files /dev/null and b/translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ur.png differ diff --git a/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ar.png b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ar.png new file mode 100644 index 00000000..3d401b61 Binary files /dev/null and b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ar.png differ diff --git a/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.bn.png b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.bn.png new file mode 100644 index 00000000..6365d245 Binary files /dev/null and b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.bn.png differ diff --git a/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.mo.png b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.mo.png new file mode 100644 index 00000000..076fc2e4 Binary files /dev/null and b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.mo.png differ diff --git a/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ru.png b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ru.png new file mode 100644 index 00000000..28451e67 Binary files /dev/null and b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ru.png differ diff --git a/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ur.png b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ur.png new file mode 100644 index 00000000..f07d7daf Binary files /dev/null and b/translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ur.png differ diff --git a/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ar.png b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ar.png new file mode 100644 index 00000000..dfe61882 Binary files /dev/null and b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ar.png differ diff --git a/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.bn.png b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.bn.png new file mode 100644 index 00000000..322e34d6 Binary files /dev/null and b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.bn.png differ diff --git a/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.mo.png b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.mo.png new file mode 100644 index 00000000..fe4bff6c Binary files /dev/null and b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.mo.png differ diff --git a/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ru.png b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ru.png new file mode 100644 index 00000000..4b96709c Binary files /dev/null and b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ru.png differ diff --git a/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ur.png b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ur.png new file mode 100644 index 00000000..93b91527 Binary files /dev/null and b/translated_images/scatter.520a43eceb46dbcb96899da0f580f3f3615cf9dba38c9c84e52ebc6b4b48e3ff.ur.png differ diff --git a/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ar.png b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ar.png new file mode 100644 index 00000000..99a81366 Binary files /dev/null and b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ar.png differ diff --git a/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.bn.png b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.bn.png new file mode 100644 index 00000000..e1220cab Binary files /dev/null and b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.bn.png differ diff --git a/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.mo.png b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.mo.png new file mode 100644 index 00000000..2b886e6a Binary files /dev/null and b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.mo.png differ diff --git a/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ru.png b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ru.png new file mode 100644 index 00000000..2b886e6a Binary files /dev/null and b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ru.png differ diff --git a/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ur.png b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ur.png new file mode 100644 index 00000000..a2da3d85 Binary files /dev/null and b/translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ur.png differ diff --git a/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ar.png b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ar.png new file mode 100644 index 00000000..22e25a9f Binary files /dev/null and b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ar.png differ diff --git a/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.bn.png b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.bn.png new file mode 100644 index 00000000..7bfafb1b Binary files /dev/null and b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.bn.png differ diff --git a/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.mo.png b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.mo.png new file mode 100644 index 00000000..335bb567 Binary files /dev/null and b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.mo.png differ diff --git a/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ru.png b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ru.png new file mode 100644 index 00000000..e94795f0 Binary files /dev/null and b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ru.png differ diff --git a/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ur.png b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ur.png new file mode 100644 index 00000000..5da7fc32 Binary files /dev/null and b/translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ur.png differ diff --git a/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ar.png b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ar.png new file mode 100644 index 00000000..3ea25e82 Binary files /dev/null and b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ar.png differ diff --git a/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.bn.png b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.bn.png new file mode 100644 index 00000000..7f921d13 Binary files /dev/null and b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.bn.png differ diff --git a/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.mo.png b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.mo.png new file mode 100644 index 00000000..a0a3977e Binary files /dev/null and b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.mo.png differ diff --git a/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ru.png b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ru.png new file mode 100644 index 00000000..d6f4b316 Binary files /dev/null and b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ru.png differ diff --git a/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ur.png b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ur.png new file mode 100644 index 00000000..d7c7aa4e Binary files /dev/null and b/translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ur.png differ diff --git a/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ar.png b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ar.png new file mode 100644 index 00000000..117c629b Binary files /dev/null and b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ar.png differ diff --git a/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.bn.png b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.bn.png new file mode 100644 index 00000000..a556b2e2 Binary files /dev/null and b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.bn.png differ diff --git a/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.mo.png b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.mo.png new file mode 100644 index 00000000..dbc8eb5a Binary files /dev/null and b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.mo.png differ diff --git a/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ru.png b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ru.png new file mode 100644 index 00000000..dbc8eb5a Binary files /dev/null and b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ru.png differ diff --git a/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ur.png b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ur.png new file mode 100644 index 00000000..dbc8eb5a Binary files /dev/null and b/translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ur.png differ diff --git a/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ar.png b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ar.png new file mode 100644 index 00000000..eb86e1f3 Binary files /dev/null and b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ar.png differ diff --git a/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.bn.png b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.bn.png new file mode 100644 index 00000000..37c73ccd Binary files /dev/null and b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.bn.png differ diff --git a/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.mo.png b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.mo.png new file mode 100644 index 00000000..eb86e1f3 Binary files /dev/null and b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.mo.png differ diff --git a/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ru.png b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ru.png new file mode 100644 index 00000000..eb86e1f3 Binary files /dev/null and b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ru.png differ diff --git a/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ur.png b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ur.png new file mode 100644 index 00000000..eb86e1f3 Binary files /dev/null and b/translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ur.png differ diff --git a/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ar.png b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ar.png new file mode 100644 index 00000000..ad68a8e5 Binary files /dev/null and b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ar.png differ diff --git a/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.bn.png b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.bn.png new file mode 100644 index 00000000..6f99da39 Binary files /dev/null and b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.bn.png differ diff --git a/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.mo.png b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.mo.png new file mode 100644 index 00000000..8fe4480c Binary files /dev/null and b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.mo.png differ diff --git a/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ru.png b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ru.png new file mode 100644 index 00000000..98eba701 Binary files /dev/null and b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ru.png differ diff --git a/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ur.png b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ur.png new file mode 100644 index 00000000..eec56bf0 Binary files /dev/null and b/translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ur.png differ diff --git a/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ar.png b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ar.png new file mode 100644 index 00000000..24e79ce0 Binary files /dev/null and b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ar.png differ diff --git a/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.bn.png b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.bn.png new file mode 100644 index 00000000..23dce1b5 Binary files /dev/null and b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.bn.png differ diff --git a/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.mo.png b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.mo.png new file mode 100644 index 00000000..029b24e3 Binary files /dev/null and b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.mo.png differ diff --git a/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ru.png b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ru.png new file mode 100644 index 00000000..77cd89fe Binary files /dev/null and b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ru.png differ diff --git a/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ur.png b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ur.png new file mode 100644 index 00000000..e29b277d Binary files /dev/null and b/translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ur.png differ diff --git a/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ar.png b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ar.png new file mode 100644 index 00000000..420674b6 Binary files /dev/null and b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ar.png differ diff --git a/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.bn.png b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.bn.png new file mode 100644 index 00000000..420674b6 Binary files /dev/null and b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.bn.png differ diff --git a/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.mo.png b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.mo.png new file mode 100644 index 00000000..420674b6 Binary files /dev/null and b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.mo.png differ diff --git a/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ru.png b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ru.png new file mode 100644 index 00000000..420674b6 Binary files /dev/null and b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ru.png differ diff --git a/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ur.png b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ur.png new file mode 100644 index 00000000..420674b6 Binary files /dev/null and b/translated_images/scatterplot-wingspan.bdab448702939bb32a0d3522a9fcd8aa36d5f428aca5e8655a677eb6d0597111.ur.png differ diff --git a/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ar.png b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ar.png new file mode 100644 index 00000000..1ec7b74d Binary files /dev/null and b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ar.png differ diff --git a/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.bn.png b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.bn.png new file mode 100644 index 00000000..088e8bc0 Binary files /dev/null and b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.bn.png differ diff --git a/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.mo.png b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.mo.png new file mode 100644 index 00000000..0037d4f0 Binary files /dev/null and b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.mo.png differ diff --git a/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ru.png b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ru.png new file mode 100644 index 00000000..4cb19448 Binary files /dev/null and b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ru.png differ diff --git a/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ur.png b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ur.png new file mode 100644 index 00000000..2f76a724 Binary files /dev/null and b/translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ur.png differ diff --git a/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ar.png b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ar.png new file mode 100644 index 00000000..c16afa34 Binary files /dev/null and b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ar.png differ diff --git a/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.bn.png b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.bn.png new file mode 100644 index 00000000..ca877d4b Binary files /dev/null and b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.bn.png differ diff --git a/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.mo.png b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.mo.png new file mode 100644 index 00000000..0648264c Binary files /dev/null and b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.mo.png differ diff --git a/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ru.png b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ru.png new file mode 100644 index 00000000..e654ab06 Binary files /dev/null and b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ru.png differ diff --git a/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ur.png b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ur.png new file mode 100644 index 00000000..56bd5fa3 Binary files /dev/null and b/translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ur.png differ diff --git a/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ar.png b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ar.png new file mode 100644 index 00000000..3180723d Binary files /dev/null and b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ar.png differ diff --git a/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.bn.png b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.bn.png new file mode 100644 index 00000000..8de3e8e4 Binary files /dev/null and b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.bn.png differ diff --git a/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.mo.png b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.mo.png new file mode 100644 index 00000000..518ed597 Binary files /dev/null and b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.mo.png differ diff --git a/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ru.png b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ru.png new file mode 100644 index 00000000..5f1c9775 Binary files /dev/null and b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ru.png differ diff --git a/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ur.png b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ur.png new file mode 100644 index 00000000..6a6fc16e Binary files /dev/null and b/translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ur.png differ diff --git a/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ar.png b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ar.png new file mode 100644 index 00000000..462346a6 Binary files /dev/null and b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ar.png differ diff --git a/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.bn.png b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.bn.png new file mode 100644 index 00000000..462346a6 Binary files /dev/null and b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.bn.png differ diff --git a/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.mo.png b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.mo.png new file mode 100644 index 00000000..462346a6 Binary files /dev/null and b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.mo.png differ diff --git a/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ru.png b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ru.png new file mode 100644 index 00000000..462346a6 Binary files /dev/null and b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ru.png differ diff --git a/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ur.png b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ur.png new file mode 100644 index 00000000..462346a6 Binary files /dev/null and b/translated_images/superimposed.8b5bd0e8825d9c5c06e2b15d61e3f7ebdd36678f2bdfa1e74c57e24e4486885a.ur.png differ diff --git a/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ar.png b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ar.png new file mode 100644 index 00000000..e37df4c6 Binary files /dev/null and b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ar.png differ diff --git a/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.bn.png b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.bn.png new file mode 100644 index 00000000..b1a03fe8 Binary files /dev/null and b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.bn.png differ diff --git a/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.mo.png b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.mo.png new file mode 100644 index 00000000..87ada1f5 Binary files /dev/null and b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.mo.png differ diff --git a/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ru.png b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ru.png new file mode 100644 index 00000000..a74bd79b Binary files /dev/null and b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ru.png differ diff --git a/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ur.png b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ur.png new file mode 100644 index 00000000..7fdac55b Binary files /dev/null and b/translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ur.png differ diff --git a/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ar.png b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ar.png new file mode 100644 index 00000000..e774ac8f Binary files /dev/null and b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ar.png differ diff --git a/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.bn.png b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.bn.png new file mode 100644 index 00000000..6a0add51 Binary files /dev/null and b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.bn.png differ diff --git a/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.mo.png b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.mo.png new file mode 100644 index 00000000..ba0c58fe Binary files /dev/null and b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.mo.png differ diff --git a/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ru.png b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ru.png new file mode 100644 index 00000000..c265b5f8 Binary files /dev/null and b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ru.png differ diff --git a/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ur.png b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ur.png new file mode 100644 index 00000000..c2538946 Binary files /dev/null and b/translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ur.png differ diff --git a/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ar.png b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ar.png new file mode 100644 index 00000000..ff715ebc Binary files /dev/null and b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ar.png differ diff --git a/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.bn.png b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.bn.png new file mode 100644 index 00000000..c1f8d108 Binary files /dev/null and b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.bn.png differ diff --git a/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.mo.png b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.mo.png new file mode 100644 index 00000000..208f8eb3 Binary files /dev/null and b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.mo.png differ diff --git a/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ru.png b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ru.png new file mode 100644 index 00000000..e31394b9 Binary files /dev/null and b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ru.png differ diff --git a/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ur.png b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ur.png new file mode 100644 index 00000000..df50e9b1 Binary files /dev/null and b/translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ur.png differ diff --git a/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ar.png b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ar.png new file mode 100644 index 00000000..22f8d6aa Binary files /dev/null and b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ar.png differ diff --git a/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.bn.png b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.bn.png new file mode 100644 index 00000000..c4f19ee2 Binary files /dev/null and b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.bn.png differ diff --git a/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.mo.png b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.mo.png new file mode 100644 index 00000000..d708d0e7 Binary files /dev/null and b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.mo.png differ diff --git a/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ru.png b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ru.png new file mode 100644 index 00000000..d9f28d06 Binary files /dev/null and b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ru.png differ diff --git a/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ur.png b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ur.png new file mode 100644 index 00000000..6a012645 Binary files /dev/null and b/translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ur.png differ diff --git a/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ar.png b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ar.png new file mode 100644 index 00000000..62f71e9c Binary files /dev/null and b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ar.png differ diff --git a/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.bn.png b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.bn.png new file mode 100644 index 00000000..15c89024 Binary files /dev/null and b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.bn.png differ diff --git a/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.mo.png b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.mo.png new file mode 100644 index 00000000..1ee5e5e8 Binary files /dev/null and b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.mo.png differ diff --git a/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ru.png b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ru.png new file mode 100644 index 00000000..36efcc21 Binary files /dev/null and b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ru.png differ diff --git a/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ur.png b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ur.png new file mode 100644 index 00000000..321b6430 Binary files /dev/null and b/translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ur.png differ diff --git a/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ar.png b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ar.png new file mode 100644 index 00000000..51e080be Binary files /dev/null and b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ar.png differ diff --git a/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.bn.png b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.bn.png new file mode 100644 index 00000000..15c89024 Binary files /dev/null and b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.bn.png differ diff --git a/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.mo.png b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.mo.png new file mode 100644 index 00000000..d65b5064 Binary files /dev/null and b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.mo.png differ diff --git a/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ru.png b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ru.png new file mode 100644 index 00000000..8021d40e Binary files /dev/null and b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ru.png differ diff --git a/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ur.png b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ur.png new file mode 100644 index 00000000..1a3ba2e3 Binary files /dev/null and b/translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ur.png differ diff --git a/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ar.png b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ar.png new file mode 100644 index 00000000..49d75ce3 Binary files /dev/null and b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ar.png differ diff --git a/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.bn.png b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.bn.png new file mode 100644 index 00000000..60d9cbd0 Binary files /dev/null and b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.bn.png differ diff --git a/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.mo.png b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.mo.png new file mode 100644 index 00000000..09b6dcaf Binary files /dev/null and b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.mo.png differ diff --git a/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ru.png b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ru.png new file mode 100644 index 00000000..1a928216 Binary files /dev/null and b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ru.png differ diff --git a/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ur.png b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ur.png new file mode 100644 index 00000000..b6bde47b Binary files /dev/null and b/translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ur.png differ diff --git a/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ar.png b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ar.png new file mode 100644 index 00000000..7f576590 Binary files /dev/null and b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ar.png differ diff --git a/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.bn.png b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.bn.png new file mode 100644 index 00000000..04c82ed9 Binary files /dev/null and b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.bn.png differ diff --git a/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.mo.png b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.mo.png new file mode 100644 index 00000000..414392e9 Binary files /dev/null and b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.mo.png differ diff --git a/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ru.png b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ru.png new file mode 100644 index 00000000..670d4cca Binary files /dev/null and b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ru.png differ diff --git a/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ur.png b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ur.png new file mode 100644 index 00000000..7f3d44fe Binary files /dev/null and b/translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ur.png differ diff --git a/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ar.png b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ar.png new file mode 100644 index 00000000..7842f32a Binary files /dev/null and b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ar.png differ diff --git a/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.bn.png b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.bn.png new file mode 100644 index 00000000..c8e81e24 Binary files /dev/null and b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.bn.png differ diff --git a/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.mo.png b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.mo.png new file mode 100644 index 00000000..18136a36 Binary files /dev/null and b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.mo.png differ diff --git a/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ru.png b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ru.png new file mode 100644 index 00000000..05d9fa5c Binary files /dev/null and b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ru.png differ diff --git a/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ur.png b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ur.png new file mode 100644 index 00000000..7be58149 Binary files /dev/null and b/translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ur.png differ diff --git a/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ar.png b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ar.png new file mode 100644 index 00000000..0acf30ab Binary files /dev/null and b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ar.png differ diff --git a/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.bn.png b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.bn.png new file mode 100644 index 00000000..32680b9e Binary files /dev/null and b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.bn.png differ diff --git a/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.mo.png b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.mo.png new file mode 100644 index 00000000..990e7dca Binary files /dev/null and b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.mo.png differ diff --git a/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ru.png b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ru.png new file mode 100644 index 00000000..a6d1aaa1 Binary files /dev/null and b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ru.png differ diff --git a/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ur.png b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ur.png new file mode 100644 index 00000000..f163bd56 Binary files /dev/null and b/translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ur.png differ diff --git a/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ar.png b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ar.png new file mode 100644 index 00000000..cb48c87b Binary files /dev/null and b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ar.png differ diff --git a/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.bn.png b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.bn.png new file mode 100644 index 00000000..69f1c96b Binary files /dev/null and b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.bn.png differ diff --git a/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.mo.png b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.mo.png new file mode 100644 index 00000000..1ed1e511 Binary files /dev/null and b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.mo.png differ diff --git a/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ru.png b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ru.png new file mode 100644 index 00000000..c5791541 Binary files /dev/null and b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ru.png differ diff --git a/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ur.png b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ur.png new file mode 100644 index 00000000..1ee1e0b9 Binary files /dev/null and b/translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ur.png differ diff --git a/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ar.png b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ar.png new file mode 100644 index 00000000..fc58476a Binary files /dev/null and b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ar.png differ diff --git a/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.bn.png b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.bn.png new file mode 100644 index 00000000..ad1b0381 Binary files /dev/null and b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.bn.png differ diff --git a/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.mo.png b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.mo.png new file mode 100644 index 00000000..a91e2fe4 Binary files /dev/null and b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.mo.png differ diff --git a/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ru.png b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ru.png new file mode 100644 index 00000000..c3128ec7 Binary files /dev/null and b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ru.png differ diff --git a/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ur.png b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ur.png new file mode 100644 index 00000000..cd8aab78 Binary files /dev/null and b/translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ur.png differ diff --git a/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ar.png b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ar.png new file mode 100644 index 00000000..a651b47e Binary files /dev/null and b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ar.png differ diff --git a/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.bn.png b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.bn.png new file mode 100644 index 00000000..f42e5828 Binary files /dev/null and b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.bn.png differ diff --git a/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.mo.png b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.mo.png new file mode 100644 index 00000000..90402dfe Binary files /dev/null and b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.mo.png differ diff --git a/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ru.png b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ru.png new file mode 100644 index 00000000..c4eddd43 Binary files /dev/null and b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ru.png differ diff --git a/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ur.png b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ur.png new file mode 100644 index 00000000..3b095b22 Binary files /dev/null and b/translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ur.png differ diff --git a/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ar.png b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ar.png new file mode 100644 index 00000000..cee062c8 Binary files /dev/null and b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ar.png differ diff --git a/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.bn.png b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.bn.png new file mode 100644 index 00000000..a98b7e53 Binary files /dev/null and b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.bn.png differ diff --git a/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.mo.png b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.mo.png new file mode 100644 index 00000000..015494e2 Binary files /dev/null and b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.mo.png differ diff --git a/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ru.png b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ru.png new file mode 100644 index 00000000..5490405b Binary files /dev/null and b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ru.png differ diff --git a/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ur.png b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ur.png new file mode 100644 index 00000000..8fc63ab0 Binary files /dev/null and b/translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ur.png differ diff --git a/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ar.png b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ar.png new file mode 100644 index 00000000..11f57ed7 Binary files /dev/null and b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ar.png differ diff --git a/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.bn.png b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.bn.png new file mode 100644 index 00000000..3f452395 Binary files /dev/null and b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.bn.png differ diff --git a/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.mo.png b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.mo.png new file mode 100644 index 00000000..17977f36 Binary files /dev/null and b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.mo.png differ diff --git a/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ru.png b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ru.png new file mode 100644 index 00000000..36250dc9 Binary files /dev/null and b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ru.png differ diff --git a/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ur.png b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ur.png new file mode 100644 index 00000000..046215f4 Binary files /dev/null and b/translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ur.png differ diff --git a/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ar.png b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ar.png new file mode 100644 index 00000000..96fcfef7 Binary files /dev/null and b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ar.png differ diff --git a/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.bn.png b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.bn.png new file mode 100644 index 00000000..30d292c8 Binary files /dev/null and b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.bn.png differ diff --git a/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.mo.png b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.mo.png new file mode 100644 index 00000000..24398e37 Binary files /dev/null and b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.mo.png differ diff --git a/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ru.png b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ru.png new file mode 100644 index 00000000..309171e7 Binary files /dev/null and b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ru.png differ diff --git a/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ur.png b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ur.png new file mode 100644 index 00000000..2d9aad63 Binary files /dev/null and b/translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ur.png differ diff --git a/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ar.png b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ar.png new file mode 100644 index 00000000..231ca8a0 Binary files /dev/null and b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ar.png differ diff --git a/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.bn.png b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.bn.png new file mode 100644 index 00000000..8cf03c09 Binary files /dev/null and b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.bn.png differ diff --git a/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.mo.png b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.mo.png new file mode 100644 index 00000000..022fb46a Binary files /dev/null and b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.mo.png differ diff --git a/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ru.png b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ru.png new file mode 100644 index 00000000..397565a3 Binary files /dev/null and b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ru.png differ diff --git a/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ur.png b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ur.png new file mode 100644 index 00000000..e005fc05 Binary files /dev/null and b/translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ur.png differ diff --git a/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ar.png b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ar.png new file mode 100644 index 00000000..7538098f Binary files /dev/null and b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ar.png differ diff --git a/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.bn.png b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.bn.png new file mode 100644 index 00000000..758d0bdb Binary files /dev/null and b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.bn.png differ diff --git a/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.mo.png b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.mo.png new file mode 100644 index 00000000..c07e275e Binary files /dev/null and b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.mo.png differ diff --git a/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ru.png b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ru.png new file mode 100644 index 00000000..2e559a66 Binary files /dev/null and b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ru.png differ diff --git a/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ur.png b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ur.png new file mode 100644 index 00000000..ecd864da Binary files /dev/null and b/translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ur.png differ diff --git a/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ar.png b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ar.png new file mode 100644 index 00000000..4a7ca87b Binary files /dev/null and b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ar.png differ diff --git a/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.bn.png b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.bn.png new file mode 100644 index 00000000..b7fee1e3 Binary files /dev/null and b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.bn.png differ diff --git a/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.mo.png b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.mo.png new file mode 100644 index 00000000..7625fe98 Binary files /dev/null and b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.mo.png differ diff --git a/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ru.png b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ru.png new file mode 100644 index 00000000..b85fcbd7 Binary files /dev/null and b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ru.png differ diff --git a/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ur.png b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ur.png new file mode 100644 index 00000000..fb595345 Binary files /dev/null and b/translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ur.png differ diff --git a/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ar.png b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ar.png new file mode 100644 index 00000000..3b332808 Binary files /dev/null and b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ar.png differ diff --git a/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.bn.png b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.bn.png new file mode 100644 index 00000000..98041692 Binary files /dev/null and b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.bn.png differ diff --git a/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.mo.png b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.mo.png new file mode 100644 index 00000000..bd9a808c Binary files /dev/null and b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.mo.png differ diff --git a/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ru.png b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ru.png new file mode 100644 index 00000000..f95c6e57 Binary files /dev/null and b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ru.png differ diff --git a/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ur.png b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ur.png new file mode 100644 index 00000000..af7f242e Binary files /dev/null and b/translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ur.png differ diff --git a/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ar.png b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ar.png new file mode 100644 index 00000000..9e4774ae Binary files /dev/null and b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ar.png differ diff --git a/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.bn.png b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.bn.png new file mode 100644 index 00000000..38e26adc Binary files /dev/null and b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.bn.png differ diff --git a/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.mo.png b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.mo.png new file mode 100644 index 00000000..25146817 Binary files /dev/null and b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.mo.png differ diff --git a/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ru.png b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ru.png new file mode 100644 index 00000000..63462e67 Binary files /dev/null and b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ru.png differ diff --git a/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ur.png b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ur.png new file mode 100644 index 00000000..96ae7e0d Binary files /dev/null and b/translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ur.png differ diff --git a/translations/ar/1-Introduction/01-defining-data-science/README.md b/translations/ar/1-Introduction/01-defining-data-science/README.md new file mode 100644 index 00000000..e0ad2e0f --- /dev/null +++ b/translations/ar/1-Introduction/01-defining-data-science/README.md @@ -0,0 +1,124 @@ + +# تعريف علم البيانات + +| ![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png) | +| :----------------------------------------------------------------------------------------------------: | +| تعريف علم البيانات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +--- + +[![فيديو تعريف علم البيانات](../../../../translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ar.png)](https://youtu.be/beZ7Mb_oz9I) + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/0) + +## ما هو البيانات؟ +في حياتنا اليومية، نحن محاطون دائمًا بالبيانات. النص الذي تقرأه الآن هو بيانات. قائمة أرقام هواتف أصدقائك في هاتفك الذكي هي بيانات، وكذلك الوقت الحالي المعروض على ساعتك. كبشر، نحن نتعامل مع البيانات بشكل طبيعي من خلال عد النقود التي لدينا أو كتابة رسائل لأصدقائنا. + +ومع ذلك، أصبحت البيانات أكثر أهمية مع ظهور الحواسيب. الدور الأساسي للحواسيب هو إجراء العمليات الحسابية، لكنها تحتاج إلى بيانات للعمل عليها. لذلك، نحن بحاجة إلى فهم كيفية تخزين ومعالجة الحواسيب للبيانات. + +مع ظهور الإنترنت، زاد دور الحواسيب كأجهزة للتعامل مع البيانات. إذا فكرت في الأمر، نحن الآن نستخدم الحواسيب بشكل متزايد لمعالجة البيانات والتواصل بدلاً من العمليات الحسابية الفعلية. عندما نكتب بريدًا إلكترونيًا لصديق أو نبحث عن معلومات على الإنترنت - نحن في الأساس نقوم بإنشاء وتخزين ونقل ومعالجة البيانات. +> هل يمكنك تذكر آخر مرة استخدمت فيها الحاسوب فعليًا لإجراء عملية حسابية؟ + +## ما هو علم البيانات؟ + +في [ويكيبيديا](https://en.wikipedia.org/wiki/Data_science)، يُعرَّف **علم البيانات** بأنه *مجال علمي يستخدم الأساليب العلمية لاستخلاص المعرفة والرؤى من البيانات المنظمة وغير المنظمة، وتطبيق المعرفة والرؤى القابلة للتنفيذ من البيانات عبر مجموعة واسعة من المجالات التطبيقية*. + +تُبرز هذه التعريف النقاط التالية المهمة حول علم البيانات: + +* الهدف الرئيسي لعلم البيانات هو **استخلاص المعرفة** من البيانات، بمعنى آخر - **فهم** البيانات، واكتشاف العلاقات المخفية وبناء **نموذج**. +* يستخدم علم البيانات **الأساليب العلمية**، مثل الاحتمالات والإحصاء. في الواقع، عندما تم تقديم مصطلح *علم البيانات* لأول مرة، جادل البعض بأنه مجرد اسم جديد للإحصاء. ومع ذلك، أصبح من الواضح الآن أن المجال أوسع بكثير. +* يجب تطبيق المعرفة المستخلصة لإنتاج **رؤى قابلة للتنفيذ**، أي رؤى عملية يمكن تطبيقها على مواقف الأعمال الحقيقية. +* يجب أن نكون قادرين على التعامل مع البيانات **المنظمة** و**غير المنظمة**. سنعود لاحقًا في الدورة لمناقشة أنواع البيانات المختلفة. +* **مجال التطبيق** هو مفهوم مهم، وغالبًا ما يحتاج علماء البيانات إلى درجة معينة من الخبرة في مجال المشكلة، مثل: المالية، الطب، التسويق، إلخ. + +> جانب آخر مهم في علم البيانات هو أنه يدرس كيفية جمع البيانات وتخزينها والعمل عليها باستخدام الحواسيب. بينما توفر الإحصائيات الأسس الرياضية، يطبق علم البيانات المفاهيم الرياضية لاستخلاص الرؤى من البيانات. + +إحدى الطرق (المنسوبة إلى [جيم غراي](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) للنظر إلى علم البيانات هي اعتباره نموذجًا منفصلًا للعلم: +* **تجريبي**، حيث نعتمد بشكل أساسي على الملاحظات ونتائج التجارب. +* **نظري**، حيث تنبثق المفاهيم الجديدة من المعرفة العلمية الحالية. +* **حسابي**، حيث نكتشف مبادئ جديدة بناءً على بعض التجارب الحسابية. +* **قائم على البيانات**، يعتمد على اكتشاف العلاقات والأنماط في البيانات. + +## مجالات ذات صلة + +نظرًا لأن البيانات موجودة في كل مكان، فإن علم البيانات نفسه مجال واسع يتداخل مع العديد من التخصصات الأخرى. + +## أنواع البيانات + +كما ذكرنا سابقًا، البيانات موجودة في كل مكان. نحن فقط بحاجة إلى التقاطها بالطريقة الصحيحة! من المفيد التمييز بين البيانات **المنظمة** و**غير المنظمة**. الأولى تمثل عادةً في شكل منظم جيدًا، غالبًا كجدول أو عدد من الجداول، بينما الثانية هي مجرد مجموعة من الملفات. أحيانًا يمكننا أيضًا الحديث عن البيانات **شبه المنظمة**، التي تحتوي على نوع من الهيكل الذي قد يختلف بشكل كبير. + +| منظمة | شبه منظمة | غير منظمة | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------- | +| قائمة بأسماء الأشخاص وأرقام هواتفهم | صفحات ويكيبيديا مع روابط | نص موسوعة بريتانيكا | +| درجة الحرارة في جميع غرف مبنى كل دقيقة خلال العشرين عامًا الماضية | مجموعة من الأوراق العلمية بصيغة JSON تحتوي على المؤلفين، تاريخ النشر، والملخص | ملفات مشتركة تحتوي على مستندات الشركة | +| بيانات العمر والجنس لجميع الأشخاص الذين يدخلون المبنى | صفحات الإنترنت | فيديو خام من كاميرا مراقبة | + +## من أين تحصل على البيانات + +هناك العديد من المصادر الممكنة للبيانات، ومن المستحيل سردها جميعًا! ومع ذلك، دعونا نذكر بعض الأماكن النموذجية التي يمكنك الحصول على البيانات منها: + +* **منظمة** + - **إنترنت الأشياء** (IoT)، بما في ذلك البيانات من أجهزة الاستشعار المختلفة، مثل مستشعرات الحرارة أو الضغط، يوفر الكثير من البيانات المفيدة. على سبيل المثال، إذا كان مبنى مكتبي مجهزًا بأجهزة استشعار IoT، يمكننا التحكم تلقائيًا في التدفئة والإضاءة لتقليل التكاليف. + - **الاستطلاعات** التي نطلب من المستخدمين إكمالها بعد عملية شراء، أو بعد زيارة موقع ويب. + - **تحليل السلوك** يمكن أن يساعدنا، على سبيل المثال، في فهم مدى تعمق المستخدم في الموقع، وما هو السبب النموذجي لمغادرة الموقع. +* **غير منظمة** + - **النصوص** يمكن أن تكون مصدرًا غنيًا للرؤى، مثل **درجة الشعور العام**، أو استخراج الكلمات الرئيسية والمعاني الدلالية. + - **الصور** أو **الفيديو**. يمكن استخدام فيديو من كاميرا مراقبة لتقدير حركة المرور على الطريق، وإبلاغ الناس بالاختناقات المرورية المحتملة. + - **سجلات خوادم الويب** يمكن استخدامها لفهم الصفحات الأكثر زيارة على موقعنا، ومدة البقاء فيها. +* **شبه منظمة** + - **رسوم الشبكات الاجتماعية** يمكن أن تكون مصادر رائعة للبيانات حول شخصيات المستخدمين والفعالية المحتملة في نشر المعلومات. + - عندما يكون لدينا مجموعة من الصور من حفلة، يمكننا محاولة استخراج بيانات **ديناميكيات المجموعة** من خلال بناء رسم بياني للأشخاص الذين يلتقطون الصور مع بعضهم البعض. + +من خلال معرفة المصادر المختلفة للبيانات، يمكنك التفكير في سيناريوهات مختلفة حيث يمكن تطبيق تقنيات علم البيانات لفهم الوضع بشكل أفضل وتحسين العمليات التجارية. + +## ما الذي يمكنك فعله بالبيانات + +في علم البيانات، نركز على الخطوات التالية في رحلة البيانات: + +بالطبع، اعتمادًا على البيانات الفعلية، قد تكون بعض الخطوات مفقودة (مثل عندما تكون البيانات موجودة بالفعل في قاعدة البيانات، أو عندما لا نحتاج إلى تدريب نموذج)، أو قد تتكرر بعض الخطوات عدة مرات (مثل معالجة البيانات). + +## الرقمنة والتحول الرقمي + +في العقد الأخير، بدأت العديد من الشركات في فهم أهمية البيانات عند اتخاذ قرارات الأعمال. لتطبيق مبادئ علم البيانات على إدارة الأعمال، يجب أولاً جمع بعض البيانات، أي ترجمة العمليات التجارية إلى شكل رقمي. يُعرف هذا بـ **الرقمنة**. يمكن أن يؤدي تطبيق تقنيات علم البيانات على هذه البيانات لتوجيه القرارات إلى زيادات كبيرة في الإنتاجية (أو حتى تحول في الأعمال)، يُطلق عليه **التحول الرقمي**. + +دعونا نأخذ مثالًا. لنفترض أن لدينا دورة علم بيانات (مثل هذه) نقدمها عبر الإنترنت للطلاب، ونريد استخدام علم البيانات لتحسينها. كيف يمكننا القيام بذلك؟ + +يمكننا البدء بسؤال "ما الذي يمكن رقمنته؟" أبسط طريقة ستكون قياس الوقت الذي يستغرقه كل طالب لإكمال كل وحدة، وقياس المعرفة المكتسبة من خلال إعطاء اختبار متعدد الخيارات في نهاية كل وحدة. من خلال حساب متوسط الوقت اللازم للإكمال عبر جميع الطلاب، يمكننا معرفة الوحدات التي تسبب أكبر صعوبة للطلاب والعمل على تبسيطها. +قد تجادل بأن هذه الطريقة ليست مثالية، لأن الوحدات يمكن أن تكون بأطوال مختلفة. ربما يكون من الأكثر إنصافًا تقسيم الوقت على طول الوحدة (بعدد الأحرف)، ومقارنة تلك القيم بدلاً من ذلك. +عندما نبدأ في تحليل نتائج اختبارات الاختيار المتعدد، يمكننا محاولة تحديد المفاهيم التي يجد الطلاب صعوبة في فهمها، واستخدام تلك المعلومات لتحسين المحتوى. للقيام بذلك، نحتاج إلى تصميم الاختبارات بطريقة تجعل كل سؤال يرتبط بمفهوم معين أو جزء من المعرفة. + +إذا أردنا أن نكون أكثر تعقيدًا، يمكننا رسم الوقت المستغرق لكل وحدة دراسية مقابل الفئة العمرية للطلاب. قد نكتشف أن بعض الفئات العمرية تستغرق وقتًا طويلًا بشكل غير مناسب لإكمال الوحدة، أو أن الطلاب ينسحبون قبل إكمالها. يمكن أن يساعدنا هذا في تقديم توصيات عمرية للوحدة وتقليل عدم رضا الناس الناتج عن التوقعات الخاطئة. + +## 🚀 التحدي + +في هذا التحدي، سنحاول العثور على المفاهيم ذات الصلة بمجال علم البيانات من خلال النظر في النصوص. سنأخذ مقالة من ويكيبيديا عن علم البيانات، نقوم بتنزيل النص ومعالجته، ثم نبني سحابة كلمات مثل هذه: + +![سحابة كلمات لعلم البيانات](../../../../translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ar.png) + +قم بزيارة [`notebook.ipynb`](../../../../../../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') لقراءة الكود. يمكنك أيضًا تشغيل الكود ومشاهدة كيفية تنفيذ جميع تحويلات البيانات في الوقت الفعلي. + +> إذا كنت لا تعرف كيفية تشغيل الكود في Jupyter Notebook، ألقِ نظرة على [هذه المقالة](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/1) + +## المهام + +* **المهمة 1**: قم بتعديل الكود أعلاه للعثور على المفاهيم ذات الصلة بمجالي **البيانات الضخمة** و **تعلم الآلة** +* **المهمة 2**: [فكر في سيناريوهات علم البيانات](assignment.md) + +## الشكر + +تم تأليف هذا الدرس بكل ♥️ بواسطة [Dmitry Soshnikov](http://soshnikov.com) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/01-defining-data-science/assignment.md b/translations/ar/1-Introduction/01-defining-data-science/assignment.md new file mode 100644 index 00000000..7159c111 --- /dev/null +++ b/translations/ar/1-Introduction/01-defining-data-science/assignment.md @@ -0,0 +1,46 @@ + +# المهمة: سيناريوهات علم البيانات + +في هذه المهمة الأولى، نطلب منك التفكير في عملية أو مشكلة حقيقية في مجالات مختلفة، وكيف يمكنك تحسينها باستخدام عملية علم البيانات. فكر في النقاط التالية: + +1. ما البيانات التي يمكنك جمعها؟ +2. كيف ستقوم بجمعها؟ +3. كيف ستقوم بتخزين البيانات؟ ما حجم البيانات المتوقع؟ +4. ما الأفكار التي قد تتمكن من استخراجها من هذه البيانات؟ ما القرارات التي يمكننا اتخاذها بناءً على البيانات؟ + +حاول التفكير في 3 مشكلات/عمليات مختلفة ووصف كل النقاط المذكورة أعلاه لكل مجال. + +فيما يلي بعض المجالات والمشكلات التي يمكن أن تساعدك على البدء في التفكير: + +1. كيف يمكنك استخدام البيانات لتحسين عملية التعليم للأطفال في المدارس؟ +2. كيف يمكنك استخدام البيانات للتحكم في عملية التطعيم أثناء الجائحة؟ +3. كيف يمكنك استخدام البيانات للتأكد من أنك تعمل بشكل منتج؟ + +## التعليمات + +قم بملء الجدول التالي (استبدل المجالات المقترحة بمجالاتك الخاصة إذا لزم الأمر): + +| مجال المشكلة | المشكلة | البيانات التي يجب جمعها | كيفية تخزين البيانات | الأفكار/القرارات التي يمكننا اتخاذها | +|---------------|----------|--------------------------|-----------------------|-----------------------------------------| +| التعليم | | | | | +| التطعيم | | | | | +| الإنتاجية | | | | | + +## المعايير + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +تمكن من تحديد مصادر بيانات معقولة، وطرق تخزين البيانات، والقرارات/الأفكار الممكنة لجميع المجالات | بعض جوانب الحل غير مفصلة، تخزين البيانات غير مذكور، تم وصف مجالين على الأقل | تم وصف أجزاء فقط من الحل، وتم النظر في مجال واحد فقط. + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/01-defining-data-science/solution/assignment.md b/translations/ar/1-Introduction/01-defining-data-science/solution/assignment.md new file mode 100644 index 00000000..6ff2d7c3 --- /dev/null +++ b/translations/ar/1-Introduction/01-defining-data-science/solution/assignment.md @@ -0,0 +1,48 @@ + +# المهمة: سيناريوهات علم البيانات + +في هذه المهمة الأولى، نطلب منك التفكير في عملية أو مشكلة حقيقية في مجالات مختلفة، وكيف يمكنك تحسينها باستخدام عملية علم البيانات. فكر في النقاط التالية: + +1. ما البيانات التي يمكنك جمعها؟ +2. كيف ستقوم بجمعها؟ +3. كيف ستقوم بتخزين البيانات؟ ما حجم البيانات المتوقع؟ +4. ما الأفكار التي يمكن أن تستخلصها من هذه البيانات؟ ما القرارات التي يمكننا اتخاذها بناءً على البيانات؟ + +حاول التفكير في 3 مشاكل/عمليات مختلفة ووصف كل النقاط المذكورة أعلاه لكل مجال. + +فيما يلي بعض المجالات والمشاكل التي يمكن أن تساعدك على البدء في التفكير: + +1. كيف يمكنك استخدام البيانات لتحسين عملية التعليم للأطفال في المدارس؟ +2. كيف يمكنك استخدام البيانات للتحكم في عملية التطعيم أثناء الجائحة؟ +3. كيف يمكنك استخدام البيانات للتأكد من أنك تعمل بشكل منتج؟ + +## التعليمات + +قم بملء الجدول التالي (استبدل المجالات المقترحة بمجالاتك الخاصة إذا لزم الأمر): + +| مجال المشكلة | المشكلة | البيانات التي يمكن جمعها | كيفية تخزين البيانات | الأفكار/القرارات التي يمكننا اتخاذها | +|---------------|----------|--------------------------|-----------------------|----------------------------------------| +| التعليم | في الجامعة، عادة ما تكون نسبة الحضور للمحاضرات منخفضة، ولدينا فرضية أن الطلاب الذين يحضرون المحاضرات بانتظام يحققون أداءً أفضل في الامتحانات. نريد تحفيز الحضور واختبار الفرضية. | يمكننا تتبع الحضور من خلال الصور التي تلتقطها كاميرات المراقبة في القاعات، أو من خلال تتبع عناوين البلوتوث/الواي فاي لهواتف الطلاب المحمولة في القاعات. بيانات الامتحانات متوفرة بالفعل في قاعدة بيانات الجامعة. | في حالة تتبع صور كاميرات المراقبة - نحتاج إلى تخزين عدد قليل (5-10) من الصور أثناء المحاضرة (بيانات غير منظمة)، ثم استخدام الذكاء الاصطناعي للتعرف على وجوه الطلاب (تحويل البيانات إلى شكل منظم). | يمكننا حساب متوسط بيانات الحضور لكل طالب، ومعرفة ما إذا كان هناك أي ارتباط مع درجات الامتحانات. سنتحدث أكثر عن الارتباط في قسم [الاحتمالات والإحصاء](../../04-stats-and-probability/README.md). لتحفيز حضور الطلاب، يمكننا نشر تصنيف الحضور الأسبوعي على بوابة المدرسة، وإجراء سحوبات على جوائز بين الطلاب ذوي أعلى نسبة حضور. | +| التطعيم | | | | | +| الإنتاجية | | | | | + +> *نقدم إجابة واحدة فقط كمثال، حتى تتمكن من فهم ما هو متوقع في هذه المهمة.* + +## معايير التقييم + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +تمكن الطالب من تحديد مصادر بيانات معقولة، وطرق تخزين البيانات، والقرارات/الأفكار الممكنة لجميع المجالات | بعض جوانب الحل ليست مفصلة، ولم يتم مناقشة تخزين البيانات، وتم وصف مجالين على الأقل | تم وصف أجزاء فقط من حل البيانات، وتم النظر في مجال واحد فقط. + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/02-ethics/README.md b/translations/ar/1-Introduction/02-ethics/README.md new file mode 100644 index 00000000..b04df227 --- /dev/null +++ b/translations/ar/1-Introduction/02-ethics/README.md @@ -0,0 +1,267 @@ + +# مقدمة إلى أخلاقيات البيانات + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/02-Ethics.png)| +|:---:| +| أخلاقيات علم البيانات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +--- + +نحن جميعًا مواطنون في عالم مليء بالبيانات. + +تشير اتجاهات السوق إلى أنه بحلول عام 2022، ستقوم واحدة من كل ثلاث مؤسسات كبيرة بشراء وبيع بياناتها عبر [الأسواق والمنصات الإلكترونية](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). كـ **مطوري تطبيقات**، سنجد أنه من الأسهل والأرخص دمج رؤى تعتمد على البيانات وأتمتة تعتمد على الخوارزميات في تجارب المستخدم اليومية. ولكن مع انتشار الذكاء الاصطناعي، سنحتاج أيضًا إلى فهم الأضرار المحتملة الناتجة عن [تسليح](https://www.youtube.com/watch?v=TQHs8SA1qpk) هذه الخوارزميات على نطاق واسع. + +تشير الاتجاهات أيضًا إلى أننا سنقوم بإنشاء واستهلاك أكثر من [180 زيتابايت](https://www.statista.com/statistics/871513/worldwide-data-created/) من البيانات بحلول عام 2025. كـ **علماء بيانات**، يمنحنا هذا مستويات غير مسبوقة من الوصول إلى البيانات الشخصية. وهذا يعني أنه يمكننا بناء ملفات تعريف سلوكية للمستخدمين والتأثير على اتخاذ القرارات بطرق تخلق [وهم الاختيار الحر](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) بينما ندفع المستخدمين نحو نتائج نفضلها. كما يثير ذلك أسئلة أوسع حول خصوصية البيانات وحماية المستخدمين. + +أخلاقيات البيانات أصبحت الآن _حواجز ضرورية_ لعلم البيانات والهندسة، حيث تساعدنا على تقليل الأضرار المحتملة والعواقب غير المقصودة الناتجة عن أفعالنا المعتمدة على البيانات. يحدد [دورة الضجيج للذكاء الاصطناعي من Gartner](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) اتجاهات ذات صلة بالأخلاقيات الرقمية، الذكاء الاصطناعي المسؤول، وحوكمة الذكاء الاصطناعي كعوامل رئيسية تدفع اتجاهات أكبر حول _دمقرطة_ و _تصنيع_ الذكاء الاصطناعي. + +![دورة الضجيج للذكاء الاصطناعي من Gartner - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +في هذه الدرس، سنستكشف مجال أخلاقيات البيانات المثير - بدءًا من المفاهيم الأساسية والتحديات، إلى دراسات الحالة والمفاهيم التطبيقية للذكاء الاصطناعي مثل الحوكمة - التي تساعد في إنشاء ثقافة أخلاقية داخل الفرق والمؤسسات التي تعمل مع البيانات والذكاء الاصطناعي. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/2) 🎯 + +## التعريفات الأساسية + +لنبدأ بفهم المصطلحات الأساسية. + +كلمة "أخلاقيات" تأتي من [الكلمة اليونانية "ethikos"](https://en.wikipedia.org/wiki/Ethics) (وجذرها "ethos") التي تعني _الطبيعة الأخلاقية أو الشخصية_. + +**الأخلاقيات** تتعلق بالقيم المشتركة والمبادئ الأخلاقية التي تحكم سلوكنا في المجتمع. الأخلاقيات لا تعتمد على القوانين بل على الأعراف المقبولة عمومًا لما هو "صحيح مقابل خطأ". ومع ذلك، يمكن أن تؤثر الاعتبارات الأخلاقية على مبادرات الحوكمة المؤسسية واللوائح الحكومية التي تخلق المزيد من الحوافز للامتثال. + +**أخلاقيات البيانات** هي [فرع جديد من الأخلاقيات](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) يدرس ويقيم المشكلات الأخلاقية المتعلقة بـ _البيانات، الخوارزميات والممارسات المرتبطة بها_. هنا، **"البيانات"** تركز على الإجراءات المتعلقة بإنشاء البيانات، تسجيلها، تنظيمها، معالجتها، نشرها، مشاركتها واستخدامها، **"الخوارزميات"** تركز على الذكاء الاصطناعي، الوكلاء، التعلم الآلي، والروبوتات، و**"الممارسات"** تركز على مواضيع مثل الابتكار المسؤول، البرمجة، القرصنة، ومدونات الأخلاقيات. + +**الأخلاقيات التطبيقية** هي [التطبيق العملي للاعتبارات الأخلاقية](https://en.wikipedia.org/wiki/Applied_ethics). إنها عملية التحقيق النشط في القضايا الأخلاقية في سياق _الإجراءات، المنتجات والعمليات الواقعية_، واتخاذ إجراءات تصحيحية لضمان توافقها مع القيم الأخلاقية المحددة. + +**ثقافة الأخلاقيات** تتعلق بـ [_تفعيل_ الأخلاقيات التطبيقية](https://hbr.org/2019/05/how-to-design-an-ethical-organization) لضمان تبني المبادئ والممارسات الأخلاقية بشكل متسق وقابل للتوسع عبر المؤسسة بأكملها. ثقافات الأخلاقيات الناجحة تحدد المبادئ الأخلاقية على مستوى المؤسسة، توفر حوافز ذات معنى للامتثال، وتعزز الأعراف الأخلاقية من خلال تشجيع وتضخيم السلوكيات المرغوبة على كل مستوى من مستويات المؤسسة. + +## مفاهيم الأخلاقيات + +في هذا القسم، سنناقش مفاهيم مثل **القيم المشتركة** (المبادئ) و**التحديات الأخلاقية** (المشكلات) لأخلاقيات البيانات - وسنستكشف **دراسات حالة** تساعدك على فهم هذه المفاهيم في سياقات واقعية. + +### 1. مبادئ الأخلاقيات + +كل استراتيجية لأخلاقيات البيانات تبدأ بتحديد _المبادئ الأخلاقية_ - "القيم المشتركة" التي تصف السلوكيات المقبولة، وتوجه الإجراءات المتوافقة، في مشاريع البيانات والذكاء الاصطناعي. يمكنك تحديد هذه المبادئ على مستوى الفرد أو الفريق. ومع ذلك، فإن معظم المؤسسات الكبيرة تحددها في بيان مهمة أو إطار عمل _للذكاء الاصطناعي الأخلاقي_ يتم تحديده على مستوى المؤسسة ويتم تطبيقه بشكل متسق عبر جميع الفرق. + +**مثال:** بيان مهمة [الذكاء الاصطناعي المسؤول](https://www.microsoft.com/en-us/ai/responsible-ai) من Microsoft يقول: _"نحن ملتزمون بتطوير الذكاء الاصطناعي بناءً على مبادئ أخلاقية تضع الناس في المقام الأول"_ - مع تحديد 6 مبادئ أخلاقية في الإطار أدناه: + +![الذكاء الاصطناعي المسؤول في Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +دعونا نستكشف هذه المبادئ بإيجاز. _الشفافية_ و_المساءلة_ هما قيم أساسية تُبنى عليها المبادئ الأخرى - لذا دعونا نبدأ بهما: + +* [**المساءلة**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) تجعل الممارسين _مسؤولين_ عن عملياتهم في البيانات والذكاء الاصطناعي، وعن الامتثال لهذه المبادئ الأخلاقية. +* [**الشفافية**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) تضمن أن تكون الإجراءات المتعلقة بالبيانات والذكاء الاصطناعي _مفهومة_ (قابلة للتفسير) للمستخدمين، مع شرح ما يتم ولماذا. +* [**الإنصاف**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - يركز على ضمان أن يعامل الذكاء الاصطناعي _جميع الأشخاص_ بإنصاف، ومعالجة أي تحيزات اجتماعية-تقنية ضمن البيانات والأنظمة. +* [**الموثوقية والسلامة**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - تضمن أن يتصرف الذكاء الاصطناعي _بشكل متسق_ مع القيم المحددة، مع تقليل الأضرار المحتملة أو العواقب غير المقصودة. +* [**الخصوصية والأمان**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - تتعلق بفهم أصل البيانات، وتوفير _خصوصية البيانات والحماية ذات الصلة_ للمستخدمين. +* [**الشمولية**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - تتعلق بتصميم حلول الذكاء الاصطناعي بنية واضحة، وتكييفها لتلبية _مجموعة واسعة من الاحتياجات والقدرات البشرية_. + +> 🚨 فكر في ما يمكن أن يكون بيان مهمة أخلاقيات البيانات الخاص بك. استكشف أطر عمل الذكاء الاصطناعي الأخلاقي من مؤسسات أخرى - إليك أمثلة من [IBM](https://www.ibm.com/cloud/learn/ai-ethics)، [Google](https://ai.google/principles)، و[Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). ما هي القيم المشتركة التي لديهم؟ كيف ترتبط هذه المبادئ بمنتج الذكاء الاصطناعي أو الصناعة التي يعملون فيها؟ + +### 2. تحديات الأخلاقيات + +بمجرد تحديد المبادئ الأخلاقية، الخطوة التالية هي تقييم أفعالنا المتعلقة بالبيانات والذكاء الاصطناعي لمعرفة ما إذا كانت تتماشى مع تلك القيم المشتركة. فكر في أفعالك ضمن فئتين: _جمع البيانات_ و_تصميم الخوارزميات_. + +في جمع البيانات، قد تتضمن الأفعال **بيانات شخصية** أو معلومات تعريفية شخصية (PII) لأفراد يمكن التعرف عليهم. يشمل ذلك [عناصر متنوعة من البيانات غير الشخصية](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) التي _تجمع_ لتحديد الفرد. يمكن أن تتعلق التحديات الأخلاقية بـ _خصوصية البيانات_، _ملكية البيانات_، ومواضيع ذات صلة مثل _الموافقة المستنيرة_ و_حقوق الملكية الفكرية_ للمستخدمين. + +في تصميم الخوارزميات، تتضمن الأفعال جمع وتنظيم **مجموعات البيانات**، ثم استخدامها لتدريب ونشر **نماذج البيانات** التي تتنبأ بالنتائج أو تؤتمت القرارات في سياقات واقعية. يمكن أن تنشأ التحديات الأخلاقية من _تحيز مجموعات البيانات_، _مشكلات جودة البيانات_، _عدم الإنصاف_، و_التشويه_ في الخوارزميات - بما في ذلك بعض القضايا التي تكون منهجية بطبيعتها. + +في كلا الحالتين، تسلط التحديات الأخلاقية الضوء على المناطق التي قد تواجه فيها أفعالنا تعارضًا مع قيمنا المشتركة. للكشف عن هذه المخاوف، تقليلها، أو القضاء عليها - نحتاج إلى طرح أسئلة أخلاقية "نعم/لا" تتعلق بأفعالنا، ثم اتخاذ إجراءات تصحيحية حسب الحاجة. دعونا نلقي نظرة على بعض التحديات الأخلاقية والأسئلة الأخلاقية التي تثيرها: + +#### 2.1 ملكية البيانات + +جمع البيانات غالبًا ما يتضمن بيانات شخصية يمكن أن تحدد موضوعات البيانات. [ملكية البيانات](https://permission.io/blog/data-ownership) تتعلق بـ _التحكم_ و[_حقوق المستخدمين_](https://permission.io/blog/data-ownership) المتعلقة بإنشاء البيانات، معالجتها، ونشرها. + +الأسئلة الأخلاقية التي نحتاج إلى طرحها هي: + * من يملك البيانات؟ (المستخدم أم المؤسسة) + * ما هي حقوق موضوعات البيانات؟ (مثل: الوصول، الحذف، النقل) + * ما هي حقوق المؤسسات؟ (مثل: تصحيح المراجعات الضارة للمستخدمين) + +#### 2.2 الموافقة المستنيرة + +[الموافقة المستنيرة](https://legaldictionary.net/informed-consent/) تعني موافقة المستخدمين على إجراء معين (مثل جمع البيانات) مع _فهم كامل_ للحقائق ذات الصلة بما في ذلك الهدف، المخاطر المحتملة، والبدائل. + +الأسئلة التي يجب استكشافها هنا هي: + * هل أعطى المستخدم (موضوع البيانات) الإذن لجمع البيانات واستخدامها؟ + * هل فهم المستخدم الهدف من جمع تلك البيانات؟ + * هل فهم المستخدم المخاطر المحتملة من مشاركته؟ + +#### 2.3 الملكية الفكرية + +[الملكية الفكرية](https://en.wikipedia.org/wiki/Intellectual_property) تشير إلى الإبداعات غير الملموسة الناتجة عن المبادرة البشرية، والتي قد _تكون لها قيمة اقتصادية_ للأفراد أو الشركات. + +الأسئلة التي يجب استكشافها هنا هي: + * هل البيانات المجمعة لها قيمة اقتصادية للمستخدم أو الشركة؟ + * هل لدى **المستخدم** حقوق ملكية فكرية هنا؟ + * هل لدى **المؤسسة** حقوق ملكية فكرية هنا؟ + * إذا كانت هذه الحقوق موجودة، كيف نحميها؟ + +#### 2.4 خصوصية البيانات + +[خصوصية البيانات](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) أو خصوصية المعلومات تشير إلى الحفاظ على خصوصية المستخدم وحماية هويته فيما يتعلق بالمعلومات الشخصية. + +الأسئلة التي يجب استكشافها هنا هي: + * هل بيانات المستخدمين (الشخصية) محمية ضد الاختراقات والتسريبات؟ + * هل بيانات المستخدمين متاحة فقط للمستخدمين والسياقات المصرح بها؟ + * هل يتم الحفاظ على مجهولية المستخدم عند مشاركة البيانات أو نشرها؟ + * هل يمكن تحديد هوية المستخدم من مجموعات البيانات المجهولة؟ + +#### 2.5 الحق في النسيان + +[الحق في النسيان](https://en.wikipedia.org/wiki/Right_to_be_forgotten) أو [الحق في الحذف](https://www.gdpreu.org/right-to-be-forgotten/) يوفر حماية إضافية للبيانات الشخصية للمستخدمين. بشكل خاص، يمنح المستخدمين الحق في طلب حذف أو إزالة البيانات الشخصية من عمليات البحث على الإنترنت ومواقع أخرى، _في ظروف محددة_ - مما يسمح لهم ببدء جديد على الإنترنت دون أن تؤثر عليهم أفعالهم السابقة. + +الأسئلة التي يجب استكشافها هنا هي: + * هل النظام يسمح لموضوعات البيانات بطلب الحذف؟ + * هل يجب أن يؤدي سحب موافقة المستخدم إلى الحذف التلقائي؟ + * هل تم جمع البيانات بدون موافقة أو بوسائل غير قانونية؟ + * هل نحن ملتزمون باللوائح الحكومية لخصوصية البيانات؟ + +#### 2.6 تحيز مجموعات البيانات + +تحيز مجموعات البيانات أو [تحيز الجمع](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) يتعلق باختيار مجموعة بيانات _غير ممثلة_ لتطوير الخوارزميات، مما يخلق احتمالية لعدم الإنصاف في نتائج المخرجات لمجموعات متنوعة. أنواع التحيز تشمل التحيز في الاختيار أو العينة، التحيز التطوعي، وتحيز الأدوات. + +الأسئلة التي يجب استكشافها هنا هي: + * هل قمنا بتجنيد مجموعة ممثلة من موضوعات البيانات؟ + * هل قمنا باختبار مجموعتنا المجمعة أو المنظمة للكشف عن أنواع مختلفة من التحيز؟ + * هل يمكننا تقليل أو إزالة أي تحيزات مكتشفة؟ + +#### 2.7 جودة البيانات + +[جودة البيانات](https://lakefs.io/data-quality-testing/) تنظر في صلاحية مجموعة البيانات المنظمة المستخدمة لتطوير خوارزمياتنا، للتحقق مما إذا كانت الميزات والسجلات تلبي المتطلبات لمستوى الدقة والاتساق المطلوب لغرض الذكاء الاصطناعي. + +الأسئلة التي يجب استكشافها هنا هي: + * هل قمنا بجمع ميزات صالحة لحالة الاستخدام الخاصة بنا؟ + * هل تم جمع البيانات _بشكل متسق_ عبر مصادر بيانات متنوعة؟ + * هل المجموعة _كاملة_ لظروف أو سيناريوهات متنوعة؟ + * هل المعلومات المجمعة _دقيقة_ في عكس الواقع؟ + +#### 2.8 إنصاف الخوارزميات +[Algorithm Fairness](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) يتحقق مما إذا كان تصميم الخوارزمية يميز بشكل منهجي ضد مجموعات فرعية محددة من الأفراد، مما يؤدي إلى [أضرار محتملة](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) في _التخصيص_ (حيث يتم حرمان أو حجب الموارد عن تلك المجموعة) و_جودة الخدمة_ (حيث تكون دقة الذكاء الاصطناعي أقل لبعض المجموعات مقارنة بغيرها). + +الأسئلة التي يمكن استكشافها هنا هي: + * هل قمنا بتقييم دقة النموذج لمجموعات فرعية وظروف متنوعة؟ + * هل قمنا بفحص النظام بحثًا عن أضرار محتملة (مثل التنميط النمطي)؟ + * هل يمكننا مراجعة البيانات أو إعادة تدريب النماذج لتخفيف الأضرار المحددة؟ + +استكشف موارد مثل [قوائم التحقق للعدالة في الذكاء الاصطناعي](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) لمعرفة المزيد. + +#### 2.9 التمثيل الخاطئ + +[التمثيل الخاطئ للبيانات](https://www.sciencedirect.com/topics/computer-science/misrepresentation) يتعلق بالتساؤل عما إذا كنا ننقل رؤى من بيانات تم الإبلاغ عنها بصدق بطريقة خادعة لدعم سردية مرغوبة. + +الأسئلة التي يمكن استكشافها هنا هي: + * هل نقوم بالإبلاغ عن بيانات غير مكتملة أو غير دقيقة؟ + * هل نقوم بتصور البيانات بطريقة تؤدي إلى استنتاجات مضللة؟ + * هل نستخدم تقنيات إحصائية انتقائية للتلاعب بالنتائج؟ + * هل هناك تفسيرات بديلة قد تقدم استنتاجًا مختلفًا؟ + +#### 2.10 حرية الاختيار +[وهم حرية الاختيار](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) يحدث عندما تستخدم "هندسة الاختيارات" في الأنظمة خوارزميات اتخاذ القرار لدفع الناس نحو اتخاذ نتيجة مفضلة بينما يبدو أنهم يمتلكون خيارات وتحكمًا. يمكن أن تسبب هذه [الأنماط المظلمة](https://www.darkpatterns.org/) أضرارًا اجتماعية واقتصادية للمستخدمين. وبما أن قرارات المستخدم تؤثر على ملفات تعريف السلوك، فإن هذه الإجراءات قد تدفع إلى تضخيم أو تمديد تأثير هذه الأضرار في المستقبل. + +الأسئلة التي يمكن استكشافها هنا هي: + * هل فهم المستخدم تداعيات اتخاذ هذا القرار؟ + * هل كان المستخدم على علم بالخيارات (البديلة) ومزايا وعيوب كل منها؟ + * هل يمكن للمستخدم عكس قرار آلي أو متأثر لاحقًا؟ + +### 3. دراسات حالة + +لفهم هذه التحديات الأخلاقية في سياقات العالم الحقيقي، من المفيد النظر في دراسات حالة تسلط الضوء على الأضرار والعواقب المحتملة للأفراد والمجتمع عندما يتم التغاضي عن هذه الانتهاكات الأخلاقية. + +فيما يلي بعض الأمثلة: + +| التحدي الأخلاقي | دراسة الحالة | +|--- |--- | +| **الموافقة المستنيرة** | 1972 - [دراسة الزهري في توسكيجي](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - تم وعد الرجال الأمريكيين من أصل أفريقي الذين شاركوا في الدراسة برعاية طبية مجانية _لكن تم خداعهم_ من قبل الباحثين الذين لم يخبروهم بتشخيصهم أو بتوفر العلاج. مات العديد من المشاركين وتأثر شركاؤهم أو أطفالهم؛ استمرت الدراسة 40 عامًا. | +| **خصوصية البيانات** | 2007 - [جائزة بيانات نتفليكس](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) قدمت للباحثين _10 ملايين تقييم أفلام مجهولة المصدر من 50 ألف عميل_ لتحسين خوارزميات التوصية. ومع ذلك، تمكن الباحثون من ربط البيانات المجهولة ببيانات شخصية قابلة للتحديد في _مجموعات بيانات خارجية_ (مثل تعليقات IMDb) - مما أدى فعليًا إلى "إلغاء إخفاء الهوية" لبعض مشتركي نتفليكس.| +| **تحيز جمع البيانات** | 2013 - طورت مدينة بوسطن [تطبيق Street Bump](https://www.boston.gov/transportation/street-bump)، وهو تطبيق يسمح للمواطنين بالإبلاغ عن الحفر، مما يوفر للمدينة بيانات أفضل عن الطرق لتحديد المشكلات وإصلاحها. ومع ذلك، [كان لدى الأشخاص في المجموعات ذات الدخل المنخفض وصول أقل إلى السيارات والهواتف](https://hbr.org/2013/04/the-hidden-biases-in-big-data)، مما جعل مشكلات الطرق الخاصة بهم غير مرئية في هذا التطبيق. عمل المطورون مع الأكاديميين على قضايا _الوصول العادل والفجوات الرقمية_ لتحقيق العدالة. | +| **عدالة الخوارزميات** | 2018 - [دراسة Gender Shades](http://gendershades.org/overview.html) من معهد MIT قيمت دقة منتجات تصنيف الجنس بالذكاء الاصطناعي، وكشفت عن فجوات في الدقة للنساء والأشخاص الملونين. [بطاقة Apple لعام 2019](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) بدت وكأنها تقدم ائتمانًا أقل للنساء مقارنة بالرجال. كلاهما يوضح قضايا التحيز الخوارزمي الذي يؤدي إلى أضرار اجتماعية واقتصادية.| +| **التمثيل الخاطئ للبيانات** | 2020 - [أصدرت إدارة الصحة العامة في جورجيا رسومًا بيانية عن COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) بدت وكأنها تضلل المواطنين بشأن اتجاهات الحالات المؤكدة من خلال ترتيب غير زمني على المحور السيني. يوضح هذا التمثيل الخاطئ من خلال حيل التصور. | +| **وهم حرية الاختيار** | 2020 - دفعت تطبيق التعلم [ABCmouse مبلغ 10 ملايين دولار لتسوية شكوى FTC](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) حيث تم حبس الآباء في دفع اشتراكات لم يتمكنوا من إلغائها. يوضح هذا الأنماط المظلمة في هندسة الاختيارات، حيث تم دفع المستخدمين نحو اختيارات قد تكون ضارة. | +| **خصوصية البيانات وحقوق المستخدم** | 2021 - [اختراق بيانات فيسبوك](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) كشف بيانات 530 مليون مستخدم، مما أدى إلى تسوية بقيمة 5 مليارات دولار مع FTC. ومع ذلك، رفضت الشركة إخطار المستخدمين بالاختراق، مما يعد انتهاكًا لحقوق المستخدمين المتعلقة بشفافية البيانات والوصول إليها. | + +هل تريد استكشاف المزيد من دراسات الحالة؟ تحقق من هذه الموارد: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - معضلات أخلاقية عبر صناعات متنوعة. +* [دورة أخلاقيات علوم البيانات](https://www.coursera.org/learn/data-science-ethics#syllabus) - دراسات حالة بارزة مستكشفة. +* [أين حدثت الأخطاء](https://deon.drivendata.org/examples/) - قائمة تحقق Deon مع أمثلة. + +> 🚨 فكر في دراسات الحالة التي رأيتها - هل واجهت أو تأثرت بتحدٍ أخلاقي مشابه في حياتك؟ هل يمكنك التفكير في دراسة حالة أخرى توضح أحد التحديات الأخلاقية التي ناقشناها في هذا القسم؟ + +## الأخلاقيات التطبيقية + +لقد تحدثنا عن مفاهيم الأخلاقيات، التحديات، ودراسات الحالة في سياقات العالم الحقيقي. ولكن كيف نبدأ في _تطبيق_ المبادئ والممارسات الأخلاقية في مشاريعنا؟ وكيف يمكننا _تشغيل_ هذه الممارسات لتحقيق حوكمة أفضل؟ دعونا نستكشف بعض الحلول الواقعية: + +### 1. الأكواد المهنية + +تقدم الأكواد المهنية خيارًا للمنظمات "لتحفيز" الأعضاء لدعم مبادئها الأخلاقية وبيان مهمتها. الأكواد هي _إرشادات أخلاقية_ للسلوك المهني، تساعد الموظفين أو الأعضاء على اتخاذ قرارات تتماشى مع مبادئ منظمتهم. تعتمد فعاليتها على الامتثال الطوعي من الأعضاء؛ ومع ذلك، تقدم العديد من المنظمات مكافآت وعقوبات إضافية لتحفيز الامتثال. + +أمثلة تشمل: + + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) كود الأخلاقيات + * [جمعية علوم البيانات](http://datascienceassn.org/code-of-conduct.html) كود السلوك (تم إنشاؤه عام 2013) + * [كود ACM للأخلاقيات والسلوك المهني](https://www.acm.org/code-of-ethics) (منذ عام 1993) + +> 🚨 هل تنتمي إلى منظمة مهنية في الهندسة أو علوم البيانات؟ استكشف موقعهم لمعرفة ما إذا كانوا يحددون كودًا مهنيًا للأخلاقيات. ماذا يقول هذا عن مبادئهم الأخلاقية؟ كيف "يحفزون" الأعضاء على اتباع الكود؟ + +### 2. قوائم التحقق الأخلاقية + +بينما تحدد الأكواد المهنية السلوك الأخلاقي المطلوب من الممارسين، فإنها [لها حدود معروفة](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) في التنفيذ، خاصة في المشاريع واسعة النطاق. بدلاً من ذلك، يدعو العديد من خبراء علوم البيانات إلى [قوائم التحقق](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) التي يمكنها **ربط المبادئ بالممارسات** بطرق أكثر تحديدًا وقابلية للتنفيذ. + +تحول قوائم التحقق الأسئلة إلى مهام "نعم/لا" يمكن تشغيلها، مما يسمح بتتبعها كجزء من سير عمل إصدار المنتج القياسي. + +أمثلة تشمل: + * [Deon](https://deon.drivendata.org/) - قائمة تحقق عامة لأخلاقيات البيانات تم إنشاؤها من [توصيات الصناعة](https://deon.drivendata.org/#checklist-citations) مع أداة سطر أوامر للتكامل السهل. + * [قائمة تدقيق تدقيق الخصوصية](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - تقدم إرشادات عامة لممارسات التعامل مع المعلومات من منظور التعرض القانوني والاجتماعي. + * [قائمة تدقيق عدالة الذكاء الاصطناعي](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - تم إنشاؤها من قبل ممارسي الذكاء الاصطناعي لدعم تبني ودمج فحوصات العدالة في دورات تطوير الذكاء الاصطناعي. + * [22 سؤالًا للأخلاقيات في البيانات والذكاء الاصطناعي](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - إطار عمل أكثر انفتاحًا، منظم لاستكشاف القضايا الأخلاقية في التصميم والتنفيذ والسياقات التنظيمية. + +### 3. اللوائح الأخلاقية + +تتعلق الأخلاقيات بتعريف القيم المشتركة وفعل الشيء الصحيح _طوعًا_. **الامتثال** يتعلق بـ _اتباع القانون_ إذا كان محددًا. **الحوكمة** تغطي جميع الطرق التي تعمل بها المنظمات لفرض المبادئ الأخلاقية والامتثال للقوانين المعمول بها. + +اليوم، تأخذ الحوكمة شكلين داخل المنظمات. أولاً، يتعلق الأمر بتعريف مبادئ **الذكاء الاصطناعي الأخلاقي** وإنشاء ممارسات لتشغيل التبني عبر جميع المشاريع المتعلقة بالذكاء الاصطناعي في المنظمة. ثانيًا، يتعلق الأمر بالامتثال لجميع اللوائح الحكومية المتعلقة بحماية البيانات للمناطق التي تعمل فيها. + +أمثلة على لوائح حماية البيانات والخصوصية: + + * `1974`، [قانون الخصوصية الأمريكي](https://www.justice.gov/opcl/privacy-act-1974) - ينظم _جمع الحكومة الفيدرالية_ للمعلومات الشخصية واستخدامها والإفصاح عنها. + * `1996`، [قانون التأمين الصحي الأمريكي HIPAA](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - يحمي البيانات الصحية الشخصية. + * `1998`، [قانون حماية خصوصية الأطفال على الإنترنت COPPA](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - يحمي خصوصية بيانات الأطفال دون سن 13. + * `2018`، [اللائحة العامة لحماية البيانات GDPR](https://gdpr-info.eu/) - توفر حقوق المستخدم، وحماية البيانات، والخصوصية. + * `2018`، [قانون خصوصية المستهلك في كاليفورنيا CCPA](https://www.oag.ca.gov/privacy/ccpa) يمنح المستهلكين المزيد من _الحقوق_ بشأن بياناتهم (الشخصية). + * `2021`، [قانون حماية المعلومات الشخصية في الصين](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) الذي تم تمريره مؤخرًا، مما يخلق واحدة من أقوى لوائح الخصوصية على الإنترنت في العالم. + +> 🚨 تعرف اللائحة العامة لحماية البيانات GDPR (اللائحة العامة لحماية البيانات) التي حددها الاتحاد الأوروبي بأنها واحدة من أكثر لوائح حماية البيانات تأثيرًا اليوم. هل تعلم أنها تعرف أيضًا [8 حقوق للمستخدم](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) لحماية الخصوصية الرقمية والبيانات الشخصية للمواطنين؟ تعرف على ما هي هذه الحقوق ولماذا هي مهمة. + +### 4. ثقافة الأخلاقيات + +لاحظ أن هناك فجوة غير ملموسة بين _الامتثال_ (القيام بما يكفي لتلبية "نص القانون") ومعالجة [القضايا النظامية](https://www.coursera.org/learn/data-science-ethics/home/week/4) (مثل الجمود، عدم التماثل في المعلومات، وعدم العدالة في التوزيع) التي يمكن أن تسرع من تسليح الذكاء الاصطناعي. + +يتطلب الأخير [نهجًا تعاونيًا لتعريف ثقافات الأخلاقيات](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) التي تبني روابط عاطفية وقيمًا مشتركة متسقة _عبر المنظمات_ في الصناعة. يتطلب هذا المزيد من [ثقافات أخلاقيات البيانات الرسمية](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) في المنظمات - مما يسمح _لأي شخص_ بـ [سحب حبل أندون](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (لإثارة مخاوف أخلاقية مبكرًا في العملية) وجعل _التقييمات الأخلاقية_ (مثل التوظيف) معيارًا أساسيًا لتشكيل الفرق في مشاريع الذكاء الاصطناعي. + +--- +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/3) 🎯 +## المراجعة والدراسة الذاتية + +تساعد الدورات والكتب على فهم مفاهيم الأخلاقيات الأساسية والتحديات، بينما تساعد دراسات الحالة والأدوات في ممارسات الأخلاقيات التطبيقية في سياقات العالم الحقيقي. إليك بعض الموارد للبدء: + +* [تعلم الآلة للمبتدئين](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - درس حول العدالة، من مايكروسوفت. +* [مبادئ الذكاء الاصطناعي المسؤول](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - مسار تعليمي مجاني من Microsoft Learn. +* [الأخلاقيات وعلوم البيانات](https://resources.oreilly.com/examples/0636920203964) - كتاب إلكتروني من O'Reilly (بقلم م. لوكيديس، هـ. ماسون وآخرون). +* [أخلاقيات علوم البيانات](https://www.coursera.org/learn/data-science-ethics#syllabus) - دورة تعليمية عبر الإنترنت من جامعة ميشيغان. +* [الأخلاقيات غير المغلفة](https://ethicsunwrapped.utexas.edu/case-studies) - دراسات حالة من جامعة تكساس. + +# الواجب + +[كتابة دراسة حالة عن أخلاقيات البيانات](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/02-ethics/assignment.md b/translations/ar/1-Introduction/02-ethics/assignment.md new file mode 100644 index 00000000..999e537e --- /dev/null +++ b/translations/ar/1-Introduction/02-ethics/assignment.md @@ -0,0 +1,35 @@ + +## كتابة دراسة حالة عن أخلاقيات البيانات + +## التعليمات + +لقد تعلمت عن مختلف [تحديات أخلاقيات البيانات](README.md#2-ethics-challenges) وشاهدت بعض الأمثلة على [دراسات الحالة](README.md#3-case-studies) التي تعكس تحديات أخلاقيات البيانات في سياقات واقعية. + +في هذه المهمة، ستكتب دراسة حالة خاصة بك تعكس تحديًا في أخلاقيات البيانات من تجربتك الشخصية أو من سياق واقعي ذي صلة تعرفه. فقط اتبع هذه الخطوات: + +1. `اختر تحديًا في أخلاقيات البيانات`. انظر إلى [أمثلة الدرس](README.md#2-ethics-challenges) أو استكشف أمثلة عبر الإنترنت مثل [قائمة Deon](https://deon.drivendata.org/examples/) للحصول على الإلهام. + +2. `وصف مثال من العالم الحقيقي`. فكر في موقف سمعت عنه (عناوين الأخبار، دراسة بحثية، إلخ) أو عايشته (مجتمع محلي)، حيث حدث هذا التحدي المحدد. فكر في الأسئلة المتعلقة بأخلاقيات البيانات المرتبطة بالتحدي - وناقش الأضرار المحتملة أو العواقب غير المقصودة التي تنشأ بسبب هذه المشكلة. نقاط إضافية: فكر في الحلول أو العمليات التي يمكن تطبيقها هنا للمساعدة في القضاء على أو تقليل التأثير السلبي لهذا التحدي. + +3. `تقديم قائمة بالموارد ذات الصلة`. شارك موردًا أو أكثر (روابط لمقالة، منشور مدونة شخصية أو صورة، ورقة بحثية عبر الإنترنت، إلخ) لإثبات أن هذا حدث بالفعل في العالم الحقيقي. نقاط إضافية: شارك موارد تعرض أيضًا الأضرار والعواقب المحتملة من الحادثة، أو تسلط الضوء على خطوات إيجابية تم اتخاذها لمنع تكرارها. + + + +## المعيار + +متميز | كافٍ | يحتاج إلى تحسين +--- | --- | -- | +تم تحديد تحدٍ واحد أو أكثر من تحديات أخلاقيات البيانات.

تصف دراسة الحالة بوضوح حادثة واقعية تعكس هذا التحدي، وتبرز العواقب غير المرغوبة أو الأضرار التي تسببها.

يوجد على الأقل مورد مرتبط لإثبات حدوث ذلك. | تم تحديد تحدٍ واحد في أخلاقيات البيانات.

تمت مناقشة ضرر أو عاقبة واحدة ذات صلة بشكل موجز.

ومع ذلك، فإن المناقشة محدودة أو تفتقر إلى إثبات حدوثها في العالم الحقيقي. | تم تحديد تحدٍ في البيانات.

ومع ذلك، فإن الوصف أو الموارد لا تعكس التحدي بشكل كافٍ أو تثبت حدوثه في العالم الحقيقي. | + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/03-defining-data/README.md b/translations/ar/1-Introduction/03-defining-data/README.md new file mode 100644 index 00000000..8ca05bfa --- /dev/null +++ b/translations/ar/1-Introduction/03-defining-data/README.md @@ -0,0 +1,85 @@ + +# تعريف البيانات + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|تعريف البيانات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +البيانات هي الحقائق، المعلومات، الملاحظات والقياسات التي تُستخدم لاكتشافات ودعم اتخاذ قرارات مستنيرة. نقطة البيانات هي وحدة واحدة من البيانات داخل مجموعة بيانات، وهي عبارة عن مجموعة من نقاط البيانات. قد تأتي مجموعات البيانات في أشكال وهياكل مختلفة، وعادةً ما تعتمد على مصدرها أو المكان الذي جاءت منه البيانات. على سبيل المثال، قد تكون أرباح الشركة الشهرية في جدول بيانات، بينما قد تكون بيانات معدل ضربات القلب لكل ساعة من ساعة ذكية بتنسيق [JSON](https://stackoverflow.com/a/383699). من الشائع أن يعمل علماء البيانات مع أنواع مختلفة من البيانات داخل مجموعة بيانات واحدة. + +تركز هذه الدرس على تحديد وتصنيف البيانات بناءً على خصائصها ومصادرها. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/4) + +## كيف يتم وصف البيانات + +### البيانات الخام +البيانات الخام هي البيانات التي تأتي من مصدرها في حالتها الأولية ولم يتم تحليلها أو تنظيمها. لفهم ما يحدث داخل مجموعة بيانات، يجب تنظيمها في شكل يمكن فهمه من قبل البشر وكذلك التكنولوجيا التي قد يستخدمونها لتحليلها بشكل أكبر. تصف بنية مجموعة البيانات كيفية تنظيمها ويمكن تصنيفها إلى: منظمة، غير منظمة، وشبه منظمة. تختلف هذه الأنواع من البنية بناءً على المصدر ولكنها في النهاية تندرج ضمن هذه الفئات الثلاث. + +### البيانات الكمية +البيانات الكمية هي الملاحظات الرقمية داخل مجموعة البيانات ويمكن عادةً تحليلها وقياسها واستخدامها رياضيًا. بعض الأمثلة على البيانات الكمية هي: عدد سكان بلد، طول شخص، أو أرباح شركة ربع سنوية. مع بعض التحليل الإضافي، يمكن استخدام البيانات الكمية لاكتشاف الاتجاهات الموسمية لمؤشر جودة الهواء (AQI) أو تقدير احتمالية ازدحام المرور خلال يوم عمل عادي. + +### البيانات النوعية +البيانات النوعية، والمعروفة أيضًا بالبيانات التصنيفية، هي بيانات لا يمكن قياسها بشكل موضوعي مثل ملاحظات البيانات الكمية. عادةً ما تكون بيانات ذاتية بأشكال مختلفة تلتقط جودة شيء ما، مثل منتج أو عملية. أحيانًا تكون البيانات النوعية رقمية ولكنها لا تُستخدم عادةً رياضيًا، مثل أرقام الهواتف أو الطوابع الزمنية. بعض الأمثلة على البيانات النوعية هي: تعليقات الفيديو، نوع وطراز السيارة، أو اللون المفضل لأقرب أصدقائك. يمكن استخدام البيانات النوعية لفهم المنتجات التي يفضلها المستهلكون أو تحديد الكلمات الرئيسية الشائعة في السير الذاتية للوظائف. + +### البيانات المنظمة +البيانات المنظمة هي البيانات التي يتم تنظيمها في صفوف وأعمدة، حيث يحتوي كل صف على نفس مجموعة الأعمدة. تمثل الأعمدة قيمة لنوع معين ويتم تحديدها باسم يصف ما تمثله القيمة، بينما تحتوي الصفوف على القيم الفعلية. غالبًا ما تحتوي الأعمدة على مجموعة محددة من القواعد أو القيود على القيم، لضمان أن القيم تمثل العمود بدقة. على سبيل المثال، تخيل جدول بيانات للعملاء حيث يجب أن يحتوي كل صف على رقم هاتف ولا تحتوي أرقام الهواتف على أحرف أبجدية. قد تكون هناك قواعد مطبقة على عمود رقم الهاتف لضمان عدم تركه فارغًا وأن يحتوي فقط على أرقام. + +ميزة البيانات المنظمة هي أنه يمكن تنظيمها بطريقة تجعلها مرتبطة ببيانات منظمة أخرى. ومع ذلك، نظرًا لأن البيانات مصممة لتكون منظمة بطريقة معينة، فإن إجراء تغييرات على هيكلها العام قد يتطلب جهدًا كبيرًا. على سبيل المثال، إضافة عمود بريد إلكتروني إلى جدول بيانات العملاء الذي لا يمكن أن يكون فارغًا يعني أنك ستحتاج إلى معرفة كيفية إضافة هذه القيم إلى الصفوف الحالية للعملاء في مجموعة البيانات. + +أمثلة على البيانات المنظمة: جداول البيانات، قواعد البيانات العلائقية، أرقام الهواتف، كشوف الحسابات البنكية. + +### البيانات غير المنظمة +البيانات غير المنظمة عادةً لا يمكن تصنيفها إلى صفوف أو أعمدة ولا تحتوي على تنسيق أو مجموعة من القواعد التي يجب اتباعها. نظرًا لأن البيانات غير المنظمة تحتوي على قيود أقل على بنيتها، فمن الأسهل إضافة معلومات جديدة مقارنةً بمجموعة بيانات منظمة. إذا كان جهاز استشعار يلتقط بيانات عن ضغط الهواء كل دقيقتين قد تلقى تحديثًا يسمح له الآن بقياس وتسجيل درجة الحرارة، فإنه لا يتطلب تعديل البيانات الحالية إذا كانت غير منظمة. ومع ذلك، قد يجعل هذا تحليل أو التحقيق في هذا النوع من البيانات يستغرق وقتًا أطول. على سبيل المثال، قد يرغب عالم في العثور على متوسط درجة الحرارة للشهر السابق من بيانات المستشعر، لكنه يكتشف أن المستشعر سجل "e" في بعض بياناته للإشارة إلى أنه كان معطلاً بدلاً من رقم نموذجي، مما يعني أن البيانات غير مكتملة. + +أمثلة على البيانات غير المنظمة: ملفات النصوص، الرسائل النصية، ملفات الفيديو. + +### البيانات شبه المنظمة +البيانات شبه المنظمة تحتوي على ميزات تجعلها مزيجًا من البيانات المنظمة وغير المنظمة. عادةً لا تتوافق مع تنسيق الصفوف والأعمدة ولكنها منظمة بطريقة تُعتبر منظمة وقد تتبع تنسيقًا ثابتًا أو مجموعة من القواعد. تختلف البنية بين المصادر، مثل التسلسل الهرمي المحدد جيدًا إلى شيء أكثر مرونة يسمح بالتكامل السهل للمعلومات الجديدة. البيانات الوصفية هي مؤشرات تساعد في تحديد كيفية تنظيم البيانات وتخزينها وستحمل أسماء مختلفة بناءً على نوع البيانات. بعض الأسماء الشائعة للبيانات الوصفية هي العلامات، العناصر، الكيانات والسمات. على سبيل المثال، رسالة بريد إلكتروني نموذجية ستحتوي على موضوع، نص، ومجموعة من المستلمين ويمكن تنظيمها بناءً على من أرسلها أو متى تم إرسالها. + +أمثلة على البيانات شبه المنظمة: HTML، ملفات CSV، JavaScript Object Notation (JSON). + +## مصادر البيانات + +مصدر البيانات هو الموقع الأولي الذي تم فيه إنشاء البيانات، أو المكان الذي "تعيش" فيه، وسيختلف بناءً على كيفية ووقت جمعها. البيانات التي يتم إنشاؤها بواسطة مستخدميها تُعرف بالبيانات الأولية، بينما البيانات الثانوية تأتي من مصدر جمع البيانات للاستخدام العام. على سبيل المثال، مجموعة من العلماء الذين يجمعون ملاحظات في غابة مطيرة سيتم اعتبارها بيانات أولية، وإذا قرروا مشاركتها مع علماء آخرين فستُعتبر بيانات ثانوية بالنسبة لأولئك الذين يستخدمونها. + +تُعتبر قواعد البيانات مصدرًا شائعًا وتعتمد على نظام إدارة قواعد البيانات لاستضافة وصيانة البيانات حيث يستخدم المستخدمون أوامر تُعرف بالاستعلامات لاستكشاف البيانات. يمكن أن تكون الملفات كمصادر بيانات عبارة عن ملفات صوتية، صور، وملفات فيديو بالإضافة إلى جداول بيانات مثل Excel. تُعتبر مصادر الإنترنت موقعًا شائعًا لاستضافة البيانات، حيث يمكن العثور على قواعد البيانات وكذلك الملفات. واجهات برمجة التطبيقات، المعروفة أيضًا بـ APIs، تسمح للمبرمجين بإنشاء طرق لمشاركة البيانات مع المستخدمين الخارجيين عبر الإنترنت، بينما عملية استخراج البيانات من صفحات الويب تُعرف بـ web scraping. تركز [الدروس في العمل مع البيانات](../../../../../../../../../2-Working-With-Data) على كيفية استخدام مصادر البيانات المختلفة. + +## الخاتمة + +في هذا الدرس تعلمنا: + +- ما هي البيانات +- كيف يتم وصف البيانات +- كيف يتم تصنيف البيانات وفئاتها +- أين يمكن العثور على البيانات + +## 🚀 تحدي + +Kaggle هو مصدر ممتاز لمجموعات البيانات المفتوحة. استخدم [أداة البحث عن مجموعات البيانات](https://www.kaggle.com/datasets) للعثور على بعض مجموعات البيانات المثيرة للاهتمام وصنف 3-5 مجموعات بيانات وفقًا لهذه المعايير: + +- هل البيانات كمية أم نوعية؟ +- هل البيانات منظمة، غير منظمة، أم شبه منظمة؟ + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/5) + +## المراجعة والدراسة الذاتية + +- تحتوي وحدة Microsoft Learn بعنوان [تصنيف بياناتك](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) على شرح مفصل للبيانات المنظمة، شبه المنظمة، وغير المنظمة. + +## الواجب + +[تصنيف مجموعات البيانات](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/03-defining-data/assignment.md b/translations/ar/1-Introduction/03-defining-data/assignment.md new file mode 100644 index 00000000..921f4792 --- /dev/null +++ b/translations/ar/1-Introduction/03-defining-data/assignment.md @@ -0,0 +1,79 @@ + +# تصنيف مجموعات البيانات + +## التعليمات + +اتبع التعليمات في هذا التمرين لتحديد وتصنيف البيانات وفقًا لكل نوع من الأنواع التالية: + +**أنواع الهيكل**: منظمة، شبه منظمة، أو غير منظمة + +**أنواع القيمة**: نوعية أو كمية + +**أنواع المصدر**: أولية أو ثانوية + +1. تم الاستحواذ على شركة وأصبحت الآن تابعة لشركة أم. تلقى علماء البيانات جدول بيانات يحتوي على أرقام هواتف العملاء من الشركة الأم. + +نوع الهيكل: + +نوع القيمة: + +نوع المصدر: + +--- + +2. ساعة ذكية تجمع بيانات معدل ضربات القلب من مرتديها، والبيانات الخام محفوظة بصيغة JSON. + +نوع الهيكل: + +نوع القيمة: + +نوع المصدر: + +--- + +3. استبيان في مكان العمل حول معنويات الموظفين محفوظ في ملف CSV. + +نوع الهيكل: + +نوع القيمة: + +نوع المصدر: + +--- + +4. علماء الفيزياء الفلكية يصلون إلى قاعدة بيانات للمجرات التي تم جمعها بواسطة مسبار فضائي. تحتوي البيانات على عدد الكواكب في كل مجرة. + +نوع الهيكل: + +نوع القيمة: + +نوع المصدر: + +--- + +5. تطبيق مالي شخصي يستخدم واجهات برمجة التطبيقات (APIs) للاتصال بحسابات المستخدم المالية لحساب صافي ثروته. يمكن للمستخدم رؤية جميع معاملاته بتنسيق صفوف وأعمدة يشبه جدول البيانات. + +نوع الهيكل: + +نوع القيمة: + +نوع المصدر: + +## جدول التقييم + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يحدد بشكل صحيح جميع الأنواع (الهيكل، القيمة، المصدر) | يحدد بشكل صحيح 3 من الأنواع (الهيكل، القيمة، المصدر) | يحدد بشكل صحيح نوعين أو أقل من الأنواع (الهيكل، القيمة، المصدر) | + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/04-stats-and-probability/README.md b/translations/ar/1-Introduction/04-stats-and-probability/README.md new file mode 100644 index 00000000..324ad710 --- /dev/null +++ b/translations/ar/1-Introduction/04-stats-and-probability/README.md @@ -0,0 +1,276 @@ + +# مقدمة مختصرة في الإحصاء والاحتمالات + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| الإحصاء والاحتمالات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +نظرية الإحصاء والاحتمالات هما مجالان مترابطان في الرياضيات ولهما أهمية كبيرة في علم البيانات. من الممكن العمل مع البيانات دون معرفة عميقة بالرياضيات، ولكن من الأفضل دائمًا معرفة بعض المفاهيم الأساسية على الأقل. هنا سنقدم مقدمة قصيرة لمساعدتك على البدء. + +[![فيديو تمهيدي](../../../../translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ar.png)](https://youtu.be/Z5Zy85g4Yjw) + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/6) + +## الاحتمالات والمتغيرات العشوائية + +**الاحتمال** هو رقم بين 0 و1 يعبر عن مدى احتمال حدوث **حدث** معين. يتم تعريفه على أنه عدد النتائج الإيجابية (التي تؤدي إلى الحدث)، مقسومًا على العدد الإجمالي للنتائج، بشرط أن تكون جميع النتائج متساوية في الاحتمال. على سبيل المثال، عند رمي النرد، فإن احتمال الحصول على رقم زوجي هو 3/6 = 0.5. + +عند الحديث عن الأحداث، نستخدم **المتغيرات العشوائية**. على سبيل المثال، المتغير العشوائي الذي يمثل الرقم الناتج عند رمي النرد يأخذ القيم من 1 إلى 6. مجموعة الأرقام من 1 إلى 6 تُسمى **فضاء العينة**. يمكننا الحديث عن احتمال أن يأخذ المتغير العشوائي قيمة معينة، على سبيل المثال P(X=3)=1/6. + +المتغير العشوائي في المثال السابق يُسمى **متغيرًا منفصلًا**، لأنه يحتوي على فضاء عينة قابل للعد، أي أن هناك قيمًا منفصلة يمكن تعدادها. هناك حالات يكون فيها فضاء العينة عبارة عن نطاق من الأعداد الحقيقية، أو مجموعة الأعداد الحقيقية بأكملها. تُسمى هذه المتغيرات **متصلة**. مثال جيد على ذلك هو وقت وصول الحافلة. + +## توزيع الاحتمالات + +في حالة المتغيرات العشوائية المنفصلة، من السهل وصف احتمال كل حدث باستخدام دالة P(X). لكل قيمة *s* من فضاء العينة *S*، ستعطي الدالة رقمًا بين 0 و1، بحيث يكون مجموع جميع قيم P(X=s) لجميع الأحداث يساوي 1. + +أشهر توزيع منفصل هو **التوزيع المنتظم**، حيث يكون هناك فضاء عينة يحتوي على N عنصرًا، مع احتمال متساوٍ 1/N لكل منها. + +من الصعب وصف توزيع الاحتمالات لمتغير متصل، حيث تكون القيم مأخوذة من نطاق معين [a,b]، أو مجموعة الأعداد الحقيقية ℝ. فكر في حالة وقت وصول الحافلة. في الواقع، بالنسبة لكل وقت وصول محدد *t*، فإن احتمال وصول الحافلة في ذلك الوقت بالضبط هو 0! + +> الآن تعرف أن الأحداث ذات الاحتمال 0 تحدث، وغالبًا ما تحدث! على الأقل في كل مرة تصل فيها الحافلة! + +يمكننا فقط الحديث عن احتمال وقوع المتغير في نطاق معين من القيم، مثل P(t1≤X2). في هذه الحالة، يتم وصف توزيع الاحتمالات بواسطة **دالة كثافة الاحتمال** p(x)، بحيث: + +![P(t_1\le X1, x2, ..., xn. يمكننا تعريف **المتوسط** (أو **المتوسط الحسابي**) للسلسلة بالطريقة التقليدية كالتالي: (x1+x2+...+xn)/n. مع زيادة حجم العينة (أي أخذ الحد عندما n→∞)، سنحصل على المتوسط (ويُسمى أيضًا **التوقع**) للتوزيع. نرمز للتوقع بـ **E**(x). + +> يمكن إثبات أنه لأي توزيع منفصل بقيم {x1, x2, ..., xN} واحتمالات مقابلة p1, p2, ..., pN، فإن التوقع يساوي E(X)=x1p1+x2p2+...+xNpN. + +لحساب مدى تباعد القيم، يمكننا حساب التباين σ2 = ∑(xi - μ)2/n، حيث μ هو متوسط السلسلة. القيمة σ تُسمى **الانحراف المعياري**، وσ2 تُسمى **التباين**. + +## النمط، الوسيط والرباعيات + +في بعض الأحيان، لا يمثل المتوسط القيمة "النموذجية" للبيانات بشكل كافٍ. على سبيل المثال، عندما تكون هناك بعض القيم المتطرفة التي تكون خارج النطاق تمامًا، فإنها قد تؤثر على المتوسط. مؤشر جيد آخر هو **الوسيط**، وهو القيمة التي تكون نصف النقاط أقل منها والنصف الآخر أعلى منها. + +لفهم توزيع البيانات، من المفيد الحديث عن **الرباعيات**: + +* الربعية الأولى، أو Q1، هي القيمة التي تقع 25% من البيانات تحتها. +* الربعية الثالثة، أو Q3، هي القيمة التي تقع 75% من البيانات تحتها. + +يمكننا تمثيل العلاقة بين الوسيط والرباعيات بيانيًا في مخطط يُسمى **الصندوق**: + + + +هنا نحسب أيضًا **النطاق بين الرباعيات** IQR=Q3-Q1، وما يُسمى **القيم المتطرفة** - وهي القيم التي تقع خارج الحدود [Q1-1.5*IQR,Q3+1.5*IQR]. + +بالنسبة للتوزيع المحدود الذي يحتوي على عدد صغير من القيم الممكنة، فإن القيمة "النموذجية" الجيدة هي الأكثر تكرارًا، والتي تُسمى **النمط**. غالبًا ما يُطبق ذلك على البيانات الفئوية، مثل الألوان. فكر في حالة وجود مجموعتين من الأشخاص - بعضهم يفضل اللون الأحمر بشدة، والآخرون يفضلون الأزرق. إذا قمنا بترميز الألوان بأرقام، فإن المتوسط للقيمة المفضلة سيكون في نطاق البرتقالي-الأخضر، وهو ما لا يعكس التفضيل الفعلي لأي من المجموعتين. ومع ذلك، سيكون النمط إما أحد اللونين، أو كلاهما إذا كان عدد الأشخاص الذين يفضلونهما متساويًا (في هذه الحالة نسمي العينة **متعددة الأنماط**). + +## البيانات الواقعية + +عند تحليل البيانات من الحياة الواقعية، غالبًا ما لا تكون متغيرات عشوائية بالمعنى الدقيق، بمعنى أننا لا نجري تجارب بنتائج غير معروفة. على سبيل المثال، فكر في فريق من لاعبي البيسبول، وبيانات أجسامهم مثل الطول، الوزن والعمر. هذه الأرقام ليست عشوائية تمامًا، ولكن يمكننا تطبيق نفس المفاهيم الرياضية. على سبيل المثال، يمكن اعتبار سلسلة أوزان الأشخاص سلسلة من القيم المأخوذة من متغير عشوائي معين. أدناه سلسلة أوزان لاعبي بيسبول حقيقيين من [دوري البيسبول الرئيسي](http://mlb.mlb.com/index.jsp)، مأخوذة من [هذا المصدر](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (لراحتك، تم عرض أول 20 قيمة فقط): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **ملاحظة**: لرؤية مثال على العمل مع هذه البيانات، اطلع على [دفتر الملاحظات المرافق](notebook.ipynb). هناك أيضًا عدد من التحديات خلال هذا الدرس، ويمكنك إكمالها بإضافة بعض الأكواد إلى ذلك الدفتر. إذا لم تكن متأكدًا من كيفية العمل مع البيانات، فلا تقلق - سنعود إلى العمل مع البيانات باستخدام Python لاحقًا. إذا كنت لا تعرف كيفية تشغيل الأكواد في Jupyter Notebook، اطلع على [هذا المقال](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +هنا مخطط الصندوق الذي يوضح المتوسط، الوسيط والرباعيات لبياناتنا: + +![مخطط الصندوق للأوزان](../../../../translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ar.png) + +نظرًا لأن بياناتنا تحتوي على معلومات حول **أدوار** اللاعبين المختلفة، يمكننا أيضًا إنشاء مخطط الصندوق حسب الدور - مما يسمح لنا بفهم كيفية اختلاف القيم عبر الأدوار. هذه المرة سننظر في الطول: + +![مخطط الصندوق حسب الدور](../../../../translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ar.png) + +يشير هذا المخطط إلى أن متوسط طول لاعبي القاعدة الأولى أعلى من متوسط طول لاعبي القاعدة الثانية. لاحقًا في هذا الدرس، سنتعلم كيفية اختبار هذه الفرضية بشكل أكثر رسمية، وكيفية إثبات أن بياناتنا ذات دلالة إحصائية. + +> عند العمل مع البيانات الواقعية، نفترض أن جميع النقاط هي عينات مأخوذة من توزيع احتمالي معين. هذا الافتراض يسمح لنا بتطبيق تقنيات التعلم الآلي وبناء نماذج تنبؤية فعالة. + +لرؤية توزيع بياناتنا، يمكننا رسم مخطط يُسمى **الهيستوجرام**. يحتوي المحور X على عدد من فترات الأوزان المختلفة (ما يُسمى **الصناديق**)، بينما يُظهر المحور العمودي عدد مرات وقوع العينة في كل فترة. + +![هيستوجرام للبيانات الواقعية](../../../../translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ar.png) + +من هذا الهيستوجرام، يمكنك أن ترى أن جميع القيم تتمركز حول متوسط وزن معين، وكلما ابتعدنا عن هذا الوزن، قل عدد الأوزان التي تقع في هذا النطاق. أي أن احتمال أن يكون وزن لاعب البيسبول مختلفًا جدًا عن الوزن المتوسط منخفض جدًا. يوضح التباين مدى احتمال اختلاف الأوزان عن المتوسط. + +> إذا أخذنا أوزان أشخاص آخرين، ليسوا من دوري البيسبول، فمن المحتمل أن يكون التوزيع مختلفًا. ومع ذلك، سيكون شكل التوزيع مشابهًا، لكن المتوسط والتباين سيتغيران. لذا، إذا قمنا بتدريب نموذجنا على لاعبي البيسبول، فمن المحتمل أن يعطي نتائج خاطئة عند تطبيقه على طلاب جامعة، لأن التوزيع الأساسي مختلف. + +## التوزيع الطبيعي + +التوزيع الذي رأيناه أعلاه للأوزان هو توزيع شائع جدًا، والعديد من القياسات من العالم الواقعي تتبع نفس النوع من التوزيع، ولكن بمتوسط وتباين مختلفين. يُسمى هذا التوزيع **التوزيع الطبيعي**، ويلعب دورًا مهمًا جدًا في الإحصاء. + +استخدام التوزيع الطبيعي هو الطريقة الصحيحة لتوليد أوزان عشوائية للاعبي البيسبول المحتملين. بمجرد أن نعرف متوسط الوزن `mean` والانحراف المعياري `std`، يمكننا توليد 1000 عينة وزن بالطريقة التالية: +```python +samples = np.random.normal(mean,std,1000) +``` + +إذا قمنا برسم الهيستوجرام للعينات المولدة، سنرى صورة مشابهة جدًا لما هو موضح أعلاه. وإذا قمنا بزيادة عدد العينات وعدد الصناديق، يمكننا توليد صورة للتوزيع الطبيعي تكون أقرب إلى المثالية: + +![التوزيع الطبيعي بمتوسط=0 وانحراف معياري=1](../../../../translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ar.png) + +*التوزيع الطبيعي بمتوسط=0 وانحراف معياري=1* + +## فترات الثقة + +عند الحديث عن أوزان لاعبي البيسبول، نفترض أن هناك **متغير عشوائي W** يمثل التوزيع الاحتمالي المثالي لأوزان جميع لاعبي البيسبول (ما يُسمى **المجتمع**). تسلسل الأوزان الخاص بنا يمثل عينة فرعية من جميع لاعبي البيسبول، والتي نسميها **العينة**. السؤال المثير للاهتمام هو: هل يمكننا معرفة معلمات توزيع W، أي المتوسط والتباين للمجتمع؟ + +الإجابة الأسهل ستكون حساب المتوسط والتباين لعينة البيانات الخاصة بنا. ومع ذلك، قد يحدث أن العينة العشوائية الخاصة بنا لا تمثل المجتمع بأكمله بدقة. لذلك، من المنطقي الحديث عن **فترة الثقة**. +> **فترة الثقة** هي تقدير المتوسط الحقيقي للمجتمع بناءً على العينة التي لدينا، وهو تقدير دقيق ضمن احتمال معين (أو **مستوى الثقة**). +نفترض أن لدينا عينة X1, ..., Xn من التوزيع الخاص بنا. في كل مرة نسحب عينة من التوزيع، نحصل على قيمة متوسط مختلفة μ. لذلك يمكن اعتبار μ متغيرًا عشوائيًا. **فترة الثقة** بمستوى ثقة p هي زوج من القيم (Lp,Rp) بحيث **P**(Lp≤μ≤Rp) = p، أي أن احتمال وقوع قيمة المتوسط المقاسة داخل الفترة يساوي p. + +يتجاوز هذا المقدمة القصيرة مناقشة كيفية حساب تلك الفترات بالتفصيل. يمكن العثور على المزيد من التفاصيل [على ويكيبيديا](https://en.wikipedia.org/wiki/Confidence_interval). باختصار، نحدد توزيع متوسط العينة المحسوب بالنسبة إلى المتوسط الحقيقي للسكان، والذي يُطلق عليه **توزيع الطالب**. + +> **معلومة مثيرة للاهتمام**: تم تسمية توزيع الطالب نسبةً إلى عالم الرياضيات ويليام سيلي جوسيت، الذي نشر ورقته تحت اسم مستعار "Student". كان يعمل في مصنع جينيس للبيرة، ووفقًا لإحدى الروايات، لم يرغب صاحب العمل في أن يعرف الجمهور العام أنهم يستخدمون الاختبارات الإحصائية لتحديد جودة المواد الخام. + +إذا أردنا تقدير المتوسط μ للسكان بمستوى ثقة p، نحتاج إلى أخذ *(1-p)/2-th percentile* من توزيع الطالب A، والذي يمكن أخذه إما من الجداول أو حسابه باستخدام بعض الوظائف المدمجة في برامج الإحصاء (مثل Python، R، إلخ). ثم تُعطى الفترة لـ μ بواسطة X±A*D/√n، حيث X هو المتوسط المحصل عليه للعينة، وD هو الانحراف المعياري. + +> **ملاحظة**: نتجنب أيضًا مناقشة مفهوم مهم وهو [درجات الحرية](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics))، والذي له أهمية فيما يتعلق بتوزيع الطالب. يمكنك الرجوع إلى كتب أكثر شمولية في الإحصاء لفهم هذا المفهوم بشكل أعمق. + +مثال على حساب فترة الثقة للأوزان والأطوال موجود في [دفاتر الملاحظات المرفقة](notebook.ipynb). + +| p | متوسط الوزن | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +لاحظ أنه كلما زادت احتمالية الثقة، زادت عرض فترة الثقة. + +## اختبار الفرضيات + +في مجموعة بيانات لاعبي البيسبول، هناك أدوار مختلفة للاعبين يمكن تلخيصها كما يلي (انظر إلى [دفتر الملاحظات المرفق](notebook.ipynb) لمعرفة كيفية حساب هذا الجدول): + +| الدور | الطول | الوزن | العدد | +|------|--------|--------|-------| +| الماسك | 72.723684 | 204.328947 | 76 | +| الضارب المعين | 74.222222 | 220.888889 | 18 | +| القاعدة الأولى | 74.000000 | 213.109091 | 55 | +| اللاعب الخارجي | 73.010309 | 199.113402 | 194 | +| الرامي الاحتياطي | 74.374603 | 203.517460 | 315 | +| القاعدة الثانية | 71.362069 | 184.344828 | 58 | +| اللاعب القصير | 71.903846 | 182.923077 | 52 | +| الرامي الأساسي | 74.719457 | 205.163636 | 221 | +| القاعدة الثالثة | 73.044444 | 200.955556 | 45 | + +يمكننا ملاحظة أن متوسط أطوال لاعبي القاعدة الأولى أعلى من لاعبي القاعدة الثانية. لذلك قد نميل إلى استنتاج أن **لاعبي القاعدة الأولى أطول من لاعبي القاعدة الثانية**. + +> يُطلق على هذا البيان **فرضية**، لأننا لا نعرف ما إذا كانت الحقيقة صحيحة بالفعل أم لا. + +ومع ذلك، ليس من الواضح دائمًا ما إذا كان يمكننا التوصل إلى هذا الاستنتاج. من المناقشة أعلاه نعلم أن لكل متوسط فترة ثقة مرتبطة، وبالتالي قد يكون هذا الاختلاف مجرد خطأ إحصائي. نحتاج إلى طريقة أكثر رسمية لاختبار فرضيتنا. + +لنحسب فترات الثقة بشكل منفصل لأطوال لاعبي القاعدة الأولى والثانية: + +| الثقة | القاعدة الأولى | القاعدة الثانية | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +يمكننا أن نرى أنه تحت أي مستوى ثقة لا تتداخل الفترات. وهذا يثبت فرضيتنا أن لاعبي القاعدة الأولى أطول من لاعبي القاعدة الثانية. + +بشكل أكثر رسمية، المشكلة التي نحلها هي معرفة ما إذا كانت **توزيعات احتمالية اثنين هي نفسها**، أو على الأقل لها نفس المعلمات. اعتمادًا على التوزيع، نحتاج إلى استخدام اختبارات مختلفة لذلك. إذا كنا نعلم أن توزيعاتنا طبيعية، يمكننا تطبيق **[اختبار الطالب t](https://en.wikipedia.org/wiki/Student%27s_t-test)**. + +في اختبار الطالب t، نحسب ما يُسمى **t-value**، الذي يشير إلى الفرق بين المتوسطات مع مراعاة التباين. يتم إثبات أن t-value يتبع **توزيع الطالب**، مما يسمح لنا بالحصول على قيمة العتبة لمستوى الثقة **p** (يمكن حسابها أو العثور عليها في الجداول العددية). ثم نقارن t-value بهذه العتبة للموافقة أو رفض الفرضية. + +في Python، يمكننا استخدام حزمة **SciPy**، التي تتضمن وظيفة `ttest_ind` (بالإضافة إلى العديد من الوظائف الإحصائية المفيدة الأخرى!). تقوم هذه الوظيفة بحساب t-value لنا، وأيضًا تقوم بالبحث العكسي لقيمة الثقة p، بحيث يمكننا فقط النظر إلى الثقة لاستخلاص الاستنتاج. + +على سبيل المثال، مقارنة أطوال لاعبي القاعدة الأولى والثانية تعطينا النتائج التالية: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +في حالتنا، قيمة p منخفضة جدًا، مما يعني أن هناك دليلًا قويًا يدعم أن لاعبي القاعدة الأولى أطول. + +هناك أيضًا أنواع أخرى من الفرضيات التي قد نرغب في اختبارها، على سبيل المثال: +* إثبات أن عينة معينة تتبع توزيعًا معينًا. في حالتنا افترضنا أن الأطوال موزعة بشكل طبيعي، ولكن ذلك يحتاج إلى تحقق إحصائي رسمي. +* إثبات أن قيمة متوسط العينة تتوافق مع قيمة محددة مسبقًا. +* مقارنة متوسطات عدد من العينات (مثل الفرق في مستويات السعادة بين الفئات العمرية المختلفة). + +## قانون الأعداد الكبيرة ونظرية الحد المركزي + +أحد الأسباب التي تجعل التوزيع الطبيعي مهمًا هو ما يُسمى **نظرية الحد المركزي**. نفترض أن لدينا عينة كبيرة من قيم مستقلة N X1, ..., XN، مأخوذة من أي توزيع بمتوسط μ وتباين σ2. ثم، عندما تكون N كبيرة بما فيه الكفاية (بعبارة أخرى، عندما N→∞)، فإن المتوسط ΣiXi سيكون موزعًا بشكل طبيعي، بمتوسط μ وتباين σ2/N. + +> طريقة أخرى لتفسير نظرية الحد المركزي هي القول إنه بغض النظر عن التوزيع، عندما تحسب متوسط مجموع أي قيم متغير عشوائي، ينتهي بك الأمر بتوزيع طبيعي. + +من نظرية الحد المركزي يتبع أيضًا أنه، عندما N→∞، يصبح احتمال أن يكون متوسط العينة مساويًا لـ μ يساوي 1. وهذا يُعرف بـ **قانون الأعداد الكبيرة**. + +## التغاير والارتباط + +أحد الأشياء التي يقوم بها علم البيانات هو إيجاد العلاقات بين البيانات. نقول إن سلسلتين **تتوافقان** عندما تظهران سلوكًا مشابهًا في نفس الوقت، أي ترتفعان/تنخفضان معًا، أو ترتفع إحداهما عندما تنخفض الأخرى والعكس صحيح. بعبارة أخرى، يبدو أن هناك علاقة بين السلسلتين. + +> الارتباط لا يشير بالضرورة إلى علاقة سببية بين سلسلتين؛ أحيانًا يمكن أن تعتمد كلا المتغيرين على سبب خارجي، أو يمكن أن يكون مجرد صدفة أن السلسلتين تتوافقان. ومع ذلك، فإن الارتباط الرياضي القوي هو مؤشر جيد على أن المتغيرين مرتبطان بطريقة ما. + +رياضيًا، المفهوم الرئيسي الذي يظهر العلاقة بين متغيرين عشوائيين هو **التغاير**، الذي يُحسب كالتالي: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. نحسب الانحراف لكلا المتغيرين عن قيم المتوسط الخاصة بهما، ثم نضرب تلك الانحرافات. إذا انحرف كلا المتغيرين معًا، سيكون الناتج دائمًا قيمة إيجابية، مما يضيف إلى تغاير إيجابي. إذا انحرف كلا المتغيرين بشكل غير متزامن (أي ينخفض أحدهما عن المتوسط عندما يرتفع الآخر فوق المتوسط)، سنحصل دائمًا على أرقام سلبية، مما يضيف إلى تغاير سلبي. إذا لم تكن الانحرافات تعتمد على بعضها البعض، ستضيف إلى ما يقرب من الصفر. + +القيمة المطلقة للتغاير لا تخبرنا كثيرًا عن مدى قوة الارتباط، لأنها تعتمد على حجم القيم الفعلية. لتطبيعها، يمكننا تقسيم التغاير على الانحراف المعياري لكلا المتغيرين للحصول على **الارتباط**. الشيء الجيد هو أن الارتباط دائمًا في النطاق [-1,1]، حيث يشير 1 إلى ارتباط إيجابي قوي بين القيم، و-1 إلى ارتباط سلبي قوي، و0 إلى عدم وجود ارتباط على الإطلاق (المتغيرات مستقلة). + +**مثال**: يمكننا حساب الارتباط بين الأوزان والأطوال للاعبي البيسبول من مجموعة البيانات المذكورة أعلاه: +```python +print(np.corrcoef(weights,heights)) +``` +كنتيجة، نحصل على **مصفوفة الارتباط** مثل هذه: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> يمكن حساب مصفوفة الارتباط C لأي عدد من السلاسل المدخلة S1, ..., Sn. قيمة Cij هي الارتباط بين Si وSj، والعناصر القطرية دائمًا 1 (وهو أيضًا الارتباط الذاتي لـ Si). + +في حالتنا، تشير القيمة 0.53 إلى وجود بعض الارتباط بين وزن وطول الشخص. يمكننا أيضًا إنشاء مخطط انتشار لقيمة مقابل الأخرى لرؤية العلاقة بصريًا: + +![العلاقة بين الوزن والطول](../../../../translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ar.png) + +> يمكن العثور على المزيد من أمثلة الارتباط والتغاير في [دفتر الملاحظات المرفق](notebook.ipynb). + +## الخاتمة + +في هذا القسم، تعلمنا: + +* الخصائص الإحصائية الأساسية للبيانات، مثل المتوسط، التباين، النمط والرباعيات +* توزيعات مختلفة للمتغيرات العشوائية، بما في ذلك التوزيع الطبيعي +* كيفية إيجاد الارتباط بين الخصائص المختلفة +* كيفية استخدام الأدوات الرياضية والإحصائية لإثبات بعض الفرضيات +* كيفية حساب فترات الثقة للمتغير العشوائي بناءً على عينة البيانات + +بينما هذه ليست قائمة شاملة للمواضيع الموجودة ضمن الاحتمالات والإحصاء، يجب أن تكون كافية لتمنحك بداية جيدة في هذه الدورة. + +## 🚀 التحدي + +استخدم الكود الموجود في دفتر الملاحظات لاختبار فرضيات أخرى مثل: +1. لاعبو القاعدة الأولى أكبر سنًا من لاعبي القاعدة الثانية +2. لاعبو القاعدة الأولى أطول من لاعبي القاعدة الثالثة +3. اللاعبون القصيرون أطول من لاعبي القاعدة الثانية + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/7) + +## المراجعة والدراسة الذاتية + +الاحتمالات والإحصاء موضوع واسع يستحق دورة خاصة به. إذا كنت مهتمًا بالتعمق في النظرية، قد ترغب في متابعة قراءة بعض الكتب التالية: + +1. [كارلوس فرنانديز-جراندا](https://cims.nyu.edu/~cfgranda/) من جامعة نيويورك لديه ملاحظات محاضرة رائعة [الاحتمالات والإحصاء لعلم البيانات](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (متاحة عبر الإنترنت) +1. [بيتر وأندرو بروس. الإحصاء العملي لعلماء البيانات.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[كود العينة في R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. +1. [جيمس دي ميلر. الإحصاء لعلم البيانات](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[كود العينة في R](https://github.com/PacktPublishing/Statistics-for-Data-Science)] + +## الواجب + +[دراسة صغيرة عن مرض السكري](assignment.md) + +## الشكر + +تم تأليف هذا الدرس بحب ♥️ بواسطة [ديمتري سوشنيكوف](http://soshnikov.com) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/04-stats-and-probability/assignment.md b/translations/ar/1-Introduction/04-stats-and-probability/assignment.md new file mode 100644 index 00000000..929659c0 --- /dev/null +++ b/translations/ar/1-Introduction/04-stats-and-probability/assignment.md @@ -0,0 +1,40 @@ + +# دراسة صغيرة عن مرض السكري + +في هذه المهمة، سنعمل مع مجموعة بيانات صغيرة لمرضى السكري مأخوذة من [هنا](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html). + +| | العمر | الجنس | مؤشر كتلة الجسم | ضغط الدم | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|-------|-------|------------------|----------|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2| 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0| 4. | 85 | 141 | +| ... | ... | ... | ... | ... | ... | ... | ... | ...| ... | ...| ... | + +## التعليمات + +* افتح [دفتر المهمة](assignment.ipynb) في بيئة دفتر jupyter +* أكمل جميع المهام المدرجة في الدفتر، وهي: + * [ ] حساب القيم المتوسطة والتباين لجميع القيم + * [ ] رسم مخططات الصندوق لمؤشر كتلة الجسم، ضغط الدم، و Y بناءً على الجنس + * [ ] ما هي توزيع المتغيرات العمر، الجنس، مؤشر كتلة الجسم، و Y؟ + * [ ] اختبار العلاقة بين المتغيرات المختلفة وتطور المرض (Y) + * [ ] اختبار الفرضية بأن درجة تطور مرض السكري تختلف بين الرجال والنساء + +## معايير التقييم + +متميز | مقبول | يحتاج إلى تحسين +--- | --- | -- | +جميع المهام المطلوبة مكتملة، موضحة بالرسم ومفسرة | معظم المهام مكتملة، لكن التفسيرات أو الاستنتاجات من الرسوم البيانية والقيم المحصلة مفقودة | فقط المهام الأساسية مثل حساب المتوسط/التباين والرسوم البيانية الأساسية مكتملة، دون استخلاص أي استنتاجات من البيانات + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/1-Introduction/README.md b/translations/ar/1-Introduction/README.md new file mode 100644 index 00000000..f1e71301 --- /dev/null +++ b/translations/ar/1-Introduction/README.md @@ -0,0 +1,31 @@ + +# مقدمة في علم البيانات + +![البيانات في العمل](../../../translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ar.jpg) +> الصورة بواسطة ستيفن داوسون على Unsplash + +في هذه الدروس، ستتعرف على كيفية تعريف علم البيانات وستتعلم عن الاعتبارات الأخلاقية التي يجب أن يأخذها عالم البيانات بعين الاعتبار. كما ستتعرف على تعريف البيانات وستتعلم قليلاً عن الإحصاء والاحتمالات، وهما المجالان الأكاديميان الأساسيان لعلم البيانات. + +### المواضيع + +1. [تعريف علم البيانات](01-defining-data-science/README.md) +2. [أخلاقيات علم البيانات](02-ethics/README.md) +3. [تعريف البيانات](03-defining-data/README.md) +4. [مقدمة في الإحصاء والاحتمالات](04-stats-and-probability/README.md) + +### الشكر والتقدير + +تم كتابة هذه الدروس بكل ❤️ من قبل [نيتيا ناراسيمهان](https://twitter.com/nitya) و[ديمتري سوشنيكوف](https://twitter.com/shwars). + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/05-relational-databases/README.md b/translations/ar/2-Working-With-Data/05-relational-databases/README.md new file mode 100644 index 00000000..314fe44b --- /dev/null +++ b/translations/ar/2-Working-With-Data/05-relational-databases/README.md @@ -0,0 +1,195 @@ + +# العمل مع البيانات: قواعد البيانات العلائقية + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/05-RelationalData.png)| +|:---:| +| العمل مع البيانات: قواعد البيانات العلائقية - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +من المحتمل أنك استخدمت جدول بيانات في الماضي لتخزين المعلومات. كان لديك مجموعة من الصفوف والأعمدة، حيث تحتوي الصفوف على المعلومات (أو البيانات)، وتصف الأعمدة هذه المعلومات (تُعرف أحيانًا بالبيانات الوصفية). تعتمد قاعدة البيانات العلائقية على هذا المبدأ الأساسي للأعمدة والصفوف في الجداول، مما يتيح لك توزيع المعلومات عبر جداول متعددة. يتيح لك ذلك العمل مع بيانات أكثر تعقيدًا، وتجنب التكرار، والحصول على مرونة في طريقة استكشاف البيانات. دعونا نستكشف مفاهيم قاعدة البيانات العلائقية. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/8) + +## كل شيء يبدأ بالجداول + +تحتوي قاعدة البيانات العلائقية في جوهرها على جداول. تمامًا كما هو الحال مع جدول البيانات، فإن الجدول هو مجموعة من الأعمدة والصفوف. يحتوي الصف على البيانات أو المعلومات التي نرغب في العمل معها، مثل اسم المدينة أو كمية الأمطار. تصف الأعمدة البيانات التي تخزنها. + +لنبدأ استكشافنا بإنشاء جدول لتخزين معلومات حول المدن. قد نبدأ باسم المدينة والدولة. يمكنك تخزين ذلك في جدول كما يلي: + +| المدينة | الدولة | +| -------- | ------------- | +| طوكيو | اليابان | +| أتلانتا | الولايات المتحدة | +| أوكلاند | نيوزيلندا | + +لاحظ أن أسماء الأعمدة **المدينة**، **الدولة** و**عدد السكان** تصف البيانات المخزنة، وكل صف يحتوي على معلومات عن مدينة واحدة. + +## عيوب نهج الجدول الواحد + +من المحتمل أن يبدو الجدول أعلاه مألوفًا بالنسبة لك. دعونا نبدأ بإضافة بعض البيانات الإضافية إلى قاعدة البيانات الناشئة - كمية الأمطار السنوية (بالمليمترات). سنركز على السنوات 2018، 2019 و2020. إذا أردنا إضافتها لطوكيو، فقد يبدو الأمر كالتالي: + +| المدينة | الدولة | السنة | الكمية | +| -------- | ------- | ---- | ------ | +| طوكيو | اليابان | 2020 | 1690 | +| طوكيو | اليابان | 2019 | 1874 | +| طوكيو | اليابان | 2018 | 1445 | + +ماذا تلاحظ في جدولنا؟ قد تلاحظ أننا نكرر اسم المدينة والدولة مرارًا وتكرارًا. يمكن أن يشغل ذلك مساحة تخزين كبيرة، وهو غير ضروري إلى حد كبير. بعد كل شيء، طوكيو لها اسم واحد فقط نهتم به. + +حسنًا، دعونا نجرب شيئًا آخر. لنضيف أعمدة جديدة لكل سنة: + +| المدينة | الدولة | 2018 | 2019 | 2020 | +| -------- | ------------- | ---- | ---- | ---- | +| طوكيو | اليابان | 1445 | 1874 | 1690 | +| أتلانتا | الولايات المتحدة | 1779 | 1111 | 1683 | +| أوكلاند | نيوزيلندا | 1386 | 942 | 1176 | + +بينما يتجنب هذا النهج تكرار الصفوف، فإنه يضيف بعض التحديات الأخرى. سنحتاج إلى تعديل هيكل الجدول في كل مرة تكون هناك سنة جديدة. بالإضافة إلى ذلك، مع نمو بياناتنا، فإن وجود السنوات كأعمدة سيجعل من الصعب استرجاع القيم وحسابها. + +لهذا السبب نحتاج إلى جداول متعددة وعلاقات. من خلال تقسيم بياناتنا، يمكننا تجنب التكرار والحصول على مرونة أكبر في كيفية العمل مع البيانات. + +## مفاهيم العلاقات + +دعونا نعود إلى بياناتنا ونحدد كيف نريد تقسيمها. نعلم أننا نريد تخزين الاسم والدولة للمدن، لذا من المحتمل أن يعمل هذا بشكل أفضل في جدول واحد. + +| المدينة | الدولة | +| -------- | ------------- | +| طوكيو | اليابان | +| أتلانتا | الولايات المتحدة | +| أوكلاند | نيوزيلندا | + +لكن قبل أن ننشئ الجدول التالي، نحتاج إلى معرفة كيفية الإشارة إلى كل مدينة. نحتاج إلى نوع من المعرف، ID أو (في مصطلحات قواعد البيانات التقنية) مفتاح أساسي. المفتاح الأساسي هو قيمة تُستخدم لتحديد صف معين في الجدول. بينما يمكن أن يكون ذلك بناءً على قيمة نفسها (يمكننا استخدام اسم المدينة، على سبيل المثال)، يجب أن يكون دائمًا تقريبًا رقمًا أو معرفًا آخر. لا نريد أن يتغير المعرف أبدًا لأنه سيؤدي إلى كسر العلاقة. ستجد في معظم الحالات أن المفتاح الأساسي أو المعرف سيكون رقمًا يتم إنشاؤه تلقائيًا. + +> ✅ المفتاح الأساسي يُختصر غالبًا بـ PK + +### المدن + +| city_id | المدينة | الدولة | +| ------- | -------- | ------------- | +| 1 | طوكيو | اليابان | +| 2 | أتلانتا | الولايات المتحدة | +| 3 | أوكلاند | نيوزيلندا | + +> ✅ ستلاحظ أننا نستخدم المصطلحين "معرف" و"مفتاح أساسي" بالتبادل خلال هذا الدرس. تنطبق المفاهيم هنا على DataFrames، والتي ستستكشفها لاحقًا. لا تستخدم DataFrames مصطلح "مفتاح أساسي"، ولكن ستلاحظ أنها تتصرف بنفس الطريقة تقريبًا. + +مع إنشاء جدول المدن، دعونا نخزن بيانات الأمطار. بدلاً من تكرار المعلومات الكاملة عن المدينة، يمكننا استخدام المعرف. يجب أيضًا التأكد من أن الجدول الذي تم إنشاؤه حديثًا يحتوي على عمود *معرف* أيضًا، حيث يجب أن تحتوي جميع الجداول على معرف أو مفتاح أساسي. + +### الأمطار + +| rainfall_id | city_id | السنة | الكمية | +| ----------- | ------- | ---- | ------ | +| 1 | 1 | 2018 | 1445 | +| 2 | 1 | 2019 | 1874 | +| 3 | 1 | 2020 | 1690 | +| 4 | 2 | 2018 | 1779 | +| 5 | 2 | 2019 | 1111 | +| 6 | 2 | 2020 | 1683 | +| 7 | 3 | 2018 | 1386 | +| 8 | 3 | 2019 | 942 | +| 9 | 3 | 2020 | 1176 | + +لاحظ العمود **city_id** داخل جدول **الأمطار** الذي تم إنشاؤه حديثًا. يحتوي هذا العمود على قيم تشير إلى المعرفات في جدول **المدن**. في مصطلحات البيانات العلائقية التقنية، يُطلق على هذا اسم **مفتاح خارجي**؛ إنه مفتاح أساسي من جدول آخر. يمكنك التفكير فيه كمرجع أو مؤشر. **city_id** 1 يشير إلى طوكيو. + +> [!NOTE] المفتاح الخارجي يُختصر غالبًا بـ FK + +## استرجاع البيانات + +مع فصل بياناتنا إلى جدولين، قد تتساءل كيف نسترجعها. إذا كنا نستخدم قاعدة بيانات علائقية مثل MySQL، SQL Server أو Oracle، يمكننا استخدام لغة تُسمى لغة الاستعلام الهيكلية أو SQL. SQL (تُنطق أحيانًا سيكويل) هي لغة قياسية تُستخدم لاسترجاع وتعديل البيانات في قاعدة بيانات علائقية. + +لاسترجاع البيانات، تستخدم الأمر `SELECT`. في جوهره، تقوم **بتحديد** الأعمدة التي تريد رؤيتها **من** الجدول الذي تحتوي عليه. إذا كنت تريد عرض أسماء المدن فقط، يمكنك استخدام التالي: + +```sql +SELECT city +FROM cities; + +-- Output: +-- Tokyo +-- Atlanta +-- Auckland +``` + +`SELECT` هو المكان الذي تسرد فيه الأعمدة، و`FROM` هو المكان الذي تسرد فيه الجداول. + +> [NOTE] بناء جملة SQL غير حساس لحالة الأحرف، مما يعني أن `select` و`SELECT` لهما نفس المعنى. ومع ذلك، اعتمادًا على نوع قاعدة البيانات التي تستخدمها، قد تكون الأعمدة والجداول حساسة لحالة الأحرف. نتيجة لذلك، من الأفضل دائمًا التعامل مع كل شيء في البرمجة كما لو كان حساسًا لحالة الأحرف. عند كتابة استعلامات SQL، من الشائع وضع الكلمات الرئيسية بأحرف كبيرة. + +سيعرض الاستعلام أعلاه جميع المدن. دعونا نتخيل أننا نريد عرض المدن في نيوزيلندا فقط. نحتاج إلى نوع من الفلتر. الكلمة الرئيسية في SQL لهذا هي `WHERE`، أو "حيث يكون شيء ما صحيحًا". + +```sql +SELECT city +FROM cities +WHERE country = 'New Zealand'; + +-- Output: +-- Auckland +``` + +## دمج البيانات + +حتى الآن قمنا باسترجاع البيانات من جدول واحد. الآن نريد جمع البيانات من كل من **المدن** و**الأمطار**. يتم ذلك عن طريق *دمج* الجداول معًا. ستقوم فعليًا بإنشاء وصلة بين الجدولين، ومطابقة القيم من عمود من كل جدول. + +في مثالنا، سنطابق العمود **city_id** في **الأمطار** مع العمود **city_id** في **المدن**. سيطابق هذا قيمة الأمطار مع المدينة الخاصة بها. النوع الذي سنقوم به هو ما يُسمى *الدمج الداخلي*، مما يعني أنه إذا لم تتطابق أي صفوف مع أي شيء من الجدول الآخر، فلن يتم عرضها. في حالتنا، كل مدينة لديها بيانات أمطار، لذا سيتم عرض كل شيء. + +دعونا نسترجع بيانات الأمطار لعام 2019 لجميع مدننا. + +سنقوم بذلك على مراحل. الخطوة الأولى هي دمج البيانات معًا عن طريق تحديد الأعمدة للوصلة - **city_id** كما هو موضح سابقًا. + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +``` + +لقد أبرزنا العمودين اللذين نريدهما، وحقيقة أننا نريد دمج الجداول معًا باستخدام **city_id**. الآن يمكننا إضافة عبارة `WHERE` لتصفية السنة 2019 فقط. + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +WHERE rainfall.year = 2019 + +-- Output + +-- city | amount +-- -------- | ------ +-- Tokyo | 1874 +-- Atlanta | 1111 +-- Auckland | 942 +``` + +## الملخص + +تركز قواعد البيانات العلائقية على تقسيم المعلومات بين جداول متعددة يتم جمعها معًا للعرض والتحليل. يوفر هذا درجة عالية من المرونة لإجراء الحسابات ومعالجة البيانات. لقد رأيت المفاهيم الأساسية لقاعدة البيانات العلائقية، وكيفية إجراء دمج بين جدولين. + +## 🚀 التحدي + +هناك العديد من قواعد البيانات العلائقية المتاحة على الإنترنت. يمكنك استكشاف البيانات باستخدام المهارات التي تعلمتها أعلاه. + +## اختبار ما بعد المحاضرة + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/9) + +## المراجعة والدراسة الذاتية + +هناك العديد من الموارد المتاحة على [Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum) لمواصلة استكشافك لمفاهيم SQL وقواعد البيانات العلائقية + +- [وصف مفاهيم البيانات العلائقية](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) +- [ابدأ الاستعلام باستخدام Transact-SQL](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum) (Transact-SQL هو إصدار من SQL) +- [محتوى SQL على Microsoft Learn](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) + +## الواجب + +[عنوان الواجب](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/05-relational-databases/assignment.md b/translations/ar/2-Working-With-Data/05-relational-databases/assignment.md new file mode 100644 index 00000000..f12df5b1 --- /dev/null +++ b/translations/ar/2-Working-With-Data/05-relational-databases/assignment.md @@ -0,0 +1,73 @@ + +# عرض بيانات المطارات + +تم تزويدك بـ [قاعدة بيانات](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) مبنية على [SQLite](https://sqlite.org/index.html) تحتوي على معلومات حول المطارات. يتم عرض المخطط أدناه. ستستخدم [إضافة SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) في [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) لعرض معلومات حول مطارات مدن مختلفة. + +## التعليمات + +لبدء المهمة، ستحتاج إلى تنفيذ بعض الخطوات. ستحتاج إلى تثبيت بعض الأدوات وتنزيل قاعدة البيانات النموذجية. + +### إعداد النظام الخاص بك + +يمكنك استخدام Visual Studio Code وإضافة SQLite للتفاعل مع قاعدة البيانات. + +1. انتقل إلى [code.visualstudio.com](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) واتبع التعليمات لتثبيت Visual Studio Code +1. قم بتثبيت [إضافة SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) كما هو موضح في صفحة Marketplace + +### تنزيل وفتح قاعدة البيانات + +بعد ذلك، ستقوم بتنزيل وفتح قاعدة البيانات. + +1. قم بتنزيل [ملف قاعدة البيانات من GitHub](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) واحفظه في مجلد +1. افتح Visual Studio Code +1. افتح قاعدة البيانات في إضافة SQLite عن طريق اختيار **Ctl-Shift-P** (أو **Cmd-Shift-P** على جهاز Mac) وكتابة `SQLite: Open database` +1. اختر **Choose database from file** وافتح ملف **airports.db** الذي قمت بتنزيله مسبقًا +1. بعد فتح قاعدة البيانات (لن ترى تحديثًا على الشاشة)، قم بإنشاء نافذة استعلام جديدة عن طريق اختيار **Ctl-Shift-P** (أو **Cmd-Shift-P** على جهاز Mac) وكتابة `SQLite: New query` + +بمجرد الفتح، يمكن استخدام نافذة الاستعلام الجديدة لتشغيل عبارات SQL على قاعدة البيانات. يمكنك استخدام الأمر **Ctl-Shift-Q** (أو **Cmd-Shift-Q** على جهاز Mac) لتشغيل الاستعلامات على قاعدة البيانات. + +> [!NOTE] لمزيد من المعلومات حول إضافة SQLite، يمكنك الرجوع إلى [التوثيق](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) + +## مخطط قاعدة البيانات + +مخطط قاعدة البيانات هو تصميمها وهيكلها الجدولي. تحتوي قاعدة بيانات **airports** على جدولين، `cities` الذي يحتوي على قائمة بالمدن في المملكة المتحدة وأيرلندا، و`airports` الذي يحتوي على قائمة بجميع المطارات. نظرًا لأن بعض المدن قد تحتوي على مطارات متعددة، تم إنشاء جدولين لتخزين المعلومات. في هذا التمرين، ستستخدم الربط (joins) لعرض معلومات لمدن مختلفة. + +| المدن | +| ---------------- | +| id (PK, integer) | +| city (text) | +| country (text) | + +| المطارات | +| -------------------------------- | +| id (PK, integer) | +| name (text) | +| code (text) | +| city_id (FK to id in **Cities**) | + +## المهمة + +قم بإنشاء استعلامات لإرجاع المعلومات التالية: + +1. جميع أسماء المدن في جدول `Cities` +1. جميع المدن في أيرلندا في جدول `Cities` +1. جميع أسماء المطارات مع مدينتها وبلدها +1. جميع المطارات في لندن، المملكة المتحدة + +## معايير التقييم + +| متميز | مقبول | يحتاج إلى تحسين | +| ----------- | ----------- | --------------- | + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/06-non-relational/README.md b/translations/ar/2-Working-With-Data/06-non-relational/README.md new file mode 100644 index 00000000..5d98f063 --- /dev/null +++ b/translations/ar/2-Working-With-Data/06-non-relational/README.md @@ -0,0 +1,158 @@ + +# العمل مع البيانات: البيانات غير العلائقية + +|![ رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/06-NoSQL.png)| +|:---:| +|العمل مع بيانات NoSQL - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/10) + +البيانات ليست مقتصرة على قواعد البيانات العلائقية. تركز هذه الدرس على البيانات غير العلائقية وستغطي أساسيات الجداول الإلكترونية وNoSQL. + +## الجداول الإلكترونية + +الجداول الإلكترونية وسيلة شائعة لتخزين واستكشاف البيانات لأنها تتطلب إعدادًا أقل للبدء. في هذا الدرس، ستتعلم المكونات الأساسية للجدول الإلكتروني، بالإضافة إلى الصيغ والدوال. سيتم توضيح الأمثلة باستخدام Microsoft Excel، ولكن معظم الأجزاء والمواضيع سيكون لها أسماء وخطوات مشابهة بالمقارنة مع برامج الجداول الإلكترونية الأخرى. + +![دفتر عمل فارغ في Microsoft Excel يحتوي على ورقتي عمل](../../../../translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ar.png) + +الجدول الإلكتروني هو ملف وسيكون متاحًا في نظام ملفات الكمبيوتر أو الجهاز أو نظام ملفات قائم على السحابة. قد يكون البرنامج نفسه قائمًا على المتصفح أو تطبيقًا يجب تثبيته على الكمبيوتر أو تنزيله كتطبيق. في Excel، تُعرف هذه الملفات أيضًا باسم **دفاتر العمل**، وسيتم استخدام هذا المصطلح لبقية هذا الدرس. + +يحتوي دفتر العمل على ورقة عمل واحدة أو أكثر، حيث يتم تصنيف كل ورقة عمل بعلامات تبويب. داخل ورقة العمل توجد مستطيلات تُسمى **الخلايا**، والتي تحتوي على البيانات الفعلية. الخلية هي تقاطع صف وعمود، حيث يتم تصنيف الأعمدة بأحرف أبجدية والصفوف بأرقام. قد تحتوي بعض الجداول الإلكترونية على رؤوس في الصفوف القليلة الأولى لوصف البيانات في الخلية. + +مع هذه العناصر الأساسية لدفتر عمل Excel، سنستخدم مثالًا من [قوالب Microsoft](https://templates.office.com/) يركز على الجرد لاستعراض بعض الأجزاء الإضافية من الجدول الإلكتروني. + +### إدارة الجرد + +ملف الجدول الإلكتروني المسمى "InventoryExample" هو جدول منسق للعناصر داخل الجرد يحتوي على ثلاث أوراق عمل، حيث تم تصنيف علامات التبويب بـ "قائمة الجرد"، "قائمة اختيار الجرد"، و"بحث الصناديق". الصف الرابع من ورقة العمل "قائمة الجرد" هو الرأس، الذي يصف قيمة كل خلية في عمود الرأس. + +![صيغة مميزة من قائمة جرد مثال في Microsoft Excel](../../../../translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ar.png) + +هناك حالات تعتمد فيها خلية على قيم خلايا أخرى لتوليد قيمتها. يحتفظ جدول "قائمة الجرد" بتتبع تكلفة كل عنصر في الجرد، ولكن ماذا لو احتجنا إلى معرفة قيمة كل شيء في الجرد؟ [**الصيغ**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) تقوم بإجراء عمليات على بيانات الخلايا وتُستخدم لحساب تكلفة الجرد في هذا المثال. استخدم هذا الجدول صيغة في عمود "قيمة الجرد" لحساب قيمة كل عنصر بضرب الكمية تحت رأس QTY وتكاليفها بالخلايا تحت رأس COST. النقر المزدوج أو تمييز خلية سيظهر الصيغة. ستلاحظ أن الصيغ تبدأ بعلامة يساوي، متبوعة بالحساب أو العملية. + +![دالة مميزة من قائمة جرد مثال في Microsoft Excel](../../../../translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ar.png) + +يمكننا استخدام صيغة أخرى لإضافة جميع قيم "قيمة الجرد" معًا للحصول على قيمتها الإجمالية. يمكن حساب ذلك بإضافة كل خلية لتوليد المجموع، ولكن ذلك قد يكون مهمة شاقة. يحتوي Excel على [**الدوال**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89)، أو الصيغ المعرفة مسبقًا لإجراء الحسابات على قيم الخلايا. تتطلب الدوال معطيات، وهي القيم المطلوبة لإجراء هذه الحسابات. عندما تتطلب الدوال أكثر من معطى واحد، يجب أن يتم إدراجها بترتيب معين وإلا قد لا تحسب الدالة القيمة الصحيحة. يستخدم هذا المثال دالة SUM، ويستخدم قيم "قيمة الجرد" كمعطى لإضافة المجموع المدرج تحت الصف 3، العمود B (ويُشار إليه أيضًا بـ B3). + +## NoSQL + +NoSQL هو مصطلح شامل للطرق المختلفة لتخزين البيانات غير العلائقية ويمكن تفسيره على أنه "غير SQL"، "غير علائقي" أو "ليس فقط SQL". يمكن تصنيف هذه الأنواع من أنظمة قواعد البيانات إلى 4 أنواع. + +![تمثيل بياني لمخزن بيانات مفتاح-قيمة يظهر 4 مفاتيح رقمية فريدة مرتبطة بـ 4 قيم مختلفة](../../../../translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ar.png) +> المصدر من [مدونة Michał Białecki](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) + +[قواعد بيانات المفتاح-القيمة](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) تقترن بمفاتيح فريدة، وهي معرف فريد مرتبط بقيمة. يتم تخزين هذه الأزواج باستخدام [جدول تجزئة](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) مع دالة تجزئة مناسبة. + +![تمثيل بياني لمخزن بيانات الرسم البياني يظهر العلاقات بين الأشخاص واهتماماتهم ومواقعهم](../../../../translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ar.png) +> المصدر من [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) + +[قواعد بيانات الرسم البياني](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) تصف العلاقات في البيانات ويتم تمثيلها كمجموعة من العقد والحواف. تمثل العقدة كيانًا، شيئًا موجودًا في العالم الحقيقي مثل طالب أو كشف حساب بنكي. تمثل الحواف العلاقة بين كيانين. تحتوي كل عقدة وحافة على خصائص توفر معلومات إضافية عن كل منهما. + +![تمثيل بياني لمخزن بيانات عمودي يظهر قاعدة بيانات العملاء مع عائلتين من الأعمدة باسم الهوية ومعلومات الاتصال](../../../../translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ar.png) + +[مخازن البيانات العمودية](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) تنظم البيانات في أعمدة وصفوف مثل بنية البيانات العلائقية ولكن يتم تقسيم كل عمود إلى مجموعات تُسمى عائلة الأعمدة، حيث تكون جميع البيانات تحت عمود واحد مرتبطة ويمكن استرجاعها وتغييرها كوحدة واحدة. + +### مخازن بيانات المستندات مع Azure Cosmos DB + +[مخازن بيانات المستندات](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) تبني على مفهوم مخزن بيانات المفتاح-القيمة وتتكون من سلسلة من الحقول والكائنات. ستستكشف هذه القسم قواعد بيانات المستندات باستخدام محاكي Cosmos DB. + +قاعدة بيانات Cosmos DB تناسب تعريف "ليس فقط SQL"، حيث تعتمد قاعدة بيانات المستندات في Cosmos DB على SQL لاستعلام البيانات. يغطي [الدرس السابق](../05-relational-databases/README.md) أساسيات اللغة، وسنتمكن من تطبيق بعض الاستعلامات نفسها على قاعدة بيانات المستندات هنا. سنستخدم محاكي Cosmos DB، الذي يسمح لنا بإنشاء واستكشاف قاعدة بيانات مستندات محليًا على الكمبيوتر. اقرأ المزيد عن المحاكي [هنا](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21). + +المستند هو مجموعة من الحقول وقيم الكائنات، حيث تصف الحقول ما تمثله قيمة الكائن. أدناه مثال على مستند. + +```json +{ + "firstname": "Eva", + "age": 44, + "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", + "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", + "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", + "_attachments": "attachments/", + "_ts": 1630544034 +} +``` + +الحقول ذات الأهمية في هذا المستند هي: `firstname`، `id`، و`age`. الحقول الأخرى التي تحتوي على الشرطات السفلية تم إنشاؤها بواسطة Cosmos DB. + +#### استكشاف البيانات باستخدام محاكي Cosmos DB + +يمكنك تنزيل وتثبيت المحاكي [لنظام Windows هنا](https://aka.ms/cosmosdb-emulator). راجع هذه [الوثائق](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos) للحصول على خيارات حول كيفية تشغيل المحاكي لنظامي macOS وLinux. + +يفتح المحاكي نافذة متصفح، حيث تتيح لك واجهة Explorer استكشاف المستندات. + +![واجهة Explorer لمحاكي Cosmos DB](../../../../translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ar.png) + +إذا كنت تتابع، انقر على "Start with Sample" لإنشاء قاعدة بيانات نموذجية تُسمى SampleDB. إذا قمت بتوسيع SampleDB بالنقر على السهم، ستجد حاوية تُسمى `Persons`. تحتوي الحاوية على مجموعة من العناصر، وهي المستندات داخل الحاوية. يمكنك استكشاف المستندات الأربعة الفردية تحت `Items`. + +![استكشاف البيانات النموذجية في محاكي Cosmos DB](../../../../translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ar.png) + +#### استعلام بيانات المستندات باستخدام محاكي Cosmos DB + +يمكننا أيضًا استعلام البيانات النموذجية بالنقر على زر استعلام SQL جديد (الزر الثاني من اليسار). + +`SELECT * FROM c` يعيد جميع المستندات في الحاوية. لنضف شرط where ونبحث عن كل من هم أصغر من 40 عامًا. + +`SELECT * FROM c where c.age < 40` + +![تشغيل استعلام SELECT على البيانات النموذجية في محاكي Cosmos DB للعثور على المستندات التي تحتوي على قيمة حقل العمر أقل من 40](../../../../translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ar.png) + +يعيد الاستعلام مستندين، لاحظ أن قيمة العمر لكل مستند أقل من 40. + +#### JSON والمستندات + +إذا كنت على دراية بـ JavaScript Object Notation (JSON)، ستلاحظ أن المستندات تبدو مشابهة لـ JSON. يوجد ملف `PersonsData.json` في هذا الدليل يحتوي على المزيد من البيانات التي يمكنك تحميلها إلى حاوية Persons في المحاكي عبر زر `Upload Item`. + +في معظم الحالات، يمكن نقل البيانات التي تُرجعها واجهات برمجة التطبيقات (APIs) بتنسيق JSON مباشرةً وتخزينها في قواعد بيانات المستندات. أدناه مستند آخر، يمثل تغريدات من حساب Microsoft على تويتر تم استرجاعها باستخدام واجهة برمجة تطبيقات تويتر، ثم إدخالها في Cosmos DB. + +```json +{ + "created_at": "2021-08-31T19:03:01.000Z", + "id": "1432780985872142341", + "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", + "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", + "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", + "_attachments": "attachments/", + "_ts": 1630537000 +``` + +الحقول ذات الأهمية في هذا المستند هي: `created_at`، `id`، و`text`. + +## 🚀 التحدي + +يوجد ملف `TwitterData.json` يمكنك تحميله إلى قاعدة بيانات SampleDB. يُوصى بإضافته إلى حاوية منفصلة. يمكن القيام بذلك عن طريق: + +1. النقر على زر الحاوية الجديدة في الزاوية العلوية اليمنى. +2. اختيار قاعدة البيانات الحالية (SampleDB) وإنشاء معرف للحاوية. +3. تعيين مفتاح التقسيم إلى `/id`. +4. النقر على OK (يمكنك تجاهل بقية المعلومات في هذه الواجهة لأن هذه مجموعة بيانات صغيرة تعمل محليًا على جهازك). +5. افتح الحاوية الجديدة وقم بتحميل ملف بيانات تويتر باستخدام زر `Upload Item`. + +حاول تشغيل بعض استعلامات SELECT للعثور على المستندات التي تحتوي على Microsoft في حقل النص. تلميح: حاول استخدام [كلمة LIKE](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character). + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/11) + +## المراجعة والدراسة الذاتية + +- هناك بعض التنسيقات والميزات الإضافية المضافة إلى هذا الجدول الإلكتروني التي لا يغطيها هذا الدرس. لدى Microsoft [مكتبة كبيرة من الوثائق والفيديوهات](https://support.microsoft.com/excel) حول Excel إذا كنت مهتمًا بتعلم المزيد. + +- توضح هذه الوثائق المعمارية خصائص الأنواع المختلفة من البيانات غير العلائقية: [البيانات غير العلائقية وNoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data). + +- Cosmos DB هو قاعدة بيانات غير علائقية قائمة على السحابة يمكنها أيضًا تخزين الأنواع المختلفة من NoSQL المذكورة في هذا الدرس. تعرف على المزيد حول هذه الأنواع في [وحدة تعلم Cosmos DB من Microsoft](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/). + +## الواجب + +[أرباح الصودا](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/06-non-relational/assignment.md b/translations/ar/2-Working-With-Data/06-non-relational/assignment.md new file mode 100644 index 00000000..fbf0f370 --- /dev/null +++ b/translations/ar/2-Working-With-Data/06-non-relational/assignment.md @@ -0,0 +1,33 @@ + +# أرباح الصودا + +## التعليمات + +ملف [جدول بيانات شركة كوكا كولا](../../../../2-Working-With-Data/06-non-relational/CocaColaCo.xlsx) يفتقد بعض الحسابات. مهمتك هي: + +1. حساب الأرباح الإجمالية للسنوات المالية '15، '16، '17، و'18 + - الربح الإجمالي = الإيرادات التشغيلية الصافية - تكلفة البضائع المباعة +1. حساب متوسط جميع الأرباح الإجمالية. حاول القيام بذلك باستخدام دالة. + - المتوسط = مجموع الأرباح الإجمالية مقسومًا على عدد السنوات المالية (10) + - توثيق حول [دالة AVERAGE](https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) +1. هذا ملف Excel، ولكنه يجب أن يكون قابلاً للتعديل في أي منصة جداول بيانات. + +[مصدر البيانات: الفضل لـ Yiyi Wang](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## المعايير + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/07-python/README.md b/translations/ar/2-Working-With-Data/07-python/README.md new file mode 100644 index 00000000..8517a081 --- /dev/null +++ b/translations/ar/2-Working-With-Data/07-python/README.md @@ -0,0 +1,290 @@ + +# العمل مع البيانات: بايثون ومكتبة Pandas + +| ![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| :-------------------------------------------------------------------------------------------------------: | +| العمل مع بايثون - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +[![فيديو مقدمة](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ar.png)](https://youtu.be/dZjWOGbsN4Y) + +بينما توفر قواعد البيانات طرقًا فعالة جدًا لتخزين البيانات واستعلامها باستخدام لغات الاستعلام، فإن الطريقة الأكثر مرونة لمعالجة البيانات هي كتابة برنامج خاص بك لمعالجتها. في كثير من الحالات، يكون إجراء استعلام قاعدة بيانات أكثر فعالية. ومع ذلك، في بعض الحالات عندما تكون هناك حاجة إلى معالجة بيانات أكثر تعقيدًا، لا يمكن القيام بذلك بسهولة باستخدام SQL. +يمكن برمجة معالجة البيانات بأي لغة برمجة، ولكن هناك لغات معينة تعتبر عالية المستوى فيما يتعلق بالعمل مع البيانات. يفضل علماء البيانات عادةً إحدى اللغات التالية: + +* **[Python](https://www.python.org/)**، وهي لغة برمجة متعددة الأغراض، وغالبًا ما تعتبر واحدة من أفضل الخيارات للمبتدئين بسبب بساطتها. تحتوي بايثون على العديد من المكتبات الإضافية التي يمكن أن تساعدك في حل العديد من المشاكل العملية، مثل استخراج البيانات من أرشيف ZIP، أو تحويل الصور إلى درجات الرمادي. بالإضافة إلى علم البيانات، تُستخدم بايثون أيضًا بشكل شائع في تطوير الويب. +* **[R](https://www.r-project.org/)** هي أداة تقليدية تم تطويرها مع معالجة البيانات الإحصائية في الاعتبار. تحتوي أيضًا على مستودع كبير من المكتبات (CRAN)، مما يجعلها خيارًا جيدًا لمعالجة البيانات. ومع ذلك، فإن R ليست لغة برمجة متعددة الأغراض، ونادرًا ما تُستخدم خارج نطاق علم البيانات. +* **[Julia](https://julialang.org/)** هي لغة أخرى تم تطويرها خصيصًا لعلم البيانات. تهدف إلى تقديم أداء أفضل من بايثون، مما يجعلها أداة رائعة للتجارب العلمية. + +في هذه الدرس، سنركز على استخدام بايثون لمعالجة البيانات البسيطة. سنفترض معرفة أساسية باللغة. إذا كنت ترغب في جولة أعمق في بايثون، يمكنك الرجوع إلى أحد الموارد التالية: + +* [تعلم بايثون بطريقة ممتعة باستخدام الرسومات الفركتالية](https://github.com/shwars/pycourse) - دورة مقدمة سريعة على GitHub لبرمجة بايثون +* [ابدأ خطواتك الأولى مع بايثون](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) مسار تعليمي على [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +يمكن أن تأتي البيانات بأشكال عديدة. في هذا الدرس، سننظر في ثلاثة أشكال من البيانات - **البيانات الجدولية**، **النصوص** و **الصور**. + +سنركز على بعض الأمثلة لمعالجة البيانات، بدلاً من إعطائك نظرة عامة كاملة على جميع المكتبات ذات الصلة. سيسمح لك ذلك بفهم الفكرة الرئيسية لما هو ممكن، ويترك لك فهمًا حول كيفية العثور على حلول لمشاكلك عندما تحتاج إليها. + +> **النصيحة الأكثر فائدة**. عندما تحتاج إلى تنفيذ عملية معينة على البيانات ولا تعرف كيفية القيام بها، حاول البحث عنها على الإنترنت. [Stackoverflow](https://stackoverflow.com/) يحتوي عادةً على الكثير من عينات الكود المفيدة في بايثون للعديد من المهام النموذجية. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/12) + +## البيانات الجدولية وإطارات البيانات + +لقد تعرفت بالفعل على البيانات الجدولية عندما تحدثنا عن قواعد البيانات العلائقية. عندما يكون لديك الكثير من البيانات، وهي موجودة في العديد من الجداول المرتبطة المختلفة، فمن المنطقي بالتأكيد استخدام SQL للعمل معها. ومع ذلك، هناك العديد من الحالات عندما يكون لدينا جدول بيانات، ونحتاج إلى الحصول على بعض **الفهم** أو **الرؤى** حول هذه البيانات، مثل التوزيع، العلاقة بين القيم، إلخ. في علم البيانات، هناك العديد من الحالات عندما نحتاج إلى تنفيذ بعض التحويلات للبيانات الأصلية، متبوعة بالتصور. يمكن تنفيذ كلا الخطوتين بسهولة باستخدام بايثون. + +هناك مكتبتان مفيدتان جدًا في بايثون يمكن أن تساعدك في التعامل مع البيانات الجدولية: +* **[Pandas](https://pandas.pydata.org/)** تتيح لك التعامل مع ما يسمى بـ **إطارات البيانات**، وهي مشابهة للجداول العلائقية. يمكنك الحصول على أعمدة مسماة، وتنفيذ عمليات مختلفة على الصفوف، الأعمدة، وإطارات البيانات بشكل عام. +* **[Numpy](https://numpy.org/)** هي مكتبة للعمل مع **التنسورات**، أي **المصفوفات** متعددة الأبعاد. تحتوي المصفوفة على قيم من نفس النوع الأساسي، وهي أبسط من إطار البيانات، لكنها تقدم المزيد من العمليات الرياضية، وتخلق أقل قدر من الحمل. + +هناك أيضًا بعض المكتبات الأخرى التي يجب أن تعرف عنها: +* **[Matplotlib](https://matplotlib.org/)** هي مكتبة تُستخدم لتصور البيانات ورسم الرسوم البيانية +* **[SciPy](https://www.scipy.org/)** هي مكتبة تحتوي على بعض الوظائف العلمية الإضافية. لقد واجهنا بالفعل هذه المكتبة عند الحديث عن الاحتمالات والإحصائيات + +إليك قطعة من الكود التي ستستخدمها عادةً لاستيراد هذه المكتبات في بداية برنامج بايثون: +```python +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from scipy import ... # you need to specify exact sub-packages that you need +``` + +Pandas تركز على بعض المفاهيم الأساسية. + +### السلاسل + +**السلاسل** هي تسلسل من القيم، مشابهة للقائمة أو مصفوفة numpy. الفرق الرئيسي هو أن السلاسل تحتوي أيضًا على **فهرس**، وعندما نعمل على السلاسل (مثل الجمع)، يتم أخذ الفهرس في الاعتبار. يمكن أن يكون الفهرس بسيطًا مثل رقم الصف الصحيح (وهو الفهرس المستخدم افتراضيًا عند إنشاء سلسلة من قائمة أو مصفوفة)، أو يمكن أن يكون له هيكل معقد، مثل فترة تاريخية. + +> **ملاحظة**: هناك بعض الكود التمهيدي لـ Pandas في الدفتر المرفق [`notebook.ipynb`](notebook.ipynb). نحن فقط نوضح بعض الأمثلة هنا، وأنت مرحب بك بالتأكيد للتحقق من الدفتر الكامل. + +لنأخذ مثالًا: نريد تحليل مبيعات متجر الآيس كريم الخاص بنا. لنقم بإنشاء سلسلة من أرقام المبيعات (عدد العناصر المباعة كل يوم) لفترة زمنية معينة: + +```python +start_date = "Jan 1, 2020" +end_date = "Mar 31, 2020" +idx = pd.date_range(start_date,end_date) +print(f"Length of index is {len(idx)}") +items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) +items_sold.plot() +``` +![رسم بياني للسلاسل الزمنية](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ar.png) + +الآن لنفترض أنه كل أسبوع نقوم بتنظيم حفلة للأصدقاء، ونأخذ 10 عبوات إضافية من الآيس كريم للحفلة. يمكننا إنشاء سلسلة أخرى، مفهرسة حسب الأسبوع، لتوضيح ذلك: +```python +additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) +``` +عندما نجمع السلسلتين معًا، نحصل على العدد الإجمالي: +```python +total_items = items_sold.add(additional_items,fill_value=0) +total_items.plot() +``` +![رسم بياني للسلاسل الزمنية](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ar.png) + +> **ملاحظة** أننا لا نستخدم الصيغة البسيطة `total_items+additional_items`. إذا فعلنا ذلك، لكنا حصلنا على العديد من القيم `NaN` (*ليس رقمًا*) في السلسلة الناتجة. هذا لأن هناك قيم مفقودة لبعض نقاط الفهرس في سلسلة `additional_items`، وإضافة `NaN` إلى أي شيء يؤدي إلى `NaN`. لذلك نحتاج إلى تحديد معلمة `fill_value` أثناء الجمع. + +مع السلاسل الزمنية، يمكننا أيضًا **إعادة أخذ العينات** للسلسلة بفواصل زمنية مختلفة. على سبيل المثال، لنفترض أننا نريد حساب متوسط حجم المبيعات شهريًا. يمكننا استخدام الكود التالي: +```python +monthly = total_items.resample("1M").mean() +ax = monthly.plot(kind='bar') +``` +![متوسطات السلاسل الزمنية الشهرية](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ar.png) + +### إطار البيانات + +إطار البيانات هو في الأساس مجموعة من السلاسل بنفس الفهرس. يمكننا دمج عدة سلاسل معًا في إطار بيانات: +```python +a = pd.Series(range(1,10)) +b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) +df = pd.DataFrame([a,b]) +``` +سيؤدي ذلك إلى إنشاء جدول أفقي مثل هذا: +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| 1 | I | like | to | use | Python | and | Pandas | very | much | + +يمكننا أيضًا استخدام السلاسل كأعمدة، وتحديد أسماء الأعمدة باستخدام القاموس: +```python +df = pd.DataFrame({ 'A' : a, 'B' : b }) +``` +سيعطينا هذا جدولًا مثل هذا: + +| | A | B | +| --- | --- | ------ | +| 0 | 1 | I | +| 1 | 2 | like | +| 2 | 3 | to | +| 3 | 4 | use | +| 4 | 5 | Python | +| 5 | 6 | and | +| 6 | 7 | Pandas | +| 7 | 8 | very | +| 8 | 9 | much | + +**ملاحظة** أنه يمكننا أيضًا الحصول على هذا التخطيط للجدول عن طريق تبديل الجدول السابق، على سبيل المثال بكتابة +```python +df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) +``` +هنا `.T` تعني عملية تبديل إطار البيانات، أي تغيير الصفوف والأعمدة، وعملية `rename` تسمح لنا بإعادة تسمية الأعمدة لتتناسب مع المثال السابق. + +إليك بعض العمليات الأكثر أهمية التي يمكننا تنفيذها على إطارات البيانات: + +**اختيار الأعمدة**. يمكننا اختيار أعمدة فردية بكتابة `df['A']` - هذه العملية تعيد سلسلة. يمكننا أيضًا اختيار مجموعة فرعية من الأعمدة في إطار بيانات آخر بكتابة `df[['B','A']]` - هذا يعيد إطار بيانات آخر. + +**تصفية** الصفوف بناءً على معايير معينة. على سبيل المثال، لترك الصفوف فقط التي تحتوي على العمود `A` أكبر من 5، يمكننا كتابة `df[df['A']>5]`. + +> **ملاحظة**: الطريقة التي تعمل بها التصفية هي كالتالي. التعبير `df['A']<5` يعيد سلسلة من القيم المنطقية، والتي تشير إلى ما إذا كان التعبير `True` أو `False` لكل عنصر من عناصر السلسلة الأصلية `df['A']`. عندما تُستخدم السلسلة المنطقية كفهرس، فإنها تعيد مجموعة فرعية من الصفوف في إطار البيانات. لذلك، لا يمكن استخدام تعبير منطقي عشوائي في بايثون، على سبيل المثال، كتابة `df[df['A']>5 and df['A']<7]` سيكون خطأ. بدلاً من ذلك، يجب استخدام عملية خاصة `&` على السلاسل المنطقية، بكتابة `df[(df['A']>5) & (df['A']<7)]` (*الأقواس مهمة هنا*). + +**إنشاء أعمدة جديدة قابلة للحساب**. يمكننا بسهولة إنشاء أعمدة جديدة قابلة للحساب لإطار البيانات الخاص بنا باستخدام تعبير بديهي مثل هذا: +```python +df['DivA'] = df['A']-df['A'].mean() +``` +هذا المثال يحسب انحراف A عن قيمته المتوسطة. ما يحدث فعليًا هنا هو أننا نحسب سلسلة، ثم نخصص هذه السلسلة إلى الجانب الأيسر، مما يؤدي إلى إنشاء عمود جديد. لذلك، لا يمكننا استخدام أي عمليات غير متوافقة مع السلاسل، على سبيل المثال، الكود أدناه خاطئ: +```python +# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" +df['LenB'] = len(df['B']) # <- Wrong result +``` +المثال الأخير، رغم أنه صحيح نحويًا، يعطينا نتيجة خاطئة، لأنه يخصص طول السلسلة `B` لجميع القيم في العمود، وليس طول العناصر الفردية كما قصدنا. + +إذا كنا بحاجة إلى حساب تعبيرات معقدة مثل هذه، يمكننا استخدام وظيفة `apply`. يمكن كتابة المثال الأخير كما يلي: +```python +df['LenB'] = df['B'].apply(lambda x : len(x)) +# or +df['LenB'] = df['B'].apply(len) +``` + +بعد العمليات أعلاه، سننتهي بإطار البيانات التالي: + +| | A | B | DivA | LenB | +| --- | --- | ------ | ---- | ---- | +| 0 | 1 | I | -4.0 | 1 | +| 1 | 2 | like | -3.0 | 4 | +| 2 | 3 | to | -2.0 | 2 | +| 3 | 4 | use | -1.0 | 3 | +| 4 | 5 | Python | 0.0 | 6 | +| 5 | 6 | and | 1.0 | 3 | +| 6 | 7 | Pandas | 2.0 | 6 | +| 7 | 8 | very | 3.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | + +**اختيار الصفوف بناءً على الأرقام** يمكن القيام به باستخدام بناء `iloc`. على سبيل المثال، لاختيار أول 5 صفوف من إطار البيانات: +```python +df.iloc[:5] +``` + +**التجميع** يُستخدم غالبًا للحصول على نتيجة مشابهة لـ *جداول المحورية* في Excel. لنفترض أننا نريد حساب متوسط قيمة العمود `A` لكل رقم معين من `LenB`. يمكننا تجميع إطار البيانات الخاص بنا بواسطة `LenB`، واستدعاء `mean`: +```python +df.groupby(by='LenB').mean() +``` +إذا كنا بحاجة إلى حساب المتوسط وعدد العناصر في المجموعة، يمكننا استخدام وظيفة `aggregate` الأكثر تعقيدًا: +```python +df.groupby(by='LenB') \ + .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ + .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) +``` +هذا يعطينا الجدول التالي: + +| LenB | Count | Mean | +| ---- | ----- | -------- | +| 1 | 1 | 1.000000 | +| 2 | 1 | 3.000000 | +| 3 | 2 | 5.000000 | +| 4 | 3 | 6.333333 | +| 6 | 2 | 6.000000 | + +### الحصول على البيانات +لقد رأينا مدى سهولة إنشاء Series و DataFrames من كائنات Python. ومع ذلك، غالبًا ما تأتي البيانات في شكل ملف نصي أو جدول Excel. لحسن الحظ، يوفر لنا Pandas طريقة بسيطة لتحميل البيانات من القرص. على سبيل المثال، قراءة ملف CSV بسيطة جدًا كما يلي: +```python +df = pd.read_csv('file.csv') +``` +سنرى المزيد من الأمثلة لتحميل البيانات، بما في ذلك جلبها من مواقع ويب خارجية، في قسم "التحدي". + +### الطباعة والرسم البياني + +غالبًا ما يحتاج عالم البيانات إلى استكشاف البيانات، لذا من المهم أن يكون قادرًا على تصورها. عندما يكون DataFrame كبيرًا، نرغب في كثير من الأحيان فقط في التأكد من أننا نقوم بكل شيء بشكل صحيح عن طريق طباعة الصفوف القليلة الأولى. يمكن القيام بذلك عن طريق استدعاء `df.head()`. إذا كنت تقوم بتشغيله من Jupyter Notebook، فسيتم طباعة DataFrame في شكل جدولي جميل. + +لقد رأينا أيضًا استخدام وظيفة `plot` لتصور بعض الأعمدة. بينما تعتبر `plot` مفيدة جدًا للعديد من المهام وتدعم أنواعًا مختلفة من الرسوم البيانية عبر معلمة `kind=`, يمكنك دائمًا استخدام مكتبة `matplotlib` الخام لرسم شيء أكثر تعقيدًا. سنغطي تصور البيانات بالتفصيل في دروس منفصلة ضمن الدورة. + +يغطي هذا العرض المفاهيم الأكثر أهمية في Pandas، ومع ذلك، فإن المكتبة غنية جدًا، ولا يوجد حد لما يمكنك القيام به بها! دعونا الآن نطبق هذه المعرفة لحل مشكلة محددة. + +## 🚀 التحدي 1: تحليل انتشار COVID + +المشكلة الأولى التي سنركز عليها هي نمذجة انتشار وباء COVID-19. للقيام بذلك، سنستخدم البيانات المتعلقة بعدد الأفراد المصابين في مختلف البلدان، والتي يوفرها [مركز علوم وهندسة الأنظمة](https://systems.jhu.edu/) (CSSE) في [جامعة جونز هوبكنز](https://jhu.edu/). تتوفر مجموعة البيانات في [هذا المستودع على GitHub](https://github.com/CSSEGISandData/COVID-19). + +نظرًا لأننا نريد توضيح كيفية التعامل مع البيانات، ندعوك لفتح [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) وقراءته من البداية إلى النهاية. يمكنك أيضًا تنفيذ الخلايا، والقيام ببعض التحديات التي تركناها لك في النهاية. + +![انتشار COVID](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ar.png) + +> إذا كنت لا تعرف كيفية تشغيل الكود في Jupyter Notebook، يمكنك الاطلاع على [هذه المقالة](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +## العمل مع البيانات غير المنظمة + +بينما غالبًا ما تأتي البيانات في شكل جدولي، في بعض الحالات نحتاج إلى التعامل مع بيانات أقل تنظيمًا، مثل النصوص أو الصور. في هذه الحالة، لتطبيق تقنيات معالجة البيانات التي رأيناها أعلاه، نحتاج بطريقة ما إلى **استخراج** البيانات المنظمة. إليك بعض الأمثلة: + +* استخراج الكلمات المفتاحية من النص، ومعرفة مدى تكرار ظهورها +* استخدام الشبكات العصبية لاستخراج معلومات حول الكائنات الموجودة في الصورة +* الحصول على معلومات حول مشاعر الأشخاص من تغذية كاميرا الفيديو + +## 🚀 التحدي 2: تحليل أوراق COVID + +في هذا التحدي، سنواصل موضوع جائحة COVID، ونركز على معالجة الأوراق العلمية حول الموضوع. هناك [مجموعة بيانات CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) تحتوي على أكثر من 7000 (في وقت الكتابة) ورقة حول COVID، متوفرة مع البيانات الوصفية والملخصات (ولحوالي نصفها يتوفر النص الكامل أيضًا). + +مثال كامل لتحليل هذه المجموعة باستخدام خدمة [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) موصوف [في هذه المقالة](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). سنناقش نسخة مبسطة من هذا التحليل. + +> **NOTE**: لا نقدم نسخة من مجموعة البيانات كجزء من هذا المستودع. قد تحتاج أولاً إلى تنزيل ملف [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) من [هذه المجموعة على Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). قد تكون هناك حاجة للتسجيل في Kaggle. يمكنك أيضًا تنزيل المجموعة بدون تسجيل [من هنا](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html)، لكنها ستتضمن جميع النصوص الكاملة بالإضافة إلى ملف البيانات الوصفية. + +افتح [`notebook-papers.ipynb`](notebook-papers.ipynb) وقراءته من البداية إلى النهاية. يمكنك أيضًا تنفيذ الخلايا، والقيام ببعض التحديات التي تركناها لك في النهاية. + +![علاج COVID الطبي](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ar.png) + +## معالجة بيانات الصور + +مؤخرًا، تم تطوير نماذج ذكاء اصطناعي قوية جدًا تسمح لنا بفهم الصور. هناك العديد من المهام التي يمكن حلها باستخدام الشبكات العصبية المدربة مسبقًا أو خدمات السحابة. بعض الأمثلة تشمل: + +* **تصنيف الصور**، والذي يمكن أن يساعدك في تصنيف الصورة إلى واحدة من الفئات المحددة مسبقًا. يمكنك بسهولة تدريب مصنفات الصور الخاصة بك باستخدام خدمات مثل [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) +* **اكتشاف الكائنات** لتحديد الكائنات المختلفة في الصورة. يمكن لخدمات مثل [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) اكتشاف عدد من الكائنات الشائعة، ويمكنك تدريب نموذج [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) لتحديد بعض الكائنات المحددة ذات الاهتمام. +* **اكتشاف الوجه**، بما في ذلك العمر والجنس والكشف عن المشاعر. يمكن القيام بذلك عبر [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum). + +يمكن استدعاء جميع هذه الخدمات السحابية باستخدام [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum)، وبالتالي يمكن دمجها بسهولة في سير عمل استكشاف البيانات الخاص بك. + +إليك بعض الأمثلة لاستكشاف البيانات من مصادر بيانات الصور: +* في المقالة [كيف تتعلم علم البيانات بدون برمجة](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) نستكشف صور Instagram، محاولين فهم ما يجعل الناس يعطون المزيد من الإعجابات للصورة. أولاً نستخرج أكبر قدر ممكن من المعلومات من الصور باستخدام [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum)، ثم نستخدم [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) لبناء نموذج قابل للتفسير. +* في [ورشة عمل دراسات الوجه](https://github.com/CloudAdvocacy/FaceStudies) نستخدم [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) لاستخراج المشاعر على الأشخاص في الصور من الأحداث، لفهم ما يجعل الناس سعداء. + +## الخاتمة + +سواء كانت لديك بيانات منظمة أو غير منظمة، باستخدام Python يمكنك تنفيذ جميع الخطوات المتعلقة بمعالجة البيانات وفهمها. إنها على الأرجح الطريقة الأكثر مرونة لمعالجة البيانات، ولهذا السبب يستخدم غالبية علماء البيانات Python كأداة رئيسية لهم. تعلم Python بعمق فكرة جيدة إذا كنت جادًا بشأن رحلتك في علم البيانات! + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/13) + +## المراجعة والدراسة الذاتية + +**كتب** +* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) + +**موارد عبر الإنترنت** +* الدليل الرسمي [10 دقائق مع Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) +* [التوثيق حول تصور Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) + +**تعلم Python** +* [تعلم Python بطريقة ممتعة باستخدام رسومات السلحفاة والكسور](https://github.com/shwars/pycourse) +* [اتخذ خطواتك الأولى مع Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) مسار التعلم على [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +## الواجب + +[قم بإجراء دراسة بيانات أكثر تفصيلًا للتحديات أعلاه](assignment.md) + +## الشكر + +تم تأليف هذا الدرس بحب ♥️ بواسطة [Dmitry Soshnikov](http://soshnikov.com) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/07-python/assignment.md b/translations/ar/2-Working-With-Data/07-python/assignment.md new file mode 100644 index 00000000..adc92ecb --- /dev/null +++ b/translations/ar/2-Working-With-Data/07-python/assignment.md @@ -0,0 +1,37 @@ + +# واجب معالجة البيانات باستخدام بايثون + +في هذا الواجب، سنطلب منك التوسع في الكود الذي بدأنا تطويره في تحدياتنا. يتكون الواجب من جزأين: + +## نمذجة انتشار COVID-19 + +- [ ] رسم *R* لخمسة إلى ستة دول مختلفة على رسم بياني واحد للمقارنة، أو باستخدام عدة رسوم بيانية جنبًا إلى جنب. +- [ ] دراسة كيفية ارتباط عدد الوفيات وعدد حالات الشفاء بعدد الحالات المصابة. +- [ ] معرفة المدة التي تستغرقها الإصابة النموذجية من خلال الربط البصري بين معدل الإصابة ومعدل الوفيات والبحث عن بعض الشذوذات. قد تحتاج إلى النظر في دول مختلفة لاكتشاف ذلك. +- [ ] حساب معدل الوفيات وكيف يتغير بمرور الوقت. *قد ترغب في أخذ مدة المرض بالأيام في الاعتبار لتحريك سلسلة زمنية واحدة قبل إجراء الحسابات.* + +## تحليل أوراق COVID-19 + +- [ ] بناء مصفوفة التشارك (co-occurrence matrix) للأدوية المختلفة، ومعرفة الأدوية التي تظهر معًا بشكل متكرر (أي المذكورة في ملخص واحد). يمكنك تعديل الكود لبناء مصفوفة التشارك للأدوية والتشخيصات. +- [ ] تصور هذه المصفوفة باستخدام خريطة حرارية (heatmap). +- [ ] كهدف إضافي، تصور التشارك بين الأدوية باستخدام [مخطط الحبال](https://en.wikipedia.org/wiki/Chord_diagram). [هذه المكتبة](https://pypi.org/project/chord/) قد تساعدك في رسم مخطط الحبال. +- [ ] كهدف إضافي آخر، استخراج الجرعات المختلفة للأدوية (مثل **400mg** في *تناول 400mg من الكلوروكين يوميًا*) باستخدام التعبيرات النمطية (regular expressions)، وبناء إطار بيانات (dataframe) يعرض الجرعات المختلفة للأدوية المختلفة. **ملاحظة**: ضع في اعتبارك القيم الرقمية التي تكون قريبة نصيًا من اسم الدواء. + +## معايير التقييم + +ممتاز | كافٍ | يحتاج إلى تحسين +--- | --- | --- | +جميع المهام مكتملة، موضحة بالرسم البياني ومشروحة، بما في ذلك تحقيق هدف إضافي واحد على الأقل | أكثر من 5 مهام مكتملة، لم يتم محاولة الأهداف الإضافية، أو النتائج غير واضحة | أقل من 5 (ولكن أكثر من 3) مهام مكتملة، التصورات لا تساعد في توضيح النقطة + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/08-data-preparation/README.md b/translations/ar/2-Working-With-Data/08-data-preparation/README.md new file mode 100644 index 00000000..04219ea5 --- /dev/null +++ b/translations/ar/2-Working-With-Data/08-data-preparation/README.md @@ -0,0 +1,346 @@ + +# العمل مع البيانات: إعداد البيانات + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/08-DataPreparation.png)| +|:---:| +|إعداد البيانات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/14) + +اعتمادًا على مصدرها، قد تحتوي البيانات الخام على بعض التناقضات التي تسبب تحديات في التحليل والنمذجة. بمعنى آخر، يمكن تصنيف هذه البيانات على أنها "غير نظيفة" وستحتاج إلى تنظيفها. تركز هذه الدرس على تقنيات تنظيف وتحويل البيانات للتعامل مع تحديات البيانات المفقودة أو غير الدقيقة أو غير المكتملة. المواضيع التي يتم تناولها في هذا الدرس ستستخدم مكتبة Python وPandas وسيتم [عرضها في الدفتر](notebook.ipynb) داخل هذا الدليل. + +## أهمية تنظيف البيانات + +- **سهولة الاستخدام وإعادة الاستخدام**: عندما تكون البيانات منظمة ومُطَبَّعة بشكل صحيح، يصبح من السهل البحث عنها واستخدامها ومشاركتها مع الآخرين. + +- **الاتساق**: غالبًا ما يتطلب علم البيانات العمل مع أكثر من مجموعة بيانات، حيث تحتاج مجموعات البيانات من مصادر مختلفة إلى الدمج معًا. ضمان أن كل مجموعة بيانات فردية لديها معايير مشتركة سيضمن أن البيانات تظل مفيدة عند دمجها في مجموعة بيانات واحدة. + +- **دقة النموذج**: تحسين دقة النماذج التي تعتمد على البيانات النظيفة. + +## أهداف واستراتيجيات التنظيف الشائعة + +- **استكشاف مجموعة البيانات**: يمكن أن يساعد استكشاف البيانات، الذي يتم تغطيته في [درس لاحق](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/4-Data-Science-Lifecycle/15-analyzing)، في اكتشاف البيانات التي تحتاج إلى تنظيف. يمكن أن يوفر الملاحظة البصرية للقيم داخل مجموعة البيانات توقعات لما سيبدو عليه باقي البيانات أو فكرة عن المشاكل التي يمكن حلها. يشمل الاستكشاف الاستعلامات الأساسية، التصورات، وأخذ العينات. + +- **التنسيق**: اعتمادًا على المصدر، قد تحتوي البيانات على تناقضات في كيفية تقديمها. يمكن أن يسبب هذا مشاكل في البحث عن القيم وتمثيلها، حيث يتم رؤيتها داخل مجموعة البيانات ولكن لا يتم تمثيلها بشكل صحيح في التصورات أو نتائج الاستعلام. تشمل مشاكل التنسيق الشائعة معالجة المسافات البيضاء، التواريخ، وأنواع البيانات. عادةً ما يكون حل مشاكل التنسيق مسؤولية الأشخاص الذين يستخدمون البيانات. على سبيل المثال، تختلف المعايير حول كيفية تقديم التواريخ والأرقام حسب البلد. + +- **التكرارات**: يمكن أن تؤدي البيانات التي تحتوي على أكثر من تكرار إلى نتائج غير دقيقة وعادةً ما يجب إزالتها. يمكن أن يكون هذا شائعًا عند دمج مجموعتين أو أكثر من البيانات معًا. ومع ذلك، هناك حالات حيث تحتوي التكرارات في مجموعات البيانات المدمجة على أجزاء يمكن أن توفر معلومات إضافية وقد تحتاج إلى الاحتفاظ بها. + +- **البيانات المفقودة**: يمكن أن تسبب البيانات المفقودة نتائج غير دقيقة بالإضافة إلى نتائج ضعيفة أو منحازة. يمكن أحيانًا حل هذه المشكلة عن طريق "إعادة تحميل" البيانات، ملء القيم المفقودة بالحسابات والرموز مثل Python، أو ببساطة إزالة القيمة والبيانات المقابلة. هناك أسباب عديدة لفقدان البيانات، والإجراءات التي يتم اتخاذها لحل هذه القيم المفقودة تعتمد على كيفية ولماذا فقدت في المقام الأول. + +## استكشاف معلومات DataFrame +> **هدف التعلم:** بنهاية هذا القسم الفرعي، يجب أن تكون مرتاحًا في العثور على معلومات عامة حول البيانات المخزنة في DataFrames الخاصة بـ pandas. + +بمجرد تحميل البيانات في pandas، من المرجح أن تكون في DataFrame (راجع [الدرس السابق](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/07-python#dataframe) للحصول على نظرة عامة مفصلة). ومع ذلك، إذا كانت مجموعة البيانات في DataFrame تحتوي على 60,000 صف و400 عمود، كيف يمكنك البدء في فهم ما تعمل معه؟ لحسن الحظ، توفر [pandas](https://pandas.pydata.org/) أدوات ملائمة للنظر بسرعة في المعلومات العامة حول DataFrame بالإضافة إلى الصفوف الأولى والأخيرة. + +لاستكشاف هذه الوظيفة، سنقوم باستيراد مكتبة Python scikit-learn واستخدام مجموعة بيانات شهيرة: **مجموعة بيانات Iris**. + +```python +import pandas as pd +from sklearn.datasets import load_iris + +iris = load_iris() +iris_df = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) +``` +| |طول السبل (سم)|عرض السبل (سم)|طول البتلة (سم)|عرض البتلة (سم)| +|----------------------------------------|--------------|--------------|--------------|--------------| +|0 |5.1 |3.5 |1.4 |0.2 | +|1 |4.9 |3.0 |1.4 |0.2 | +|2 |4.7 |3.2 |1.3 |0.2 | +|3 |4.6 |3.1 |1.5 |0.2 | +|4 |5.0 |3.6 |1.4 |0.2 | + +- **DataFrame.info**: للبدء، يتم استخدام طريقة `info()` لطباعة ملخص للمحتوى الموجود في `DataFrame`. لنلقِ نظرة على هذه المجموعة من البيانات لمعرفة ما لدينا: +```python +iris_df.info() +``` +``` +RangeIndex: 150 entries, 0 to 149 +Data columns (total 4 columns): + # Column Non-Null Count Dtype +--- ------ -------------- ----- + 0 sepal length (cm) 150 non-null float64 + 1 sepal width (cm) 150 non-null float64 + 2 petal length (cm) 150 non-null float64 + 3 petal width (cm) 150 non-null float64 +dtypes: float64(4) +memory usage: 4.8 KB +``` +من هذا، نعلم أن مجموعة بيانات *Iris* تحتوي على 150 إدخالًا في أربعة أعمدة بدون إدخالات فارغة. يتم تخزين جميع البيانات كأرقام عائمة 64 بت. + +- **DataFrame.head()**: بعد ذلك، للتحقق من المحتوى الفعلي لـ `DataFrame`، نستخدم طريقة `head()`. لنرى كيف تبدو الصفوف الأولى من `iris_df`: +```python +iris_df.head() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +0 5.1 3.5 1.4 0.2 +1 4.9 3.0 1.4 0.2 +2 4.7 3.2 1.3 0.2 +3 4.6 3.1 1.5 0.2 +4 5.0 3.6 1.4 0.2 +``` +- **DataFrame.tail()**: على العكس، للتحقق من الصفوف الأخيرة من `DataFrame`، نستخدم طريقة `tail()`: +```python +iris_df.tail() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +145 6.7 3.0 5.2 2.3 +146 6.3 2.5 5.0 1.9 +147 6.5 3.0 5.2 2.0 +148 6.2 3.4 5.4 2.3 +149 5.9 3.0 5.1 1.8 +``` +> **الخلاصة:** حتى بمجرد النظر إلى البيانات الوصفية حول المعلومات في DataFrame أو القيم الأولى والأخيرة فيها، يمكنك الحصول على فكرة فورية عن الحجم والشكل والمحتوى للبيانات التي تتعامل معها. + +## التعامل مع البيانات المفقودة +> **هدف التعلم:** بنهاية هذا القسم الفرعي، يجب أن تعرف كيفية استبدال أو إزالة القيم الفارغة من DataFrames. + +غالبًا ما تحتوي مجموعات البيانات التي تريد استخدامها (أو يجب استخدامها) على قيم مفقودة. الطريقة التي يتم بها التعامل مع البيانات المفقودة تحمل معها توازنات دقيقة يمكن أن تؤثر على التحليل النهائي والنتائج الواقعية. + +يتعامل pandas مع القيم المفقودة بطريقتين. الأولى التي رأيتها من قبل في الأقسام السابقة: `NaN`، أو ليس رقمًا. هذه في الواقع قيمة خاصة وهي جزء من مواصفات IEEE للأرقام العائمة وتستخدم فقط للإشارة إلى القيم العائمة المفقودة. + +بالنسبة للقيم المفقودة بخلاف الأرقام العائمة، يستخدم pandas كائن Python `None`. على الرغم من أنه قد يبدو مربكًا أنك ستواجه نوعين مختلفين من القيم التي تقول نفس الشيء بشكل أساسي، إلا أن هناك أسبابًا برمجية سليمة لهذا الاختيار التصميمي، وفي الممارسة العملية، يتيح هذا النهج لـ pandas تقديم حل وسط جيد لمعظم الحالات. ومع ذلك، فإن كل من `None` و`NaN` يحملان قيودًا يجب أن تكون على دراية بها فيما يتعلق بكيفية استخدامهما. + +اطلع على المزيد حول `NaN` و`None` من [الدفتر](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/4-Data-Science-Lifecycle/15-analyzing/notebook.ipynb)! + +- **اكتشاف القيم الفارغة**: في `pandas`، تعتبر طريقتا `isnull()` و`notnull()` الطرق الأساسية لاكتشاف البيانات الفارغة. كلاهما يعيد أقنعة منطقية فوق بياناتك. سنستخدم `numpy` للقيم `NaN`: +```python +import numpy as np + +example1 = pd.Series([0, np.nan, '', None]) +example1.isnull() +``` +``` +0 False +1 True +2 False +3 True +dtype: bool +``` +انظر عن كثب إلى الإخراج. هل أي من ذلك يفاجئك؟ بينما يعتبر `0` فارغًا حسابيًا، إلا أنه لا يزال عددًا صحيحًا صالحًا ويعامله pandas على هذا النحو. `''` أكثر دقة قليلاً. بينما استخدمناه في القسم 1 لتمثيل قيمة سلسلة فارغة، إلا أنه لا يزال كائن سلسلة وليس تمثيلًا للفارغ كما يعتبره pandas. + +الآن، دعنا نعكس هذا ونستخدم هذه الطرق بطريقة أكثر تشابهًا مع الطريقة التي ستستخدمها في الممارسة. يمكنك استخدام الأقنعة المنطقية مباشرة كمؤشر ``Series`` أو ``DataFrame``، مما يمكن أن يكون مفيدًا عند محاولة العمل مع القيم الفارغة (أو الموجودة) المعزولة. + +> **الخلاصة:** تنتج طريقتا `isnull()` و`notnull()` نتائج مشابهة عند استخدامهما في `DataFrame`s: تظهر النتائج ومؤشر تلك النتائج، مما سيساعدك بشكل كبير أثناء التعامل مع بياناتك. + +- **إزالة القيم الفارغة**: بالإضافة إلى تحديد القيم المفقودة، يوفر pandas وسيلة ملائمة لإزالة القيم الفارغة من `Series` و`DataFrame`s. (خصوصًا في مجموعات البيانات الكبيرة، غالبًا ما يكون من الأفضل ببساطة إزالة القيم المفقودة [NA] من تحليلك بدلاً من التعامل معها بطرق أخرى.) لرؤية هذا عمليًا، دعنا نعود إلى `example1`: +```python +example1 = example1.dropna() +example1 +``` +``` +0 0 +2 +dtype: object +``` +لاحظ أن هذا يجب أن يبدو مثل الإخراج الخاص بك من `example3[example3.notnull()]`. الفرق هنا هو أنه، بدلاً من مجرد الفهرسة على القيم المقنعة، قامت `dropna` بإزالة تلك القيم المفقودة من `Series` `example1`. + +نظرًا لأن `DataFrame`s لها بعدان، فإنها توفر المزيد من الخيارات لإسقاط البيانات. + +```python +example2 = pd.DataFrame([[1, np.nan, 7], + [2, 5, 8], + [np.nan, 6, 9]]) +example2 +``` +| | 0 | 1 | 2 | +|------|---|---|---| +|0 |1.0|NaN|7 | +|1 |2.0|5.0|8 | +|2 |NaN|6.0|9 | + +(هل لاحظت أن pandas قام بتحويل اثنين من الأعمدة إلى أرقام عائمة لاستيعاب `NaN`s؟) + +لا يمكنك إسقاط قيمة واحدة من `DataFrame`، لذا عليك إسقاط صفوف أو أعمدة كاملة. اعتمادًا على ما تقوم به، قد ترغب في القيام بأحدهما أو الآخر، لذا يوفر pandas خيارات لكليهما. نظرًا لأن الأعمدة تمثل عادةً المتغيرات والصفوف تمثل الملاحظات في علم البيانات، فمن المرجح أن تقوم بإسقاط صفوف البيانات؛ الإعداد الافتراضي لـ `dropna()` هو إسقاط جميع الصفوف التي تحتوي على أي قيم فارغة: + +```python +example2.dropna() +``` +``` + 0 1 2 +1 2.0 5.0 8 +``` +إذا لزم الأمر، يمكنك إسقاط قيم NA من الأعمدة. استخدم `axis=1` للقيام بذلك: +```python +example2.dropna(axis='columns') +``` +``` + 2 +0 7 +1 8 +2 9 +``` +لاحظ أن هذا يمكن أن يسقط الكثير من البيانات التي قد ترغب في الاحتفاظ بها، خصوصًا في مجموعات البيانات الصغيرة. ماذا لو كنت تريد فقط إسقاط الصفوف أو الأعمدة التي تحتوي على عدة أو حتى جميع القيم الفارغة؟ يمكنك تحديد تلك الإعدادات في `dropna` باستخدام معلمات `how` و`thresh`. + +بشكل افتراضي، `how='any'` (إذا كنت ترغب في التحقق بنفسك أو رؤية ما تحتويه الطريقة من معلمات أخرى، قم بتشغيل `example4.dropna?` في خلية كود). يمكنك بدلاً من ذلك تحديد `how='all'` لإسقاط الصفوف أو الأعمدة التي تحتوي على جميع القيم الفارغة فقط. دعنا نوسع مثالنا `DataFrame` لرؤية هذا عمليًا. + +```python +example2[3] = np.nan +example2 +``` +| |0 |1 |2 |3 | +|------|---|---|---|---| +|0 |1.0|NaN|7 |NaN| +|1 |2.0|5.0|8 |NaN| +|2 |NaN|6.0|9 |NaN| + +تمنحك معلمة `thresh` تحكمًا أكثر دقة: تحدد عدد القيم *غير الفارغة* التي يحتاجها الصف أو العمود ليتم الاحتفاظ به: +```python +example2.dropna(axis='rows', thresh=3) +``` +``` + 0 1 2 3 +1 2.0 5.0 8 NaN +``` +هنا، تم إسقاط الصف الأول والأخير، لأنهما يحتويان فقط على قيمتين غير فارغتين. + +- **ملء القيم الفارغة**: اعتمادًا على مجموعة البيانات الخاصة بك، قد يكون من المنطقي أحيانًا ملء القيم الفارغة بقيم صالحة بدلاً من إسقاطها. يمكنك استخدام `isnull` للقيام بذلك في المكان، ولكن يمكن أن يكون ذلك مرهقًا، خصوصًا إذا كان لديك الكثير من القيم لملئها. نظرًا لأن هذه مهمة شائعة جدًا في علم البيانات، يوفر pandas `fillna`، الذي يعيد نسخة من `Series` أو `DataFrame` مع استبدال القيم المفقودة بواحدة من اختيارك. دعنا ننشئ مثالًا آخر لـ `Series` لرؤية كيفية عمل هذا عمليًا. +```python +example3 = pd.Series([1, np.nan, 2, None, 3], index=list('abcde')) +example3 +``` +``` +a 1.0 +b NaN +c 2.0 +d NaN +e 3.0 +dtype: float64 +``` +يمكنك ملء جميع الإدخالات الفارغة بقيمة واحدة، مثل `0`: +```python +example3.fillna(0) +``` +``` +a 1.0 +b 0.0 +c 2.0 +d 0.0 +e 3.0 +dtype: float64 +``` +يمكنك **ملء القيم الفارغة للأمام**، وهو استخدام القيمة الصالحة الأخيرة لملء الفارغ: +```python +example3.fillna(method='ffill') +``` +``` +a 1.0 +b 1.0 +c 2.0 +d 2.0 +e 3.0 +dtype: float64 +``` +يمكنك أيضًا **ملء القيم الفارغة للخلف** لنشر القيمة الصالحة التالية للخلف لملء الفارغ: +```python +example3.fillna(method='bfill') +``` +``` +a 1.0 +b 2.0 +c 2.0 +d 3.0 +e 3.0 +dtype: float64 +``` +كما قد تتوقع، يعمل هذا بنفس الطريقة مع `DataFrame`s، ولكن يمكنك أيضًا تحديد `axis` على طول ملء القيم الفارغة. باستخدام `example2` الذي تم استخدامه سابقًا مرة أخرى: +```python +example2.fillna(method='ffill', axis=1) +``` +``` + 0 1 2 3 +0 1.0 1.0 7.0 7.0 +1 2.0 5.0 8.0 8.0 +2 NaN 6.0 9.0 9.0 +``` +لاحظ أنه عندما لا تكون هناك قيمة سابقة متاحة للملء الأمامي، تبقى القيمة الفارغة. +> **المعلومة الأساسية:** هناك طرق متعددة للتعامل مع القيم المفقودة في مجموعات البيانات الخاصة بك. الاستراتيجية المحددة التي تستخدمها (إزالتها، استبدالها، أو حتى كيفية استبدالها) يجب أن تعتمد على خصائص تلك البيانات. ستكتسب فهمًا أفضل لكيفية التعامل مع القيم المفقودة كلما تعاملت وتفاعلت مع مجموعات البيانات بشكل أكبر. + +## إزالة البيانات المكررة + +> **هدف التعلم:** بنهاية هذا القسم الفرعي، يجب أن تكون قادرًا على تحديد وإزالة القيم المكررة من DataFrames بسهولة. + +بالإضافة إلى البيانات المفقودة، ستواجه غالبًا بيانات مكررة في مجموعات البيانات الواقعية. لحسن الحظ، توفر مكتبة `pandas` وسيلة سهلة لاكتشاف وإزالة الإدخالات المكررة. + +- **تحديد التكرارات: `duplicated`**: يمكنك بسهولة تحديد القيم المكررة باستخدام طريقة `duplicated` في pandas، والتي تُرجع قناعًا منطقيًا يشير إلى ما إذا كان الإدخال في `DataFrame` مكررًا لإدخال سابق. لنقم بإنشاء مثال آخر لـ `DataFrame` لرؤية ذلك عمليًا. +```python +example4 = pd.DataFrame({'letters': ['A','B'] * 2 + ['B'], + 'numbers': [1, 2, 1, 3, 3]}) +example4 +``` +| |letters|numbers| +|------|-------|-------| +|0 |A |1 | +|1 |B |2 | +|2 |A |1 | +|3 |B |3 | +|4 |B |3 | + +```python +example4.duplicated() +``` +``` +0 False +1 False +2 True +3 False +4 True +dtype: bool +``` +- **إزالة التكرارات: `drop_duplicates`:** ببساطة تُرجع نسخة من البيانات التي تكون فيها جميع القيم المكررة `False`: +```python +example4.drop_duplicates() +``` +``` + letters numbers +0 A 1 +1 B 2 +3 B 3 +``` +كل من `duplicated` و `drop_duplicates` تفترض افتراضيًا النظر في جميع الأعمدة، ولكن يمكنك تحديد أن يتم فحص مجموعة فرعية فقط من الأعمدة في `DataFrame` الخاص بك: +```python +example4.drop_duplicates(['letters']) +``` +``` +letters numbers +0 A 1 +1 B 2 +``` + +> **المعلومة الأساسية:** إزالة البيانات المكررة جزء أساسي من كل مشروع علم بيانات تقريبًا. البيانات المكررة يمكن أن تغير نتائج تحليلاتك وتعطيك نتائج غير دقيقة! + + +## 🚀 التحدي + +جميع المواد التي تمت مناقشتها متوفرة كـ [Jupyter Notebook](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/2-Working-With-Data/08-data-preparation/notebook.ipynb). بالإضافة إلى ذلك، هناك تمارين موجودة بعد كل قسم، جربها! + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/15) + + + +## المراجعة والدراسة الذاتية + +هناك العديد من الطرق لاكتشاف وتحضير بياناتك للتحليل والنمذجة، وتنظيف البيانات خطوة مهمة تتطلب تجربة عملية. جرب هذه التحديات من Kaggle لاستكشاف تقنيات لم يتم تغطيتها في هذا الدرس. + +- [تحدي تنظيف البيانات: تحليل التواريخ](https://www.kaggle.com/rtatman/data-cleaning-challenge-parsing-dates/) + +- [تحدي تنظيف البيانات: قياس البيانات وتطبيعها](https://www.kaggle.com/rtatman/data-cleaning-challenge-scale-and-normalize-data) + + +## الواجب + +[تقييم البيانات من نموذج](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذه الوثيقة باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). على الرغم من أننا نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/08-data-preparation/assignment.md b/translations/ar/2-Working-With-Data/08-data-preparation/assignment.md new file mode 100644 index 00000000..f59f6f36 --- /dev/null +++ b/translations/ar/2-Working-With-Data/08-data-preparation/assignment.md @@ -0,0 +1,28 @@ + +# تقييم البيانات من نموذج + +قام أحد العملاء باختبار [نموذج صغير](../../../../2-Working-With-Data/08-data-preparation/index.html) لجمع بعض البيانات الأساسية عن قاعدة عملائهم. وقد أحضروا النتائج التي حصلوا عليها إليك للتحقق من صحة البيانات التي جمعوها. يمكنك فتح صفحة `index.html` في المتصفح لإلقاء نظرة على النموذج. + +تم تزويدك [بمجموعة بيانات من سجلات csv](../../../../data/form.csv) تحتوي على إدخالات من النموذج بالإضافة إلى بعض التصورات الأساسية. أشار العميل إلى أن بعض التصورات تبدو غير صحيحة، لكنه غير متأكد من كيفية حل المشكلة. يمكنك استكشاف ذلك في [دفتر التمارين](assignment.ipynb). + +## التعليمات + +استخدم التقنيات التي تم تناولها في هذا الدرس لتقديم توصيات حول النموذج بحيث يتمكن من جمع معلومات دقيقة ومتسقة. + +## معايير التقييم + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/2-Working-With-Data/README.md b/translations/ar/2-Working-With-Data/README.md new file mode 100644 index 00000000..6ea6f8df --- /dev/null +++ b/translations/ar/2-Working-With-Data/README.md @@ -0,0 +1,31 @@ + +# العمل مع البيانات + +![حب البيانات](../../../translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ar.jpg) +> الصورة بواسطة ألكسندر سين على Unsplash + +في هذه الدروس، ستتعلم بعض الطرق التي يمكن من خلالها إدارة البيانات ومعالجتها واستخدامها في التطبيقات. ستتعرف على قواعد البيانات العلائقية وغير العلائقية وكيف يمكن تخزين البيانات فيها. ستتعلم أساسيات العمل مع Python لإدارة البيانات، وستكتشف بعض الطرق العديدة التي يمكنك من خلالها استخدام Python لإدارة البيانات واستخراجها. + +### المواضيع + +1. [قواعد البيانات العلائقية](05-relational-databases/README.md) +2. [قواعد البيانات غير العلائقية](06-non-relational/README.md) +3. [العمل مع Python](07-python/README.md) +4. [تحضير البيانات](08-data-preparation/README.md) + +### الشكر والتقدير + +تم كتابة هذه الدروس بكل ❤️ بواسطة [كريستوفر هاريسون](https://twitter.com/geektrainer)، [دميتري سوشنيكوف](https://twitter.com/shwars)، و[جاسمين جريناواي](https://twitter.com/paladique). + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/09-visualization-quantities/README.md b/translations/ar/3-Data-Visualization/09-visualization-quantities/README.md new file mode 100644 index 00000000..dfefbb1c --- /dev/null +++ b/translations/ar/3-Data-Visualization/09-visualization-quantities/README.md @@ -0,0 +1,222 @@ + +# تصور الكميات + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| تصور الكميات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +في هذا الدرس، ستتعلم كيفية استخدام واحدة من مكتبات بايثون المتاحة لإنشاء تصورات مثيرة للاهتمام حول مفهوم الكمية. باستخدام مجموعة بيانات نظيفة عن الطيور في ولاية مينيسوتا، يمكنك اكتشاف العديد من الحقائق المثيرة حول الحياة البرية المحلية. + +## [اختبار قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## مراقبة امتداد الأجنحة باستخدام مكتبة Matplotlib + +تُعد مكتبة [Matplotlib](https://matplotlib.org/stable/index.html) أداة ممتازة لإنشاء مخططات ورسوم بيانية بسيطة أو معقدة من أنواع مختلفة. بشكل عام، تتضمن عملية رسم البيانات باستخدام هذه المكتبات تحديد أجزاء إطار البيانات التي تريد استهدافها، وإجراء أي تحويلات ضرورية على تلك البيانات، وتعيين قيم المحور السيني والصادي، وتحديد نوع الرسم البياني الذي تريد عرضه، ثم عرض الرسم. تقدم Matplotlib مجموعة كبيرة من التصورات، ولكن في هذا الدرس، سنركز على الأنواع الأكثر ملاءمة لتصور الكميات: الرسوم الخطية، الرسوم النقطية، والمخططات الشريطية. + +> ✅ استخدم أفضل رسم بياني يناسب بنية بياناتك والقصة التي تريد سردها. +> - لتحليل الاتجاهات عبر الزمن: الرسم الخطي +> - لمقارنة القيم: الشريط، العمود، الدائرة، الرسم النقطي +> - لإظهار كيفية ارتباط الأجزاء بالكل: الدائرة +> - لإظهار توزيع البيانات: الرسم النقطي، الشريط +> - لإظهار الاتجاهات: الخط، العمود +> - لإظهار العلاقات بين القيم: الخط، الرسم النقطي، الفقاعة + +إذا كانت لديك مجموعة بيانات وتحتاج إلى معرفة كمية عنصر معين، فإن أول مهمة لديك هي فحص قيمه. + +✅ هناك أوراق غش ممتازة متاحة لـ Matplotlib [هنا](https://matplotlib.org/cheatsheets/cheatsheets.pdf). + +## إنشاء رسم خطي لقيم امتداد أجنحة الطيور + +افتح ملف `notebook.ipynb` الموجود في جذر مجلد هذا الدرس وأضف خلية. + +> ملاحظة: البيانات مخزنة في جذر هذا المستودع في مجلد `/data`. + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +هذه البيانات مزيج من النصوص والأرقام: + +| | الاسم | الاسم العلمي | الفئة | الرتبة | العائلة | الجنس | حالة الحفظ | الطول الأدنى | الطول الأقصى | الكتلة الأدنى | الكتلة الأقصى | امتداد الجناح الأدنى | امتداد الجناح الأقصى | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بطة الصفير ذات البطن الأسود | Dendrocygna autumnalis | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | بطة الصفير ذات اللون البني | Dendrocygna bicolor | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | إوزة الثلج | Anser caerulescens | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | إوزة روس | Anser rossii | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | الإوزة البيضاء الأمامية الكبرى| Anser albifrons | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +لنبدأ برسم بعض البيانات الرقمية باستخدام رسم خطي بسيط. لنفترض أنك تريد عرض امتداد الجناح الأقصى لهذه الطيور المثيرة. + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![امتداد الجناح الأقصى](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ar.png) + +ما الذي تلاحظه على الفور؟ يبدو أن هناك على الأقل قيمة شاذة واحدة - هذا امتداد جناح هائل! امتداد جناح يبلغ 2300 سنتيمتر يساوي 23 مترًا - هل هناك تيروصورات تتجول في مينيسوتا؟ دعنا نتحقق. + +بينما يمكنك إجراء فرز سريع في Excel للعثور على هذه القيم الشاذة، والتي ربما تكون أخطاء مطبعية، استمر في عملية التصور من داخل الرسم. + +أضف تسميات إلى المحور السيني لإظهار أنواع الطيور المعنية: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![امتداد الجناح مع التسميات](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ar.png) + +حتى مع تدوير التسميات إلى 45 درجة، هناك الكثير منها لقراءتها. دعنا نحاول استراتيجية مختلفة: قم بتسمية القيم الشاذة فقط وضع التسميات داخل الرسم. يمكنك استخدام رسم نقطي لإفساح المجال للتسميات: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +ما الذي يحدث هنا؟ استخدمت `tick_params` لإخفاء التسميات السفلية ثم أنشأت حلقة على مجموعة بيانات الطيور الخاصة بك. برسم الرسم باستخدام نقاط زرقاء صغيرة باستخدام `bo`، قمت بفحص أي طائر لديه امتداد جناح أقصى يزيد عن 500 وعرضت تسميته بجانب النقطة إذا كان كذلك. قمت بإزاحة التسميات قليلاً على المحور الصادي (`y * (1 - 0.05)`) واستخدمت اسم الطائر كتسمية. + +ماذا اكتشفت؟ + +![القيم الشاذة](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ar.png) + +## تصفية البيانات + +يبدو أن كل من النسر الأصلع والصقر السهلي، رغم أنهما طيور كبيرة على الأرجح، قد تم تصنيفهما بشكل خاطئ، مع إضافة `0` إضافي إلى امتداد جناحهما الأقصى. من غير المحتمل أن تقابل نسرًا أصلعًا بامتداد جناح يبلغ 25 مترًا، ولكن إذا حدث ذلك، يرجى إبلاغنا! دعنا ننشئ إطار بيانات جديدًا بدون هذين القيمتين الشاذتين: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +من خلال تصفية القيم الشاذة، أصبحت بياناتك الآن أكثر تماسكًا وقابلة للفهم. + +![رسم نقطي لامتداد الأجنحة](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ar.png) + +الآن بعد أن أصبح لدينا مجموعة بيانات أنظف على الأقل من حيث امتداد الأجنحة، دعنا نكتشف المزيد عن هذه الطيور. + +بينما يمكن للرسوم الخطية والنقطية عرض معلومات حول قيم البيانات وتوزيعها، نريد التفكير في القيم المتأصلة في هذه المجموعة. يمكنك إنشاء تصورات للإجابة على الأسئلة التالية حول الكمية: + +> كم عدد فئات الطيور الموجودة، وما هي أعدادها؟ +> كم عدد الطيور المنقرضة، المهددة، النادرة، أو الشائعة؟ +> كم عدد الأنواع المختلفة من الجنس والرتب وفقًا لمصطلحات لينيوس؟ + +## استكشاف المخططات الشريطية + +تُعد المخططات الشريطية عملية عندما تحتاج إلى عرض تجميعات البيانات. دعنا نستكشف فئات الطيور الموجودة في هذه المجموعة لمعرفة أيها الأكثر شيوعًا من حيث العدد. + +في ملف الـ notebook، أنشئ مخططًا شريطيًا بسيطًا. + +✅ ملاحظة، يمكنك إما تصفية الطيور الشاذة التي حددناها في القسم السابق، أو تعديل الخطأ المطبعي في امتداد جناحها، أو تركها لهذه التمارين التي لا تعتمد على قيم امتداد الجناح. + +إذا كنت تريد إنشاء مخطط شريطي، يمكنك اختيار البيانات التي تريد التركيز عليها. يمكن إنشاء المخططات الشريطية من البيانات الخام: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![البيانات الكاملة كمخطط شريطي](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ar.png) + +ومع ذلك، هذا المخطط الشريطي غير قابل للقراءة لأنه يحتوي على الكثير من البيانات غير المجمعة. تحتاج إلى اختيار البيانات التي تريد رسمها فقط، لذا دعنا ننظر إلى طول الطيور بناءً على فئتها. + +قم بتصفية بياناتك لتشمل فقط فئة الطيور. + +✅ لاحظ أنك تستخدم Pandas لإدارة البيانات، ثم تترك Matplotlib لإنشاء الرسم. + +نظرًا لوجود العديد من الفئات، يمكنك عرض هذا المخطط عموديًا وضبط ارتفاعه لاستيعاب جميع البيانات: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![الفئة والطول](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ar.png) + +يوضح هذا المخطط الشريطي عرضًا جيدًا لعدد الطيور في كل فئة. في لمحة، ترى أن أكبر عدد من الطيور في هذه المنطقة ينتمي إلى فئة البط/الإوز/طيور الماء. مينيسوتا هي "أرض 10,000 بحيرة"، لذا فهذا ليس مفاجئًا! + +✅ جرب بعض العدادات الأخرى على هذه المجموعة. هل هناك شيء يفاجئك؟ + +## مقارنة البيانات + +يمكنك تجربة مقارنات مختلفة للبيانات المجمعة عن طريق إنشاء محاور جديدة. جرب مقارنة الطول الأقصى للطائر بناءً على فئته: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![مقارنة البيانات](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ar.png) + +لا شيء مفاجئ هنا: الطيور الطنانة لديها أقل طول أقصى مقارنة بالبجع أو الإوز. من الجيد عندما تكون البيانات منطقية! + +يمكنك إنشاء تصورات أكثر إثارة للاهتمام للمخططات الشريطية عن طريق تراكب البيانات. دعنا نُظهر الطول الأدنى والأقصى لفئة معينة من الطيور: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +في هذا الرسم، يمكنك رؤية النطاق لكل فئة طيور من الطول الأدنى والطول الأقصى. يمكنك القول بثقة أنه، بناءً على هذه البيانات، كلما كان الطائر أكبر، كان نطاق طوله أكبر. رائع! + +![القيم المتراكبة](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ar.png) + +## 🚀 تحدٍ + +تقدم مجموعة بيانات الطيور هذه ثروة من المعلومات حول أنواع الطيور المختلفة داخل نظام بيئي معين. ابحث عبر الإنترنت لترى ما إذا كان بإمكانك العثور على مجموعات بيانات أخرى متعلقة بالطيور. تدرب على إنشاء الرسوم البيانية والمخططات حول هذه الطيور لاكتشاف حقائق لم تكن تعرفها. + +## [اختبار بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## المراجعة والدراسة الذاتية + +قدمت لك هذه الدرس الأول بعض المعلومات حول كيفية استخدام Matplotlib لتصور الكميات. قم ببعض البحث حول طرق أخرى للعمل مع مجموعات البيانات للتصور. [Plotly](https://github.com/plotly/plotly.py) هي واحدة لن نغطيها في هذه الدروس، لذا ألقِ نظرة على ما يمكن أن تقدمه. + +## الواجب + +[الخطوط، النقاط، والأشرطة](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/09-visualization-quantities/assignment.md b/translations/ar/3-Data-Visualization/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..65873bba --- /dev/null +++ b/translations/ar/3-Data-Visualization/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# الخطوط، التبعثر والأعمدة + +## التعليمات + +في هذا الدرس، عملت مع مخططات الخطوط، الرسوم المبعثرة، ومخططات الأعمدة لعرض حقائق مثيرة للاهتمام حول هذه المجموعة من البيانات. في هذا الواجب، تعمق أكثر في المجموعة لاكتشاف حقيقة عن نوع معين من الطيور. على سبيل المثال، قم بإنشاء دفتر ملاحظات يعرض كل البيانات المثيرة التي يمكنك اكتشافها عن الإوز الثلجي. استخدم الرسوم الثلاثة المذكورة أعلاه لسرد قصة في دفتر الملاحظات الخاص بك. + +## معايير التقييم + +متميز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يتم تقديم دفتر ملاحظات مع تعليقات جيدة، سرد قوي، ورسوم جذابة | دفتر الملاحظات يفتقد أحد هذه العناصر | دفتر الملاحظات يفتقد عنصرين من هذه العناصر + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/10-visualization-distributions/README.md b/translations/ar/3-Data-Visualization/10-visualization-distributions/README.md new file mode 100644 index 00000000..3ac27765 --- /dev/null +++ b/translations/ar/3-Data-Visualization/10-visualization-distributions/README.md @@ -0,0 +1,218 @@ + +# تصور التوزيعات + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| تصور التوزيعات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +في الدرس السابق، تعلمت بعض الحقائق المثيرة للاهتمام حول مجموعة بيانات عن الطيور في ولاية مينيسوتا. اكتشفت بعض البيانات الخاطئة من خلال تصور القيم الشاذة ونظرت في الفروقات بين فئات الطيور بناءً على أطوالها القصوى. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## استكشاف مجموعة بيانات الطيور + +طريقة أخرى للتعمق في البيانات هي النظر إلى توزيعها، أو كيفية تنظيم البيانات على محور معين. ربما، على سبيل المثال، ترغب في معرفة التوزيع العام في هذه المجموعة من البيانات لأقصى امتداد جناح أو أقصى كتلة جسم للطيور في مينيسوتا. + +دعنا نكتشف بعض الحقائق حول توزيعات البيانات في هذه المجموعة. في ملف _notebook.ipynb_ الموجود في جذر مجلد هذا الدرس، قم باستيراد Pandas وMatplotlib وبياناتك: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +| | الاسم | الاسم العلمي | الفئة | الرتبة | العائلة | الجنس | حالة الحفظ | الطول الأدنى | الطول الأقصى | الكتلة الأدنى | الكتلة القصوى | امتداد الجناح الأدنى | امتداد الجناح الأقصى | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بطة الصفير ذات البطن الأسود | Dendrocygna autumnalis | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | بطة الصفير البنية | Dendrocygna bicolor | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | إوزة الثلج | Anser caerulescens | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | إوزة روس | Anser rossii | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | الإوزة البيضاء الكبيرة | Anser albifrons | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +بشكل عام، يمكنك النظر بسرعة إلى كيفية توزيع البيانات باستخدام مخطط الانتشار كما فعلنا في الدرس السابق: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +![الطول الأقصى لكل رتبة](../../../../translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ar.png) + +هذا يعطي لمحة عامة عن التوزيع العام لطول الجسم لكل رتبة من الطيور، ولكنه ليس الطريقة المثلى لعرض التوزيعات الحقيقية. عادةً ما يتم التعامل مع هذه المهمة من خلال إنشاء مخطط هيستوجرام. + +## العمل مع الهيستوجرامات + +يوفر Matplotlib طرقًا ممتازة لتصور توزيع البيانات باستخدام الهيستوجرامات. يشبه هذا النوع من الرسوم البيانية المخطط الشريطي حيث يمكن رؤية التوزيع من خلال ارتفاع وانخفاض الأشرطة. لإنشاء هيستوجرام، تحتاج إلى بيانات رقمية. لإنشاء هيستوجرام، يمكنك رسم مخطط مع تحديد النوع كـ 'hist' للهيستوجرام. يعرض هذا المخطط توزيع MaxBodyMass لنطاق البيانات الرقمي للمجموعة بأكملها. من خلال تقسيم مصفوفة البيانات إلى صناديق أصغر، يمكنه عرض توزيع قيم البيانات: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![التوزيع على المجموعة الكاملة](../../../../translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ar.png) + +كما ترى، تقع معظم الطيور البالغ عددها 400+ في هذه المجموعة ضمن نطاق أقل من 2000 لأقصى كتلة جسم. احصل على مزيد من الفهم للبيانات عن طريق تغيير معلمة `bins` إلى رقم أعلى، مثل 30: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![التوزيع على المجموعة الكاملة مع صناديق أكبر](../../../../translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ar.png) + +يعرض هذا المخطط التوزيع بطريقة أكثر تفصيلًا. يمكن إنشاء مخطط أقل انحيازًا إلى اليسار عن طريق التأكد من اختيار البيانات فقط ضمن نطاق معين: + +قم بتصفية بياناتك للحصول على الطيور التي تقل كتلة أجسامها عن 60، وأظهر 40 `bins`: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![هيستوجرام مفلتر](../../../../translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ar.png) + +✅ جرب بعض الفلاتر ونقاط البيانات الأخرى. لرؤية التوزيع الكامل للبيانات، قم بإزالة الفلتر `['MaxBodyMass']` لعرض التوزيعات المسماة. + +يوفر الهيستوجرام أيضًا تحسينات جميلة للألوان والتسمية لتجربتها: + +قم بإنشاء هيستوجرام ثنائي الأبعاد لمقارنة العلاقة بين توزيعين. دعنا نقارن `MaxBodyMass` مقابل `MaxLength`. يوفر Matplotlib طريقة مدمجة لإظهار التقارب باستخدام ألوان أكثر إشراقًا: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +يبدو أن هناك ارتباطًا متوقعًا بين هذين العنصرين على محور متوقع، مع نقطة تقارب قوية واحدة: + +![مخطط ثنائي الأبعاد](../../../../translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ar.png) + +تعمل الهيستوجرامات بشكل جيد افتراضيًا مع البيانات الرقمية. ماذا لو كنت بحاجة إلى رؤية التوزيعات وفقًا للبيانات النصية؟ + +## استكشاف التوزيعات باستخدام البيانات النصية + +تتضمن هذه المجموعة أيضًا معلومات جيدة حول فئة الطيور وجنسها ونوعها وعائلتها بالإضافة إلى حالة الحفظ الخاصة بها. دعنا نتعمق في معلومات الحفظ هذه. ما هو توزيع الطيور وفقًا لحالة الحفظ الخاصة بها؟ + +> ✅ في مجموعة البيانات، يتم استخدام العديد من الاختصارات لوصف حالة الحفظ. تأتي هذه الاختصارات من [فئات القائمة الحمراء للـ IUCN](https://www.iucnredlist.org/)، وهي منظمة تصنف حالة الأنواع. +> +> - CR: مهددة بالانقراض بشكل حرج +> - EN: مهددة بالانقراض +> - EX: منقرضة +> - LC: أقل قلق +> - NT: قريبة من التهديد +> - VU: معرضة للخطر + +هذه قيم نصية، لذا ستحتاج إلى إجراء تحويل لإنشاء هيستوجرام. باستخدام إطار البيانات filteredBirds، اعرض حالة الحفظ الخاصة بها جنبًا إلى جنب مع امتداد الجناح الأدنى. ماذا ترى؟ + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Min Wingspan') +plt.legend(); +``` + +![تجميع امتداد الجناح وحالة الحفظ](../../../../translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ar.png) + +لا يبدو أن هناك ارتباطًا جيدًا بين امتداد الجناح الأدنى وحالة الحفظ. اختبر عناصر أخرى من مجموعة البيانات باستخدام هذه الطريقة. يمكنك تجربة فلاتر مختلفة أيضًا. هل تجد أي ارتباط؟ + +## مخططات الكثافة + +قد تكون لاحظت أن الهيستوجرامات التي نظرنا إليها حتى الآن "متدرجة" ولا تتدفق بسلاسة في قوس. لعرض مخطط كثافة أكثر سلاسة، يمكنك تجربة مخطط الكثافة. + +للتعامل مع مخططات الكثافة، تعرف على مكتبة رسم جديدة، [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). + +قم بتحميل Seaborn، وجرب مخطط كثافة أساسي: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![مخطط الكثافة](../../../../translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ar.png) + +يمكنك أن ترى كيف يعكس المخطط السابق بيانات امتداد الجناح الأدنى؛ إنه فقط أكثر سلاسة. وفقًا لوثائق Seaborn، "بالمقارنة مع الهيستوجرام، يمكن أن ينتج KDE مخططًا أقل ازدحامًا وأكثر قابلية للتفسير، خاصة عند رسم توزيعات متعددة. ولكن لديه القدرة على إدخال تشوهات إذا كان التوزيع الأساسي محدودًا أو غير سلس. مثل الهيستوجرام، تعتمد جودة التمثيل أيضًا على اختيار معلمات التنعيم الجيدة." [المصدر](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) بمعنى آخر، كما هو الحال دائمًا، ستجعل القيم الشاذة مخططاتك تتصرف بشكل سيئ. + +إذا كنت تريد إعادة النظر في خط MaxBodyMass المتعرج في المخطط الثاني الذي أنشأته، يمكنك تنعيمه بشكل جيد جدًا عن طريق إعادة إنشائه باستخدام هذه الطريقة: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![خط الكتلة الجسمية السلس](../../../../translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ar.png) + +إذا كنت تريد خطًا سلسًا، ولكن ليس سلسًا جدًا، قم بتحرير معلمة `bw_adjust`: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![خط الكتلة الجسمية الأقل سلاسة](../../../../translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ar.png) + +✅ اقرأ عن المعلمات المتاحة لهذا النوع من المخططات وجربها! + +يوفر هذا النوع من المخططات تصورات تفسيرية جميلة. مع بضع أسطر من التعليمات البرمجية، على سبيل المثال، يمكنك عرض كثافة الكتلة الجسمية القصوى لكل رتبة من الطيور: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![الكتلة الجسمية لكل رتبة](../../../../translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ar.png) + +يمكنك أيضًا رسم كثافة عدة متغيرات في مخطط واحد. قارن بين الطول الأقصى والطول الأدنى للطيور بناءً على حالة الحفظ الخاصة بها: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![كثافات متعددة، متراكبة](../../../../translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ar.png) + +ربما يستحق البحث فيما إذا كان تجمع الطيور "المعرضة للخطر" بناءً على أطوالها ذو دلالة أم لا. + +## 🚀 تحدٍ + +الهيستوجرامات هي نوع أكثر تطورًا من الرسوم البيانية مقارنة بمخططات الانتشار الأساسية أو المخططات الشريطية أو المخططات الخطية. قم بالبحث على الإنترنت للعثور على أمثلة جيدة لاستخدام الهيستوجرامات. كيف يتم استخدامها، ماذا توضح، وفي أي مجالات أو مجالات استقصاء يتم استخدامها عادةً؟ + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## المراجعة والدراسة الذاتية + +في هذا الدرس، استخدمت Matplotlib وبدأت العمل مع Seaborn لإنشاء رسوم بيانية أكثر تطورًا. قم ببعض البحث حول `kdeplot` في Seaborn، وهو "منحنى كثافة احتمالية مستمرة في بعد واحد أو أكثر". اقرأ [الوثائق](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) لفهم كيفية عمله. + +## الواجب + +[طبق مهاراتك](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/10-visualization-distributions/assignment.md b/translations/ar/3-Data-Visualization/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..9d68b68d --- /dev/null +++ b/translations/ar/3-Data-Visualization/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# طبق مهاراتك + +## التعليمات + +حتى الآن، عملت مع مجموعة بيانات الطيور في مينيسوتا لاكتشاف معلومات حول كميات الطيور وكثافة السكان. قم بتطبيق هذه التقنيات من خلال تجربة مجموعة بيانات مختلفة، ربما مأخوذة من [Kaggle](https://www.kaggle.com/). قم بإنشاء دفتر ملاحظات يروي قصة حول هذه المجموعة من البيانات، وتأكد من استخدام الرسوم البيانية الشريطية عند مناقشتها. + +## المعايير + +متميز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يتم تقديم دفتر ملاحظات يحتوي على تعليقات توضيحية حول مجموعة البيانات هذه، بما في ذلك مصدرها، ويستخدم ما لا يقل عن 5 رسوم بيانية شريطية لاكتشاف حقائق حول البيانات. | يتم تقديم دفتر ملاحظات يحتوي على تعليقات توضيحية غير مكتملة أو أخطاء. | يتم تقديم دفتر ملاحظات بدون تعليقات توضيحية ويتضمن أخطاء. + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/11-visualization-proportions/README.md b/translations/ar/3-Data-Visualization/11-visualization-proportions/README.md new file mode 100644 index 00000000..5cf793a1 --- /dev/null +++ b/translations/ar/3-Data-Visualization/11-visualization-proportions/README.md @@ -0,0 +1,204 @@ + +# تصور النسب + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|تصور النسب - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +في هذا الدرس، ستستخدم مجموعة بيانات تركز على الطبيعة لتصور النسب، مثل عدد الأنواع المختلفة من الفطريات الموجودة في مجموعة بيانات عن الفطر. دعونا نستكشف هذه الفطريات المثيرة للاهتمام باستخدام مجموعة بيانات مأخوذة من Audubon تحتوي على تفاصيل حول 23 نوعًا من الفطر ذو الخياشيم من عائلتي Agaricus وLepiota. ستجرب تصورات شهية مثل: + +- مخططات دائرية 🥧 +- مخططات دونات 🍩 +- مخططات وافل 🧇 + +> 💡 مشروع مثير للاهتمام جدًا يسمى [Charticulator](https://charticulator.com) من Microsoft Research يقدم واجهة مجانية للسحب والإفلات لإنشاء تصورات البيانات. في أحد دروسهم التعليمية، يستخدمون أيضًا مجموعة بيانات الفطر هذه! لذا يمكنك استكشاف البيانات وتعلم المكتبة في نفس الوقت: [درس Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## تعرف على الفطر الخاص بك 🍄 + +الفطر مثير جدًا للاهتمام. دعونا نستورد مجموعة بيانات لدراسته: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +يتم طباعة جدول يحتوي على بيانات رائعة للتحليل: + +| الفئة | شكل القبعة | سطح القبعة | لون القبعة | كدمات | الرائحة | ارتباط الخياشيم | تباعد الخياشيم | حجم الخياشيم | لون الخياشيم | شكل الساق | جذر الساق | سطح الساق فوق الحلقة | سطح الساق تحت الحلقة | لون الساق فوق الحلقة | لون الساق تحت الحلقة | نوع الحجاب | لون الحجاب | عدد الحلقات | نوع الحلقة | لون طباعة الأبواغ | الكثافة | الموطن | +| ---------- | ---------- | ----------- | ---------- | ------ | ------- | ---------------- | -------------- | ------------ | ------------ | ---------- | --------- | -------------------- | -------------------- | -------------------- | -------------------- | ---------- | ---------- | ------------ | ---------- | ----------------- | --------- | ------ | +| سام | محدب | أملس | بني | كدمات | نفاذ | حر | قريب | ضيق | أسود | متسع | متساوٍ | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | أسود | متناثر | حضري | +| صالح للأكل | محدب | أملس | أصفر | كدمات | لوزي | حر | قريب | عريض | أسود | متسع | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | بني | كثير | أعشاب | +| صالح للأكل | جرس | أملس | أبيض | كدمات | يانسون | حر | قريب | عريض | بني | متسع | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | بني | كثير | مروج | +| سام | محدب | متقشر | أبيض | كدمات | نفاذ | حر | قريب | ضيق | بني | متسع | متساوٍ | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | أسود | متناثر | حضري | + +على الفور، تلاحظ أن جميع البيانات نصية. ستحتاج إلى تحويل هذه البيانات لتتمكن من استخدامها في مخطط. في الواقع، يتم تمثيل معظم البيانات ككائن: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +الناتج هو: + +```output +Index(['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'], + dtype='object') +``` +خذ هذه البيانات وحوّل العمود 'الفئة' إلى فئة: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` + +```python +edibleclass=mushrooms.groupby(['class']).count() +edibleclass +``` + +الآن، إذا قمت بطباعة بيانات الفطر، يمكنك أن ترى أنها تم تجميعها في فئات وفقًا لفئة السام/الصالح للأكل: + +| | شكل القبعة | سطح القبعة | لون القبعة | كدمات | الرائحة | ارتباط الخياشيم | تباعد الخياشيم | حجم الخياشيم | لون الخياشيم | شكل الساق | ... | سطح الساق تحت الحلقة | لون الساق فوق الحلقة | لون الساق تحت الحلقة | نوع الحجاب | لون الحجاب | عدد الحلقات | نوع الحلقة | لون طباعة الأبواغ | الكثافة | الموطن | +| ---------- | ---------- | ----------- | ---------- | ------ | ------- | ---------------- | -------------- | ------------ | ------------ | ---------- | --- | -------------------- | -------------------- | -------------------- | ---------- | ---------- | ------------ | ---------- | ----------------- | --------- | ------ | +| الفئة | | | | | | | | | | | | | | | | | | | | | | +| صالح للأكل | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| سام | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +إذا اتبعت الترتيب المقدم في هذا الجدول لإنشاء تسميات فئاتك، يمكنك إنشاء مخطط دائري: + +## دائري! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +ها هو، مخطط دائري يظهر نسب هذه البيانات وفقًا لهاتين الفئتين من الفطر. من المهم جدًا ترتيب التسميات بشكل صحيح، خاصة هنا، لذا تأكد من التحقق من ترتيب بناء مصفوفة التسميات! + +![مخطط دائري](../../../../translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ar.png) + +## دونات! + +مخطط دائري أكثر إثارة بصريًا هو مخطط الدونات، وهو مخطط دائري مع ثقب في المنتصف. دعونا نلقي نظرة على بياناتنا باستخدام هذه الطريقة. + +ألقِ نظرة على البيئات المختلفة التي ينمو فيها الفطر: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +هنا، تقوم بتجميع بياناتك حسب البيئة. هناك 7 بيئات مدرجة، لذا استخدمها كتسميات لمخطط الدونات الخاص بك: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![مخطط دونات](../../../../translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ar.png) + +يرسم هذا الكود مخططًا ودائرة مركزية، ثم يضيف تلك الدائرة المركزية في المخطط. قم بتعديل عرض الدائرة المركزية عن طريق تغيير `0.40` إلى قيمة أخرى. + +يمكن تعديل مخططات الدونات بطرق عدة لتغيير التسميات. يمكن تسليط الضوء على التسميات لتحسين القراءة. تعرف على المزيد في [المستندات](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut). + +الآن بعد أن عرفت كيفية تجميع بياناتك وعرضها كمخطط دائري أو دونات، يمكنك استكشاف أنواع أخرى من المخططات. جرب مخطط الوافل، وهو مجرد طريقة مختلفة لاستكشاف الكميات. + +## وافل! + +مخطط "الوافل" هو طريقة مختلفة لتصور الكميات كمصفوفة ثنائية الأبعاد من المربعات. جرب تصور الكميات المختلفة لألوان قبعات الفطر في هذه المجموعة. للقيام بذلك، تحتاج إلى تثبيت مكتبة مساعدة تسمى [PyWaffle](https://pypi.org/project/pywaffle/) واستخدام Matplotlib: + +```python +pip install pywaffle +``` + +اختر جزءًا من بياناتك لتجميعه: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +قم بإنشاء مخطط وافل عن طريق إنشاء تسميات ثم تجميع بياناتك: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +باستخدام مخطط الوافل، يمكنك رؤية نسب ألوان قبعات الفطر في هذه المجموعة بوضوح. من المثير للاهتمام أن هناك العديد من الفطر ذي القبعات الخضراء! + +![مخطط وافل](../../../../translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ar.png) + +✅ يدعم PyWaffle الرموز داخل المخططات التي تستخدم أي رمز متاح في [Font Awesome](https://fontawesome.com/). قم ببعض التجارب لإنشاء مخطط وافل أكثر إثارة باستخدام الرموز بدلاً من المربعات. + +في هذا الدرس، تعلمت ثلاث طرق لتصور النسب. أولاً، تحتاج إلى تجميع بياناتك في فئات ثم تقرر الطريقة الأفضل لعرض البيانات - دائري، دونات، أو وافل. جميعها لذيذة وتمنح المستخدم لمحة فورية عن مجموعة البيانات. + +## 🚀 تحدٍ + +حاول إعادة إنشاء هذه المخططات الشهية في [Charticulator](https://charticulator.com). +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## المراجعة والدراسة الذاتية + +أحيانًا لا يكون من الواضح متى يجب استخدام مخطط دائري، دونات، أو وافل. إليك بعض المقالات لقراءتها حول هذا الموضوع: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +قم ببعض البحث للعثور على مزيد من المعلومات حول هذا القرار الصعب. + +## الواجب + +[جربه في Excel](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/11-visualization-proportions/assignment.md b/translations/ar/3-Data-Visualization/11-visualization-proportions/assignment.md new file mode 100644 index 00000000..31a952f4 --- /dev/null +++ b/translations/ar/3-Data-Visualization/11-visualization-proportions/assignment.md @@ -0,0 +1,25 @@ + +# جربها في Excel + +## التعليمات + +هل تعلم أنه يمكنك إنشاء مخططات دونات، دائرية، ووافل في Excel؟ باستخدام مجموعة بيانات من اختيارك، قم بإنشاء هذه المخططات الثلاثة مباشرة في جدول بيانات Excel. + +## المعايير + +| متميز | مقبول | يحتاج إلى تحسين | +| ---------------------------------------------------- | ---------------------------------------------- | --------------------------------------------------- | +| يتم تقديم جدول بيانات Excel يحتوي على جميع المخططات الثلاثة | يتم تقديم جدول بيانات Excel يحتوي على مخططين فقط | يتم تقديم جدول بيانات Excel يحتوي على مخطط واحد فقط | + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذه الوثيقة باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/12-visualization-relationships/README.md b/translations/ar/3-Data-Visualization/12-visualization-relationships/README.md new file mode 100644 index 00000000..b2ed4dbb --- /dev/null +++ b/translations/ar/3-Data-Visualization/12-visualization-relationships/README.md @@ -0,0 +1,187 @@ + +# تصور العلاقات: كل شيء عن العسل 🍯 + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|تصور العلاقات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +استمرارًا في التركيز على الطبيعة في بحثنا، دعونا نستكشف تصورات مثيرة للاهتمام لعرض العلاقات بين أنواع العسل المختلفة، استنادًا إلى مجموعة بيانات مستمدة من [وزارة الزراعة الأمريكية](https://www.nass.usda.gov/About_NASS/index.php). + +تتضمن هذه المجموعة حوالي 600 عنصر تعرض إنتاج العسل في العديد من الولايات الأمريكية. على سبيل المثال، يمكنك الاطلاع على عدد المستعمرات، الإنتاجية لكل مستعمرة، إجمالي الإنتاج، المخزون، السعر لكل رطل، وقيمة العسل المنتج في ولاية معينة من عام 1998 إلى 2012، مع صف واحد لكل سنة لكل ولاية. + +سيكون من المثير تصور العلاقة بين إنتاج ولاية معينة في السنة، على سبيل المثال، وسعر العسل في تلك الولاية. بدلاً من ذلك، يمكنك تصور العلاقة بين إنتاجية العسل لكل مستعمرة في الولايات المختلفة. تغطي هذه الفترة الزمنية ظهور ظاهرة انهيار المستعمرات (CCD) التي شوهدت لأول مرة في عام 2006 (http://npic.orst.edu/envir/ccd.html)، مما يجعلها مجموعة بيانات مؤثرة للدراسة. 🐝 + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +في هذا الدرس، يمكنك استخدام مكتبة Seaborn، التي استخدمتها من قبل، كأداة رائعة لتصور العلاقات بين المتغيرات. من المثير للاهتمام بشكل خاص استخدام وظيفة `relplot` في Seaborn التي تتيح إنشاء مخططات نقطية وخطية بسرعة لتصور '[العلاقات الإحصائية](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)'، مما يساعد عالم البيانات على فهم كيفية ارتباط المتغيرات ببعضها البعض. + +## المخططات النقطية + +استخدم مخططًا نقطيًا لعرض كيفية تطور سعر العسل عامًا بعد عام لكل ولاية. تسهل Seaborn باستخدام `relplot` تجميع بيانات الولايات وعرض النقاط للبيانات الفئوية والرقمية. + +لنبدأ باستيراد البيانات ومكتبة Seaborn: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +ستلاحظ أن بيانات العسل تحتوي على عدة أعمدة مثيرة للاهتمام، بما في ذلك السنة والسعر لكل رطل. دعونا نستكشف هذه البيانات، مجمعة حسب الولايات الأمريكية: + +| الولاية | عدد المستعمرات | الإنتاجية لكل مستعمرة | إجمالي الإنتاج | المخزون | السعر لكل رطل | قيمة الإنتاج | السنة | +|---------|----------------|-----------------------|----------------|---------|---------------|--------------|-------| +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000| 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + +قم بإنشاء مخطط نقطي أساسي لعرض العلاقة بين السعر لكل رطل من العسل وولاية المنشأ. اجعل المحور `y` طويلًا بما يكفي لعرض جميع الولايات: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ar.png) + +الآن، اعرض نفس البيانات باستخدام نظام ألوان مستوحى من العسل لإظهار كيفية تطور السعر على مر السنين. يمكنك القيام بذلك عن طريق إضافة معلمة 'hue' لإظهار التغيير عامًا بعد عام: + +> ✅ تعرف على المزيد حول [لوحات الألوان التي يمكنك استخدامها في Seaborn](https://seaborn.pydata.org/tutorial/color_palettes.html) - جرب نظام ألوان قوس قزح الجميل! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ar.png) + +مع هذا التغيير في نظام الألوان، يمكنك أن ترى بوضوح أن هناك تقدمًا قويًا على مر السنين فيما يتعلق بسعر العسل لكل رطل. في الواقع، إذا نظرت إلى مجموعة بيانات عينة للتحقق (اختر ولاية معينة، مثل أريزونا)، يمكنك رؤية نمط لزيادة الأسعار عامًا بعد عام، مع بعض الاستثناءات: + +| الولاية | عدد المستعمرات | الإنتاجية لكل مستعمرة | إجمالي الإنتاج | المخزون | السعر لكل رطل | قيمة الإنتاج | السنة | +|---------|----------------|-----------------------|----------------|---------|---------------|--------------|-------| +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +طريقة أخرى لتصور هذا التقدم هي استخدام الحجم بدلاً من اللون. بالنسبة للمستخدمين الذين يعانون من عمى الألوان، قد تكون هذه الطريقة أفضل. قم بتعديل التصور لإظهار زيادة السعر من خلال زيادة محيط النقاط: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +يمكنك رؤية حجم النقاط يزداد تدريجيًا. + +![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ar.png) + +هل هذا مجرد حالة بسيطة من العرض والطلب؟ بسبب عوامل مثل تغير المناخ وانهيار المستعمرات، هل هناك كمية أقل من العسل المتاحة للشراء عامًا بعد عام، وبالتالي ترتفع الأسعار؟ + +لاكتشاف العلاقة بين بعض المتغيرات في هذه المجموعة، دعونا نستكشف بعض المخططات الخطية. + +## المخططات الخطية + +سؤال: هل هناك ارتفاع واضح في سعر العسل لكل رطل عامًا بعد عام؟ يمكنك اكتشاف ذلك بسهولة عن طريق إنشاء مخطط خطي واحد: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +الإجابة: نعم، مع بعض الاستثناءات حول عام 2003: + +![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ar.png) + +✅ لأن Seaborn يقوم بتجميع البيانات حول خط واحد، فإنه يعرض "القياسات المتعددة عند كل قيمة x عن طريق رسم المتوسط وفاصل الثقة بنسبة 95% حول المتوسط". [المصدر](https://seaborn.pydata.org/tutorial/relational.html). يمكن تعطيل هذا السلوك الذي يستغرق وقتًا بإضافة `ci=None`. + +سؤال: حسنًا، في عام 2003، هل يمكننا أيضًا رؤية زيادة في إمدادات العسل؟ ماذا لو نظرت إلى إجمالي الإنتاج عامًا بعد عام؟ + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ar.png) + +الإجابة: ليس حقًا. إذا نظرت إلى إجمالي الإنتاج، يبدو أنه زاد في تلك السنة المحددة، على الرغم من أن كمية العسل المنتجة بشكل عام كانت في انخفاض خلال هذه السنوات. + +سؤال: في هذه الحالة، ما الذي يمكن أن يكون قد تسبب في ارتفاع سعر العسل حول عام 2003؟ + +لاكتشاف ذلك، يمكنك استكشاف شبكة الأوجه. + +## شبكات الأوجه + +تأخذ شبكات الأوجه جانبًا واحدًا من مجموعة البيانات الخاصة بك (في حالتنا، يمكنك اختيار 'السنة' لتجنب إنتاج عدد كبير جدًا من الأوجه). يمكن لـ Seaborn بعد ذلك إنشاء مخطط لكل من هذه الأوجه للإحداثيات x وy التي اخترتها للمقارنة بسهولة أكبر. هل يبرز عام 2003 في هذا النوع من المقارنة؟ + +قم بإنشاء شبكة أوجه باستخدام `relplot` كما هو موصى به في [وثائق Seaborn](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid). + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +في هذا التصور، يمكنك مقارنة الإنتاجية لكل مستعمرة وعدد المستعمرات عامًا بعد عام، جنبًا إلى جنب مع التفاف مضبوط على 3 للأعمدة: + +![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ar.png) + +بالنسبة لهذه المجموعة من البيانات، لا يبدو أن هناك شيء مميز فيما يتعلق بعدد المستعمرات وإنتاجيتها، عامًا بعد عام وولاية بعد ولاية. هل هناك طريقة مختلفة للبحث عن علاقة بين هذين المتغيرين؟ + +## مخططات الخطوط المزدوجة + +جرب مخططًا متعدد الخطوط عن طريق تراكب مخططين خطيين فوق بعضهما البعض، باستخدام وظيفة 'despine' في Seaborn لإزالة الحواف العلوية واليمنى، واستخدام `ax.twinx` [المستمدة من Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). تتيح Twinx للمخطط مشاركة المحور x وعرض محورين y. لذا، اعرض الإنتاجية لكل مستعمرة وعدد المستعمرات، متراكبين: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ar.png) + +بينما لا يظهر شيء واضح حول عام 2003، فإنه يسمح لنا بإنهاء هذا الدرس بملاحظة أكثر تفاؤلاً: على الرغم من الانخفاض العام في عدد المستعمرات، فإن عدد المستعمرات يستقر حتى لو كانت إنتاجيتها لكل مستعمرة تتناقص. + +هيا، أيها النحل، استمروا! 🐝❤️ + +## 🚀 تحدٍ + +في هذا الدرس، تعلمت المزيد عن استخدامات المخططات النقطية وشبكات الخطوط، بما في ذلك شبكات الأوجه. تحدَّ نفسك لإنشاء شبكة أوجه باستخدام مجموعة بيانات مختلفة، ربما واحدة استخدمتها في الدروس السابقة. لاحظ الوقت الذي تستغرقه لإنشائها ومدى حاجتك إلى الحذر بشأن عدد الأوجه التي تحتاج إلى رسمها باستخدام هذه التقنيات. + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## المراجعة والدراسة الذاتية + +يمكن أن تكون المخططات الخطية بسيطة أو معقدة للغاية. قم ببعض القراءة في [وثائق Seaborn](https://seaborn.pydata.org/generated/seaborn.lineplot.html) حول الطرق المختلفة التي يمكنك من خلالها بناؤها. حاول تحسين المخططات الخطية التي أنشأتها في هذا الدرس باستخدام طرق أخرى مذكورة في الوثائق. + +## الواجب + +[اغمر نفسك في خلية النحل](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/12-visualization-relationships/assignment.md b/translations/ar/3-Data-Visualization/12-visualization-relationships/assignment.md new file mode 100644 index 00000000..33117a38 --- /dev/null +++ b/translations/ar/3-Data-Visualization/12-visualization-relationships/assignment.md @@ -0,0 +1,25 @@ + +# الغوص في خلية النحل + +## التعليمات + +في هذه الدرس، بدأت بالنظر في مجموعة بيانات حول النحل وإنتاج العسل على مدى فترة زمنية شهدت خسائر في عدد مستعمرات النحل بشكل عام. تعمق أكثر في هذه المجموعة من البيانات وقم ببناء دفتر ملاحظات يمكنه سرد قصة صحة النحل، ولاية بولاية وسنة بسنة. هل تكتشف أي شيء مثير للاهتمام حول هذه المجموعة من البيانات؟ + +## معايير التقييم + +| ممتاز | مقبول | يحتاج إلى تحسين | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------- | ---------------------------------------- | +| يتم تقديم دفتر ملاحظات يحتوي على قصة مشروحة مع ثلاثة رسوم بيانية مختلفة على الأقل تظهر جوانب من مجموعة البيانات، ولاية بولاية وسنة بسنة | يفتقر دفتر الملاحظات إلى أحد هذه العناصر | يفتقر دفتر الملاحظات إلى عنصرين من هذه العناصر | + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/13-meaningful-visualizations/README.md b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/README.md new file mode 100644 index 00000000..de1b1801 --- /dev/null +++ b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/README.md @@ -0,0 +1,182 @@ + +# إنشاء تصورات ذات معنى + +|![رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| تصورات ذات معنى - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +> "إذا عذبت البيانات بما فيه الكفاية، ستعترف بأي شيء" -- [رونالد كوس](https://en.wikiquote.org/wiki/Ronald_Coase) + +إحدى المهارات الأساسية لعالم البيانات هي القدرة على إنشاء تصور بيانات ذو معنى يساعد في الإجابة على الأسئلة التي قد تكون لديك. قبل البدء في تصور البيانات، يجب التأكد من تنظيفها وإعدادها كما فعلت في الدروس السابقة. بعد ذلك، يمكنك البدء في تحديد الطريقة الأفضل لعرض البيانات. + +في هذا الدرس، ستراجع: + +1. كيفية اختيار نوع الرسم البياني المناسب +2. كيفية تجنب الرسوم البيانية المضللة +3. كيفية العمل مع الألوان +4. كيفية تنسيق الرسوم البيانية لتحسين القراءة +5. كيفية إنشاء حلول رسوم بيانية متحركة أو ثلاثية الأبعاد +6. كيفية إنشاء تصور إبداعي + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## اختيار نوع الرسم البياني المناسب + +في الدروس السابقة، جربت إنشاء جميع أنواع تصورات البيانات المثيرة باستخدام مكتبات مثل Matplotlib وSeaborn. بشكل عام، يمكنك اختيار [نوع الرسم البياني المناسب](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) للسؤال الذي تطرحه باستخدام هذا الجدول: + +| تحتاج إلى: | يجب أن تستخدم: | +| -------------------------- | ------------------------------- | +| عرض اتجاهات البيانات عبر الزمن | خط | +| مقارنة الفئات | عمود، دائري | +| مقارنة الإجماليات | دائري، عمود مكدس | +| عرض العلاقات | مبعثر، خط، واجهة، خط مزدوج | +| عرض التوزيعات | مبعثر، هيستوجرام، صندوق | +| عرض النسب | دائري، دونات، وافل | + +> ✅ بناءً على تكوين بياناتك، قد تحتاج إلى تحويلها من نص إلى أرقام للحصول على دعم الرسم البياني المطلوب. + +## تجنب التضليل + +حتى إذا كان عالم البيانات حريصًا على اختيار الرسم البياني المناسب للبيانات المناسبة، هناك العديد من الطرق التي يمكن بها عرض البيانات لإثبات نقطة معينة، غالبًا على حساب البيانات نفسها. هناك العديد من الأمثلة على الرسوم البيانية والمخططات المضللة! + +[![كيف تكذب الرسوم البيانية بواسطة ألبرتو كايرو](../../../../translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ar.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "كيف تكذب الرسوم البيانية") + +> 🎥 انقر على الصورة أعلاه لمشاهدة حديث في مؤتمر حول الرسوم البيانية المضللة + +هذا الرسم البياني يعكس المحور X ليظهر عكس الحقيقة بناءً على التاريخ: + +![رسم بياني سيء 1](../../../../translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ar.png) + +[هذا الرسم البياني](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) أكثر تضليلًا، حيث يجذب العين إلى اليمين لتستنتج أن حالات COVID قد انخفضت بمرور الوقت في مختلف المقاطعات. في الواقع، إذا نظرت عن كثب إلى التواريخ، ستجد أنها أعيد ترتيبها لإظهار هذا الاتجاه التنازلي المضلل. + +![رسم بياني سيء 2](../../../../translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ar.jpg) + +هذا المثال الشهير يستخدم اللون ومحور Y المقلوب للتضليل: بدلاً من الاستنتاج أن وفيات الأسلحة ارتفعت بعد تمرير تشريعات صديقة للأسلحة، يتم خداع العين لتعتقد أن العكس صحيح: + +![رسم بياني سيء 3](../../../../translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ar.jpg) + +هذا الرسم الغريب يظهر كيف يمكن التلاعب بالنسب، بشكل مضحك: + +![رسم بياني سيء 4](../../../../translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ar.jpg) + +مقارنة الأشياء غير القابلة للمقارنة هي خدعة أخرى مشبوهة. هناك [موقع ويب رائع](https://tylervigen.com/spurious-correlations) يعرض "ارتباطات زائفة" تظهر "حقائق" تربط بين أشياء مثل معدل الطلاق في ولاية مين واستهلاك المارجرين. مجموعة على Reddit تجمع أيضًا [الاستخدامات السيئة](https://www.reddit.com/r/dataisugly/top/?t=all) للبيانات. + +من المهم فهم مدى سهولة خداع العين بواسطة الرسوم البيانية المضللة. حتى إذا كانت نية عالم البيانات جيدة، فإن اختيار نوع سيء من الرسم البياني، مثل الرسم الدائري الذي يظهر العديد من الفئات، يمكن أن يكون مضللًا. + +## الألوان + +رأيت في الرسم البياني الخاص بـ"عنف الأسلحة في فلوريدا" أعلاه كيف يمكن أن يوفر اللون طبقة إضافية من المعنى للرسوم البيانية، خاصة تلك التي لم يتم تصميمها باستخدام مكتبات مثل Matplotlib وSeaborn التي تأتي مع مكتبات ألوان ولوحات ألوان متنوعة ومراجعة. إذا كنت تصمم رسمًا بيانيًا يدويًا، قم بدراسة بسيطة عن [نظرية الألوان](https://colormatters.com/color-and-design/basic-color-theory). + +> ✅ كن على دراية، عند تصميم الرسوم البيانية، أن إمكانية الوصول هي جانب مهم من التصور. قد يكون بعض المستخدمين يعانون من عمى الألوان - هل يعرض الرسم البياني بشكل جيد للمستخدمين ذوي الإعاقات البصرية؟ + +كن حذرًا عند اختيار الألوان لرسمك البياني، حيث يمكن أن ينقل اللون معنى قد لا تقصده. "السيدات الورديات" في الرسم البياني الخاص بـ"الطول" أعلاه ينقلن معنى "أنثوي" مميز يضيف إلى غرابة الرسم البياني نفسه. + +بينما قد يختلف [معنى اللون](https://colormatters.com/color-symbolism/the-meanings-of-colors) في أجزاء مختلفة من العالم، ويميل إلى التغير في المعنى وفقًا لدرجته. بشكل عام، تشمل معاني الألوان: + +| اللون | المعنى | +| ------- | ------------------- | +| الأحمر | القوة | +| الأزرق | الثقة، الولاء | +| الأصفر | السعادة، الحذر | +| الأخضر | البيئة، الحظ، الحسد | +| البنفسجي| السعادة | +| البرتقالي| الحيوية | + +إذا طُلب منك إنشاء رسم بياني بألوان مخصصة، تأكد من أن رسومك البيانية قابلة للوصول وأن اللون الذي تختاره يتوافق مع المعنى الذي تحاول نقله. + +## تنسيق الرسوم البيانية لتحسين القراءة + +الرسوم البيانية ليست ذات معنى إذا لم تكن قابلة للقراءة! خذ لحظة للنظر في تنسيق عرض الرسم البياني بحيث يتناسب بشكل جيد مع بياناتك. إذا كان هناك متغير واحد (مثل جميع الولايات الخمسين) يحتاج إلى العرض، فاعرضها عموديًا على المحور Y إن أمكن لتجنب الرسم البياني الذي يتطلب التمرير أفقيًا. + +قم بتسمية المحاور، قدم مفتاحًا إذا لزم الأمر، وقدم تلميحات لتحسين فهم البيانات. + +إذا كانت بياناتك نصية وطويلة على المحور X، يمكنك إمالة النص لتحسين القراءة. [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) يقدم رسمًا ثلاثي الأبعاد إذا كانت بياناتك تدعمه. يمكن إنتاج تصورات بيانات متقدمة باستخدام `mpl_toolkits.mplot3d`. + +![رسوم ثلاثية الأبعاد](../../../../translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ar.png) + +## العرض المتحرك والرسوم ثلاثية الأبعاد + +بعض أفضل تصورات البيانات اليوم تكون متحركة. شيرلي وو لديها أمثلة مذهلة باستخدام D3، مثل '[زهور الأفلام](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)'، حيث يمثل كل زهرة تصورًا لفيلم. مثال آخر للجارديان هو 'باصات الخارج'، تجربة تفاعلية تجمع بين التصورات مع Greensock وD3 بالإضافة إلى مقال سردي يظهر كيف تتعامل مدينة نيويورك مع مشكلة المشردين عن طريق نقلهم خارج المدينة. + +![باصات](../../../../translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ar.png) + +> "باصات الخارج: كيف تنقل أمريكا مشرديها" من [الجارديان](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). تصورات بواسطة نادية بريمر وشيرلي وو + +بينما هذا الدرس غير كافٍ للتعمق في تعليم هذه المكتبات القوية للتصور، جرب استخدام D3 في تطبيق Vue.js باستخدام مكتبة لعرض تصور لرواية "العلاقات الخطرة" كشبكة اجتماعية متحركة. + +> "العلاقات الخطرة" هي رواية رسائلية، أو رواية تُعرض كسلسلة من الرسائل. كتبت في عام 1782 بواسطة شودرلو دي لاكلو، تحكي قصة المناورات الاجتماعية القاسية وغير الأخلاقية لشخصيتين متنافستين من الأرستقراطية الفرنسية في أواخر القرن الثامن عشر، الفيكونت دي فالمونت والماركيزة دي ميرتويل. كلاهما يلقى حتفه في النهاية ولكن ليس قبل أن يتسبب في قدر كبير من الضرر الاجتماعي. تتكشف الرواية كسلسلة من الرسائل المكتوبة لأشخاص مختلفين في دوائرهم، تخطط للانتقام أو ببساطة لإثارة المشاكل. قم بإنشاء تصور لهذه الرسائل لاكتشاف الشخصيات الرئيسية في السرد، بصريًا. + +ستكمل تطبيق ويب يعرض عرضًا متحركًا لهذه الشبكة الاجتماعية. يستخدم التطبيق مكتبة تم إنشاؤها لإنشاء [تصور لشبكة](https://github.com/emiliorizzo/vue-d3-network) باستخدام Vue.js وD3. عندما يكون التطبيق قيد التشغيل، يمكنك سحب العقد على الشاشة لتحريك البيانات. + +![العلاقات](../../../../translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ar.png) + +## المشروع: إنشاء رسم بياني لعرض شبكة باستخدام D3.js + +> يتضمن مجلد هذا الدرس مجلدًا يحتوي على الحل حيث يمكنك العثور على المشروع المكتمل كمرجع. + +1. اتبع التعليمات في ملف README.md الموجود في جذر مجلد البداية. تأكد من تشغيل NPM وNode.js على جهازك قبل تثبيت تبعيات المشروع. + +2. افتح مجلد `starter/src`. ستجد مجلدًا باسم `assets` يحتوي على ملف .json يحتوي على جميع الرسائل من الرواية، مرقمة، مع تعليقات "إلى" و"من". + +3. أكمل الكود في `components/Nodes.vue` لتمكين التصور. ابحث عن الطريقة المسماة `createLinks()` وأضف الحلقة المتداخلة التالية. + +قم بتكرار كائن .json لالتقاط بيانات "إلى" و"من" للرسائل وبناء كائن `links` بحيث يمكن للمكتبة التصورية استهلاكه: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +قم بتشغيل التطبيق من الطرفية (npm run serve) واستمتع بالتصور! + +## 🚀 التحدي + +قم بجولة على الإنترنت لاكتشاف التصورات المضللة. كيف يخدع المؤلف المستخدم، وهل كان ذلك مقصودًا؟ حاول تصحيح التصورات لإظهار كيف يجب أن تبدو. + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## المراجعة والدراسة الذاتية + +إليك بعض المقالات لقراءتها حول التصورات المضللة للبيانات: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +اطلع على هذه التصورات المثيرة للاهتمام للأصول والتحف التاريخية: + +https://handbook.pubpub.org/ + +اقرأ هذا المقال حول كيفية تحسين التصورات باستخدام الرسوم المتحركة: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## الواجب + +[قم بإنشاء تصور مخصص خاص بك](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/13-meaningful-visualizations/assignment.md b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/assignment.md new file mode 100644 index 00000000..8ad0e354 --- /dev/null +++ b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/assignment.md @@ -0,0 +1,25 @@ + +# قم بإنشاء تصور مخصص خاص بك + +## التعليمات + +باستخدام نموذج الكود في هذا المشروع لإنشاء شبكة اجتماعية، قم بمحاكاة بيانات تفاعلاتك الاجتماعية الخاصة. يمكنك رسم خريطة لاستخدامك لوسائل التواصل الاجتماعي أو إنشاء مخطط يوضح أفراد عائلتك. قم بإنشاء تطبيق ويب مثير يعرض تصورًا فريدًا لشبكة اجتماعية. + +## المعايير + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يتم تقديم مستودع GitHub يحتوي على كود يعمل بشكل صحيح (حاول نشره كتطبيق ويب ثابت) ويحتوي على ملف README مشروح يوضح المشروع | المستودع لا يعمل بشكل صحيح أو غير موثق بشكل جيد | المستودع لا يعمل بشكل صحيح وغير موثق بشكل جيد + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/13-meaningful-visualizations/solution/README.md b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/solution/README.md new file mode 100644 index 00000000..27fcaa50 --- /dev/null +++ b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/solution/README.md @@ -0,0 +1,40 @@ + +# مشروع تصور البيانات Dangerous Liaisons + +لبدء العمل، تحتاج إلى التأكد من أن NPM وNode يعملان على جهازك. قم بتثبيت التبعيات (npm install) ثم قم بتشغيل المشروع محليًا (npm run serve): + +## إعداد المشروع +``` +npm install +``` + +### الترجمة وإعادة التحميل السريع أثناء التطوير +``` +npm run serve +``` + +### الترجمة والتصغير للإنتاج +``` +npm run build +``` + +### فحص وإصلاح الملفات +``` +npm run lint +``` + +### تخصيص الإعدادات +راجع [مرجع الإعدادات](https://cli.vuejs.org/config/). + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/13-meaningful-visualizations/starter/README.md b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/starter/README.md new file mode 100644 index 00000000..6fe6c606 --- /dev/null +++ b/translations/ar/3-Data-Visualization/13-meaningful-visualizations/starter/README.md @@ -0,0 +1,40 @@ + +# مشروع تصور البيانات Dangerous Liaisons + +لبدء العمل، تحتاج إلى التأكد من أن NPM وNode يعملان على جهازك. قم بتثبيت التبعيات (npm install) ثم قم بتشغيل المشروع محليًا (npm run serve): + +## إعداد المشروع +``` +npm install +``` + +### الترجمة وإعادة التحميل التلقائي أثناء التطوير +``` +npm run serve +``` + +### الترجمة والتصغير للإنتاج +``` +npm run build +``` + +### التحقق من التعليمات البرمجية وإصلاح الملفات +``` +npm run lint +``` + +### تخصيص الإعدادات +راجع [مرجع الإعدادات](https://cli.vuejs.org/config/). + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/09-visualization-quantities/README.md b/translations/ar/3-Data-Visualization/R/09-visualization-quantities/README.md new file mode 100644 index 00000000..667b9743 --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/09-visualization-quantities/README.md @@ -0,0 +1,231 @@ + +# تصور الكميات +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| تصور الكميات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +في هذه الدرس، ستتعلم كيفية استخدام بعض مكتبات حزم R المتوفرة لإنشاء تصورات مثيرة للاهتمام حول مفهوم الكمية. باستخدام مجموعة بيانات نظيفة عن الطيور في مينيسوتا، يمكنك اكتشاف العديد من الحقائق المثيرة حول الحياة البرية المحلية. +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## مراقبة عرض الجناح باستخدام ggplot2 +مكتبة ممتازة لإنشاء مخططات ورسوم بيانية بسيطة ومتقدمة من أنواع مختلفة هي [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html). بشكل عام، تتضمن عملية رسم البيانات باستخدام هذه المكتبات تحديد أجزاء إطار البيانات التي تريد استهدافها، إجراء أي تحويلات ضرورية على تلك البيانات، تعيين قيم المحورين x و y، تحديد نوع الرسم البياني الذي تريد عرضه، ثم عرض الرسم البياني. + +`ggplot2` هو نظام لإنشاء الرسوم البيانية بشكل تصريحي، يعتمد على قواعد الرسوم البيانية. [قواعد الرسوم البيانية](https://en.wikipedia.org/wiki/Ggplot2) هي مخطط عام لتصور البيانات يقسم الرسوم البيانية إلى مكونات دلالية مثل المقاييس والطبقات. بمعنى آخر، سهولة إنشاء الرسوم البيانية للبيانات أحادية المتغير أو متعددة المتغيرات باستخدام القليل من الكود يجعل `ggplot2` الحزمة الأكثر شعبية المستخدمة للتصورات في R. يقوم المستخدم بإخبار `ggplot2` بكيفية تعيين المتغيرات للجماليات، العناصر الرسومية التي سيتم استخدامها، ويتولى `ggplot2` الباقي. + +> ✅ الرسم البياني = البيانات + الجماليات + الهندسة +> - البيانات تشير إلى مجموعة البيانات +> - الجماليات تشير إلى المتغيرات التي سيتم دراستها (متغيرات x و y) +> - الهندسة تشير إلى نوع الرسم البياني (رسم خطي، رسم بياني عمودي، إلخ) + +اختر أفضل هندسة (نوع الرسم البياني) وفقًا لبياناتك والقصة التي تريد سردها من خلال الرسم البياني. + +> - لتحليل الاتجاهات: خطي، عمودي +> - لمقارنة القيم: عمودي، دائري، مخطط مبعثر +> - لإظهار كيفية ارتباط الأجزاء بالكل: دائري +> - لإظهار توزيع البيانات: مخطط مبعثر، عمودي +> - لإظهار العلاقات بين القيم: خطي، مخطط مبعثر، فقاعي + +✅ يمكنك أيضًا الاطلاع على هذا [الدليل الوصفي](https://nyu-cdsc.github.io/learningr/assets/data-visualization-2.1.pdf) لـ ggplot2. + +## إنشاء مخطط خطي لقيم عرض جناح الطيور + +افتح وحدة التحكم R واستورد مجموعة البيانات. +> ملاحظة: يتم تخزين مجموعة البيانات في جذر هذا المستودع في مجلد `/data`. + +لنقم باستيراد مجموعة البيانات ومراقبة الرأس (أعلى 5 صفوف) من البيانات. + +```r +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") +head(birds) +``` +الرأس يحتوي على مزيج من النصوص والأرقام: + +| | الاسم | الاسم العلمي | الفئة | الرتبة | العائلة | الجنس | حالة الحفظ | الطول الأدنى | الطول الأقصى | الكتلة الأدنى | الكتلة الأقصى | عرض الجناح الأدنى | عرض الجناح الأقصى | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بطة الصفير ذات البطن الأسود | Dendrocygna autumnalis | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | بطة الصفير ذات اللون البني | Dendrocygna bicolor | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | إوزة الثلج | Anser caerulescens | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | إوزة روس | Anser rossii | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | الإوزة البيضاء الكبيرة | Anser albifrons | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +لنبدأ برسم بعض البيانات الرقمية باستخدام مخطط خطي أساسي. لنفترض أنك تريد عرض عرض الجناح الأقصى لهذه الطيور المثيرة. + +```r +install.packages("ggplot2") +library("ggplot2") +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() +``` +هنا، تقوم بتثبيت حزمة `ggplot2` ثم استيرادها إلى مساحة العمل باستخدام الأمر `library("ggplot2")`. لرسم أي مخطط في ggplot، يتم استخدام وظيفة `ggplot()` وتحديد مجموعة البيانات، متغيرات x و y كسمات. في هذه الحالة، نستخدم وظيفة `geom_line()` لأننا نهدف إلى رسم مخطط خطي. + +![MaxWingspan-lineplot](../../../../../translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ar.png) + +ما الذي تلاحظه فورًا؟ يبدو أن هناك على الأقل نقطة شاذة واحدة - هذا عرض جناح كبير جدًا! عرض جناح يزيد عن 2000 سنتيمتر يساوي أكثر من 20 مترًا - هل هناك تيروداكتيلات تتجول في مينيسوتا؟ دعونا نحقق في الأمر. + +بينما يمكنك إجراء فرز سريع في Excel للعثور على تلك النقاط الشاذة، والتي ربما تكون أخطاء مطبعية، استمر في عملية التصور من داخل الرسم البياني. + +أضف تسميات إلى المحور x لإظهار نوع الطيور المعنية: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() + + theme(axis.text.x = element_text(angle = 45, hjust=1))+ + xlab("Birds") + + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") +``` +نحدد الزاوية في `theme` ونحدد تسميات المحورين x و y في `xlab()` و `ylab()` على التوالي. يعطي `ggtitle()` اسمًا للرسم البياني/المخطط. + +![MaxWingspan-lineplot-improved](../../../../../translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ar.png) + +حتى مع تدوير التسميات إلى 45 درجة، هناك الكثير منها لقراءتها. دعونا نحاول استراتيجية مختلفة: قم بتسمية النقاط الشاذة فقط وضع التسميات داخل الرسم البياني. يمكنك استخدام مخطط مبعثر لتوفير مساحة أكبر للتسمية: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") + +``` +ما الذي يحدث هنا؟ استخدمت وظيفة `geom_point()` لرسم نقاط مبعثرة. مع هذا، أضفت تسميات للطيور التي لديها `MaxWingspan > 500` وأخفيت أيضًا التسميات على المحور x لتقليل الفوضى في الرسم البياني. + +ماذا تكتشف؟ + +![MaxWingspan-scatterplot](../../../../../translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ar.png) + +## تصفية البيانات الخاصة بك + +يبدو أن كل من النسر الأصلع والصقر البراري، رغم أنهما ربما طيور كبيرة جدًا، قد تم تصنيفهما بشكل خاطئ، مع إضافة صفر إضافي إلى عرض جناحهما الأقصى. من غير المحتمل أن تقابل نسرًا أصلعًا بعرض جناح يبلغ 25 مترًا، ولكن إذا حدث ذلك، يرجى إخبارنا! لنقم بإنشاء إطار بيانات جديد بدون هذين الشاذين: + +```r +birds_filtered <- subset(birds, MaxWingspan < 500) + +ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + ylab("Wingspan (CM)") + + xlab("Birds") + + ggtitle("Max Wingspan in Centimeters") + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +``` +قمنا بإنشاء إطار بيانات جديد `birds_filtered` ثم رسمنا مخططًا مبعثرًا. من خلال تصفية النقاط الشاذة، أصبحت بياناتك الآن أكثر تماسكًا وفهمًا. + +![MaxWingspan-scatterplot-improved](../../../../../translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ar.png) + +الآن بعد أن أصبح لدينا مجموعة بيانات أنظف على الأقل من حيث عرض الجناح، دعونا نكتشف المزيد عن هذه الطيور. + +بينما يمكن للمخططات الخطية والمبعثرة عرض معلومات حول قيم البيانات وتوزيعها، نريد التفكير في القيم المتأصلة في هذه المجموعة البيانات. يمكنك إنشاء تصورات للإجابة على الأسئلة التالية حول الكمية: + +> كم عدد فئات الطيور الموجودة، وما هي أعدادها؟ +> كم عدد الطيور المنقرضة، المهددة بالانقراض، النادرة، أو الشائعة؟ +> كم عدد الطيور من مختلف الأجناس والرتب في مصطلحات لينيوس؟ +## استكشاف المخططات العمودية + +المخططات العمودية عملية عندما تحتاج إلى عرض تجميعات البيانات. دعونا نستكشف فئات الطيور الموجودة في هذه المجموعة البيانات لنرى أيها الأكثر شيوعًا من حيث العدد. +لنقم بإنشاء مخطط عمودي على البيانات المصفاة. + +```r +install.packages("dplyr") +install.packages("tidyverse") + +library(lubridate) +library(scales) +library(dplyr) +library(ggplot2) +library(tidyverse) + +birds_filtered %>% group_by(Category) %>% + summarise(n=n(), + MinLength = mean(MinLength), + MaxLength = mean(MaxLength), + MinBodyMass = mean(MinBodyMass), + MaxBodyMass = mean(MaxBodyMass), + MinWingspan=mean(MinWingspan), + MaxWingspan=mean(MaxWingspan)) %>% + gather("key", "value", - c(Category, n)) %>% + ggplot(aes(x = Category, y = value, group = key, fill = key)) + + geom_bar(stat = "identity") + + scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) + + xlab("Category")+ggtitle("Birds of Minnesota") + +``` +في المقتطف التالي، نقوم بتثبيت حزم [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) و[lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) للمساعدة في معالجة وتجميع البيانات من أجل رسم مخطط عمودي مكدس. أولاً، نقوم بتجميع البيانات حسب `Category` الطيور ثم تلخيص الأعمدة `MinLength`, `MaxLength`, `MinBodyMass`,`MaxBodyMass`,`MinWingspan`,`MaxWingspan`. ثم، نرسم المخطط العمودي باستخدام حزمة `ggplot2` ونحدد الألوان للفئات المختلفة والتسميات. + +![Stacked bar chart](../../../../../translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ar.png) + +ومع ذلك، هذا المخطط العمودي غير قابل للقراءة لأنه يحتوي على الكثير من البيانات غير المجمعة. تحتاج إلى اختيار البيانات التي تريد رسمها فقط، لذا دعونا ننظر إلى طول الطيور بناءً على فئتها. + +قم بتصفية بياناتك لتشمل فقط فئة الطيور. + +نظرًا لوجود العديد من الفئات، يمكنك عرض هذا المخطط عموديًا وتعديل ارتفاعه لاستيعاب جميع البيانات: + +```r +birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE) +birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category) +ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip() +``` +أولاً، تقوم بعد القيم الفريدة في عمود `Category` ثم ترتيبها في إطار بيانات جديد `birds_count`. يتم ترتيب هذه البيانات المصفاة بنفس المستوى بحيث يتم رسمها بطريقة مرتبة. باستخدام `ggplot2`، تقوم بعد ذلك برسم البيانات في مخطط عمودي. يقوم `coord_flip()` برسم الأعمدة أفقيًا. + +![category-length](../../../../../translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ar.png) + +يوفر هذا المخطط العمودي عرضًا جيدًا لعدد الطيور في كل فئة. في لمحة، ترى أن أكبر عدد من الطيور في هذه المنطقة ينتمي إلى فئة البط/الإوز/طيور الماء. مينيسوتا هي "أرض 10,000 بحيرة"، لذا هذا ليس مفاجئًا! + +✅ جرب بعض العدود الأخرى على هذه المجموعة البيانات. هل هناك شيء يفاجئك؟ + +## مقارنة البيانات + +يمكنك تجربة مقارنات مختلفة للبيانات المجمعة عن طريق إنشاء محاور جديدة. جرب مقارنة الطول الأقصى للطائر بناءً على فئته: + +```r +birds_grouped <- birds_filtered %>% + group_by(Category) %>% + summarise( + MaxLength = max(MaxLength, na.rm = T), + MinLength = max(MinLength, na.rm = T) + ) %>% + arrange(Category) + +ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip() +``` +نقوم بتجميع بيانات `birds_filtered` حسب `Category` ثم رسم مخطط عمودي. + +![comparing data](../../../../../translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ar.png) + +لا شيء مفاجئ هنا: الطيور الطنانة لديها أقل طول أقصى مقارنة بالبجع أو الإوز. من الجيد عندما تكون البيانات منطقية! + +يمكنك إنشاء تصورات أكثر إثارة للاهتمام للمخططات العمودية عن طريق تراكب البيانات. دعونا نراكب الطول الأدنى والأقصى على فئة الطيور المعطاة: + +```r +ggplot(data=birds_grouped, aes(x=Category)) + + geom_bar(aes(y=MaxLength), stat="identity", position ="identity", fill='blue') + + geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+ + coord_flip() +``` +![super-imposed values](../../../../../translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ar.png) + +## 🚀 تحدي + +تقدم مجموعة بيانات الطيور هذه ثروة من المعلومات حول أنواع الطيور المختلفة داخل نظام بيئي معين. ابحث عبر الإنترنت لترى ما إذا كان يمكنك العثور على مجموعات بيانات أخرى متعلقة بالطيور. قم بممارسة إنشاء المخططات والرسوم البيانية حول هذه الطيور لاكتشاف حقائق لم تكن تعرفها. + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## المراجعة والدراسة الذاتية + +أعطتك هذه الدرس الأول بعض المعلومات حول كيفية استخدام `ggplot2` لتصور الكميات. قم ببعض البحث حول طرق أخرى للعمل مع مجموعات البيانات للتصور. ابحث عن مجموعات بيانات يمكنك تصورها باستخدام حزم أخرى مثل [Lattice](https://stat.ethz.ch/R-manual/R-devel/library/lattice/html/Lattice.html) و[Plotly](https://github.com/plotly/plotly.R#readme). + +## الواجب +[الخطوط، النقاط المبعثرة، والأعمدة](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/09-visualization-quantities/assignment.md b/translations/ar/3-Data-Visualization/R/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..4294a7dd --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# الخطوط، التبعثر والأعمدة + +## التعليمات + +في هذا الدرس، عملت مع مخططات الخطوط، الرسوم التبعثرية، ومخططات الأعمدة لعرض حقائق مثيرة للاهتمام حول هذه المجموعة البيانية. في هذا الواجب، تعمق أكثر في المجموعة البيانية لاكتشاف حقيقة عن نوع معين من الطيور. على سبيل المثال، قم بإنشاء نص برمجي يعرض جميع البيانات المثيرة التي يمكنك اكتشافها عن طيور الإوز الثلجي. استخدم الرسوم الثلاثة المذكورة أعلاه لسرد قصة في دفتر ملاحظاتك. + +## معايير التقييم + +متميز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يتم تقديم نص برمجي مع تعليقات جيدة، سرد قوي، ورسوم جذابة | النص البرمجي يفتقد أحد هذه العناصر | النص البرمجي يفتقد عنصرين من هذه العناصر + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/10-visualization-distributions/README.md b/translations/ar/3-Data-Visualization/R/10-visualization-distributions/README.md new file mode 100644 index 00000000..0889e66f --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/10-visualization-distributions/README.md @@ -0,0 +1,185 @@ + +# تصور التوزيعات + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| تصور التوزيعات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +في الدرس السابق، تعلمت بعض الحقائق المثيرة حول مجموعة بيانات عن طيور مينيسوتا. اكتشفت بعض البيانات الخاطئة من خلال تصور القيم الشاذة ونظرت في الفروقات بين فئات الطيور بناءً على أطوالها القصوى. + +## [اختبار قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## استكشاف مجموعة بيانات الطيور + +طريقة أخرى للتعمق في البيانات هي النظر إلى توزيعها، أو كيفية تنظيم البيانات على محور معين. ربما، على سبيل المثال، ترغب في معرفة التوزيع العام، في هذه المجموعة من البيانات، لأقصى امتداد جناح أو أقصى كتلة جسم لطيور مينيسوتا. + +دعنا نكتشف بعض الحقائق حول توزيعات البيانات في هذه المجموعة. في وحدة التحكم الخاصة بـ R، قم باستيراد `ggplot2` وقاعدة البيانات. قم بإزالة القيم الشاذة من قاعدة البيانات كما فعلت في الموضوع السابق. + +```r +library(ggplot2) + +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") + +birds_filtered <- subset(birds, MaxWingspan < 500) +head(birds_filtered) +``` +| | الاسم | الاسم العلمي | الفئة | الرتبة | العائلة | الجنس | حالة الحفظ | الطول الأدنى | الطول الأقصى | الكتلة الأدنى | الكتلة القصوى | امتداد الجناح الأدنى | امتداد الجناح الأقصى | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بطة الصفير ذات البطن الأسود | Dendrocygna autumnalis | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | بطة الصفير البنية | Dendrocygna bicolor | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | إوزة الثلج | Anser caerulescens | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | إوزة روس | Anser rossii | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | الإوزة البيضاء الأمامية الكبرى | Anser albifrons | البط/الإوز/طيور الماء | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +بشكل عام، يمكنك بسرعة النظر إلى كيفية توزيع البيانات باستخدام مخطط الانتشار كما فعلنا في الدرس السابق: + +```r +ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + + geom_point() + + ggtitle("Max Length per order") + coord_flip() +``` +![الطول الأقصى لكل رتبة](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ar.png) + +يوفر هذا نظرة عامة على التوزيع العام لطول الجسم لكل رتبة من الطيور، ولكنه ليس الطريقة المثلى لعرض التوزيعات الحقيقية. عادةً ما يتم التعامل مع هذه المهمة من خلال إنشاء مخطط هيستوجرام. + +## العمل مع الهيستوجرام + +يوفر `ggplot2` طرقًا ممتازة لتصور توزيع البيانات باستخدام الهيستوجرام. هذا النوع من الرسوم البيانية يشبه الرسم البياني العمودي حيث يمكن رؤية التوزيع من خلال ارتفاع وانخفاض الأعمدة. لإنشاء هيستوجرام، تحتاج إلى بيانات رقمية. لإنشاء هيستوجرام، يمكنك رسم مخطط بتحديد النوع كـ 'hist' للهيستوجرام. يعرض هذا المخطط توزيع MaxBodyMass لنطاق البيانات الرقمية في المجموعة بأكملها. من خلال تقسيم مجموعة البيانات إلى صناديق أصغر، يمكنه عرض توزيع قيم البيانات: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + + geom_histogram(bins=10)+ylab('Frequency') +``` +![التوزيع على المجموعة الكاملة](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ar.png) + +كما ترى، فإن معظم الطيور البالغ عددها 400+ في هذه المجموعة تقع في نطاق أقل من 2000 بالنسبة لأقصى كتلة جسم. احصل على مزيد من الفهم للبيانات عن طريق تغيير معلمة `bins` إلى رقم أعلى، مثل 30: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') +``` + +![التوزيع-30 صناديق](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ar.png) + +يعرض هذا المخطط التوزيع بطريقة أكثر تفصيلًا. يمكن إنشاء مخطط أقل انحرافًا إلى اليسار عن طريق التأكد من اختيار البيانات فقط ضمن نطاق معين: + +قم بتصفية بياناتك للحصول فقط على الطيور التي تقل كتلة أجسامها عن 60، وأظهر 30 `bins`: + +```r +birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_histogram(bins=30)+ylab('Frequency') +``` + +![هيستوجرام مصفى](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ar.png) + +✅ جرب بعض الفلاتر ونقاط البيانات الأخرى. لرؤية التوزيع الكامل للبيانات، قم بإزالة الفلتر `['MaxBodyMass']` لعرض التوزيعات المسماة. + +يوفر الهيستوجرام أيضًا تحسينات لطيفة في الألوان والتسمية لتجربتها: + +قم بإنشاء هيستوجرام ثنائي الأبعاد لمقارنة العلاقة بين توزيعين. دعنا نقارن `MaxBodyMass` مقابل `MaxLength`. يوفر `ggplot2` طريقة مدمجة لإظهار التقارب باستخدام ألوان أكثر إشراقًا: + +```r +ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + + geom_bin2d() +scale_fill_continuous(type = "viridis") +``` +يبدو أن هناك علاقة متوقعة بين هذين العنصرين على محور متوقع، مع نقطة تقارب قوية بشكل خاص: + +![مخطط ثنائي الأبعاد](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ar.png) + +تعمل الهيستوجرامات بشكل جيد افتراضيًا مع البيانات الرقمية. ماذا لو كنت بحاجة إلى رؤية التوزيعات وفقًا للبيانات النصية؟ + +## استكشاف مجموعة البيانات للتوزيعات باستخدام البيانات النصية + +تتضمن هذه المجموعة أيضًا معلومات جيدة حول فئة الطيور وجنسها ونوعها وعائلتها بالإضافة إلى حالة الحفظ الخاصة بها. دعنا نتعمق في هذه المعلومات المتعلقة بالحفظ. ما هو توزيع الطيور وفقًا لحالة الحفظ الخاصة بها؟ + +> ✅ في مجموعة البيانات، يتم استخدام العديد من الاختصارات لوصف حالة الحفظ. تأتي هذه الاختصارات من [فئات القائمة الحمراء للاتحاد الدولي لحفظ الطبيعة](https://www.iucnredlist.org/)، وهي منظمة تصنف حالة الأنواع. +> +> - CR: مهددة بالانقراض بشدة +> - EN: مهددة بالانقراض +> - EX: منقرضة +> - LC: أقل قلق +> - NT: قريبة من التهديد +> - VU: معرضة للخطر + +هذه قيم نصية، لذا ستحتاج إلى إجراء تحويل لإنشاء هيستوجرام. باستخدام إطار البيانات filteredBirds، اعرض حالة الحفظ الخاصة به إلى جانب امتداد الجناح الأدنى. ماذا ترى؟ + +```r +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6' + +ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) + + geom_histogram(position = "identity", alpha = 0.4, bins = 20) + + scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern")) +``` + +![امتداد الجناح وحالة الحفظ](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ar.png) + +لا يبدو أن هناك علاقة جيدة بين امتداد الجناح الأدنى وحالة الحفظ. اختبر عناصر أخرى من مجموعة البيانات باستخدام هذه الطريقة. يمكنك تجربة فلاتر مختلفة أيضًا. هل تجد أي علاقة؟ + +## مخططات الكثافة + +قد تكون لاحظت أن الهيستوجرامات التي نظرنا إليها حتى الآن "متدرجة" ولا تتدفق بسلاسة في قوس. لإظهار مخطط كثافة أكثر سلاسة، يمكنك تجربة مخطط الكثافة. + +دعنا نعمل الآن مع مخططات الكثافة! + +```r +ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + + geom_density() +``` +![مخطط الكثافة](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ar.png) + +يمكنك أن ترى كيف يعكس المخطط السابق بيانات امتداد الجناح الأدنى؛ إنه فقط أكثر سلاسة. إذا كنت ترغب في إعادة النظر في خط MaxBodyMass المتعرج في المخطط الثاني الذي أنشأته، يمكنك تنعيمه بشكل جيد جدًا عن طريق إعادة إنشائه باستخدام هذه الطريقة: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density() +``` +![كثافة كتلة الجسم](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ar.png) + +إذا كنت تريد خطًا ناعمًا، ولكن ليس ناعمًا جدًا، قم بتحرير معلمة `adjust`: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density(adjust = 1/5) +``` +![كتلة الجسم الأقل نعومة](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ar.png) + +✅ اقرأ عن المعلمات المتاحة لهذا النوع من المخططات وجربها! + +يوفر هذا النوع من الرسوم البيانية تصورات تفسيرية جميلة. مع بضع أسطر من التعليمات البرمجية، على سبيل المثال، يمكنك عرض كثافة كتلة الجسم القصوى لكل رتبة من الطيور: + +```r +ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + + geom_density(alpha=0.5) +``` +![كتلة الجسم لكل رتبة](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ar.png) + +## 🚀 تحدٍ + +الهيستوجرامات هي نوع أكثر تطورًا من الرسوم البيانية مقارنة بمخططات الانتشار الأساسية أو الرسوم البيانية العمودية أو الرسوم البيانية الخطية. قم بالبحث على الإنترنت للعثور على أمثلة جيدة لاستخدام الهيستوجرامات. كيف يتم استخدامها، ماذا توضح، وفي أي مجالات أو مجالات استفسار يتم استخدامها عادةً؟ + +## [اختبار بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## المراجعة والدراسة الذاتية + +في هذا الدرس، استخدمت `ggplot2` وبدأت العمل على عرض رسوم بيانية أكثر تطورًا. قم ببعض البحث حول `geom_density_2d()` وهو "منحنى كثافة احتمالية مستمرة في بعد واحد أو أكثر". اقرأ [التوثيق](https://ggplot2.tidyverse.org/reference/geom_density_2d.html) لفهم كيفية عمله. + +## الواجب + +[طبق مهاراتك](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/10-visualization-distributions/assignment.md b/translations/ar/3-Data-Visualization/R/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..d952f967 --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# طبق مهاراتك + +## التعليمات + +حتى الآن، عملت مع مجموعة بيانات الطيور في مينيسوتا لاكتشاف معلومات حول كميات الطيور وكثافة السكان. قم بتطبيق هذه التقنيات من خلال تجربة مجموعة بيانات مختلفة، ربما مأخوذة من [Kaggle](https://www.kaggle.com/). قم بإنشاء برنامج R يروي قصة حول هذه المجموعة من البيانات، وتأكد من استخدام الرسوم البيانية (الهيستوغرامات) عند مناقشتها. + +## المعايير + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | +يتم تقديم برنامج يحتوي على تعليقات توضيحية حول مجموعة البيانات هذه، بما في ذلك مصدرها، ويستخدم ما لا يقل عن 5 رسوم بيانية (هيستوغرامات) لاكتشاف حقائق حول البيانات. | يتم تقديم برنامج يحتوي على تعليقات توضيحية غير مكتملة أو يحتوي على أخطاء. | يتم تقديم برنامج بدون تعليقات توضيحية ويحتوي على أخطاء. + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/11-visualization-proportions/README.md b/translations/ar/3-Data-Visualization/R/11-visualization-proportions/README.md new file mode 100644 index 00000000..ba546e3f --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/11-visualization-proportions/README.md @@ -0,0 +1,201 @@ + +# تصور النسب + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|تصور النسب - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +في هذه الدرس، ستستخدم مجموعة بيانات تركز على الطبيعة لتصور النسب، مثل عدد الأنواع المختلفة من الفطريات التي تظهر في مجموعة بيانات عن الفطر. دعونا نستكشف هذه الفطريات المثيرة باستخدام مجموعة بيانات مأخوذة من Audubon تحتوي على تفاصيل حول 23 نوعًا من الفطر ذو الخياشيم في عائلتي Agaricus وLepiota. ستجرب تصورات شهية مثل: + +- مخططات دائرية 🥧 +- مخططات دونات 🍩 +- مخططات وافل 🧇 + +> 💡 مشروع مثير للاهتمام يسمى [Charticulator](https://charticulator.com) من Microsoft Research يقدم واجهة مجانية تعتمد على السحب والإفلات لتصور البيانات. في أحد دروسهم التعليمية، يستخدمون أيضًا مجموعة بيانات الفطر هذه! لذا يمكنك استكشاف البيانات وتعلم المكتبة في نفس الوقت: [درس Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## تعرف على الفطر الخاص بك 🍄 + +الفطر مثير جدًا للاهتمام. دعونا نستورد مجموعة بيانات لدراسته: + +```r +mushrooms = read.csv('../../data/mushrooms.csv') +head(mushrooms) +``` +يتم طباعة جدول يحتوي على بيانات رائعة للتحليل: + + +| الفئة | شكل القبعة | سطح القبعة | لون القبعة | كدمات | الرائحة | ارتباط الخياشيم | تباعد الخياشيم | حجم الخياشيم | لون الخياشيم | شكل الساق | جذر الساق | سطح الساق فوق الحلقة | سطح الساق تحت الحلقة | لون الساق فوق الحلقة | لون الساق تحت الحلقة | نوع الحجاب | لون الحجاب | عدد الحلقات | نوع الحلقة | لون طباعة الأبواغ | السكان | الموطن | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| سام | محدب | أملس | بني | كدمات | نفاذ | حر | قريب | ضيق | أسود | متسع | متساوي | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | أسود | متناثر | حضري | +| صالح للأكل | محدب | أملس | أصفر | كدمات | لوزي | حر | قريب | واسع | أسود | متسع | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | بني | كثير | أعشاب | +| صالح للأكل | جرس | أملس | أبيض | كدمات | يانسون | حر | قريب | واسع | بني | متسع | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | بني | كثير | مروج | +| سام | محدب | قشري | أبيض | كدمات | نفاذ | حر | قريب | ضيق | بني | متسع | متساوي | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | أسود | متناثر | حضري +| صالح للأكل | محدب |أملس | أخضر | بدون كدمات| لا شيء |حر | مزدحم | واسع | أسود | مدبب | متساوي | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | زائل | بني | وفير | أعشاب +|صالح للأكل | محدب | قشري | أصفر | كدمات | لوزي | حر | قريب | واسع | بني | متسع | مضرب | أملس | أملس | أبيض | أبيض | جزئي | أبيض | واحد | معلق | أسود | كثير | أعشاب + +على الفور، تلاحظ أن جميع البيانات نصية. ستحتاج إلى تحويل هذه البيانات لتتمكن من استخدامها في مخطط. في الواقع، معظم البيانات ممثلة ككائن: + +```r +names(mushrooms) +``` + +الناتج هو: + +```output +[1] "class" "cap.shape" + [3] "cap.surface" "cap.color" + [5] "bruises" "odor" + [7] "gill.attachment" "gill.spacing" + [9] "gill.size" "gill.color" +[11] "stalk.shape" "stalk.root" +[13] "stalk.surface.above.ring" "stalk.surface.below.ring" +[15] "stalk.color.above.ring" "stalk.color.below.ring" +[17] "veil.type" "veil.color" +[19] "ring.number" "ring.type" +[21] "spore.print.color" "population" +[23] "habitat" +``` +خذ هذه البيانات وحوّل العمود 'الفئة' إلى فئة: + +```r +library(dplyr) +grouped=mushrooms %>% + group_by(class) %>% + summarise(count=n()) +``` + + +الآن، إذا قمت بطباعة بيانات الفطر، يمكنك رؤية أنها تم تجميعها في فئات وفقًا لفئة السام/الصالح للأكل: +```r +View(grouped) +``` + + +| الفئة | العدد | +| --------- | --------- | +| صالح للأكل | 4208 | +| سام| 3916 | + + + +إذا اتبعت الترتيب المقدم في هذا الجدول لإنشاء تسميات فئة الفئة، يمكنك إنشاء مخطط دائري. + +## دائري! + +```r +pie(grouped$count,grouped$class, main="Edible?") +``` +ها هو، مخطط دائري يظهر نسب هذه البيانات وفقًا لهاتين الفئتين من الفطر. من المهم جدًا الحصول على ترتيب التسميات بشكل صحيح، خاصة هنا، لذا تأكد من التحقق من الترتيب الذي يتم بناء مصفوفة التسميات به! + +![مخطط دائري](../../../../../translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ar.png) + +## دونات! + +مخطط دائري أكثر إثارة بصريًا هو مخطط دونات، وهو مخطط دائري مع ثقب في المنتصف. دعونا نلقي نظرة على بياناتنا باستخدام هذه الطريقة. + +ألقِ نظرة على الموائل المختلفة حيث ينمو الفطر: + +```r +library(dplyr) +habitat=mushrooms %>% + group_by(habitat) %>% + summarise(count=n()) +View(habitat) +``` +الناتج هو: +| الموطن| العدد | +| --------- | --------- | +| أعشاب | 2148 | +| أوراق| 832 | +| مروج | 292 | +| مسارات| 1144 | +| حضري | 368 | +| نفايات| 192 | +| خشب| 3148 | + + +هنا، تقوم بتجميع بياناتك حسب الموطن. هناك 7 موائل مدرجة، لذا استخدمها كتسميات لمخطط الدونات الخاص بك: + +```r +library(ggplot2) +library(webr) +PieDonut(habitat, aes(habitat, count=count)) +``` + +![مخطط دونات](../../../../../translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ar.png) + +يستخدم هذا الكود المكتبتين - ggplot2 وwebr. باستخدام وظيفة PieDonut من مكتبة webr، يمكننا إنشاء مخطط دونات بسهولة! + +يمكن أيضًا إنشاء مخططات دونات في R باستخدام مكتبة ggplot2 فقط. يمكنك معرفة المزيد عنها [هنا](https://www.r-graph-gallery.com/128-ring-or-donut-plot.html) وتجربتها بنفسك. + +الآن بعد أن تعرفت على كيفية تجميع بياناتك ثم عرضها كمخطط دائري أو دونات، يمكنك استكشاف أنواع أخرى من المخططات. جرب مخطط وافل، وهو مجرد طريقة مختلفة لاستكشاف الكمية. +## وافل! + +مخطط من نوع 'وافل' هو طريقة مختلفة لتصور الكميات كمصفوفة ثنائية الأبعاد من المربعات. جرب تصور الكميات المختلفة لألوان قبعات الفطر في هذه المجموعة البيانات. للقيام بذلك، تحتاج إلى تثبيت مكتبة مساعدة تسمى [waffle](https://cran.r-project.org/web/packages/waffle/waffle.pdf) واستخدامها لإنشاء تصورك: + +```r +install.packages("waffle", repos = "https://cinc.rud.is") +``` + +اختر جزءًا من بياناتك لتجميعه: + +```r +library(dplyr) +cap_color=mushrooms %>% + group_by(cap.color) %>% + summarise(count=n()) +View(cap_color) +``` + +قم بإنشاء مخطط وافل عن طريق إنشاء تسميات ثم تجميع بياناتك: + +```r +library(waffle) +names(cap_color$count) = paste0(cap_color$cap.color) +waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", + "pink", "purple", "red", "grey", + "yellow","white")) +``` + +باستخدام مخطط وافل، يمكنك رؤية نسب ألوان قبعات الفطر في هذه المجموعة البيانات بوضوح. من المثير للاهتمام أن هناك العديد من الفطر ذو القبعات الخضراء! + +![مخطط وافل](../../../../../translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ar.png) + +في هذه الدرس، تعلمت ثلاث طرق لتصور النسب. أولاً، تحتاج إلى تجميع بياناتك في فئات ثم تقرر الطريقة الأفضل لعرض البيانات - دائري، دونات، أو وافل. جميعها لذيذة وتمنح المستخدم لمحة فورية عن مجموعة البيانات. + +## 🚀 تحدي + +حاول إعادة إنشاء هذه المخططات الشهية في [Charticulator](https://charticulator.com). +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## المراجعة والدراسة الذاتية + +في بعض الأحيان، ليس من الواضح متى يجب استخدام مخطط دائري، دونات، أو وافل. إليك بعض المقالات لقراءتها حول هذا الموضوع: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +قم ببعض البحث للعثور على المزيد من المعلومات حول هذا القرار الصعب. +## المهمة + +[جربها في Excel](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/12-visualization-relationships/README.md b/translations/ar/3-Data-Visualization/R/12-visualization-relationships/README.md new file mode 100644 index 00000000..ac35f612 --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/12-visualization-relationships/README.md @@ -0,0 +1,177 @@ + +# تصور العلاقات: كل شيء عن العسل 🍯 + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|تصور العلاقات - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +استمرارًا في التركيز على الطبيعة في بحثنا، دعونا نستكشف تصورات مثيرة للاهتمام لعرض العلاقات بين أنواع العسل المختلفة، وفقًا لمجموعة بيانات مستمدة من [وزارة الزراعة الأمريكية](https://www.nass.usda.gov/About_NASS/index.php). + +تتضمن هذه المجموعة حوالي 600 عنصر تعرض إنتاج العسل في العديد من الولايات الأمريكية. على سبيل المثال، يمكنك الاطلاع على عدد المستعمرات، الإنتاج لكل مستعمرة، الإنتاج الإجمالي، المخزون، السعر لكل رطل، وقيمة العسل المنتج في ولاية معينة من عام 1998 إلى 2012، مع صف واحد لكل سنة لكل ولاية. + +سيكون من المثير تصور العلاقة بين إنتاج ولاية معينة سنويًا وبين، على سبيل المثال، سعر العسل في تلك الولاية. أو بدلاً من ذلك، يمكنك تصور العلاقة بين إنتاج العسل لكل مستعمرة في الولايات المختلفة. تغطي هذه الفترة الزمنية ظهور اضطراب انهيار المستعمرات (CCD) لأول مرة في عام 2006 (http://npic.orst.edu/envir/ccd.html)، مما يجعلها مجموعة بيانات مؤثرة للدراسة. 🐝 + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +في هذه الدرس، يمكنك استخدام ggplot2، الذي استخدمته من قبل، كمكتبة جيدة لتصور العلاقات بين المتغيرات. من الأمور المثيرة للاهتمام استخدام دالة `geom_point` و `qplot` في ggplot2 التي تسمح بإنشاء مخططات التبعثر والخطوط بسرعة لتصور '[العلاقات الإحصائية](https://ggplot2.tidyverse.org/)'، مما يساعد عالم البيانات على فهم كيفية ارتباط المتغيرات ببعضها البعض. + +## مخططات التبعثر + +استخدم مخطط التبعثر لعرض كيفية تطور سعر العسل عامًا بعد عام لكل ولاية. ggplot2، باستخدام `ggplot` و `geom_point`، يقوم بتجميع بيانات الولايات وعرض نقاط البيانات لكل من البيانات الفئوية والرقمية بسهولة. + +لنبدأ باستيراد البيانات وSeaborn: + +```r +honey=read.csv('../../data/honey.csv') +head(honey) +``` +تلاحظ أن بيانات العسل تحتوي على عدة أعمدة مثيرة للاهتمام، بما في ذلك السنة والسعر لكل رطل. دعونا نستكشف هذه البيانات، مجمعة حسب الولايات الأمريكية: + +| الولاية | عدد المستعمرات | الإنتاج لكل مستعمرة | الإنتاج الإجمالي | المخزون | السعر لكل رطل | قيمة الإنتاج | السنة | +| -------- | -------------- | -------------------- | ----------------- | ------- | ------------- | ------------ | ----- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000| 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | +| FL | 230000 | 98 | 22540000 | 4508000 | 0.64 | 14426000 | 1998 | + +قم بإنشاء مخطط تبعثر أساسي لعرض العلاقة بين السعر لكل رطل من العسل وولاية المنشأ. اجعل محور `y` طويلًا بما يكفي لعرض جميع الولايات: + +```r +library(ggplot2) +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(colour = "blue") +``` +![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ar.png) + +الآن، اعرض نفس البيانات باستخدام نظام ألوان العسل لإظهار كيفية تطور السعر على مر السنين. يمكنك القيام بذلك عن طريق إضافة معامل 'scale_color_gradientn' لإظهار التغيير عامًا بعد عام: + +> ✅ تعرف على المزيد حول [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) - جرب نظام ألوان قوس قزح الجميل! + +```r +ggplot(honey, aes(x = priceperlb, y = state, color=year)) + + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) +``` +![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ar.png) + +مع هذا التغيير في نظام الألوان، يمكنك أن ترى بوضوح تقدمًا قويًا على مر السنين فيما يتعلق بسعر العسل لكل رطل. بالفعل، إذا نظرت إلى مجموعة بيانات عينة للتحقق (اختر ولاية معينة، مثل أريزونا)، يمكنك رؤية نمط زيادة الأسعار عامًا بعد عام، مع بعض الاستثناءات: + +| الولاية | عدد المستعمرات | الإنتاج لكل مستعمرة | الإنتاج الإجمالي | المخزون | السعر لكل رطل | قيمة الإنتاج | السنة | +| -------- | -------------- | -------------------- | ----------------- | ------- | ------------- | ------------ | ----- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +طريقة أخرى لتصور هذا التقدم هي استخدام الحجم بدلاً من اللون. بالنسبة للمستخدمين الذين يعانون من عمى الألوان، قد يكون هذا خيارًا أفضل. قم بتعديل التصور لإظهار زيادة السعر من خلال زيادة محيط النقاط: + +```r +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(aes(size = year),colour = "blue") + + scale_size_continuous(range = c(0.25, 3)) +``` +يمكنك رؤية حجم النقاط يزداد تدريجيًا. + +![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ar.png) + +هل هذا مجرد حالة بسيطة من العرض والطلب؟ بسبب عوامل مثل تغير المناخ وانهيار المستعمرات، هل هناك كمية أقل من العسل المتاحة للشراء عامًا بعد عام، وبالتالي يرتفع السعر؟ + +لاكتشاف علاقة بين بعض المتغيرات في هذه المجموعة من البيانات، دعونا نستكشف بعض المخططات الخطية. + +## المخططات الخطية + +السؤال: هل هناك ارتفاع واضح في سعر العسل لكل رطل عامًا بعد عام؟ يمكنك اكتشاف ذلك بسهولة عن طريق إنشاء مخطط خطي واحد: + +```r +qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") +``` +الإجابة: نعم، مع بعض الاستثناءات حول عام 2003: + +![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ar.png) + +السؤال: حسنًا، في عام 2003 هل يمكننا أيضًا رؤية زيادة في كمية العسل المتوفرة؟ ماذا لو نظرت إلى الإنتاج الإجمالي عامًا بعد عام؟ + +```python +qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") +``` + +![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ar.png) + +الإجابة: ليس حقًا. إذا نظرت إلى الإنتاج الإجمالي، يبدو أنه قد زاد في ذلك العام بالذات، على الرغم من أن كمية العسل المنتجة عمومًا كانت في انخفاض خلال هذه السنوات. + +السؤال: في هذه الحالة، ما الذي يمكن أن يكون قد تسبب في ارتفاع سعر العسل حول عام 2003؟ + +لاكتشاف ذلك، يمكنك استكشاف شبكة الأوجه. + +## شبكات الأوجه + +تأخذ شبكات الأوجه جانبًا واحدًا من مجموعة البيانات (في حالتنا، يمكنك اختيار 'السنة' لتجنب إنتاج عدد كبير جدًا من الأوجه). يمكن لـ Seaborn بعد ذلك إنشاء مخطط لكل من هذه الأوجه للإحداثيات x و y التي اخترتها للمقارنة بسهولة. هل يبرز عام 2003 في هذا النوع من المقارنة؟ + +قم بإنشاء شبكة أوجه باستخدام `facet_wrap` كما هو موصى به في [وثائق ggplot2](https://ggplot2.tidyverse.org/reference/facet_wrap.html). + +```r +ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + + geom_line() + facet_wrap(vars(year)) +``` +في هذا التصور، يمكنك مقارنة الإنتاج لكل مستعمرة وعدد المستعمرات عامًا بعد عام جنبًا إلى جنب مع التفاف مضبوط على 3 للأعمدة: + +![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ar.png) + +بالنسبة لهذه المجموعة من البيانات، لا يبرز أي شيء بشكل خاص فيما يتعلق بعدد المستعمرات وإنتاجها، عامًا بعد عام وولاية بعد ولاية. هل هناك طريقة مختلفة للنظر في إيجاد علاقة بين هذين المتغيرين؟ + +## مخططات الخطوط المزدوجة + +جرب مخططًا متعدد الخطوط عن طريق وضع مخططين خطيين فوق بعضهما البعض، باستخدام دالتي `par` و `plot` في R. سنقوم برسم السنة على المحور x وعرض محورين y. لذا، عرض الإنتاج لكل مستعمرة وعدد المستعمرات، متراكبين: + +```r +par(mar = c(5, 4, 4, 4) + 0.3) +plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") +par(new = TRUE) +plot(honey$year, honey$yieldpercol, pch = 17, col = 3, + axes = FALSE, xlab = "", ylab = "",type="l") +axis(side = 4, at = pretty(range(y2))) +mtext("colony yield", side = 4, line = 3) +``` +![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ar.png) + +بينما لا يبرز شيء للعين حول عام 2003، فإنه يسمح لنا بإنهاء هذا الدرس بملاحظة أكثر سعادة: على الرغم من وجود انخفاض عام في عدد المستعمرات، فإن عدد المستعمرات يستقر حتى لو كان إنتاجها لكل مستعمرة يتناقص. + +هيا، أيها النحل، هيا! + +🐝❤️ +## 🚀 التحدي + +في هذا الدرس، تعلمت المزيد عن استخدامات مخططات التبعثر وشبكات الخطوط، بما في ذلك شبكات الأوجه. تحدى نفسك لإنشاء شبكة أوجه باستخدام مجموعة بيانات مختلفة، ربما واحدة استخدمتها قبل هذه الدروس. لاحظ الوقت الذي تستغرقه لإنشائها وكيف تحتاج إلى أن تكون حذرًا بشأن عدد الشبكات التي تحتاج إلى رسمها باستخدام هذه التقنيات. +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## المراجعة والدراسة الذاتية + +يمكن أن تكون المخططات الخطية بسيطة أو معقدة للغاية. قم ببعض القراءة في [وثائق ggplot2](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together) حول الطرق المختلفة التي يمكنك من خلالها بناؤها. حاول تحسين المخططات الخطية التي أنشأتها في هذا الدرس باستخدام طرق أخرى مدرجة في الوثائق. +## الواجب + +[استكشف خلية النحل](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/R/13-meaningful-vizualizations/README.md b/translations/ar/3-Data-Visualization/R/13-meaningful-vizualizations/README.md new file mode 100644 index 00000000..8a0e7074 --- /dev/null +++ b/translations/ar/3-Data-Visualization/R/13-meaningful-vizualizations/README.md @@ -0,0 +1,182 @@ + +# إنشاء تصورات ذات معنى + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| تصورات ذات معنى - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +> "إذا عذبت البيانات بما فيه الكفاية، ستعترف بأي شيء" -- [رونالد كوس](https://en.wikiquote.org/wiki/Ronald_Coase) + +إحدى المهارات الأساسية لعالم البيانات هي القدرة على إنشاء تصور بيانات ذو معنى يساعد في الإجابة على الأسئلة التي قد تكون لديك. قبل تصور بياناتك، يجب التأكد من تنظيفها وتحضيرها، كما فعلت في الدروس السابقة. بعد ذلك، يمكنك البدء في تحديد الطريقة الأفضل لعرض البيانات. + +في هذا الدرس، ستراجع: + +1. كيفية اختيار نوع الرسم البياني المناسب +2. كيفية تجنب الرسوم البيانية المضللة +3. كيفية العمل مع الألوان +4. كيفية تنسيق الرسوم البيانية لتحسين القراءة +5. كيفية إنشاء حلول رسوم بيانية متحركة أو ثلاثية الأبعاد +6. كيفية بناء تصور إبداعي + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## اختيار نوع الرسم البياني المناسب + +في الدروس السابقة، جربت إنشاء جميع أنواع تصورات البيانات المثيرة باستخدام مكتبات مثل Matplotlib وSeaborn. بشكل عام، يمكنك اختيار [نوع الرسم البياني المناسب](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) للسؤال الذي تطرحه باستخدام هذا الجدول: + +| تحتاج إلى: | يجب أن تستخدم: | +| -------------------------- | ------------------------------- | +| عرض اتجاهات البيانات مع الزمن | خط | +| مقارنة الفئات | شريط، دائري | +| مقارنة الإجماليات | دائري، شريط مكدس | +| عرض العلاقات | نقاط، خط، واجهة، خط مزدوج | +| عرض التوزيعات | نقاط، هيستوجرام، صندوق | +| عرض النسب | دائري، دونات، وافل | + +> ✅ بناءً على تكوين بياناتك، قد تحتاج إلى تحويلها من نص إلى أرقام للحصول على دعم الرسم البياني المطلوب. + +## تجنب التضليل + +حتى إذا كان عالم البيانات حريصًا على اختيار الرسم البياني المناسب للبيانات المناسبة، هناك العديد من الطرق التي يمكن بها عرض البيانات لإثبات نقطة معينة، غالبًا على حساب البيانات نفسها. هناك العديد من الأمثلة على الرسوم البيانية والمخططات المضللة! + +[![كيف تكذب الرسوم البيانية بواسطة ألبرتو كايرو](../../../../../translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ar.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "كيف تكذب الرسوم البيانية") + +> 🎥 انقر على الصورة أعلاه لمشاهدة محاضرة حول الرسوم البيانية المضللة + +هذا الرسم البياني يعكس المحور X ليظهر عكس الحقيقة بناءً على التاريخ: + +![رسم سيء 1](../../../../../translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ar.png) + +[هذا الرسم البياني](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) أكثر تضليلًا، حيث يجذب العين إلى اليمين لتستنتج أن حالات COVID قد انخفضت مع الزمن في المقاطعات المختلفة. في الواقع، إذا نظرت عن كثب إلى التواريخ، ستجد أنها أعيد ترتيبها لإظهار هذا الاتجاه المضلل. + +![رسم سيء 2](../../../../../translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ar.jpg) + +هذا المثال الشهير يستخدم الألوان ومحور Y مقلوب لخداع العين: بدلاً من استنتاج أن وفيات الأسلحة ارتفعت بعد تمرير تشريعات داعمة للأسلحة، يتم خداع العين لتعتقد العكس: + +![رسم سيء 3](../../../../../translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ar.jpg) + +هذا الرسم الغريب يظهر كيف يمكن التلاعب بالنسب، بشكل مضحك: + +![رسم سيء 4](../../../../../translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ar.jpg) + +مقارنة ما لا يمكن مقارنته هي خدعة أخرى مشبوهة. هناك [موقع ويب رائع](https://tylervigen.com/spurious-correlations) يعرض "ارتباطات زائفة" تظهر "حقائق" تربط بين أشياء مثل معدل الطلاق في ولاية مين واستهلاك المارجرين. كما أن هناك مجموعة على Reddit تجمع [الاستخدامات السيئة](https://www.reddit.com/r/dataisugly/top/?t=all) للبيانات. + +من المهم فهم مدى سهولة خداع العين بواسطة الرسوم البيانية المضللة. حتى إذا كانت نية عالم البيانات جيدة، فإن اختيار نوع سيئ من الرسوم البيانية، مثل الرسم الدائري الذي يعرض العديد من الفئات، يمكن أن يكون مضللًا. + +## الألوان + +كما رأيت في الرسم البياني "عنف الأسلحة في فلوريدا" أعلاه، يمكن أن تضيف الألوان طبقة إضافية من المعنى إلى الرسوم البيانية، خاصة تلك التي لم يتم تصميمها باستخدام مكتبات مثل ggplot2 وRColorBrewer التي تأتي مع مكتبات ألوان ولوحات ألوان معتمدة. إذا كنت تصمم رسمًا بيانيًا يدويًا، قم بدراسة [نظرية الألوان](https://colormatters.com/color-and-design/basic-color-theory). + +> ✅ كن على دراية، عند تصميم الرسوم البيانية، أن إمكانية الوصول هي جانب مهم من التصور. قد يكون بعض المستخدمين مصابين بعمى الألوان - هل يعرض الرسم البياني الخاص بك بشكل جيد للمستخدمين ذوي الإعاقات البصرية؟ + +كن حذرًا عند اختيار الألوان لرسمك البياني، حيث يمكن أن تنقل الألوان معاني قد لا تقصدها. "السيدات الورديات" في الرسم البياني "الطول" أعلاه تنقل معنى "أنثوي" مميز يضيف إلى غرابة الرسم نفسه. + +بينما قد تختلف [معاني الألوان](https://colormatters.com/color-symbolism/the-meanings-of-colors) في أجزاء مختلفة من العالم، وتميل إلى التغير في المعنى حسب الظل. بشكل عام، تشمل معاني الألوان: + +| اللون | المعنى | +| ------- | ------------------- | +| الأحمر | القوة | +| الأزرق | الثقة، الولاء | +| الأصفر | السعادة، الحذر | +| الأخضر | البيئة، الحظ، الحسد | +| البنفسجي| السعادة | +| البرتقالي| الحيوية | + +إذا طُلب منك إنشاء رسم بياني بألوان مخصصة، تأكد من أن رسومك البيانية يمكن الوصول إليها وأن اللون الذي تختاره يتماشى مع المعنى الذي تحاول نقله. + +## تنسيق الرسوم البيانية لتحسين القراءة + +الرسوم البيانية ليست ذات معنى إذا لم تكن قابلة للقراءة! خذ لحظة للتفكير في تنسيق عرض الرسم البياني بحيث يتناسب بشكل جيد مع بياناتك. إذا كان هناك متغير واحد (مثل جميع الولايات الخمسين) يجب عرضه، فاعرضها عموديًا على المحور Y إذا أمكن لتجنب رسم بياني يتطلب التمرير أفقيًا. + +قم بتسمية المحاور، وقدم مفتاحًا إذا لزم الأمر، وقدم تلميحات لتحسين فهم البيانات. + +إذا كانت بياناتك نصية وطويلة على المحور X، يمكنك إمالة النص لتحسين القراءة. [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) يقدم رسومات ثلاثية الأبعاد إذا كانت بياناتك تدعم ذلك. يمكن إنتاج تصورات بيانات متطورة باستخدامه. + +![رسومات ثلاثية الأبعاد](../../../../../translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ar.png) + +## الرسوم المتحركة وعرض الرسوم ثلاثية الأبعاد + +بعض أفضل تصورات البيانات اليوم متحركة. شيرلي وو لديها أمثلة مذهلة باستخدام D3، مثل '[زهور الأفلام](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)'، حيث يمثل كل زهرة تصورًا لفيلم. مثال آخر للجارديان هو 'باصات المشردين'، تجربة تفاعلية تجمع بين التصورات مع Greensock وD3 بالإضافة إلى تنسيق مقال سردي لعرض كيفية تعامل مدينة نيويورك مع مشكلة المشردين من خلال إرسالهم خارج المدينة. + +![باصات المشردين](../../../../../translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ar.png) + +> "باصات المشردين: كيف تنقل أمريكا مشرديها" من [الجارديان](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). تصورات بواسطة نادية بريمر وشيرلي وو. + +بينما هذا الدرس غير كافٍ للتعمق في تعليم هذه المكتبات القوية للتصور، جرب استخدام D3 في تطبيق Vue.js باستخدام مكتبة لعرض تصور لكتاب "العلاقات الخطرة" كشبكة اجتماعية متحركة. + +> "العلاقات الخطرة" هي رواية رسائلية، أو رواية تُعرض كسلسلة من الرسائل. كتبت عام 1782 بواسطة شودرلو دي لاكلو، وتحكي قصة المناورات الاجتماعية القاسية وغير الأخلاقية بين اثنين من أبطال الأرستقراطية الفرنسية في أواخر القرن الثامن عشر، الفيكونت دي فالمونت والماركيزة دي ميرتوي. كلاهما يلقى نهايتهما في النهاية ولكن ليس قبل أن يتسببا في الكثير من الضرر الاجتماعي. تتكشف الرواية كسلسلة من الرسائل المكتوبة لأشخاص مختلفين في دوائرهم، تخطط للانتقام أو لإثارة المشاكل. قم بإنشاء تصور لهذه الرسائل لاكتشاف الشخصيات الرئيسية في السرد، بصريًا. + +ستكمل تطبيق ويب يعرض عرضًا متحركًا لهذه الشبكة الاجتماعية. يستخدم مكتبة تم إنشاؤها لإنشاء [تصور لشبكة](https://github.com/emiliorizzo/vue-d3-network) باستخدام Vue.js وD3. عندما يعمل التطبيق، يمكنك سحب العقد على الشاشة لتحريك البيانات. + +![العلاقات](../../../../../translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ar.png) + +## المشروع: بناء رسم بياني لعرض شبكة باستخدام D3.js + +> يتضمن مجلد هذا الدرس مجلدًا باسم `solution` حيث يمكنك العثور على المشروع المكتمل، للرجوع إليه. + +1. اتبع التعليمات في ملف README.md في جذر مجلد البداية. تأكد من أن لديك NPM وNode.js يعملان على جهازك قبل تثبيت تبعيات المشروع. + +2. افتح مجلد `starter/src`. ستجد مجلدًا باسم `assets` يحتوي على ملف .json يحتوي على جميع الرسائل من الرواية، مرقمة، مع توضيح "إلى" و"من". + +3. أكمل الكود في `components/Nodes.vue` لتمكين التصور. ابحث عن الطريقة المسماة `createLinks()` وأضف الحلقة المتداخلة التالية. + +قم بالتكرار عبر كائن .json لالتقاط بيانات "إلى" و"من" للرسائل وبناء كائن `links` بحيث يمكن لمكتبة التصور استهلاكه: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +قم بتشغيل تطبيقك من الطرفية (npm run serve) واستمتع بالتصور! + +## 🚀 التحدي + +قم بجولة على الإنترنت لاكتشاف التصورات المضللة. كيف يخدع المؤلف المستخدم، وهل هو متعمد؟ حاول تصحيح التصورات لإظهار كيف يجب أن تبدو. + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## المراجعة والدراسة الذاتية + +إليك بعض المقالات لقراءتها حول التصورات المضللة للبيانات: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +اطلع على هذه التصورات المثيرة للاهتمام للأصول والتحف التاريخية: + +https://handbook.pubpub.org/ + +اطلع على هذا المقال حول كيفية تحسين الرسوم المتحركة لتصوراتك: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## الواجب + +[قم بإنشاء تصور مخصص خاص بك](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/3-Data-Visualization/README.md b/translations/ar/3-Data-Visualization/README.md new file mode 100644 index 00000000..f8ad4b55 --- /dev/null +++ b/translations/ar/3-Data-Visualization/README.md @@ -0,0 +1,42 @@ + +# التصورات + +![نحلة على زهرة اللافندر](../../../translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ar.jpg) +> الصورة بواسطة Jenna Lee على Unsplash + +تصور البيانات هو أحد أهم المهام التي يقوم بها عالم البيانات. الصور تعادل ألف كلمة، ويمكن للتصور أن يساعدك في التعرف على جميع أنواع الأجزاء المثيرة للاهتمام في بياناتك مثل القمم، والقيم الشاذة، والتجمعات، والاتجاهات، والمزيد، مما يمكن أن يساعدك في فهم القصة التي تحاول بياناتك سردها. + +في هذه الدروس الخمسة، ستستكشف بيانات مأخوذة من الطبيعة وستقوم بإنشاء تصورات مثيرة وجميلة باستخدام تقنيات متنوعة. + +| رقم الموضوع | الموضوع | الدرس المرتبط | المؤلف | +| :-----------: | :--: | :-----------: | :----: | +| 1. | تصور الكميات | | | +| 2. | تصور التوزيع | | | +| 3. | تصور النسب | | | +| 4. | تصور العلاقات | | | +| 5. | إنشاء تصورات ذات معنى | | | + +### الشكر + +تم كتابة هذه الدروس الخاصة بالتصورات مع 🌸 بواسطة [Jen Looper](https://twitter.com/jenlooper)، [Jasleen Sondhi](https://github.com/jasleen101010) و [Vidushi Gupta](https://github.com/Vidushi-Gupta). + +🍯 بيانات إنتاج العسل في الولايات المتحدة مأخوذة من مشروع Jessica Li على [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). البيانات [data](https://usda.library.cornell.edu/concern/publications/rn301137d) مستمدة من [وزارة الزراعة الأمريكية](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 بيانات الفطر مأخوذة أيضًا من [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) وتم تعديلها بواسطة Hatteras Dunton. يتضمن هذا البيانات وصفًا لعينات افتراضية تتعلق بـ 23 نوعًا من الفطر ذو الخياشيم في عائلة Agaricus و Lepiota. الفطر مأخوذ من دليل جمعية أودوبون الميداني لفطر أمريكا الشمالية (1981). تم التبرع بهذه البيانات إلى UCI ML 27 في عام 1987. + +🦆 بيانات الطيور في مينيسوتا مأخوذة من [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) وتم استخراجها من [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) بواسطة Hannah Collins. + +جميع هذه البيانات مرخصة تحت [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/14-Introduction/README.md b/translations/ar/4-Data-Science-Lifecycle/14-Introduction/README.md new file mode 100644 index 00000000..3aa910c1 --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/14-Introduction/README.md @@ -0,0 +1,123 @@ + +# مقدمة إلى دورة حياة علم البيانات + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/14-DataScience-Lifecycle.png)| +|:---:| +| مقدمة إلى دورة حياة علم البيانات - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +## [اختبار ما قبل المحاضرة](https://red-water-0103e7a0f.azurestaticapps.net/quiz/26) + +في هذه المرحلة، ربما أدركت أن علم البيانات هو عملية. يمكن تقسيم هذه العملية إلى خمس مراحل: + +- جمع البيانات +- المعالجة +- التحليل +- التواصل +- الصيانة + +تركز هذه الدرسة على ثلاثة أجزاء من دورة الحياة: جمع البيانات، المعالجة، والصيانة. + +![رسم بياني لدورة حياة علم البيانات](../../../../translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ar.jpg) +> صورة من [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/) + +## جمع البيانات + +المرحلة الأولى من دورة الحياة مهمة جدًا لأن المراحل التالية تعتمد عليها. عمليًا، تتكون هذه المرحلة من مرحلتين مدمجتين: جمع البيانات وتحديد الغرض والمشكلات التي يجب معالجتها. +تحديد أهداف المشروع يتطلب فهمًا أعمق للسياق المحيط بالمشكلة أو السؤال. أولاً، نحتاج إلى تحديد وجمع الأطراف التي تحتاج إلى حل مشكلتها. قد يكون هؤلاء أصحاب المصلحة في شركة أو رعاة المشروع، الذين يمكنهم المساعدة في تحديد من أو ما الذي سيستفيد من هذا المشروع، بالإضافة إلى ما يحتاجونه ولماذا. يجب أن يكون الهدف المحدد جيدًا قابلاً للقياس والكمي لتحديد نتيجة مقبولة. + +أسئلة قد يطرحها عالم البيانات: +- هل تم تناول هذه المشكلة من قبل؟ ماذا تم اكتشافه؟ +- هل الغرض والهدف مفهوم من قبل جميع الأطراف المعنية؟ +- هل هناك غموض وكيف يمكن تقليله؟ +- ما هي القيود؟ +- كيف ستبدو النتيجة النهائية المحتملة؟ +- ما هي الموارد (الوقت، الأشخاص، الحوسبة) المتاحة؟ + +بعد ذلك، يتم تحديد البيانات المطلوبة، جمعها، وأخيرًا استكشافها لتحقيق الأهداف المحددة. في هذه الخطوة من جمع البيانات، يجب على علماء البيانات أيضًا تقييم كمية وجودة البيانات. يتطلب ذلك بعض الاستكشاف للتأكد من أن البيانات التي تم جمعها ستدعم تحقيق النتيجة المرجوة. + +أسئلة قد يطرحها عالم البيانات حول البيانات: +- ما هي البيانات المتوفرة لدي بالفعل؟ +- من يملك هذه البيانات؟ +- ما هي المخاوف المتعلقة بالخصوصية؟ +- هل لدي ما يكفي لحل هذه المشكلة؟ +- هل جودة البيانات مقبولة لهذه المشكلة؟ +- إذا اكتشفت معلومات إضافية من خلال هذه البيانات، هل يجب علينا التفكير في تغيير أو إعادة تعريف الأهداف؟ + +## المعالجة + +تركز مرحلة المعالجة في دورة الحياة على اكتشاف الأنماط في البيانات وكذلك النمذجة. تتطلب بعض التقنيات المستخدمة في هذه المرحلة أساليب إحصائية للكشف عن الأنماط. عادةً ما تكون هذه مهمة شاقة للبشر عند التعامل مع مجموعة بيانات كبيرة، لذا يتم الاعتماد على الحواسيب لتسريع العملية. في هذه المرحلة، يتقاطع علم البيانات مع التعلم الآلي. كما تعلمت في الدرس الأول، التعلم الآلي هو عملية بناء نماذج لفهم البيانات. النماذج هي تمثيل للعلاقة بين المتغيرات في البيانات التي تساعد في التنبؤ بالنتائج. + +التقنيات الشائعة المستخدمة في هذه المرحلة مغطاة في منهج التعلم الآلي للمبتدئين. تابع الروابط لتتعرف عليها أكثر: + +- [التصنيف](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification): تنظيم البيانات في فئات لاستخدام أكثر كفاءة. +- [التجميع](https://github.com/microsoft/ML-For-Beginners/tree/main/5-Clustering): تجميع البيانات في مجموعات متشابهة. +- [الانحدار](https://github.com/microsoft/ML-For-Beginners/tree/main/2-Regression): تحديد العلاقات بين المتغيرات للتنبؤ بالقيم أو التوقعات. + +## الصيانة + +في الرسم البياني لدورة الحياة، قد تكون لاحظت أن الصيانة تقع بين جمع البيانات والمعالجة. الصيانة هي عملية مستمرة لإدارة البيانات وتخزينها وتأمينها طوال مدة المشروع، ويجب أخذها في الاعتبار طوال المشروع بأكمله. + +### تخزين البيانات + +الاعتبارات المتعلقة بكيفية وأين يتم تخزين البيانات يمكن أن تؤثر على تكلفة التخزين وكذلك على أداء سرعة الوصول إلى البيانات. قرارات مثل هذه ليست من المحتمل أن يتخذها عالم البيانات بمفرده، ولكن قد يجد نفسه يتخذ خيارات حول كيفية التعامل مع البيانات بناءً على كيفية تخزينها. + +إليك بعض الجوانب المتعلقة بأنظمة تخزين البيانات الحديثة التي يمكن أن تؤثر على هذه الخيارات: + +**التخزين المحلي مقابل التخزين الخارجي مقابل السحابة العامة أو الخاصة** + +يشير التخزين المحلي إلى استضافة البيانات وإدارتها على معداتك الخاصة، مثل امتلاك خادم يحتوي على محركات أقراص صلبة لتخزين البيانات، بينما يعتمد التخزين الخارجي على معدات لا تملكها، مثل مركز بيانات. السحابة العامة هي خيار شائع لتخزين البيانات حيث لا يتطلب الأمر معرفة بكيفية أو مكان تخزين البيانات بالضبط، حيث تشير "العامة" إلى بنية تحتية موحدة مشتركة بين جميع مستخدمي السحابة. بعض المؤسسات لديها سياسات أمان صارمة تتطلب الوصول الكامل إلى المعدات التي تستضيف البيانات، وبالتالي تعتمد على السحابة الخاصة التي توفر خدمات سحابية خاصة بها. ستتعلم المزيد عن البيانات في السحابة في [الدروس القادمة](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/5-Data-Science-In-Cloud). + +**البيانات الباردة مقابل البيانات الساخنة** + +عند تدريب النماذج، قد تحتاج إلى المزيد من بيانات التدريب. إذا كنت راضيًا عن نموذجك، ستصل المزيد من البيانات ليخدم النموذج غرضه. في كلتا الحالتين، ستزداد تكلفة تخزين البيانات والوصول إليها مع تراكم المزيد منها. فصل البيانات التي نادرًا ما تُستخدم، والمعروفة بالبيانات الباردة، عن البيانات التي يتم الوصول إليها بشكل متكرر، والمعروفة بالبيانات الساخنة، يمكن أن يكون خيارًا أرخص لتخزين البيانات من خلال الأجهزة أو الخدمات البرمجية. إذا كانت البيانات الباردة بحاجة إلى الوصول، فقد يستغرق استرجاعها وقتًا أطول مقارنة بالبيانات الساخنة. + +### إدارة البيانات + +أثناء العمل مع البيانات، قد تكتشف أن بعض البيانات تحتاج إلى تنظيف باستخدام بعض التقنيات التي تم تناولها في الدرس الخاص بـ [تحضير البيانات](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/08-data-preparation) لبناء نماذج دقيقة. عندما تصل بيانات جديدة، ستحتاج إلى تطبيقات مشابهة للحفاظ على اتساق الجودة. بعض المشاريع ستتضمن استخدام أداة آلية للتنظيف، التجميع، والضغط قبل نقل البيانات إلى موقعها النهائي. يعد Azure Data Factory مثالاً على إحدى هذه الأدوات. + +### تأمين البيانات + +أحد الأهداف الرئيسية لتأمين البيانات هو ضمان أن من يعمل عليها يتحكم في ما يتم جمعه وفي أي سياق يتم استخدامه. يتضمن تأمين البيانات تقييد الوصول فقط لمن يحتاجها، الالتزام بالقوانين واللوائح المحلية، وكذلك الحفاظ على المعايير الأخلاقية، كما تم تناوله في [درس الأخلاقيات](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/1-Introduction/02-ethics). + +إليك بعض الأمور التي قد يقوم بها الفريق مع مراعاة الأمان: +- التأكد من أن جميع البيانات مشفرة +- تقديم معلومات للعملاء حول كيفية استخدام بياناتهم +- إزالة الوصول إلى البيانات من الأشخاص الذين غادروا المشروع +- السماح فقط لأعضاء معينين في المشروع بتعديل البيانات + +## 🚀 التحدي + +هناك العديد من الإصدارات لدورة حياة علم البيانات، حيث قد تحتوي كل خطوة على أسماء مختلفة وعدد مراحل مختلف، لكنها ستتضمن نفس العمليات المذكورة في هذا الدرس. + +استكشف [دورة حياة عملية فريق علم البيانات](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/lifecycle) و[المعيار الصناعي لعملية التنقيب عن البيانات](https://www.datascience-pm.com/crisp-dm-2/). اذكر 3 أوجه تشابه واختلاف بين الاثنين. + +|عملية فريق علم البيانات (TDSP)|المعيار الصناعي لعملية التنقيب عن البيانات (CRISP-DM)| +|--|--| +|![دورة حياة فريق علم البيانات](../../../../translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ar.png)|![صورة عملية علم البيانات](../../../../translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ar.png)| +|صورة من [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle)|صورة من [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/)| + +## [اختبار ما بعد المحاضرة](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## المراجعة والدراسة الذاتية + +تطبيق دورة حياة علم البيانات يتضمن أدوارًا ومهامًا متعددة، حيث قد يركز البعض على أجزاء معينة من كل مرحلة. توفر عملية فريق علم البيانات بعض الموارد التي تشرح أنواع الأدوار والمهام التي قد يتولاها شخص ما في المشروع. + +* [أدوار ومهام عملية فريق علم البيانات](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/roles-tasks) +* [تنفيذ مهام علم البيانات: الاستكشاف، النمذجة، والنشر](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/execute-data-science-tasks) + +## الواجب + +[تقييم مجموعة بيانات](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/translations/ar/4-Data-Science-Lifecycle/14-Introduction/assignment.md new file mode 100644 index 00000000..9d871571 --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -0,0 +1,37 @@ + +# تقييم مجموعة البيانات + +تواصل مع فريقك عميل يطلب المساعدة في دراسة عادات الإنفاق الموسمية لعملاء سيارات الأجرة في مدينة نيويورك. + +يريدون معرفة: **هل يقدم ركاب سيارات الأجرة الصفراء في مدينة نيويورك إكراميات للسائقين أكثر في الشتاء أم الصيف؟** + +فريقك في مرحلة [جمع البيانات](Readme.md#Capturing) ضمن دورة حياة علم البيانات، وأنت مسؤول عن التعامل مع مجموعة البيانات. تم تزويدك بدفتر ملاحظات و[بيانات](../../../../data/taxi.csv) لاستكشافها. + +في هذا الدليل، يوجد [دفتر ملاحظات](notebook.ipynb) يستخدم لغة Python لتحميل بيانات رحلات سيارات الأجرة الصفراء من [لجنة سيارات الأجرة والليموزين في نيويورك](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets). +يمكنك أيضًا فتح ملف بيانات سيارات الأجرة باستخدام محرر نصوص أو برامج جداول البيانات مثل Excel. + +## التعليمات + +- قيّم ما إذا كانت البيانات في هذه المجموعة يمكن أن تساعد في الإجابة على السؤال. +- استكشف [كتالوج بيانات نيويورك المفتوحة](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93). حدد مجموعة بيانات إضافية قد تكون مفيدة للإجابة على سؤال العميل. +- اكتب 3 أسئلة يمكنك طرحها على العميل للحصول على مزيد من التوضيح وفهم أفضل للمشكلة. + +راجع [قاموس البيانات الخاص بالمجموعة](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) و[دليل المستخدم](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) للحصول على مزيد من المعلومات حول البيانات. + +## معايير التقييم + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/15-analyzing/README.md b/translations/ar/4-Data-Science-Lifecycle/15-analyzing/README.md new file mode 100644 index 00000000..6daaab91 --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/15-analyzing/README.md @@ -0,0 +1,62 @@ + +# دورة حياة علم البيانات: التحليل + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/15-Analyzing.png)| +|:---:| +| دورة حياة علم البيانات: التحليل - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +## اختبار ما قبل المحاضرة + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/28) + +التحليل في دورة حياة البيانات يؤكد أن البيانات يمكنها الإجابة على الأسئلة المطروحة أو حل مشكلة معينة. يمكن أن يركز هذا الخطوة أيضًا على التأكد من أن النموذج يعالج هذه الأسئلة والمشاكل بشكل صحيح. تركز هذه الدرس على تحليل البيانات الاستكشافي أو EDA، وهي تقنيات لتحديد الميزات والعلاقات داخل البيانات ويمكن استخدامها لتحضير البيانات للنمذجة. + +سنستخدم مجموعة بيانات كمثال من [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1) لنوضح كيف يمكن تطبيق ذلك باستخدام Python ومكتبة Pandas. تحتوي هذه المجموعة على عدد من الكلمات الشائعة الموجودة في رسائل البريد الإلكتروني، ومصادر هذه الرسائل مجهولة. استخدم [دفتر الملاحظات](notebook.ipynb) في هذا الدليل لمتابعة الشرح. + +## تحليل البيانات الاستكشافي + +مرحلة الالتقاط في دورة الحياة هي حيث يتم الحصول على البيانات وكذلك المشاكل والأسئلة المطروحة، ولكن كيف نعرف أن البيانات يمكن أن تدعم النتيجة النهائية؟ +تذكر أن عالم البيانات قد يطرح الأسئلة التالية عند الحصول على البيانات: +- هل لدي بيانات كافية لحل هذه المشكلة؟ +- هل جودة البيانات مقبولة لهذه المشكلة؟ +- إذا اكتشفت معلومات إضافية من خلال هذه البيانات، هل يجب أن نعيد النظر أو نعيد تعريف الأهداف؟ + +تحليل البيانات الاستكشافي هو عملية التعرف على البيانات ويمكن استخدامها للإجابة على هذه الأسئلة، وكذلك تحديد التحديات المتعلقة بالعمل مع مجموعة البيانات. دعونا نركز على بعض التقنيات المستخدمة لتحقيق ذلك. + +## توصيف البيانات، الإحصاءات الوصفية، وPandas +كيف نقيم ما إذا كانت لدينا بيانات كافية لحل هذه المشكلة؟ يمكن لتوصيف البيانات تلخيص وجمع بعض المعلومات العامة حول مجموعة البيانات من خلال تقنيات الإحصاءات الوصفية. يساعد توصيف البيانات في فهم ما هو متاح لدينا، وتساعد الإحصاءات الوصفية في فهم عدد الأشياء المتاحة لدينا. + +في بعض الدروس السابقة، استخدمنا Pandas لتوفير بعض الإحصاءات الوصفية باستخدام وظيفة [`describe()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html). توفر هذه الوظيفة العدد، القيم القصوى والدنيا، المتوسط، الانحراف المعياري والكمية على البيانات الرقمية. يمكن أن تساعدك الإحصاءات الوصفية مثل وظيفة `describe()` في تقييم ما لديك وما إذا كنت بحاجة إلى المزيد. + +## أخذ العينات والاستعلام +استكشاف كل شيء في مجموعة بيانات كبيرة يمكن أن يكون مستهلكًا للوقت للغاية ومهمة تُترك عادةً للكمبيوتر للقيام بها. ومع ذلك، فإن أخذ العينات هو أداة مفيدة لفهم البيانات ويسمح لنا بفهم أفضل لما تحتويه مجموعة البيانات وما تمثله. باستخدام عينة، يمكنك تطبيق الاحتمالات والإحصاءات للتوصل إلى بعض الاستنتاجات العامة حول بياناتك. على الرغم من عدم وجود قاعدة محددة حول مقدار البيانات التي يجب أخذ عينات منها، من المهم ملاحظة أنه كلما زادت البيانات التي تأخذ عينات منها، زادت دقة التعميم الذي يمكنك القيام به حول البيانات. + +تحتوي مكتبة Pandas على وظيفة [`sample()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html) حيث يمكنك تمرير وسيط لتحديد عدد العينات العشوائية التي ترغب في الحصول عليها واستخدامها. + +يمكن أن يساعد الاستعلام العام عن البيانات في الإجابة على بعض الأسئلة والنظريات العامة التي قد تكون لديك. على عكس أخذ العينات، يسمح لك الاستعلام بالتحكم والتركيز على أجزاء محددة من البيانات التي لديك أسئلة حولها. +وظيفة [`query()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html) في مكتبة Pandas تسمح لك بتحديد الأعمدة والحصول على إجابات بسيطة حول البيانات من خلال الصفوف المسترجعة. + +## الاستكشاف باستخدام التصورات +لا يتعين عليك الانتظار حتى يتم تنظيف البيانات وتحليلها بالكامل لبدء إنشاء التصورات. في الواقع، يمكن أن يساعد وجود تمثيل بصري أثناء الاستكشاف في تحديد الأنماط والعلاقات والمشاكل في البيانات. علاوة على ذلك، توفر التصورات وسيلة للتواصل مع أولئك الذين لا يشاركون في إدارة البيانات ويمكن أن تكون فرصة لمشاركة وتوضيح أسئلة إضافية لم يتم تناولها في مرحلة الالتقاط. راجع [القسم الخاص بالتصورات](../../../../../../../../../3-Data-Visualization) لمعرفة المزيد حول بعض الطرق الشائعة للاستكشاف بصريًا. + +## الاستكشاف لتحديد التناقضات +يمكن أن تساعد جميع المواضيع في هذا الدرس في تحديد القيم المفقودة أو غير المتسقة، ولكن Pandas توفر وظائف للتحقق من بعضها. [isna() أو isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html) يمكنها التحقق من القيم المفقودة. أحد الجوانب المهمة لاستكشاف هذه القيم داخل بياناتك هو استكشاف سبب انتهائها بهذه الطريقة في المقام الأول. يمكن أن يساعدك ذلك في اتخاذ قرار بشأن [الإجراءات اللازمة لحلها](/2-Working-With-Data/08-data-preparation/notebook.ipynb). + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/27) + +## المهمة + +[استكشاف للحصول على الإجابات](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/15-analyzing/assignment.md b/translations/ar/4-Data-Science-Lifecycle/15-analyzing/assignment.md new file mode 100644 index 00000000..b05cb42a --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/15-analyzing/assignment.md @@ -0,0 +1,36 @@ + +# البحث عن الإجابات + +هذا استمرار لمهمة الدرس السابق [assignment](../14-Introduction/assignment.md)، حيث ألقينا نظرة سريعة على مجموعة البيانات. الآن سنقوم بإلقاء نظرة أعمق على البيانات. + +مرة أخرى، السؤال الذي يريد العميل معرفته: **هل يميل ركاب سيارات الأجرة الصفراء في مدينة نيويورك إلى إعطاء إكراميات للسائقين أكثر في الشتاء أم الصيف؟** + +فريقك في مرحلة [التحليل](README.md) من دورة حياة علم البيانات، حيث تكون مسؤولاً عن إجراء تحليل استكشافي للبيانات على مجموعة البيانات. تم تزويدك بدفتر ملاحظات ومجموعة بيانات تحتوي على 200 معاملة لسيارات الأجرة من يناير ويوليو 2019. + +## التعليمات + +في هذا الدليل يوجد [دفتر ملاحظات](assignment.ipynb) وبيانات من [لجنة سيارات الأجرة والليموزين](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets). راجع [قاموس مجموعة البيانات](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) و[دليل المستخدم](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) للحصول على مزيد من المعلومات حول البيانات. + +استخدم بعض التقنيات في هذا الدرس لإجراء التحليل الاستكشافي الخاص بك في دفتر الملاحظات (أضف خلايا إذا أردت) وأجب عن الأسئلة التالية: + +- ما التأثيرات الأخرى في البيانات التي يمكن أن تؤثر على مبلغ الإكرامية؟ +- ما الأعمدة التي من المرجح أنها لن تكون ضرورية للإجابة على أسئلة العميل؟ +- بناءً على ما تم تقديمه حتى الآن، هل يبدو أن البيانات تقدم أي دليل على سلوك الإكراميات الموسمي؟ + +## التقييم + +ممتاز | مقبول | يحتاج إلى تحسين +--- | --- | --- | + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/16-communication/README.md b/translations/ar/4-Data-Science-Lifecycle/16-communication/README.md new file mode 100644 index 00000000..12ef18cf --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/16-communication/README.md @@ -0,0 +1,222 @@ + +# دورة حياة علم البيانات: التواصل + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/16-Communicating.png)| +|:---:| +| دورة حياة علم البيانات: التواصل - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/30) + +اختبر معرفتك بما سيأتي من خلال اختبار ما قبل المحاضرة أعلاه! + +# المقدمة + +### ما هو التواصل؟ +لنبدأ هذه الدرس بتعريف معنى التواصل. **التواصل هو نقل أو تبادل المعلومات.** يمكن أن تكون المعلومات أفكارًا، مشاعر، رسائل، إشارات خفية، بيانات – أي شيء يريد **_المرسل_** (الشخص الذي يرسل المعلومات) أن يفهمه **_المتلقي_** (الشخص الذي يتلقى المعلومات). في هذا الدرس، سنشير إلى المرسلين كمتواصلين، وإلى المتلقين كجمهور. + +### التواصل بالبيانات وسرد القصص +نفهم أنه عند التواصل، الهدف هو نقل أو تبادل المعلومات. ولكن عند التواصل باستخدام البيانات، يجب أن يكون هدفك أكثر من مجرد نقل الأرقام إلى جمهورك. يجب أن يكون هدفك هو سرد قصة مستوحاة من بياناتك – التواصل الفعّال بالبيانات وسرد القصص يسيران جنبًا إلى جنب. جمهورك من المرجح أن يتذكر القصة التي ترويها أكثر من الرقم الذي تقدمه. لاحقًا في هذا الدرس، سنتناول بعض الطرق التي يمكنك من خلالها استخدام سرد القصص لتوصيل بياناتك بشكل أكثر فعالية. + +### أنواع التواصل +خلال هذا الدرس، سيتم مناقشة نوعين مختلفين من التواصل: التواصل أحادي الاتجاه والتواصل ثنائي الاتجاه. + +**التواصل أحادي الاتجاه** يحدث عندما يرسل المرسل معلومات إلى المتلقي دون أي رد أو تغذية راجعة. نرى أمثلة على التواصل أحادي الاتجاه يوميًا – في رسائل البريد الإلكتروني الجماعية، عندما تقدم الأخبار أحدث القصص، أو حتى عندما يظهر إعلان تلفزيوني ويخبرك لماذا منتجهم رائع. في كل من هذه الحالات، لا يسعى المرسل إلى تبادل المعلومات، بل يسعى فقط إلى نقلها. + +**التواصل ثنائي الاتجاه** يحدث عندما يتصرف جميع الأطراف المعنية كمرسلين ومتلقين. يبدأ المرسل بالتواصل مع المتلقي، ويقدم المتلقي تغذية راجعة أو ردًا. التواصل ثنائي الاتجاه هو ما نفكر فيه عادة عندما نتحدث عن التواصل. عادة ما نفكر في الأشخاص الذين يشاركون في محادثة – سواء شخصيًا، أو عبر مكالمة هاتفية، أو وسائل التواصل الاجتماعي، أو الرسائل النصية. + +عند التواصل باستخدام البيانات، ستكون هناك حالات تستخدم فيها التواصل أحادي الاتجاه (مثل تقديم عرض في مؤتمر أو لمجموعة كبيرة حيث لن يتم طرح الأسئلة مباشرة بعد ذلك) وحالات تستخدم فيها التواصل ثنائي الاتجاه (مثل استخدام البيانات لإقناع بعض أصحاب المصلحة بالموافقة، أو لإقناع زميل بأن الوقت والجهد يجب أن يُخصصا لبناء شيء جديد). + +# التواصل الفعّال + +### مسؤولياتك كمتواصل +عند التواصل، تقع على عاتقك مسؤولية التأكد من أن المتلقي/المتلقيين يستوعبون المعلومات التي تريدهم أن يستوعبوها. عندما تتواصل باستخدام البيانات، لا تريد فقط أن يستوعب المتلقون الأرقام، بل تريدهم أن يستوعبوا قصة مستوحاة من بياناتك. المتواصل الجيد بالبيانات هو راوي قصص جيد. + +كيف تروي قصة باستخدام البيانات؟ هناك طرق لا حصر لها – ولكن أدناه ستة طرق سنتحدث عنها في هذا الدرس: +1. فهم جمهورك، الوسيلة التي تستخدمها، وطريقة التواصل +2. البدء مع وضع النهاية في الاعتبار +3. التعامل معها كقصة حقيقية +4. استخدام كلمات وعبارات ذات معنى +5. استخدام العاطفة + +كل واحدة من هذه الاستراتيجيات سيتم شرحها بالتفصيل أدناه. + +### 1. فهم جمهورك، قناتك، وطريقة التواصل +الطريقة التي تتواصل بها مع أفراد عائلتك تختلف على الأرجح عن الطريقة التي تتواصل بها مع أصدقائك. ربما تستخدم كلمات وعبارات مختلفة يفهمها الأشخاص الذين تتحدث إليهم بشكل أفضل. يجب أن تتبع نفس النهج عند التواصل باستخدام البيانات. فكر في من تتواصل معه. فكر في أهدافهم والسياق الذي لديهم حول الموضوع الذي تشرحه لهم. + +يمكنك على الأرجح تصنيف معظم جمهورك ضمن فئة معينة. في مقال _Harvard Business Review_ بعنوان "[كيف تروي قصة باستخدام البيانات](http://blogs.hbr.org/2013/04/how-to-tell-a-story-with-data/)"، يحدد استراتيجي Dell التنفيذي Jim Stikeleather خمس فئات من الجمهور: + + - **المبتدئ**: أول تعرض للموضوع، لكنه لا يريد تبسيطًا مفرطًا + - **العام**: على دراية بالموضوع، لكنه يبحث عن فهم شامل ومواضيع رئيسية + - **الإداري**: فهم عميق وقابل للتنفيذ للتعقيدات والعلاقات مع الوصول إلى التفاصيل + - **الخبير**: المزيد من الاستكشاف والاكتشاف وأقل سرد للقصص مع تفاصيل كبيرة + - **التنفيذي**: لديه وقت فقط لفهم الأهمية والاستنتاجات من الاحتمالات المرجحة + +يمكن لهذه الفئات أن توجه الطريقة التي تقدم بها البيانات لجمهورك. + +بالإضافة إلى التفكير في فئة جمهورك، يجب أيضًا أن تأخذ في الاعتبار القناة التي تستخدمها للتواصل معهم. يجب أن يكون نهجك مختلفًا قليلاً إذا كنت تكتب مذكرة أو بريدًا إلكترونيًا مقابل عقد اجتماع أو تقديم عرض في مؤتمر. + +فهم جمهورك ومعرفة كيفية التواصل معهم (باستخدام التواصل أحادي الاتجاه أو ثنائي الاتجاه) أمر بالغ الأهمية أيضًا. + +إذا كنت تتواصل مع جمهور غالبيته مبتدئ وتستخدم التواصل أحادي الاتجاه، يجب أولاً تثقيف الجمهور ومنحهم السياق المناسب. ثم يجب أن تقدم بياناتك لهم وتخبرهم بما تعنيه بياناتك ولماذا تهم. في هذه الحالة، قد ترغب في التركيز بشكل كبير على تحقيق الوضوح، لأن جمهورك لن يكون قادرًا على طرح أسئلة مباشرة. + +إذا كنت تتواصل مع جمهور غالبيته إداري وتستخدم التواصل ثنائي الاتجاه، فمن المحتمل أنك لن تحتاج إلى تثقيف جمهورك أو تقديم الكثير من السياق. قد تتمكن من الانتقال مباشرة إلى مناقشة البيانات التي جمعتها ولماذا تهم. في هذا السيناريو، يجب أن تركز على التوقيت والتحكم في عرضك. عند استخدام التواصل ثنائي الاتجاه (خاصة مع جمهور إداري يبحث عن "فهم قابل للتنفيذ للتعقيدات والعلاقات مع الوصول إلى التفاصيل") قد تظهر أسئلة أثناء التفاعل قد تأخذ المناقشة في اتجاه لا يتعلق بالقصة التي تحاول سردها. عندما يحدث ذلك، يمكنك اتخاذ إجراء وإعادة المناقشة إلى مسارها الصحيح مع قصتك. + +### 2. البدء مع وضع النهاية في الاعتبار +البدء مع وضع النهاية في الاعتبار يعني فهم النتائج التي تريد أن يستوعبها جمهورك قبل أن تبدأ التواصل معهم. التفكير في ما تريد أن يستوعبه جمهورك مسبقًا يمكن أن يساعدك في صياغة قصة يمكن لجمهورك متابعتها. البدء مع وضع النهاية في الاعتبار مناسب لكل من التواصل أحادي الاتجاه وثنائي الاتجاه. + +كيف تبدأ مع وضع النهاية في الاعتبار؟ قبل التواصل باستخدام بياناتك، قم بكتابة النتائج الرئيسية التي تريدها. ثم، في كل خطوة أثناء إعداد القصة التي تريد سردها باستخدام بياناتك، اسأل نفسك، "كيف يتكامل هذا مع القصة التي أرويها؟" + +كن واعيًا – بينما البدء مع وضع النهاية في الاعتبار هو المثالي، لا تريد أن تتواصل فقط مع البيانات التي تدعم النتائج التي تنويها. القيام بذلك يسمى الانتقاء، وهو يحدث عندما يتواصل المتواصل فقط مع البيانات التي تدعم النقطة التي يحاول إثباتها ويتجاهل جميع البيانات الأخرى. + +إذا كانت جميع البيانات التي جمعتها تدعم بوضوح النتائج التي تنويها، فهذا رائع. ولكن إذا كانت هناك بيانات جمعتها لا تدعم النتائج التي تنويها، أو حتى تدعم حجة ضد النتائج الرئيسية التي تنويها، يجب أن تتواصل مع تلك البيانات أيضًا. إذا حدث ذلك، كن صريحًا مع جمهورك وأخبرهم لماذا تختار الالتزام بقصتك على الرغم من أن جميع البيانات لا تدعمها بالضرورة. + +### 3. التعامل معها كقصة حقيقية +القصة التقليدية تحدث في خمس مراحل. ربما سمعت عن هذه المراحل معبرًا عنها كـ: العرض، تصاعد الأحداث، الذروة، تراجع الأحداث، والخاتمة. أو الأسهل للتذكر: السياق، الصراع، الذروة، الإغلاق، والاستنتاج. عند التواصل باستخدام بياناتك وقصتك، يمكنك اتباع نهج مشابه. + +يمكنك البدء بالسياق، إعداد المسرح والتأكد من أن جمهورك على نفس الصفحة. ثم تقديم الصراع. لماذا كنت بحاجة إلى جمع هذه البيانات؟ ما المشاكل التي كنت تسعى لحلها؟ بعد ذلك، الذروة. ما هي البيانات؟ ماذا تعني البيانات؟ ما الحلول التي تخبرنا بها البيانات أننا بحاجة إليها؟ ثم تصل إلى الإغلاق، حيث يمكنك إعادة التأكيد على المشكلة، والحلول المقترحة. وأخيرًا، نصل إلى الاستنتاج، حيث يمكنك تلخيص النتائج الرئيسية والخطوات التالية التي توصي الفريق باتخاذها. + +### 4. استخدام كلمات وعبارات ذات معنى +إذا كنت أنا وأنت نعمل معًا على منتج، وقلت لك "يستغرق مستخدمونا وقتًا طويلًا للتسجيل في منصتنا"، كم ستقدر أن "الوقت الطويل" يعني؟ ساعة؟ أسبوع؟ من الصعب أن تعرف. ماذا لو قلت ذلك لجمهور كامل؟ قد ينتهي الأمر بكل شخص في الجمهور بفكرة مختلفة عن المدة التي يستغرقها المستخدمون للتسجيل في منصتنا. + +بدلاً من ذلك، ماذا لو قلت "يستغرق مستخدمونا، في المتوسط، 3 دقائق للتسجيل في منصتنا." + +هذه الرسالة أكثر وضوحًا. عند التواصل باستخدام البيانات، قد يكون من السهل التفكير في أن الجميع في جمهورك يفكرون مثلك تمامًا. لكن هذا ليس دائمًا الحال. تحقيق الوضوح حول بياناتك وما تعنيه هو أحد مسؤولياتك كمتواصل. إذا لم تكن البيانات أو قصتك واضحة، سيجد جمهورك صعوبة في المتابعة، ومن غير المرجح أن يفهموا النتائج الرئيسية التي تريدهم أن يستوعبوها. + +يمكنك التواصل باستخدام البيانات بشكل أكثر وضوحًا عندما تستخدم كلمات وعبارات ذات معنى، بدلاً من كلمات غامضة. أدناه بعض الأمثلة. + + - كان لدينا عام *مبهر*! + - قد يعتقد شخص أن المبهر يعني زيادة بنسبة 2% - 3% في الإيرادات، وقد يعتقد شخص آخر أنه يعني زيادة بنسبة 50% - 60%. + - معدلات نجاح مستخدمينا زادت *بشكل كبير*. + - ما حجم الزيادة التي تعتبر كبيرة؟ + - هذا المشروع سيتطلب *جهدًا كبيرًا*. + - كم الجهد الذي يعتبر كبيرًا؟ + +استخدام الكلمات الغامضة قد يكون مفيدًا كمقدمة لبيانات أكثر تفصيلًا قادمة، أو كملخص للقصة التي رويتها للتو. ولكن فكر في ضمان أن كل جزء من عرضك واضح لجمهورك. + +### 5. استخدام العاطفة +العاطفة هي المفتاح في سرد القصص. وهي أكثر أهمية عندما تروي قصة باستخدام البيانات. عندما تتواصل باستخدام البيانات، كل شيء يركز على النتائج التي تريد أن يستوعبها جمهورك. عندما تثير عاطفة لدى الجمهور، يساعدهم ذلك على التعاطف، ويجعلهم أكثر احتمالًا لاتخاذ إجراء. العاطفة أيضًا تزيد من احتمال أن يتذكر الجمهور رسالتك. + +ربما واجهت هذا من قبل مع الإعلانات التلفزيونية. بعض الإعلانات تكون حزينة جدًا، وتستخدم عاطفة الحزن للتواصل مع جمهورها وجعل البيانات التي تقدمها بارزة حقًا. أو، بعض الإعلانات تكون مبهجة وسعيدة جدًا، مما يجعلك تربط بياناتها بشعور سعيد. + +كيف تستخدم العاطفة عند التواصل باستخدام البيانات؟ أدناه بعض الطرق. + + - استخدام الشهادات والقصص الشخصية + - عند جمع البيانات، حاول جمع بيانات كمية ونوعية، ودمج كلا النوعين عند التواصل. إذا كانت بياناتك كمية بشكل أساسي، ابحث عن قصص من الأفراد لتتعرف أكثر على تجربتهم مع ما تخبرك به بياناتك. + - استخدام الصور + - الصور تساعد الجمهور على رؤية أنفسهم في موقف معين. عندما تستخدم الصور، يمكنك دفع الجمهور نحو العاطفة التي تشعر أنها يجب أن تكون لديهم حول بياناتك. + - استخدام الألوان + - الألوان المختلفة تثير عواطف مختلفة. الألوان الشائعة والعواطف التي تثيرها أدناه. كن واعيًا، أن الألوان قد تحمل معاني مختلفة في الثقافات المختلفة. + - الأزرق عادة يثير مشاعر السلام والثقة + - الأخضر عادة يرتبط بالطبيعة والبيئة + - الأحمر عادة يثير الحماس والإثارة + - الأصفر عادة يثير التفاؤل والسعادة + +# دراسة حالة التواصل +إيمرسون هو مدير منتج لتطبيق جوال. لاحظ إيمرسون أن العملاء يقدمون 42% من الشكاوى وتقارير الأخطاء أكثر في عطلة نهاية الأسبوع. كما لاحظ إيمرسون أن العملاء الذين يقدمون شكوى لا يتم الرد عليها بعد 48 ساعة يكونون أكثر احتمالًا بنسبة 32% لتقييم التطبيق بدرجة 1 أو 2 في متجر التطبيقات. + +بعد إجراء البحث، لدى إيمرسون بعض الحلول التي ستعالج المشكلة. قام إيمرسون بترتيب اجتماع لمدة 30 دقيقة مع 3 قادة الشركة لتوصيل البيانات والحلول المقترحة. + +خلال هذا الاجتماع، هدف إيمرسون هو أن يفهم قادة الشركة أن الحلين أدناه يمكن أن يحسنا تقييم التطبيق، مما سيترجم على الأرجح إلى زيادة الإيرادات. + +**الحل 1.** توظيف ممثلي خدمة العملاء للعمل في عطلة نهاية الأسبوع + +**الحل 2.** شراء نظام جديد لتذاكر خدمة العملاء حيث يمكن لممثلي خدمة العملاء بسهولة تحديد الشكاوى التي كانت في قائمة الانتظار لأطول فترة – حتى يتمكنوا من معرفة أيها يجب معالجته بشكل عاجل. +في الاجتماع، قضى إيمرسون 5 دقائق في شرح سبب كون التقييم المنخفض في متجر التطبيقات أمرًا سيئًا، و10 دقائق في شرح عملية البحث وكيف تم تحديد الاتجاهات، و10 دقائق في استعراض بعض شكاوى العملاء الأخيرة، و5 دقائق أخيرة في التطرق بشكل سريع إلى الحلين المحتملين. + +هل كانت هذه طريقة فعالة لإيمرسون للتواصل خلال هذا الاجتماع؟ + +خلال الاجتماع، ركز أحد قادة الشركة بشكل كبير على الـ 10 دقائق التي تناول فيها إيمرسون شكاوى العملاء. بعد الاجتماع، كانت هذه الشكاوى هي الشيء الوحيد الذي تذكره هذا القائد. قائد آخر ركز بشكل أساسي على وصف إيمرسون لعملية البحث. أما القائد الثالث فقد تذكر الحلول التي اقترحها إيمرسون لكنه لم يكن متأكدًا من كيفية تنفيذ هذه الحلول. + +في الوضع أعلاه، يمكنك أن ترى أن هناك فجوة كبيرة بين ما أراد إيمرسون أن يأخذه قادة الفريق من الاجتماع، وما انتهى بهم الأمر إلى أخذه. فيما يلي نهج آخر يمكن أن يفكر فيه إيمرسون. + +كيف يمكن لإيمرسون تحسين هذا النهج؟ +السياق، الصراع، الذروة، الإغلاق، الخاتمة +**السياق** - يمكن لإيمرسون أن يقضي أول 5 دقائق في تقديم الوضع بالكامل والتأكد من أن قادة الفريق يفهمون كيف تؤثر المشاكل على المقاييس الحرجة للشركة، مثل الإيرادات. + +يمكن أن يتم تقديمه بهذه الطريقة: "حاليًا، تقييم تطبيقنا في متجر التطبيقات هو 2.5. التقييمات في متجر التطبيقات ضرورية لتحسين ظهور التطبيق في المتجر، مما يؤثر على عدد المستخدمين الذين يرون تطبيقنا في البحث، وكيف يُنظر إلى تطبيقنا من قبل المستخدمين المحتملين. وبالطبع، عدد المستخدمين لدينا مرتبط مباشرة بالإيرادات." + +**الصراع** يمكن لإيمرسون بعد ذلك الانتقال للحديث لمدة 5 دقائق تقريبًا عن الصراع. + +يمكن أن يتم تقديمه بهذه الطريقة: "يقدم المستخدمون شكاوى وتقارير عن الأخطاء بنسبة 42% أكثر في عطلة نهاية الأسبوع. العملاء الذين يقدمون شكوى ولا يتم الرد عليها خلال 48 ساعة يكونون أقل احتمالًا بنسبة 32% لمنح تطبيقنا تقييمًا أعلى من 2 في متجر التطبيقات. تحسين تقييم تطبيقنا في متجر التطبيقات إلى 4 سيزيد من ظهورنا بنسبة 20-30%، مما أتوقع أنه سيزيد الإيرادات بنسبة 10%." بالطبع، يجب أن يكون إيمرسون مستعدًا لتبرير هذه الأرقام. + +**الذروة** بعد وضع الأساس، يمكن لإيمرسون الانتقال إلى الذروة لمدة 5 دقائق تقريبًا. + +يمكن لإيمرسون أن يقدم الحلول المقترحة، ويشرح كيف ستعالج هذه الحلول المشاكل التي تم تحديدها، وكيف يمكن تنفيذ هذه الحلول في سير العمل الحالي، وتكلفة الحلول، والعائد على الاستثمار لهذه الحلول، وربما حتى عرض لقطات شاشة أو نماذج أولية لكيفية ظهور الحلول إذا تم تنفيذها. يمكن لإيمرسون أيضًا مشاركة شهادات من مستخدمين استغرق الرد على شكواهم أكثر من 48 ساعة، وحتى شهادة من ممثل خدمة العملاء الحالي داخل الشركة الذي لديه تعليقات على نظام التذاكر الحالي. + +**الإغلاق** الآن يمكن لإيمرسون أن يقضي 5 دقائق في إعادة صياغة المشاكل التي تواجهها الشركة، ومراجعة الحلول المقترحة، ومراجعة سبب كون هذه الحلول هي الحلول الصحيحة. + +**الخاتمة** نظرًا لأن هذا اجتماع مع عدد قليل من أصحاب المصلحة حيث سيتم استخدام التواصل ثنائي الاتجاه، يمكن لإيمرسون أن يخطط لترك 10 دقائق للأسئلة، للتأكد من أن أي شيء كان غامضًا لقادة الفريق يمكن توضيحه قبل انتهاء الاجتماع. + +إذا اتبع إيمرسون النهج الثاني، فمن المرجح أن يأخذ قادة الفريق من الاجتماع بالضبط ما أراد إيمرسون أن يأخذوه – وهو أن طريقة التعامل مع الشكاوى والأخطاء يمكن تحسينها، وهناك حلان يمكن تنفيذهما لتحقيق هذا التحسين. هذا النهج سيكون أكثر فعالية في توصيل البيانات والقصة التي يريد إيمرسون إيصالها. + +# الخاتمة +### ملخص النقاط الرئيسية +- التواصل هو نقل أو تبادل المعلومات. +- عند التواصل باستخدام البيانات، يجب أن يكون هدفك أكثر من مجرد نقل الأرقام إلى جمهورك. يجب أن يكون هدفك هو إيصال قصة مستوحاة من بياناتك. +- هناك نوعان من التواصل، التواصل أحادي الاتجاه (يتم نقل المعلومات دون نية الحصول على رد) والتواصل ثنائي الاتجاه (يتم تبادل المعلومات ذهابًا وإيابًا). +- هناك العديد من الاستراتيجيات التي يمكنك استخدامها لسرد قصة باستخدام بياناتك، و5 استراتيجيات تناولناها هي: + - فهم جمهورك، وسيلتك، وطريقتك في التواصل + - ابدأ مع وضع النهاية في الاعتبار + - تعامل معها كأنها قصة حقيقية + - استخدم كلمات وعبارات ذات معنى + - استخدم العاطفة + +### موارد موصى بها للدراسة الذاتية +[The Five C's of Storytelling - Articulate Persuasion](http://articulatepersuasion.com/the-five-cs-of-storytelling/) + +[1.4 Your Responsibilities as a Communicator – Business Communication for Success (umn.edu)](https://open.lib.umn.edu/businesscommunication/chapter/1-4-your-responsibilities-as-a-communicator/) + +[How to Tell a Story with Data (hbr.org)](https://hbr.org/2013/04/how-to-tell-a-story-with-data) + +[Two-Way Communication: 4 Tips for a More Engaged Workplace (yourthoughtpartner.com)](https://www.yourthoughtpartner.com/blog/bid/59576/4-steps-to-increase-employee-engagement-through-two-way-communication) + +[6 succinct steps to great data storytelling - BarnRaisers, LLC (barnraisersllc.com)](https://barnraisersllc.com/2021/05/02/6-succinct-steps-to-great-data-storytelling/) + +[How to Tell a Story With Data | Lucidchart Blog](https://www.lucidchart.com/blog/how-to-tell-a-story-with-data) + +[6 Cs of Effective Storytelling on Social Media | Cooler Insights](https://coolerinsights.com/2018/06/effective-storytelling-social-media/) + +[The Importance of Emotions In Presentations | Ethos3 - A Presentation Training and Design Agency](https://ethos3.com/2015/02/the-importance-of-emotions-in-presentations/) + +[Data storytelling: linking emotions and rational decisions (toucantoco.com)](https://www.toucantoco.com/en/blog/data-storytelling-dataviz) + +[Emotional Advertising: How Brands Use Feelings to Get People to Buy (hubspot.com)](https://blog.hubspot.com/marketing/emotions-in-advertising-examples) + +[Choosing Colors for Your Presentation Slides | Think Outside The Slide](https://www.thinkoutsidetheslide.com/choosing-colors-for-your-presentation-slides/) + +[How To Present Data [10 Expert Tips] | ObservePoint](https://resources.observepoint.com/blog/10-tips-for-presenting-data) + +[Microsoft Word - Persuasive Instructions.doc (tpsnva.org)](https://www.tpsnva.org/teach/lq/016/persinstr.pdf) + +[The Power of Story for Your Data (thinkhdi.com)](https://www.thinkhdi.com/library/supportworld/2019/power-story-your-data.aspx) + +[Common Mistakes in Data Presentation (perceptualedge.com)](https://www.perceptualedge.com/articles/ie/data_presentation.pdf) + +[Infographic: Here are 15 Common Data Fallacies to Avoid (visualcapitalist.com)](https://www.visualcapitalist.com/here-are-15-common-data-fallacies-to-avoid/) + +[Cherry Picking: When People Ignore Evidence that They Dislike – Effectiviology](https://effectiviology.com/cherry-picking/#How_to_avoid_cherry_picking) + +[Tell Stories with Data: Communication in Data Science | by Sonali Verghese | Towards Data Science](https://towardsdatascience.com/tell-stories-with-data-communication-in-data-science-5266f7671d7) + +[1. Communicating Data - Communicating Data with Tableau [Book] (oreilly.com)](https://www.oreilly.com/library/view/communicating-data-with/9781449372019/ch01.html) + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/31) + +راجع ما تعلمته للتو باستخدام اختبار ما بعد المحاضرة أعلاه! + +## المهمة + +[أبحاث السوق](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/16-communication/assignment.md b/translations/ar/4-Data-Science-Lifecycle/16-communication/assignment.md new file mode 100644 index 00000000..a75f74b1 --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/16-communication/assignment.md @@ -0,0 +1,26 @@ + +# احكِ قصة + +## التعليمات + +علم البيانات يدور حول سرد القصص. اختر أي مجموعة بيانات واكتب ورقة قصيرة عن قصة يمكنك سردها عنها. ما الذي تأمل أن تكشفه مجموعة البيانات الخاصة بك؟ ماذا ستفعل إذا أثبتت نتائجها أنها إشكالية؟ ماذا لو لم تكشف بياناتك بسهولة عن أسرارها؟ فكر في السيناريوهات التي قد تقدمها مجموعة البيانات الخاصة بك وقم بكتابتها. + +## المعيار + +متميز | مقبول | يحتاج إلى تحسين +--- | --- | -- | + +يتم تقديم مقال من صفحة واحدة بصيغة .doc مع شرح وتوثيق واعتماد مجموعة البيانات، ويتم تقديم قصة متماسكة عنها مع أمثلة مفصلة من البيانات.| يتم تقديم مقال أقصر بصيغة أقل تفصيلاً | المقال يفتقر إلى أحد التفاصيل المذكورة أعلاه. + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/4-Data-Science-Lifecycle/README.md b/translations/ar/4-Data-Science-Lifecycle/README.md new file mode 100644 index 00000000..f1fb58c8 --- /dev/null +++ b/translations/ar/4-Data-Science-Lifecycle/README.md @@ -0,0 +1,30 @@ + +# دورة حياة علم البيانات + +![التواصل](../../../translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ar.jpg) +> الصورة بواسطة Headway على Unsplash + +في هذه الدروس، ستستكشف بعض جوانب دورة حياة علم البيانات، بما في ذلك التحليل والتواصل حول البيانات. + +### المواضيع + +1. [المقدمة](14-Introduction/README.md) +2. [التحليل](15-analyzing/README.md) +3. [التواصل](16-communication/README.md) + +### الشكر والتقدير + +تم كتابة هذه الدروس بكل ❤️ بواسطة [Jalen McGee](https://twitter.com/JalenMCG) و [Jasmine Greenaway](https://twitter.com/paladique) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/17-Introduction/README.md b/translations/ar/5-Data-Science-In-Cloud/17-Introduction/README.md new file mode 100644 index 00000000..55a1f344 --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/17-Introduction/README.md @@ -0,0 +1,115 @@ + +# مقدمة إلى علم البيانات في السحابة + +|![ رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| علم البيانات في السحابة: مقدمة - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + + +في هذه الدرس، ستتعلم المبادئ الأساسية للسحابة، ثم ستتعرف على الأسباب التي تجعل استخدام خدمات السحابة مثيرًا للاهتمام لتشغيل مشاريع علم البيانات الخاصة بك، وسنستعرض بعض الأمثلة على مشاريع علم البيانات التي يتم تشغيلها في السحابة. + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/32) + +## ما هي السحابة؟ + +السحابة، أو الحوسبة السحابية، هي تقديم مجموعة واسعة من خدمات الحوسبة المدفوعة حسب الاستخدام والمستضافة على بنية تحتية عبر الإنترنت. تشمل الخدمات حلولًا مثل التخزين، قواعد البيانات، الشبكات، البرمجيات، التحليلات، والخدمات الذكية. + +عادةً ما نفرق بين السحابة العامة، الخاصة، والهجينة كما يلي: + +* السحابة العامة: السحابة العامة مملوكة ومدارة من قبل مزود خدمة سحابية طرف ثالث يقدم موارده الحاسوبية عبر الإنترنت للجمهور. +* السحابة الخاصة: تشير إلى موارد الحوسبة السحابية المستخدمة حصريًا من قبل شركة أو منظمة واحدة، مع خدمات وبنية تحتية يتم الحفاظ عليها على شبكة خاصة. +* السحابة الهجينة: السحابة الهجينة هي نظام يجمع بين السحابات العامة والخاصة. يختار المستخدمون مركز بيانات داخلي، مع السماح بتشغيل البيانات والتطبيقات على واحدة أو أكثر من السحابات العامة. + +معظم خدمات الحوسبة السحابية تقع ضمن ثلاث فئات: البنية التحتية كخدمة (IaaS)، المنصة كخدمة (PaaS)، والبرمجيات كخدمة (SaaS). + +* البنية التحتية كخدمة (IaaS): يقوم المستخدمون باستئجار بنية تحتية لتكنولوجيا المعلومات مثل الخوادم والآلات الافتراضية (VMs)، التخزين، الشبكات، أنظمة التشغيل. +* المنصة كخدمة (PaaS): يقوم المستخدمون باستئجار بيئة لتطوير، اختبار، تقديم، وإدارة تطبيقات البرمجيات. لا يحتاج المستخدمون للقلق بشأن إعداد أو إدارة البنية التحتية الأساسية للخوادم، التخزين، الشبكة، وقواعد البيانات اللازمة للتطوير. +* البرمجيات كخدمة (SaaS): يحصل المستخدمون على الوصول إلى تطبيقات البرمجيات عبر الإنترنت، عند الطلب وعادةً على أساس الاشتراك. لا يحتاج المستخدمون للقلق بشأن استضافة وإدارة تطبيق البرمجيات، البنية التحتية الأساسية أو الصيانة، مثل ترقيات البرمجيات وتصحيحات الأمان. + +بعض أكبر مزودي السحابة هم Amazon Web Services، Google Cloud Platform، وMicrosoft Azure. + +## لماذا تختار السحابة لعلم البيانات؟ + +يختار المطورون ومحترفو تكنولوجيا المعلومات العمل مع السحابة لأسباب عديدة، بما في ذلك: + +* الابتكار: يمكنك تعزيز تطبيقاتك من خلال دمج خدمات مبتكرة تم إنشاؤها بواسطة مزودي السحابة مباشرةً في تطبيقاتك. +* المرونة: تدفع فقط مقابل الخدمات التي تحتاجها ويمكنك الاختيار من بين مجموعة واسعة من الخدمات. عادةً ما تدفع حسب الاستخدام وتكيف خدماتك وفقًا لاحتياجاتك المتغيرة. +* الميزانية: لا تحتاج إلى القيام باستثمارات أولية لشراء الأجهزة والبرمجيات، إعداد وتشغيل مراكز البيانات الداخلية، ويمكنك فقط الدفع مقابل ما تستخدمه. +* القابلية للتوسع: يمكن أن تتكيف مواردك وفقًا لاحتياجات مشروعك، مما يعني أن تطبيقاتك يمكن أن تستخدم المزيد أو أقل من قوة الحوسبة، التخزين وعرض النطاق الترددي، من خلال التكيف مع العوامل الخارجية في أي وقت. +* الإنتاجية: يمكنك التركيز على عملك بدلاً من قضاء الوقت في مهام يمكن إدارتها من قبل شخص آخر، مثل إدارة مراكز البيانات. +* الموثوقية: تقدم الحوسبة السحابية عدة طرق لنسخ بياناتك احتياطيًا باستمرار ويمكنك إعداد خطط استرداد الكوارث للحفاظ على عملك وخدماتك حتى في أوقات الأزمات. +* الأمان: يمكنك الاستفادة من السياسات، التقنيات، والضوابط التي تعزز أمان مشروعك. + +هذه بعض الأسباب الأكثر شيوعًا التي تجعل الناس يختارون استخدام خدمات السحابة. الآن بعد أن فهمنا بشكل أفضل ما هي السحابة وما هي فوائدها الرئيسية، دعونا نلقي نظرة أكثر تحديدًا على وظائف علماء البيانات والمطورين الذين يعملون مع البيانات، وكيف يمكن للسحابة مساعدتهم في مواجهة العديد من التحديات التي قد يواجهونها: + +* تخزين كميات كبيرة من البيانات: بدلاً من شراء، إدارة وحماية خوادم كبيرة، يمكنك تخزين بياناتك مباشرةً في السحابة، مع حلول مثل Azure Cosmos DB، Azure SQL Database وAzure Data Lake Storage. +* تنفيذ تكامل البيانات: تكامل البيانات هو جزء أساسي من علم البيانات، يسمح لك بالانتقال من جمع البيانات إلى اتخاذ الإجراءات. مع خدمات تكامل البيانات المقدمة في السحابة، يمكنك جمع، تحويل ودمج البيانات من مصادر مختلفة في مستودع بيانات واحد، باستخدام Data Factory. +* معالجة البيانات: معالجة كميات كبيرة من البيانات تتطلب الكثير من قوة الحوسبة، وليس لدى الجميع إمكانية الوصول إلى آلات قوية بما يكفي لذلك، ولهذا السبب يختار الكثيرون الاستفادة مباشرةً من قوة الحوسبة الهائلة للسحابة لتشغيل ونشر حلولهم. +* استخدام خدمات تحليل البيانات: خدمات السحابة مثل Azure Synapse Analytics، Azure Stream Analytics وAzure Databricks تساعدك على تحويل بياناتك إلى رؤى قابلة للتنفيذ. +* استخدام خدمات التعلم الآلي والذكاء البياني: بدلاً من البدء من الصفر، يمكنك استخدام خوارزميات التعلم الآلي المقدمة من مزود السحابة، مع خدمات مثل AzureML. يمكنك أيضًا استخدام الخدمات الذكية مثل تحويل الكلام إلى نص، النص إلى كلام، الرؤية الحاسوبية والمزيد. + +## أمثلة على علم البيانات في السحابة + +دعونا نجعل هذا أكثر واقعية من خلال النظر في بعض السيناريوهات. + +### تحليل المشاعر في وسائل التواصل الاجتماعي في الوقت الحقيقي +سنبدأ بسيناريو يدرسه عادةً الأشخاص الذين يبدأون مع التعلم الآلي: تحليل المشاعر في وسائل التواصل الاجتماعي في الوقت الحقيقي. + +لنفترض أنك تدير موقعًا إخباريًا وترغب في الاستفادة من البيانات الحية لفهم المحتوى الذي قد يكون قراءك مهتمين به. لمعرفة المزيد عن ذلك، يمكنك بناء برنامج يقوم بتحليل المشاعر في الوقت الحقيقي لبيانات منشورات تويتر، حول المواضيع ذات الصلة بقرائك. + +المؤشرات الرئيسية التي ستنظر إليها هي حجم التغريدات حول مواضيع محددة (الوسوم) والمشاعر، التي يتم تحديدها باستخدام أدوات تحليلية تقوم بتحليل المشاعر حول المواضيع المحددة. + +الخطوات اللازمة لإنشاء هذا المشروع هي كما يلي: + +* إنشاء مركز أحداث لجمع المدخلات، والذي سيجمع البيانات من تويتر. +* إعداد وتشغيل تطبيق عميل تويتر، والذي سيقوم باستدعاء واجهات برمجة التطبيقات لتدفق تويتر. +* إنشاء وظيفة تحليل التدفق. +* تحديد مدخل الوظيفة والاستعلام. +* إنشاء مخرج وتحديد مخرجات الوظيفة. +* تشغيل الوظيفة. + +للاطلاع على العملية الكاملة، تحقق من [التوثيق](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-77958-bethanycheum&ocid=AID30411099). + +### تحليل الأوراق العلمية +لنأخذ مثالًا آخر على مشروع تم إنشاؤه بواسطة [ديمتري سوشنيكوف](http://soshnikov.com)، أحد مؤلفي هذا المنهج. + +قام ديمتري بإنشاء أداة تحلل أوراق COVID. من خلال مراجعة هذا المشروع، سترى كيف يمكنك إنشاء أداة تستخرج المعرفة من الأوراق العلمية، تكتسب رؤى، وتساعد الباحثين على التنقل عبر مجموعات كبيرة من الأوراق بكفاءة. + +دعونا نرى الخطوات المختلفة المستخدمة لهذا: + +* استخراج ومعالجة المعلومات باستخدام [تحليل النصوص للصحة](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +* استخدام [Azure ML](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) لتوزيع المعالجة. +* تخزين واستعلام المعلومات باستخدام [Cosmos DB](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +* إنشاء لوحة معلومات تفاعلية لاستكشاف البيانات وتصورها باستخدام Power BI. + +لرؤية العملية الكاملة، قم بزيارة [مدونة ديمتري](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). + +كما ترى، يمكننا الاستفادة من خدمات السحابة بطرق عديدة لتنفيذ علم البيانات. + +## الحاشية + +المصادر: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## اختبار ما بعد المحاضرة + +[اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/33) + +## المهمة + +[بحث السوق](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/17-Introduction/assignment.md b/translations/ar/5-Data-Science-In-Cloud/17-Introduction/assignment.md new file mode 100644 index 00000000..1435e89a --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/17-Introduction/assignment.md @@ -0,0 +1,25 @@ + +# أبحاث السوق + +## التعليمات + +في هذه الدرس تعلمت أن هناك العديد من مزودي الخدمات السحابية المهمين. قم بإجراء بحث في السوق لاكتشاف ما يمكن أن يقدمه كل منهم لعالم البيانات. هل العروض متشابهة؟ اكتب مقالًا يصف عروض ثلاثة أو أكثر من هؤلاء المزودين السحابيين. + +## المعيار + +متميز | كافٍ | يحتاج إلى تحسين +--- | --- | --- | +ورقة من صفحة واحدة تصف عروض ثلاثة مزودين سحابيين لعالم البيانات وتفرق بينهم. | يتم تقديم ورقة أقصر | يتم تقديم ورقة دون إكمال التحليل + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/README.md b/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/README.md new file mode 100644 index 00000000..1f67718e --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/README.md @@ -0,0 +1,350 @@ + +# علم البيانات في السحابة: الطريقة "قليلة الكود/بدون كود" + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/18-DataScience-Cloud.png)| +|:---:| +| علم البيانات في السحابة: قليلة الكود - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +جدول المحتويات: + +- [علم البيانات في السحابة: الطريقة "قليلة الكود/بدون كود"](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [اختبار ما قبل المحاضرة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1. المقدمة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.1 ما هو Azure Machine Learning؟](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.2 مشروع التنبؤ بفشل القلب:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.3 مجموعة بيانات فشل القلب:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2. تدريب نموذج بطريقة قليلة الكود/بدون كود في Azure ML Studio](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.1 إنشاء مساحة عمل Azure ML](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2 موارد الحوسبة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.1 اختيار الخيارات المناسبة لموارد الحوسبة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.2 إنشاء مجموعة حوسبة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.3 تحميل مجموعة البيانات](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.4 تدريب بطريقة قليلة الكود/بدون كود باستخدام AutoML](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3. نشر النموذج واستهلاك النقاط النهائية بطريقة قليلة الكود/بدون كود](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.1 نشر النموذج](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.2 استهلاك النقاط النهائية](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [🚀 التحدي](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [اختبار ما بعد المحاضرة](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [المراجعة والدراسة الذاتية](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [التكليف](../../../../5-Data-Science-In-Cloud/18-Low-Code) + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/34) +## 1. المقدمة +### 1.1 ما هو Azure Machine Learning؟ + +منصة السحابة Azure تحتوي على أكثر من 200 منتج وخدمة سحابية مصممة لمساعدتك في إحياء حلول جديدة. يبذل علماء البيانات جهودًا كبيرة لاستكشاف البيانات ومعالجتها مسبقًا وتجربة أنواع مختلفة من خوارزميات تدريب النماذج لإنتاج نماذج دقيقة. هذه المهام تستغرق وقتًا طويلاً وغالبًا ما تؤدي إلى استخدام غير فعال لموارد الحوسبة المكلفة. + +[Azure ML](https://docs.microsoft.com/azure/machine-learning/overview-what-is-azure-machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) هي منصة قائمة على السحابة لبناء وتشغيل حلول التعلم الآلي في Azure. تتضمن مجموعة واسعة من الميزات والقدرات التي تساعد علماء البيانات في إعداد البيانات، تدريب النماذج، نشر خدمات التنبؤ، ومراقبة استخدامها. الأهم من ذلك، أنها تساعدهم على زيادة كفاءتهم من خلال أتمتة العديد من المهام التي تستغرق وقتًا طويلاً المرتبطة بتدريب النماذج؛ وتمكنهم من استخدام موارد الحوسبة القائمة على السحابة التي تتوسع بشكل فعال للتعامل مع كميات كبيرة من البيانات مع تكبد تكاليف فقط عند الاستخدام الفعلي. + +يوفر Azure ML جميع الأدوات التي يحتاجها المطورون وعلماء البيانات لعمليات التعلم الآلي الخاصة بهم. وتشمل هذه الأدوات: + +- **Azure Machine Learning Studio**: بوابة ويب في Azure Machine Learning توفر خيارات قليلة الكود وبدون كود لتدريب النماذج، نشرها، أتمتتها، تتبعها وإدارة الأصول. يتكامل الاستوديو مع Azure Machine Learning SDK لتجربة سلسة. +- **Jupyter Notebooks**: لتجربة واختبار نماذج التعلم الآلي بسرعة. +- **Azure Machine Learning Designer**: يسمح بسحب وإفلات الوحدات لبناء التجارب ثم نشر خطوط الأنابيب في بيئة قليلة الكود. +- **واجهة المستخدم للتعلم الآلي التلقائي (AutoML)**: تقوم بأتمتة المهام التكرارية لتطوير نماذج التعلم الآلي، مما يسمح ببناء نماذج بكفاءة وإنتاجية عالية مع الحفاظ على جودة النموذج. +- **تصنيف البيانات**: أداة تعلم آلي مساعدة لتصنيف البيانات تلقائيًا. +- **امتداد التعلم الآلي لـ Visual Studio Code**: يوفر بيئة تطوير كاملة لبناء وإدارة مشاريع التعلم الآلي. +- **واجهة الأوامر للتعلم الآلي**: توفر أوامر لإدارة موارد Azure ML من خلال سطر الأوامر. +- **التكامل مع الأطر مفتوحة المصدر** مثل PyTorch، TensorFlow، Scikit-learn وغيرها لتدريب، نشر، وإدارة عملية التعلم الآلي من البداية إلى النهاية. +- **MLflow**: مكتبة مفتوحة المصدر لإدارة دورة حياة تجارب التعلم الآلي. **MLFlow Tracking** هو مكون من MLflow يقوم بتسجيل وتتبع مقاييس تشغيل التدريب وقطع النموذج، بغض النظر عن بيئة التجربة. + +### 1.2 مشروع التنبؤ بفشل القلب: + +لا شك أن إنشاء وبناء المشاريع هو أفضل طريقة لاختبار مهاراتك ومعرفتك. في هذه الدرس، سنستكشف طريقتين مختلفتين لبناء مشروع علم بيانات للتنبؤ بنوبات فشل القلب في Azure ML Studio، من خلال الطريقة قليلة الكود/بدون كود ومن خلال Azure ML SDK كما هو موضح في المخطط التالي: + +![project-schema](../../../../translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ar.png) + +لكل طريقة مزايا وعيوب. الطريقة قليلة الكود/بدون كود أسهل للبدء بها لأنها تتضمن التفاعل مع واجهة مستخدم رسومية (GUI)، دون الحاجة إلى معرفة مسبقة بالكود. هذه الطريقة تمكن من اختبار سريع لجدوى المشروع وإنشاء إثبات المفهوم (POC). ومع ذلك، مع نمو المشروع واحتياج الأمور إلى أن تكون جاهزة للإنتاج، يصبح من غير الممكن إنشاء الموارد من خلال واجهة المستخدم الرسومية. نحتاج إلى أتمتة كل شيء برمجيًا، بدءًا من إنشاء الموارد إلى نشر النموذج. هنا تصبح معرفة كيفية استخدام Azure ML SDK أمرًا بالغ الأهمية. + +| | قليلة الكود/بدون كود | Azure ML SDK | +|-------------------|------------------|---------------------------| +| الخبرة في الكود | غير مطلوبة | مطلوبة | +| وقت التطوير | سريع وسهل | يعتمد على خبرة الكود | +| جاهزية الإنتاج | لا | نعم | + +### 1.3 مجموعة بيانات فشل القلب: + +تعد أمراض القلب والأوعية الدموية (CVDs) السبب الأول للوفاة عالميًا، حيث تمثل 31% من جميع الوفيات حول العالم. يمكن استخدام العوامل البيئية والسلوكية مثل استخدام التبغ، النظام الغذائي غير الصحي والسمنة، قلة النشاط البدني، والاستخدام الضار للكحول كميزات لنماذج التقدير. القدرة على تقدير احتمال تطور مرض القلب والأوعية الدموية يمكن أن تكون ذات فائدة كبيرة لمنع النوبات لدى الأشخاص المعرضين لخطر كبير. + +قام موقع Kaggle بجعل [مجموعة بيانات فشل القلب](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data) متاحة للجمهور، والتي سنستخدمها في هذا المشروع. يمكنك تنزيل مجموعة البيانات الآن. هذه مجموعة بيانات جدولة تحتوي على 13 عمودًا (12 ميزة و1 متغير الهدف) و299 صفًا. + +| | اسم المتغير | النوع | الوصف | المثال | +|----|---------------------------|-----------------|-----------------------------------------------------|-------------------| +| 1 | العمر | رقمي | عمر المريض | 25 | +| 2 | فقر الدم | منطقي | انخفاض خلايا الدم الحمراء أو الهيموجلوبين | 0 أو 1 | +| 3 | كرياتينين الفوسفوكايناز | رقمي | مستوى إنزيم CPK في الدم | 542 | +| 4 | السكري | منطقي | إذا كان المريض يعاني من السكري | 0 أو 1 | +| 5 | نسبة القذف | رقمي | نسبة الدم التي تغادر القلب في كل انقباض | 45 | +| 6 | ضغط الدم المرتفع | منطقي | إذا كان المريض يعاني من ارتفاع ضغط الدم | 0 أو 1 | +| 7 | الصفائح الدموية | رقمي | الصفائح الدموية في الدم | 149000 | +| 8 | كرياتينين المصل | رقمي | مستوى كرياتينين المصل في الدم | 0.5 | +| 9 | صوديوم المصل | رقمي | مستوى صوديوم المصل في الدم | jun | +| 10 | الجنس | منطقي | امرأة أو رجل | 0 أو 1 | +| 11 | التدخين | منطقي | إذا كان المريض يدخن | 0 أو 1 | +| 12 | الوقت | رقمي | فترة المتابعة (بالأيام) | 4 | +|----|---------------------------|-----------------|-----------------------------------------------------|-------------------| +| 21 | حدث الوفاة [الهدف] | منطقي | إذا توفي المريض خلال فترة المتابعة | 0 أو 1 | + +بمجرد الحصول على مجموعة البيانات، يمكننا بدء المشروع في Azure. + +## 2. تدريب نموذج بطريقة قليلة الكود/بدون كود في Azure ML Studio +### 2.1 إنشاء مساحة عمل Azure ML +لتدريب نموذج في Azure ML، تحتاج أولاً إلى إنشاء مساحة عمل Azure ML. مساحة العمل هي المورد الأعلى مستوى في Azure Machine Learning، وتوفر مكانًا مركزيًا للعمل مع جميع العناصر التي تنشئها عند استخدام Azure Machine Learning. تحتفظ مساحة العمل بسجل لجميع عمليات التدريب، بما في ذلك السجلات، المقاييس، النتائج، ولقطة من النصوص البرمجية الخاصة بك. يمكنك استخدام هذه المعلومات لتحديد أي عملية تدريب تنتج أفضل نموذج. [تعرف على المزيد](https://docs.microsoft.com/azure/machine-learning/concept-workspace?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +يوصى باستخدام أحدث متصفح متوافق مع نظام التشغيل الخاص بك. المتصفحات التالية مدعومة: + +- Microsoft Edge (الإصدار الجديد من Microsoft Edge، أحدث إصدار. ليس Microsoft Edge القديم) +- Safari (أحدث إصدار، فقط على Mac) +- Chrome (أحدث إصدار) +- Firefox (أحدث إصدار) + +لاستخدام Azure Machine Learning، قم بإنشاء مساحة عمل في اشتراك Azure الخاص بك. يمكنك بعد ذلك استخدام هذه المساحة لإدارة البيانات، موارد الحوسبة، الكود، النماذج، وغيرها من العناصر المتعلقة بأعباء العمل الخاصة بالتعلم الآلي. + +> **_ملاحظة:_** سيتم خصم مبلغ صغير من اشتراك Azure الخاص بك لتخزين البيانات طالما أن مساحة عمل Azure Machine Learning موجودة في اشتراكك، لذلك نوصي بحذف مساحة عمل Azure Machine Learning عندما لا تكون بحاجة إليها. + +1. قم بتسجيل الدخول إلى [بوابة Azure](https://ms.portal.azure.com/) باستخدام بيانات اعتماد Microsoft المرتبطة باشتراك Azure الخاص بك. +2. اختر **+إنشاء مورد** + + ![workspace-1](../../../../translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ar.png) + + ابحث عن التعلم الآلي واختر مربع التعلم الآلي + + ![workspace-2](../../../../translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ar.png) + + اضغط على زر الإنشاء + + ![workspace-3](../../../../translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ar.png) + + قم بملء الإعدادات كما يلي: + - الاشتراك: اشتراك Azure الخاص بك + - مجموعة الموارد: قم بإنشاء أو اختيار مجموعة موارد + - اسم مساحة العمل: أدخل اسمًا فريدًا لمساحة العمل الخاصة بك + - المنطقة: اختر المنطقة الجغرافية الأقرب إليك + - حساب التخزين: لاحظ الحساب الجديد الافتراضي للتخزين الذي سيتم إنشاؤه لمساحة العمل الخاصة بك + - المفتاح السري: لاحظ المفتاح السري الجديد الافتراضي الذي سيتم إنشاؤه لمساحة العمل الخاصة بك + - رؤى التطبيق: لاحظ مورد رؤى التطبيق الجديد الافتراضي الذي سيتم إنشاؤه لمساحة العمل الخاصة بك + - سجل الحاويات: لا شيء (سيتم إنشاؤه تلقائيًا في المرة الأولى التي تقوم فيها بنشر نموذج في حاوية) + + ![workspace-4](../../../../translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ar.png) + + - اضغط على زر المراجعة + الإنشاء ثم على زر الإنشاء +3. انتظر حتى يتم إنشاء مساحة العمل الخاصة بك (قد يستغرق ذلك بضع دقائق). ثم انتقل إليها في البوابة. يمكنك العثور عليها من خلال خدمة Azure Machine Learning. +4. في صفحة النظرة العامة لمساحة العمل الخاصة بك، قم بتشغيل Azure Machine Learning Studio (أو افتح علامة تبويب جديدة في المتصفح وانتقل إلى https://ml.azure.com)، وقم بتسجيل الدخول إلى Azure Machine Learning Studio باستخدام حساب Microsoft الخاص بك. إذا طُلب منك، اختر دليل Azure الخاص بك واشتراكك، ومساحة عمل Azure Machine Learning الخاصة بك. + +![workspace-5](../../../../translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ar.png) + +5. في Azure Machine Learning Studio، قم بتبديل رمز ☰ في الجزء العلوي الأيسر لعرض الصفحات المختلفة في الواجهة. يمكنك استخدام هذه الصفحات لإدارة الموارد في مساحة العمل الخاصة بك. + +![workspace-6](../../../../translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ar.png) + +يمكنك إدارة مساحة العمل الخاصة بك باستخدام بوابة Azure، ولكن بالنسبة لعلماء البيانات ومهندسي عمليات التعلم الآلي، يوفر Azure Machine Learning Studio واجهة مستخدم أكثر تركيزًا لإدارة موارد مساحة العمل. + +### 2.2 موارد الحوسبة + +موارد الحوسبة هي موارد قائمة على السحابة يمكنك تشغيل عمليات تدريب النماذج واستكشاف البيانات عليها. هناك أربعة أنواع من موارد الحوسبة التي يمكنك إنشاؤها: + +- **مثيلات الحوسبة**: محطات عمل تطويرية يمكن لعلماء البيانات استخدامها للعمل مع البيانات والنماذج. يتضمن ذلك إنشاء جهاز افتراضي (VM) وتشغيل مثيل دفتر ملاحظات. يمكنك بعد ذلك تدريب نموذج عن طريق استدعاء مجموعة حوسبة من دفتر الملاحظات. +- **مجموعات الحوسبة**: مجموعات قابلة للتوسع من الأجهزة الافتراضية لمعالجة التعليمات البرمجية التجريبية عند الطلب. ستحتاج إليها عند تدريب نموذج. يمكن لمجموعات الحوسبة أيضًا استخدام موارد GPU أو CPU المتخصصة. +- **مجموعات الاستنتاج**: أهداف النشر للخدمات التنبؤية التي تستخدم النماذج المدربة الخاصة بك. +- **الحوسبة المرفقة**: روابط إلى موارد الحوسبة الموجودة في Azure، مثل الأجهزة الافتراضية أو مجموعات Azure Databricks. + +#### 2.2.1 اختيار الخيارات المناسبة لموارد الحوسبة الخاصة بك + +هناك عوامل رئيسية يجب أخذها في الاعتبار عند إنشاء مورد حوسبة، وهذه الخيارات قد تكون قرارات حاسمة. + +**هل تحتاج إلى CPU أم GPU؟** + +وحدة المعالجة المركزية (CPU) هي الدائرة الإلكترونية التي تنفذ التعليمات التي يتكون منها برنامج الكمبيوتر. وحدة معالجة الرسومات (GPU) هي دائرة إلكترونية متخصصة يمكنها تنفيذ التعليمات المتعلقة بالرسومات بمعدل عالٍ جدًا. + +الفرق الرئيسي بين بنية CPU وGPU هو أن CPU مصممة للتعامل مع مجموعة واسعة من المهام بسرعة (كما يتم قياسها بسرعة الساعة)، ولكنها محدودة في التزامن بين المهام التي يمكن تشغيلها. أما GPU فهي مصممة للحوسبة المتوازية وبالتالي فهي أفضل بكثير في مهام التعلم العميق. + +| وحدة المعالجة المركزية (CPU) | وحدة معالجة الرسومات (GPU) | +|-----------------------------------------|-----------------------------| +| أقل تكلفة | أكثر تكلفة | +| مستوى تزامن أقل | مستوى تزامن أعلى | +| أبطأ في تدريب نماذج التعلم العميق | مثالية للتعلم العميق | + +**حجم المجموعة** + +المجموعات الأكبر تكون أكثر تكلفة ولكنها تؤدي إلى استجابة أفضل. لذلك، إذا كان لديك وقت ولكن ليس لديك مال كافٍ، يجب أن تبدأ بمجموعة صغيرة. وعلى العكس، إذا كان لديك مال ولكن ليس لديك وقت كافٍ، يجب أن تبدأ بمجموعة أكبر. + +**حجم الجهاز الافتراضي (VM)** + +اعتمادًا على قيود الوقت والميزانية، يمكنك تغيير حجم ذاكرة الوصول العشوائي (RAM)، القرص، عدد النوى وسرعة الساعة. زيادة جميع هذه المعايير ستكون أكثر تكلفة، ولكنها ستؤدي إلى أداء أفضل. + +**مثيلات مخصصة أم منخفضة الأولوية؟** + +المثيل منخفض الأولوية يعني أنه قابل للمقاطعة: بمعنى أن Microsoft Azure يمكنها أخذ هذه الموارد وتخصيصها لمهمة أخرى، مما يؤدي إلى مقاطعة المهمة. المثيل المخصص، أو غير القابل للمقاطعة، يعني أن المهمة لن يتم إنهاؤها دون إذنك. +هذا اعتبار آخر بين الوقت والمال، حيث أن المثيلات القابلة للمقاطعة أقل تكلفة من المثيلات المخصصة. + +#### 2.2.2 إنشاء مجموعة حوسبة + +في [مساحة عمل Azure ML](https://ml.azure.com/) التي أنشأناها سابقًا، انتقل إلى الحوسبة وستتمكن من رؤية موارد الحوسبة المختلفة التي ناقشناها للتو (مثل مثيلات الحوسبة، مجموعات الحوسبة، مجموعات الاستدلال والحوسبة المرفقة). لهذا المشروع، سنحتاج إلى مجموعة حوسبة لتدريب النموذج. في الاستوديو، انقر على قائمة "Compute"، ثم علامة التبويب "Compute cluster" وانقر على زر "+ New" لإنشاء مجموعة حوسبة. + +![22](../../../../translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ar.png) + +1. اختر خياراتك: مخصص مقابل منخفض الأولوية، CPU أو GPU، حجم الجهاز الافتراضي وعدد النوى (يمكنك الاحتفاظ بالإعدادات الافتراضية لهذا المشروع). +2. انقر على زر التالي. + +![23](../../../../translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ar.png) + +3. أعطِ المجموعة اسمًا للحوسبة. +4. اختر خياراتك: الحد الأدنى/الحد الأقصى لعدد العقد، الثواني الخاملة قبل التوسع للأسفل، الوصول عبر SSH. لاحظ أنه إذا كان الحد الأدنى لعدد العقد هو 0، ستوفر المال عندما تكون المجموعة خاملة. لاحظ أيضًا أنه كلما زاد عدد العقد القصوى، كلما كان التدريب أسرع. العدد الأقصى الموصى به للعقد هو 3. +5. انقر على زر "Create". قد تستغرق هذه الخطوة بضع دقائق. + +![29](../../../../translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ar.png) + +رائع! الآن بعد أن لدينا مجموعة حوسبة، نحتاج إلى تحميل البيانات إلى Azure ML Studio. + +### 2.3 تحميل مجموعة البيانات + +1. في [مساحة عمل Azure ML](https://ml.azure.com/) التي أنشأناها سابقًا، انقر على "Datasets" في القائمة اليسرى وانقر على زر "+ Create dataset" لإنشاء مجموعة بيانات. اختر خيار "From local files" وحدد مجموعة بيانات Kaggle التي قمنا بتنزيلها سابقًا. + + ![24](../../../../translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ar.png) + +2. أعطِ مجموعة البيانات اسمًا، نوعًا ووصفًا. انقر على التالي. قم بتحميل البيانات من الملفات. انقر على التالي. + + ![25](../../../../translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ar.png) + +3. في المخطط، قم بتغيير نوع البيانات إلى Boolean للميزات التالية: فقر الدم، السكري، ارتفاع ضغط الدم، الجنس، التدخين، وDEATH_EVENT. انقر على التالي ثم انقر على إنشاء. + + ![26](../../../../translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ar.png) + +رائع! الآن بعد أن أصبحت مجموعة البيانات في مكانها وتم إنشاء مجموعة الحوسبة، يمكننا البدء في تدريب النموذج! + +### 2.4 التدريب باستخدام AutoML بدون كود أو بقليل من الكود + +تطوير نماذج التعلم الآلي التقليدية يتطلب موارد مكثفة، معرفة كبيرة بالمجال ووقتًا لإنتاج ومقارنة عشرات النماذج. +التعلم الآلي التلقائي (AutoML) هو عملية أتمتة المهام المتكررة والمستهلكة للوقت في تطوير نماذج التعلم الآلي. يسمح AutoML لعلماء البيانات، المحللين والمطورين ببناء نماذج تعلم آلي بكفاءة وإنتاجية عالية، مع الحفاظ على جودة النموذج. يقلل من الوقت اللازم للحصول على نماذج جاهزة للإنتاج بسهولة وكفاءة. [تعرف على المزيد](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +1. في [مساحة عمل Azure ML](https://ml.azure.com/) التي أنشأناها سابقًا، انقر على "Automated ML" في القائمة اليسرى وحدد مجموعة البيانات التي قمت بتحميلها للتو. انقر على التالي. + + ![27](../../../../translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ar.png) + +2. أدخل اسم تجربة جديدة، العمود المستهدف (DEATH_EVENT) ومجموعة الحوسبة التي أنشأناها. انقر على التالي. + + ![28](../../../../translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ar.png) + +3. اختر "Classification" وانقر على إنهاء. قد تستغرق هذه الخطوة بين 30 دقيقة إلى ساعة، اعتمادًا على حجم مجموعة الحوسبة. + + ![30](../../../../translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ar.png) + +4. بمجرد اكتمال التشغيل، انقر على علامة التبويب "Automated ML"، انقر على التشغيل الخاص بك، وانقر على الخوارزمية في بطاقة "Best model summary". + + ![31](../../../../translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ar.png) + +هنا يمكنك رؤية وصف تفصيلي لأفضل نموذج تم إنشاؤه بواسطة AutoML. يمكنك أيضًا استكشاف النماذج الأخرى التي تم إنشاؤها في علامة التبويب "Models". خذ بضع دقائق لاستكشاف النماذج في زر "Explanations (preview)". بمجرد اختيار النموذج الذي تريد استخدامه (هنا سنختار أفضل نموذج تم اختياره بواسطة AutoML)، سنرى كيف يمكننا نشره. + +## 3. نشر النموذج واستهلاك النقاط النهائية بدون كود أو بقليل من الكود +### 3.1 نشر النموذج + +واجهة التعلم الآلي التلقائي تسمح لك بنشر أفضل نموذج كخدمة ويب في خطوات قليلة. النشر هو دمج النموذج بحيث يمكنه تقديم توقعات بناءً على بيانات جديدة وتحديد مناطق الفرص المحتملة. لهذا المشروع، يعني النشر كخدمة ويب أن التطبيقات الطبية ستكون قادرة على استهلاك النموذج لتقديم توقعات مباشرة عن خطر الإصابة بنوبة قلبية للمرضى. + +في وصف أفضل نموذج، انقر على زر "Deploy". + +![deploy-1](../../../../translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ar.png) + +15. أعطِه اسمًا، وصفًا، نوع الحوسبة (Azure Container Instance)، قم بتمكين المصادقة وانقر على نشر. قد تستغرق هذه الخطوة حوالي 20 دقيقة لإكمالها. تتضمن عملية النشر عدة خطوات بما في ذلك تسجيل النموذج، إنشاء الموارد، وتكوينها لخدمة الويب. تظهر رسالة حالة تحت حالة النشر. اختر تحديث بشكل دوري للتحقق من حالة النشر. يتم نشره وتشغيله عندما تكون الحالة "Healthy". + +![deploy-2](../../../../translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ar.png) + +16. بمجرد نشره، انقر على علامة التبويب "Endpoint" وانقر على النقطة النهائية التي قمت بنشرها للتو. يمكنك العثور هنا على جميع التفاصيل التي تحتاج إلى معرفتها عن النقطة النهائية. + +![deploy-3](../../../../translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ar.png) + +رائع! الآن بعد أن لدينا نموذج منشور، يمكننا البدء في استهلاك النقطة النهائية. + +### 3.2 استهلاك النقطة النهائية + +انقر على علامة التبويب "Consume". هنا يمكنك العثور على نقطة النهاية REST ونص برمجي بلغة Python في خيار الاستهلاك. خذ بعض الوقت لقراءة الكود البرمجي. + +يمكن تشغيل هذا النص مباشرة من جهازك المحلي وسيستهلك النقطة النهائية. + +![35](../../../../translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ar.png) + +خذ لحظة للتحقق من هذين السطرين من الكود: + +```python +url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score' +api_key = '' # Replace this with the API key for the web service +``` +المتغير `url` هو نقطة النهاية REST الموجودة في علامة التبويب "Consume"، والمتغير `api_key` هو المفتاح الأساسي الموجود أيضًا في علامة التبويب "Consume" (فقط في حالة تمكين المصادقة). هذا هو كيفية استهلاك النص للنقطة النهائية. + +18. عند تشغيل النص، يجب أن ترى الإخراج التالي: + ```python + b'"{\\"result\\": [true]}"' + ``` +هذا يعني أن التوقع لفشل القلب للبيانات المقدمة هو صحيح. هذا منطقي لأنه إذا نظرت عن كثب إلى البيانات التي تم إنشاؤها تلقائيًا في النص، كل شيء هو 0 وخاطئ افتراضيًا. يمكنك تغيير البيانات باستخدام عينة الإدخال التالية: + +```python +data = { + "data": + [ + { + 'age': "0", + 'anaemia': "false", + 'creatinine_phosphokinase': "0", + 'diabetes': "false", + 'ejection_fraction': "0", + 'high_blood_pressure': "false", + 'platelets': "0", + 'serum_creatinine': "0", + 'serum_sodium': "0", + 'sex': "false", + 'smoking': "false", + 'time': "0", + }, + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} +``` +يجب أن يعيد النص: + ```python + b'"{\\"result\\": [true, false]}"' + ``` + +تهانينا! لقد قمت باستهلاك النموذج المنشور وتدريبه على Azure ML! + +> **_ملاحظة:_** بمجرد الانتهاء من المشروع، لا تنسَ حذف جميع الموارد. + +## 🚀 التحدي + +انظر عن كثب إلى تفسيرات النموذج والتفاصيل التي أنشأها AutoML للنماذج الأعلى. حاول فهم لماذا النموذج الأفضل أفضل من النماذج الأخرى. ما هي الخوارزميات التي تمت مقارنتها؟ ما هي الاختلافات بينها؟ لماذا النموذج الأفضل يقدم أداءً أفضل في هذه الحالة؟ + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/35) + +## المراجعة والدراسة الذاتية + +في هذا الدرس، تعلمت كيفية تدريب، نشر واستهلاك نموذج للتنبؤ بخطر فشل القلب بطريقة بدون كود أو بقليل من الكود في السحابة. إذا لم تقم بذلك بعد، تعمق في تفسيرات النموذج التي أنشأها AutoML للنماذج الأعلى وحاول فهم لماذا النموذج الأفضل أفضل من الآخرين. + +يمكنك التعمق أكثر في AutoML بدون كود أو بقليل من الكود من خلال قراءة [هذا التوثيق](https://docs.microsoft.com/azure/machine-learning/tutorial-first-experiment-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## الواجب + +[مشروع علوم البيانات بدون كود أو بقليل من الكود على Azure ML](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/assignment.md b/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/assignment.md new file mode 100644 index 00000000..bc0d02f4 --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/18-Low-Code/assignment.md @@ -0,0 +1,25 @@ + +# مشروع علوم البيانات باستخدام البرمجة منخفضة الكود/بدون كود على Azure ML + +## التعليمات + +لقد رأينا كيفية استخدام منصة Azure ML لتدريب نموذج، نشره واستهلاكه بطريقة البرمجة منخفضة الكود/بدون كود. الآن ابحث عن بعض البيانات التي يمكنك استخدامها لتدريب نموذج آخر، نشره واستهلاكه. يمكنك البحث عن مجموعات البيانات على [Kaggle](https://kaggle.com) و [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## معايير التقييم + +| ممتاز | مقبول | يحتاج إلى تحسين | +|-------|-------|----------------| +| عند تحميل البيانات، اهتممت بتغيير نوع الميزات إذا لزم الأمر. كما قمت بتنظيف البيانات إذا احتاجت لذلك. قمت بتشغيل تدريب على مجموعة بيانات باستخدام AutoML، وقمت بمراجعة تفسيرات النموذج. قمت بنشر أفضل نموذج وكنت قادرًا على استهلاكه. | عند تحميل البيانات، اهتممت بتغيير نوع الميزات إذا لزم الأمر. قمت بتشغيل تدريب على مجموعة بيانات باستخدام AutoML، قمت بنشر أفضل نموذج وكنت قادرًا على استهلاكه. | قمت بنشر أفضل نموذج تم تدريبه بواسطة AutoML وكنت قادرًا على استهلاكه. | + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/19-Azure/README.md b/translations/ar/5-Data-Science-In-Cloud/19-Azure/README.md new file mode 100644 index 00000000..f3a68a05 --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/19-Azure/README.md @@ -0,0 +1,312 @@ + +# علم البيانات في السحابة: طريقة "Azure ML SDK" + +|![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/19-DataScience-Cloud.png)| +|:---:| +| علم البيانات في السحابة: Azure ML SDK - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +جدول المحتويات: + +- [علم البيانات في السحابة: طريقة "Azure ML SDK"](../../../../5-Data-Science-In-Cloud/19-Azure) + - [اختبار ما قبل المحاضرة](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1. المقدمة](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.1 ما هو Azure ML SDK؟](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.2 مقدمة عن مشروع التنبؤ بفشل القلب ومجموعة البيانات](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2. تدريب نموذج باستخدام Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.1 إنشاء مساحة عمل Azure ML](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.2 إنشاء وحدة حسابية](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.3 تحميل مجموعة البيانات](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.4 إنشاء دفاتر ملاحظات](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5 تدريب نموذج](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.1 إعداد مساحة العمل، التجربة، مجموعة الحوسبة ومجموعة البيانات](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.2 إعداد وتدريب AutoML](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3. نشر النموذج واستهلاك نقطة النهاية باستخدام Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.1 حفظ أفضل نموذج](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.2 نشر النموذج](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.3 استهلاك نقطة النهاية](../../../../5-Data-Science-In-Cloud/19-Azure) + - [🚀 التحدي](../../../../5-Data-Science-In-Cloud/19-Azure) + - [اختبار ما بعد المحاضرة](../../../../5-Data-Science-In-Cloud/19-Azure) + - [المراجعة والدراسة الذاتية](../../../../5-Data-Science-In-Cloud/19-Azure) + - [التكليف](../../../../5-Data-Science-In-Cloud/19-Azure) + +## [اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/36) + +## 1. المقدمة + +### 1.1 ما هو Azure ML SDK؟ + +يستخدم علماء البيانات ومطورو الذكاء الاصطناعي Azure Machine Learning SDK لبناء وتشغيل سير عمل التعلم الآلي باستخدام خدمة Azure Machine Learning. يمكنك التفاعل مع الخدمة في أي بيئة Python، بما في ذلك Jupyter Notebooks، Visual Studio Code، أو بيئة تطوير Python المفضلة لديك. + +تشمل المجالات الرئيسية لـ SDK: + +- استكشاف وإعداد وإدارة دورة حياة مجموعات البيانات المستخدمة في تجارب التعلم الآلي. +- إدارة موارد السحابة لمراقبة وتسجيل وتنظيم تجارب التعلم الآلي. +- تدريب النماذج محليًا أو باستخدام موارد السحابة، بما في ذلك تدريب النماذج باستخدام وحدات معالجة الرسومات. +- استخدام التعلم الآلي التلقائي، الذي يقبل معلمات التكوين وبيانات التدريب. يقوم تلقائيًا بتكرار الخوارزميات وإعدادات المعلمات للعثور على أفضل نموذج للتنبؤات. +- نشر خدمات ويب لتحويل النماذج المدربة إلى خدمات RESTful يمكن استهلاكها في أي تطبيق. + +[تعرف على المزيد حول Azure Machine Learning SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +في [الدرس السابق](../18-Low-Code/README.md)، رأينا كيفية تدريب ونشر واستهلاك نموذج بطريقة منخفضة الكود/بدون كود. استخدمنا مجموعة بيانات فشل القلب لإنشاء نموذج التنبؤ بفشل القلب. في هذا الدرس، سنقوم بنفس الشيء ولكن باستخدام Azure Machine Learning SDK. + +![مخطط المشروع](../../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ar.png) + +### 1.2 مقدمة عن مشروع التنبؤ بفشل القلب ومجموعة البيانات + +راجع [هنا](../18-Low-Code/README.md) مقدمة عن مشروع التنبؤ بفشل القلب ومجموعة البيانات. + +## 2. تدريب نموذج باستخدام Azure ML SDK +### 2.1 إنشاء مساحة عمل Azure ML + +للتبسيط، سنعمل على دفتر ملاحظات Jupyter. هذا يعني أنك لديك بالفعل مساحة عمل ووحدة حسابية. إذا كنت تمتلك مساحة عمل بالفعل، يمكنك الانتقال مباشرة إلى القسم 2.3 إنشاء دفتر ملاحظات. + +إذا لم يكن لديك، يرجى اتباع التعليمات في القسم **2.1 إنشاء مساحة عمل Azure ML** في [الدرس السابق](../18-Low-Code/README.md) لإنشاء مساحة عمل. + +### 2.2 إنشاء وحدة حسابية + +في [مساحة عمل Azure ML](https://ml.azure.com/) التي أنشأناها سابقًا، انتقل إلى قائمة الحوسبة وسترى الموارد الحسابية المختلفة المتاحة. + +![وحدة حسابية 1](../../../../translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ar.png) + +لنقم بإنشاء وحدة حسابية لتوفير دفتر ملاحظات Jupyter. +1. انقر على زر + جديد. +2. قم بتسمية الوحدة الحسابية. +3. اختر الخيارات: CPU أو GPU، حجم الجهاز وعدد النوى. +4. انقر على زر إنشاء. + +تهانينا، لقد أنشأت وحدة حسابية! سنستخدم هذه الوحدة الحسابية لإنشاء دفتر ملاحظات في القسم [إنشاء دفاتر ملاحظات](../../../../5-Data-Science-In-Cloud/19-Azure). + +### 2.3 تحميل مجموعة البيانات +راجع [الدرس السابق](../18-Low-Code/README.md) في القسم **2.3 تحميل مجموعة البيانات** إذا لم تقم بتحميل مجموعة البيانات بعد. + +### 2.4 إنشاء دفاتر ملاحظات + +> **_ملاحظة:_** للخطوة التالية، يمكنك إما إنشاء دفتر ملاحظات جديد من البداية، أو يمكنك تحميل [دفتر الملاحظات الذي أنشأناه](notebook.ipynb) في استوديو Azure ML الخاص بك. لتحميله، ببساطة انقر على قائمة "دفتر الملاحظات" وقم بتحميله. + +دفاتر الملاحظات جزء مهم جدًا من عملية علم البيانات. يمكن استخدامها لإجراء تحليل البيانات الاستكشافي (EDA)، الاتصال بمجموعات الحوسبة لتدريب نموذج، أو الاتصال بمجموعات الاستنتاج لنشر نقطة نهاية. + +لإنشاء دفتر ملاحظات، نحتاج إلى عقدة حسابية تخدم مثيل دفتر ملاحظات Jupyter. ارجع إلى [مساحة عمل Azure ML](https://ml.azure.com/) وانقر على وحدات الحساب. في قائمة الوحدات الحسابية، يجب أن ترى [الوحدة الحسابية التي أنشأناها سابقًا](../../../../5-Data-Science-In-Cloud/19-Azure). + +1. في قسم التطبيقات، انقر على خيار Jupyter. +2. ضع علامة في مربع "نعم، أفهم" وانقر على زر متابعة. +![دفتر ملاحظات 1](../../../../translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ar.png) +3. يجب أن يفتح علامة تبويب جديدة في المتصفح مع مثيل دفتر ملاحظات Jupyter الخاص بك كما يلي. انقر على زر "جديد" لإنشاء دفتر ملاحظات. + +![دفتر ملاحظات 2](../../../../translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ar.png) + +الآن بعد أن أصبح لدينا دفتر ملاحظات، يمكننا البدء في تدريب النموذج باستخدام Azure ML SDK. + +### 2.5 تدريب نموذج + +أولاً، إذا كان لديك أي شك، راجع [وثائق Azure ML SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). تحتوي على جميع المعلومات اللازمة لفهم الوحدات التي سنراها في هذا الدرس. + +#### 2.5.1 إعداد مساحة العمل، التجربة، مجموعة الحوسبة ومجموعة البيانات + +تحتاج إلى تحميل `workspace` من ملف التكوين باستخدام الكود التالي: + +```python +from azureml.core import Workspace +ws = Workspace.from_config() +``` + +هذا يعيد كائنًا من نوع `Workspace` يمثل مساحة العمل. ثم تحتاج إلى إنشاء `experiment` باستخدام الكود التالي: + +```python +from azureml.core import Experiment +experiment_name = 'aml-experiment' +experiment = Experiment(ws, experiment_name) +``` +للحصول على تجربة أو إنشائها من مساحة العمل، تطلب التجربة باستخدام اسم التجربة. يجب أن يكون اسم التجربة بين 3-36 حرفًا، يبدأ بحرف أو رقم، ويمكن أن يحتوي فقط على أحرف، أرقام، شرطات سفلية، وشرطات. إذا لم يتم العثور على التجربة في مساحة العمل، يتم إنشاء تجربة جديدة. + +الآن تحتاج إلى إنشاء مجموعة حوسبة للتدريب باستخدام الكود التالي. لاحظ أن هذه الخطوة قد تستغرق بضع دقائق. + +```python +from azureml.core.compute import AmlCompute + +aml_name = "heart-f-cluster" +try: + aml_compute = AmlCompute(ws, aml_name) + print('Found existing AML compute context.') +except: + print('Creating new AML compute context.') + aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3) + aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config) + aml_compute.wait_for_completion(show_output = True) + +cts = ws.compute_targets +compute_target = cts[aml_name] +``` + +يمكنك الحصول على مجموعة البيانات من مساحة العمل باستخدام اسم مجموعة البيانات بالطريقة التالية: + +```python +dataset = ws.datasets['heart-failure-records'] +df = dataset.to_pandas_dataframe() +df.describe() +``` +#### 2.5.2 إعداد وتدريب AutoML + +لإعداد تكوين AutoML، استخدم [فئة AutoMLConfig](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +كما هو موضح في الوثائق، هناك العديد من المعلمات التي يمكنك اللعب بها. لهذا المشروع، سنستخدم المعلمات التالية: + +- `experiment_timeout_minutes`: الحد الأقصى للوقت (بالدقائق) الذي يُسمح للتجربة بالعمل قبل أن يتم إيقافها تلقائيًا ويتم توفير النتائج تلقائيًا. +- `max_concurrent_iterations`: الحد الأقصى لعدد التكرارات التدريبية المتزامنة المسموح بها للتجربة. +- `primary_metric`: المقياس الأساسي المستخدم لتحديد حالة التجربة. +- `compute_target`: هدف الحوسبة الخاص بـ Azure Machine Learning لتشغيل تجربة التعلم الآلي التلقائي. +- `task`: نوع المهمة التي سيتم تشغيلها. يمكن أن تكون القيم 'classification'، 'regression'، أو 'forecasting' اعتمادًا على نوع مشكلة التعلم الآلي التلقائي التي سيتم حلها. +- `training_data`: بيانات التدريب التي سيتم استخدامها داخل التجربة. يجب أن تحتوي على ميزات التدريب وعمود التسمية (اختياريًا عمود أوزان العينات). +- `label_column_name`: اسم عمود التسمية. +- `path`: المسار الكامل إلى مجلد مشروع Azure Machine Learning. +- `enable_early_stopping`: ما إذا كان سيتم تمكين الإنهاء المبكر إذا لم تتحسن النتيجة على المدى القصير. +- `featurization`: مؤشر على ما إذا كان يجب تنفيذ خطوة التمييز تلقائيًا أم لا، أو ما إذا كان يجب استخدام التمييز المخصص. +- `debug_log`: ملف السجل لكتابة معلومات التصحيح. + +```python +from azureml.train.automl import AutoMLConfig + +project_folder = './aml-project' + +automl_settings = { + "experiment_timeout_minutes": 20, + "max_concurrent_iterations": 3, + "primary_metric" : 'AUC_weighted' +} + +automl_config = AutoMLConfig(compute_target=compute_target, + task = "classification", + training_data=dataset, + label_column_name="DEATH_EVENT", + path = project_folder, + enable_early_stopping= True, + featurization= 'auto', + debug_log = "automl_errors.log", + **automl_settings + ) +``` +الآن بعد أن قمت بإعداد التكوين، يمكنك تدريب النموذج باستخدام الكود التالي. قد تستغرق هذه الخطوة ما يصل إلى ساعة حسب حجم المجموعة. + +```python +remote_run = experiment.submit(automl_config) +``` +يمكنك تشغيل أداة RunDetails لعرض التجارب المختلفة. +```python +from azureml.widgets import RunDetails +RunDetails(remote_run).show() +``` +## 3. نشر النموذج واستهلاك نقطة النهاية باستخدام Azure ML SDK + +### 3.1 حفظ أفضل نموذج + +`remote_run` هو كائن من نوع [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). يحتوي هذا الكائن على طريقة `get_output()` التي تعيد أفضل تشغيل والنموذج المناسب المقابل. + +```python +best_run, fitted_model = remote_run.get_output() +``` +يمكنك رؤية المعلمات المستخدمة لأفضل نموذج فقط بطباعة fitted_model ورؤية خصائص أفضل نموذج باستخدام طريقة [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +```python +best_run.get_properties() +``` + +الآن قم بتسجيل النموذج باستخدام طريقة [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +```python +model_name = best_run.properties['model_name'] +script_file_name = 'inference/score.py' +best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py') +description = "aml heart failure project sdk" +model = best_run.register_model(model_name = model_name, + model_path = './outputs/', + description = description, + tags = None) +``` +### 3.2 نشر النموذج + +بمجرد حفظ أفضل نموذج، يمكننا نشره باستخدام فئة [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109). يمثل InferenceConfig إعدادات التكوين لبيئة مخصصة تُستخدم للنشر. تمثل فئة [AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) نموذج التعلم الآلي المنشور كنقطة نهاية خدمة ويب على Azure Container Instances. يتم إنشاء خدمة ويب منشورة من نموذج، نص برمجي، والملفات المرتبطة. تكون خدمة الويب الناتجة نقطة نهاية HTTP متوازنة التحميل مع واجهة برمجة تطبيقات REST. يمكنك إرسال البيانات إلى هذه الواجهة البرمجية واستلام التنبؤ الذي تم إرجاعه بواسطة النموذج. + +يتم نشر النموذج باستخدام طريقة [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +```python +from azureml.core.model import InferenceConfig, Model +from azureml.core.webservice import AciWebservice + +inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment()) + +aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, + memory_gb = 1, + tags = {'type': "automl-heart-failure-prediction"}, + description = 'Sample service for AutoML Heart Failure Prediction') + +aci_service_name = 'automl-hf-sdk' +aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) +aci_service.wait_for_deployment(True) +print(aci_service.state) +``` +يجب أن تستغرق هذه الخطوة بضع دقائق. + +### 3.3 استهلاك نقطة النهاية + +يمكنك استهلاك نقطة النهاية الخاصة بك عن طريق إنشاء إدخال عينة: + +```python +data = { + "data": + [ + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} + +test_sample = str.encode(json.dumps(data)) +``` +ثم يمكنك إرسال هذا الإدخال إلى النموذج الخاص بك للحصول على التنبؤ: +```python +response = aci_service.run(input_data=test_sample) +response +``` +يجب أن تكون النتيجة `'{"result": [false]}'`. هذا يعني أن إدخال المريض الذي أرسلناه إلى نقطة النهاية قد أنتج التنبؤ `false`، مما يعني أن هذا الشخص غير مرجح أن يصاب بنوبة قلبية. + +تهانينا! لقد قمت باستخدام النموذج الذي تم نشره وتدريبه على Azure ML باستخدام Azure ML SDK! + +> **_ملاحظة:_** بمجرد الانتهاء من المشروع، لا تنسَ حذف جميع الموارد. + +## 🚀 التحدي + +هناك العديد من الأشياء الأخرى التي يمكنك القيام بها باستخدام SDK، للأسف، لا يمكننا استعراضها جميعًا في هذا الدرس. ولكن الخبر السار هو أن تعلم كيفية تصفح وثائق SDK يمكن أن يأخذك بعيدًا بمفردك. ألقِ نظرة على وثائق Azure ML SDK وابحث عن الفئة `Pipeline` التي تتيح لك إنشاء خطوط معالجة. الخطوط هي مجموعة من الخطوات التي يمكن تنفيذها كعملية سير عمل. + +**تلميح:** انتقل إلى [وثائق SDK](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) واكتب كلمات مفتاحية في شريط البحث مثل "Pipeline". يجب أن تجد الفئة `azureml.pipeline.core.Pipeline` في نتائج البحث. + +## [اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/37) + +## المراجعة والدراسة الذاتية + +في هذا الدرس، تعلمت كيفية تدريب ونشر واستهلاك نموذج للتنبؤ بمخاطر فشل القلب باستخدام Azure ML SDK في السحابة. تحقق من [هذه الوثائق](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) للحصول على مزيد من المعلومات حول Azure ML SDK. حاول إنشاء نموذجك الخاص باستخدام Azure ML SDK. + +## الواجب + +[مشروع علم البيانات باستخدام Azure ML SDK](assignment.md) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/19-Azure/assignment.md b/translations/ar/5-Data-Science-In-Cloud/19-Azure/assignment.md new file mode 100644 index 00000000..7da19c51 --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/19-Azure/assignment.md @@ -0,0 +1,25 @@ + +# مشروع علم البيانات باستخدام Azure ML SDK + +## التعليمات + +لقد رأينا كيفية استخدام منصة Azure ML لتدريب نموذج ونشره واستهلاكه باستخدام Azure ML SDK. الآن ابحث عن بعض البيانات التي يمكنك استخدامها لتدريب نموذج آخر، نشره واستهلاكه. يمكنك البحث عن مجموعات البيانات على [Kaggle](https://kaggle.com) و [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## معايير التقييم + +| متميز | كافٍ | يحتاج إلى تحسين | +|-------|------|----------------| +|عند إعداد AutoML Configuration، قمت بمراجعة وثائق SDK لمعرفة المعلمات التي يمكنك استخدامها. قمت بتشغيل تدريب على مجموعة بيانات باستخدام AutoML عبر Azure ML SDK، وقمت بمراجعة تفسيرات النموذج. قمت بنشر أفضل نموذج وكنت قادرًا على استهلاكه عبر Azure ML SDK. | قمت بتشغيل تدريب على مجموعة بيانات باستخدام AutoML عبر Azure ML SDK، وقمت بمراجعة تفسيرات النموذج. قمت بنشر أفضل نموذج وكنت قادرًا على استهلاكه عبر Azure ML SDK. | قمت بتشغيل تدريب على مجموعة بيانات باستخدام AutoML عبر Azure ML SDK. قمت بنشر أفضل نموذج وكنت قادرًا على استهلاكه عبر Azure ML SDK. | + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/5-Data-Science-In-Cloud/README.md b/translations/ar/5-Data-Science-In-Cloud/README.md new file mode 100644 index 00000000..34f8902f --- /dev/null +++ b/translations/ar/5-Data-Science-In-Cloud/README.md @@ -0,0 +1,35 @@ + +# علم البيانات في السحابة + +![cloud-picture](../../../translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ar.jpg) + +> الصورة بواسطة [Jelleke Vanooteghem](https://unsplash.com/@ilumire) من [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) + +عندما يتعلق الأمر بممارسة علم البيانات مع البيانات الضخمة، يمكن أن تكون السحابة نقطة تحول. في الدروس الثلاثة القادمة، سنستعرض ما هي السحابة ولماذا يمكن أن تكون مفيدة جدًا. سنقوم أيضًا باستكشاف مجموعة بيانات عن فشل القلب وبناء نموذج يساعد في تقييم احتمالية إصابة شخص بفشل القلب. سنستخدم قوة السحابة لتدريب النموذج ونشره واستهلاكه بطريقتين مختلفتين. الطريقة الأولى باستخدام واجهة المستخدم فقط بأسلوب "Low code/No code"، والطريقة الثانية باستخدام Azure Machine Learning Software Developer Kit (Azure ML SDK). + +![project-schema](../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ar.png) + +### المواضيع + +1. [لماذا نستخدم السحابة لعلم البيانات؟](17-Introduction/README.md) +2. [علم البيانات في السحابة: الطريقة "Low code/No code"](18-Low-Code/README.md) +3. [علم البيانات في السحابة: الطريقة "Azure ML SDK"](19-Azure/README.md) + +### الشكر والتقدير +تم كتابة هذه الدروس مع ☁️ و 💕 بواسطة [Maud Levy](https://twitter.com/maudstweets) و [Tiffany Souterre](https://twitter.com/TiffanySouterre) + +تم الحصول على بيانات مشروع توقع فشل القلب من [ +Larxel](https://www.kaggle.com/andrewmvd) على [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data). وهي مرخصة بموجب [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/README.md b/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/README.md new file mode 100644 index 00000000..93999f07 --- /dev/null +++ b/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/README.md @@ -0,0 +1,155 @@ + +# علم البيانات في العالم الحقيقي + +| ![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| علم البيانات في العالم الحقيقي - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +نحن على وشك إنهاء هذه الرحلة التعليمية! + +بدأنا بتعريفات علم البيانات والأخلاقيات، واستكشفنا أدوات وتقنيات مختلفة لتحليل البيانات وتصويرها، وراجعنا دورة حياة علم البيانات، واطلعنا على كيفية توسيع وأتمتة سير العمل في علم البيانات باستخدام خدمات الحوسبة السحابية. لذا، ربما تتساءل: _"كيف يمكنني تطبيق كل هذه التعلميات في سياقات العالم الحقيقي؟"_ + +في هذه الدرس، سنستكشف تطبيقات علم البيانات في الصناعة ونغوص في أمثلة محددة في مجالات البحث، العلوم الإنسانية الرقمية، والاستدامة. سننظر في فرص مشاريع الطلاب ونختتم بموارد مفيدة لمساعدتك على مواصلة رحلتك التعليمية! + +## اختبار ما قبل المحاضرة + +[اختبار ما قبل المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/38) + +## علم البيانات + الصناعة + +بفضل ديمقراطية الذكاء الاصطناعي، أصبح من السهل على المطورين تصميم ودمج اتخاذ القرارات المدعومة بالذكاء الاصطناعي والرؤى المستندة إلى البيانات في تجارب المستخدم وسير العمل التطويري. إليك بعض الأمثلة على كيفية "تطبيق" علم البيانات في تطبيقات العالم الحقيقي عبر الصناعة: + + * [اتجاهات الإنفلونزا من Google](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) استخدمت علم البيانات لربط مصطلحات البحث باتجاهات الإنفلونزا. رغم أن النهج كان به عيوب، إلا أنه أثار الوعي بالإمكانيات (والتحديات) للتنبؤات الصحية المستندة إلى البيانات. + + * [تنبؤات مسارات UPS](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - يشرح كيف تستخدم UPS علم البيانات والتعلم الآلي للتنبؤ بالمسارات المثلى للتوصيل، مع الأخذ في الاعتبار ظروف الطقس، أنماط المرور، مواعيد التسليم والمزيد. + + * [تصوير مسارات سيارات الأجرة في نيويورك](http://chriswhong.github.io/nyctaxi/) - البيانات التي تم جمعها باستخدام [قوانين حرية المعلومات](https://chriswhong.com/open-data/foil_nyc_taxi/) ساعدت في تصوير يوم في حياة سيارات الأجرة في نيويورك، مما يساعدنا على فهم كيفية تنقلها في المدينة المزدحمة، الأموال التي تجنيها، ومدة الرحلات على مدار 24 ساعة. + + * [منصة علم البيانات في Uber](https://eng.uber.com/dsw/) - تستخدم البيانات (مثل مواقع الالتقاط والتوصيل، مدة الرحلة، المسارات المفضلة، إلخ) التي يتم جمعها من ملايين الرحلات اليومية لبناء أداة تحليل بيانات تساعد في التسعير، السلامة، اكتشاف الاحتيال واتخاذ قرارات التنقل. + + * [تحليلات الرياضة](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - تركز على _التحليلات التنبؤية_ (تحليل الفرق واللاعبين - مثل [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - وإدارة المشجعين) و_تصوير البيانات_ (لوحات الفرق والمشجعين، الألعاب، إلخ) مع تطبيقات مثل اكتشاف المواهب، المراهنات الرياضية وإدارة المخزون/الملاعب. + + * [علم البيانات في البنوك](https://data-flair.training/blogs/data-science-in-banking/) - يبرز قيمة علم البيانات في صناعة التمويل مع تطبيقات تتراوح بين نمذجة المخاطر واكتشاف الاحتيال، إلى تقسيم العملاء، التنبؤ الفوري وأنظمة التوصية. التحليلات التنبؤية تدفع أيضًا تدابير حاسمة مثل [درجات الائتمان](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit). + + * [علم البيانات في الرعاية الصحية](https://data-flair.training/blogs/data-science-in-healthcare/) - يبرز تطبيقات مثل التصوير الطبي (مثل MRI، الأشعة السينية، التصوير المقطعي)، الجينوميات (تسلسل الحمض النووي)، تطوير الأدوية (تقييم المخاطر، التنبؤ بالنجاح)، التحليلات التنبؤية (رعاية المرضى ولوجستيات الإمداد)، تتبع الأمراض والوقاية منها، إلخ. + +![تطبيقات علم البيانات في العالم الحقيقي](../../../../translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ar.png) حقوق الصورة: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +تُظهر الصورة مجالات وأمثلة أخرى لتطبيق تقنيات علم البيانات. هل تريد استكشاف تطبيقات أخرى؟ تحقق من قسم [المراجعة والدراسة الذاتية](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) أدناه. + +## علم البيانات + البحث + +| ![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| علم البيانات والبحث - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +بينما تركز تطبيقات العالم الحقيقي غالبًا على حالات الاستخدام الصناعي على نطاق واسع، يمكن أن تكون تطبيقات ومشاريع _البحث_ مفيدة من منظورين: + +* _فرص الابتكار_ - استكشاف النماذج الأولية السريعة للمفاهيم المتقدمة واختبار تجارب المستخدم للتطبيقات المستقبلية. +* _تحديات النشر_ - التحقيق في الأضرار المحتملة أو العواقب غير المقصودة لتقنيات علم البيانات في سياقات العالم الحقيقي. + +بالنسبة للطلاب، يمكن أن توفر هذه المشاريع البحثية فرصًا للتعلم والتعاون التي تحسن فهمك للموضوع، وتوسع وعيك وتفاعلك مع الأشخاص أو الفرق ذات الصلة التي تعمل في مجالات الاهتمام. فما هي شكل المشاريع البحثية وكيف يمكن أن تحدث تأثيرًا؟ + +لننظر إلى مثال واحد - [دراسة MIT Gender Shades](http://gendershades.org/overview.html) من Joy Buolamwini (MIT Media Labs) مع [ورقة بحثية مميزة](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) شاركت في تأليفها مع Timnit Gebru (حينها في Microsoft Research) التي ركزت على: + + * **ما الهدف:** كان هدف المشروع البحثي هو _تقييم التحيز الموجود في خوارزميات تحليل الوجه التلقائي ومجموعات البيانات_ بناءً على النوع ولون البشرة. + * **لماذا:** يتم استخدام تحليل الوجه في مجالات مثل تطبيق القانون، أمن المطارات، أنظمة التوظيف والمزيد - وهي سياقات يمكن أن تسبب فيها التصنيفات غير الدقيقة (مثل التحيز) أضرارًا اقتصادية واجتماعية محتملة للأفراد أو المجموعات المتأثرة. فهم (والقضاء أو التخفيف من) التحيزات هو المفتاح للعدالة في الاستخدام. + * **كيف:** أدرك الباحثون أن المعايير الحالية تستخدم بشكل رئيسي موضوعات ذات بشرة فاتحة، وقاموا بتجميع مجموعة بيانات جديدة (1000+ صورة) كانت _أكثر توازنًا_ من حيث النوع ولون البشرة. تم استخدام مجموعة البيانات لتقييم دقة ثلاثة منتجات لتصنيف النوع (من Microsoft، IBM وFace++). + +أظهرت النتائج أنه رغم أن دقة التصنيف الإجمالية كانت جيدة، إلا أن هناك فرقًا ملحوظًا في معدلات الخطأ بين المجموعات الفرعية المختلفة - مع ارتفاع معدلات **التصنيف الخاطئ** للإناث أو الأشخاص ذوي البشرة الداكنة، مما يشير إلى وجود تحيز. + +**النتائج الرئيسية:** أثارت الوعي بأن علم البيانات يحتاج إلى المزيد من _مجموعات البيانات الممثلة_ (المجموعات الفرعية المتوازنة) والمزيد من _الفرق الشاملة_ (الخلفيات المتنوعة) للتعرف على هذه التحيزات والقضاء عليها أو التخفيف منها في وقت مبكر في حلول الذكاء الاصطناعي. جهود البحث مثل هذه تلعب أيضًا دورًا رئيسيًا في تعريف العديد من المؤسسات بمبادئ وممارسات _الذكاء الاصطناعي المسؤول_ لتحسين العدالة عبر منتجات وعمليات الذكاء الاصطناعي الخاصة بها. + +**هل تريد معرفة المزيد عن جهود البحث ذات الصلة في Microsoft؟** + +* تحقق من [مشاريع Microsoft Research](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) في مجال الذكاء الاصطناعي. +* استكشف مشاريع الطلاب من [مدرسة Microsoft Research Data Science الصيفية](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). +* تحقق من مشروع [Fairlearn](https://fairlearn.org/) ومبادرات [الذكاء الاصطناعي المسؤول](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6). + +## علم البيانات + العلوم الإنسانية + +| ![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| علم البيانات والعلوم الإنسانية الرقمية - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +تم تعريف العلوم الإنسانية الرقمية [على أنها](https://digitalhumanities.stanford.edu/about-dh-stanford) "مجموعة من الممارسات والمناهج التي تجمع بين الأساليب الحاسوبية والتحقيق الإنساني". مشاريع [Stanford](https://digitalhumanities.stanford.edu/projects) مثل _"إعادة تشغيل التاريخ"_ و_"التفكير الشعري"_ توضح العلاقة بين [العلوم الإنسانية الرقمية وعلم البيانات](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) - مع التركيز على تقنيات مثل تحليل الشبكات، تصوير المعلومات، التحليل المكاني والنصي التي يمكن أن تساعدنا في إعادة النظر في مجموعات البيانات التاريخية والأدبية لاستخلاص رؤى جديدة ومنظورات. + +*هل تريد استكشاف وتوسيع مشروع في هذا المجال؟* + +تحقق من ["إميلي ديكنسون ومقياس المزاج"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - مثال رائع من [Jen Looper](https://twitter.com/jenlooper) يسأل كيف يمكننا استخدام علم البيانات لإعادة النظر في الشعر المألوف وإعادة تقييم معناه ومساهمات مؤلفه في سياقات جديدة. على سبيل المثال، _هل يمكننا التنبؤ بالموسم الذي كتب فيه القصيدة من خلال تحليل نغمتها أو مشاعرها_ - وماذا يخبرنا هذا عن حالة المؤلف النفسية خلال الفترة ذات الصلة؟ + +للإجابة على هذا السؤال، نتبع خطوات دورة حياة علم البيانات: + * [`اكتساب البيانات`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - لجمع مجموعة بيانات ذات صلة للتحليل. الخيارات تشمل استخدام واجهة برمجة التطبيقات (مثل [Poetry DB API](https://poetrydb.org/index.html)) أو استخراج صفحات الويب (مثل [مشروع غوتنبرغ](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) باستخدام أدوات مثل [Scrapy](https://scrapy.org/). + * [`تنظيف البيانات`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - يشرح كيف يمكن تنسيق النص، تنظيفه وتبسيطه باستخدام أدوات أساسية مثل Visual Studio Code وMicrosoft Excel. + * [`تحليل البيانات`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - يشرح كيف يمكننا الآن استيراد مجموعة البيانات إلى "دفاتر الملاحظات" للتحليل باستخدام حزم Python (مثل pandas، numpy وmatplotlib) لتنظيم البيانات وتصويرها. + * [`تحليل المشاعر`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - يشرح كيف يمكننا دمج خدمات السحابة مثل Text Analytics، باستخدام أدوات منخفضة الكود مثل [Power Automate](https://flow.microsoft.com/en-us/) لأتمتة سير العمل لمعالجة البيانات. + +باستخدام هذا سير العمل، يمكننا استكشاف تأثيرات المواسم على مشاعر القصائد، ومساعدتنا في تشكيل وجهات نظرنا الخاصة حول المؤلف. جربه بنفسك - ثم قم بتوسيع دفتر الملاحظات لطرح أسئلة أخرى أو تصوير البيانات بطرق جديدة! + +> يمكنك استخدام بعض الأدوات في [مجموعة أدوات العلوم الإنسانية الرقمية](https://github.com/Digital-Humanities-Toolkit) لمتابعة هذه مسارات البحث. + +## علم البيانات + الاستدامة + +| ![ رسم توضيحي بواسطة [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| علم البيانات والاستدامة - _رسم توضيحي بواسطة [@nitya](https://twitter.com/nitya)_ | + +[أجندة 2030 للتنمية المستدامة](https://sdgs.un.org/2030agenda) - التي اعتمدها جميع أعضاء الأمم المتحدة في عام 2015 - تحدد 17 هدفًا بما في ذلك تلك التي تركز على **حماية الكوكب** من التدهور وتأثير تغير المناخ. تدعم مبادرة [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) هذه الأهداف من خلال استكشاف الطرق التي يمكن أن تدعم بها الحلول التكنولوجية بناء مستقبل أكثر استدامة مع [التركيز على 4 أهداف](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - أن تكون سلبية الكربون، إيجابية المياه، صفر نفايات، ومتنوعة بيولوجيًا بحلول عام 2030. + +معالجة هذه التحديات بطريقة قابلة للتوسع وفي الوقت المناسب تتطلب تفكيرًا على مستوى السحابة - وبيانات ضخمة. توفر مبادرة [Planetary Computer](https://planetarycomputer.microsoft.com/) 4 مكونات لمساعدة علماء البيانات والمطورين في هذا الجهد: + + * [كتالوج البيانات](https://planetarycomputer.microsoft.com/catalog) - يحتوي على بيتابايت من بيانات أنظمة الأرض (مجانية ومستضافة على Azure). + * [واجهة برمجة تطبيقات الكوكب](https://planetarycomputer.microsoft.com/docs/reference/stac/) - لمساعدة المستخدمين في البحث عن البيانات ذات الصلة عبر المكان والزمان. + * [المركز](https://planetarycomputer.microsoft.com/docs/overview/environment/) - بيئة مُدارة للعلماء لمعالجة مجموعات البيانات الجغرافية الضخمة. + * [التطبيقات](https://planetarycomputer.microsoft.com/applications) - تعرض حالات الاستخدام والأدوات للحصول على رؤى حول الاستدامة. +**مشروع الحاسوب الكوكبي حاليًا في مرحلة المعاينة (اعتبارًا من سبتمبر 2021)** - إليك كيفية البدء بالمساهمة في حلول الاستدامة باستخدام علم البيانات. + +* [طلب الوصول](https://planetarycomputer.microsoft.com/account/request) لبدء الاستكشاف والتواصل مع الزملاء. +* [استكشاف الوثائق](https://planetarycomputer.microsoft.com/docs/overview/about) لفهم مجموعات البيانات وواجهات برمجة التطبيقات المدعومة. +* استكشاف تطبيقات مثل [مراقبة النظم البيئية](https://analytics-lab.org/ecosystemmonitoring/) للحصول على الإلهام حول أفكار التطبيقات. + +فكر في كيفية استخدام تصور البيانات للكشف عن رؤى ذات صلة أو تعزيزها في مجالات مثل تغير المناخ وإزالة الغابات. أو فكر في كيفية استخدام هذه الرؤى لإنشاء تجارب مستخدم جديدة تحفز التغييرات السلوكية نحو حياة أكثر استدامة. + +## علم البيانات + الطلاب + +لقد تحدثنا عن تطبيقات العالم الحقيقي في الصناعة والبحث، واستكشفنا أمثلة لتطبيقات علم البيانات في العلوم الإنسانية الرقمية والاستدامة. إذًا، كيف يمكنك بناء مهاراتك ومشاركة خبراتك كمبتدئين في علم البيانات؟ + +إليك بعض الأمثلة على مشاريع علم البيانات للطلاب لإلهامك. + +* [مدرسة مايكروسوفت الصيفية لعلم البيانات](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) مع [مشاريع](https://github.com/msr-ds3) على GitHub تستكشف موضوعات مثل: + - [التحيز العرقي في استخدام الشرطة للقوة](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [موثوقية نظام مترو الأنفاق في نيويورك](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [رقمنة الثقافة المادية: استكشاف التوزيعات الاجتماعية والاقتصادية في سيركاب](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc) - من [أورنيلا ألتونيان](https://twitter.com/ornelladotcom) وفريقها في كليرمونت، باستخدام [ArcGIS StoryMaps](https://storymaps.arcgis.com/). + +## 🚀 التحدي + +ابحث عن مقالات توصي بمشاريع علم البيانات المناسبة للمبتدئين - مثل [هذه 50 فكرة](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) أو [هذه 21 فكرة مشروع](https://www.intellspot.com/data-science-project-ideas) أو [هذه 16 مشروعًا مع الكود المصدري](https://data-flair.training/blogs/data-science-project-ideas/) التي يمكنك تحليلها وإعادة تشكيلها. ولا تنسَ التدوين حول رحلاتك التعليمية ومشاركة رؤاك معنا جميعًا. + +## اختبار ما بعد المحاضرة + +[اختبار ما بعد المحاضرة](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/39) + +## المراجعة والدراسة الذاتية + +هل تريد استكشاف المزيد من حالات الاستخدام؟ إليك بعض المقالات ذات الصلة: +* [17 تطبيقًا ومثالًا لعلم البيانات](https://builtin.com/data-science/data-science-applications-examples) - يوليو 2021 +* [11 تطبيقًا مذهلًا لعلم البيانات في العالم الحقيقي](https://myblindbird.com/data-science-applications-real-world/) - مايو 2021 +* [علم البيانات في العالم الحقيقي](https://towardsdatascience.com/data-science-in-the-real-world/home) - مجموعة مقالات +* علم البيانات في: [التعليم](https://data-flair.training/blogs/data-science-in-education/)، [الزراعة](https://data-flair.training/blogs/data-science-in-agriculture/)، [التمويل](https://data-flair.training/blogs/data-science-in-finance/)، [الأفلام](https://data-flair.training/blogs/data-science-at-movies/) والمزيد. + +## الواجب + +[استكشاف مجموعة بيانات من الحاسوب الكوكبي](assignment.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md b/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md new file mode 100644 index 00000000..101d6d1c --- /dev/null +++ b/translations/ar/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md @@ -0,0 +1,50 @@ + +# استكشاف مجموعة بيانات من الحاسوب الكوكبي + +## التعليمات + +في هذا الدرس، تحدثنا عن مجالات مختلفة لتطبيقات علوم البيانات - مع التعمق في أمثلة تتعلق بالبحث، والاستدامة، والعلوم الإنسانية الرقمية. في هذا التمرين، ستستكشف أحد هذه الأمثلة بمزيد من التفصيل، وتطبق بعض ما تعلمته حول تصورات البيانات وتحليلها لاستخلاص رؤى حول بيانات الاستدامة. + +يحتوي مشروع [الحاسوب الكوكبي](https://planetarycomputer.microsoft.com/) على مجموعات بيانات وواجهات برمجة تطبيقات يمكن الوصول إليها باستخدام حساب - يمكنك طلب حساب إذا كنت ترغب في تجربة الخطوة الإضافية من التمرين. كما يوفر الموقع ميزة [Explorer](https://planetarycomputer.microsoft.com/explore) التي يمكنك استخدامها دون الحاجة إلى إنشاء حساب. + +`الخطوات:` +تتيح لك واجهة Explorer (الموضحة في لقطة الشاشة أدناه) اختيار مجموعة بيانات (من الخيارات المتاحة)، واستعلام مُعد مسبقًا (لتصفية البيانات)، وخيار عرض (لإنشاء تصور مناسب). في هذا التمرين، مهمتك هي: + + 1. قراءة [وثائق Explorer](https://planetarycomputer.microsoft.com/docs/overview/explorer/) - لفهم الخيارات المتاحة. + 2. استكشاف [كتالوج البيانات](https://planetarycomputer.microsoft.com/catalog) - لمعرفة الغرض من كل مجموعة بيانات. + 3. استخدام Explorer - اختيار مجموعة بيانات تهمك، وتحديد استعلام مناسب وخيار عرض. + +![واجهة Explorer للحاسوب الكوكبي](../../../../translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ar.png) + +`مهمتك:` +الآن قم بدراسة التصور الذي يتم عرضه في المتصفح وأجب عن الأسئلة التالية: + * ما هي _الخصائص_ التي تحتوي عليها مجموعة البيانات؟ + * ما هي _الرؤى_ أو النتائج التي يوفرها التصور؟ + * ما هي _الآثار_ المترتبة على تلك الرؤى بالنسبة لأهداف الاستدامة الخاصة بالمشروع؟ + * ما هي _القيود_ التي يعاني منها التصور (أي، ما هي الرؤى التي لم تحصل عليها)؟ + * إذا تمكنت من الحصول على البيانات الخام، ما هي _التصورات البديلة_ التي ستنشئها، ولماذا؟ + +`نقاط إضافية:` +قم بالتقديم للحصول على حساب - وقم بتسجيل الدخول عند قبولك. + * استخدم خيار _Launch Hub_ لفتح البيانات الخام في دفتر ملاحظات. + * استكشف البيانات بشكل تفاعلي، وقم بتنفيذ التصورات البديلة التي فكرت بها. + * الآن قم بتحليل تصوراتك المخصصة - هل تمكنت من استنتاج الرؤى التي فاتتك من قبل؟ + +## معايير التقييم + +ممتاز | كافٍ | يحتاج إلى تحسين +--- | --- | -- | +تمت الإجابة على جميع الأسئلة الخمسة الأساسية. حدد الطالب بوضوح كيف يمكن للتصورات الحالية والبديلة أن توفر رؤى حول أهداف أو نتائج الاستدامة. | أجاب الطالب على ما لا يقل عن الأسئلة الثلاثة الأولى بتفصيل كبير، مما يدل على أنه لديه خبرة عملية مع Explorer. | فشل الطالب في الإجابة على أسئلة متعددة، أو قدم تفاصيل غير كافية - مما يشير إلى عدم وجود محاولة جادة للمشروع. | + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/6-Data-Science-In-Wild/README.md b/translations/ar/6-Data-Science-In-Wild/README.md new file mode 100644 index 00000000..7ce3a57b --- /dev/null +++ b/translations/ar/6-Data-Science-In-Wild/README.md @@ -0,0 +1,25 @@ + +# علم البيانات في العالم الحقيقي + +تطبيقات علم البيانات في مختلف الصناعات. + +### المواضيع + +1. [علم البيانات في العالم الحقيقي](20-Real-World-Examples/README.md) + +### الشكر والتقدير + +كتبت بحب ❤️ بواسطة [نيتيا ناراسيمهان](https://twitter.com/nitya) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/CODE_OF_CONDUCT.md b/translations/ar/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..befcc81d --- /dev/null +++ b/translations/ar/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ + +# مدونة قواعد السلوك لمصادر مايكروسوفت المفتوحة + +لقد تبنى هذا المشروع [مدونة قواعد السلوك لمصادر مايكروسوفت المفتوحة](https://opensource.microsoft.com/codeofconduct/). + +الموارد: + +- [مدونة قواعد السلوك لمصادر مايكروسوفت المفتوحة](https://opensource.microsoft.com/codeofconduct/) +- [الأسئلة الشائعة حول مدونة قواعد السلوك](https://opensource.microsoft.com/codeofconduct/faq/) +- للتواصل بشأن أي استفسارات أو مخاوف، يرجى مراسلة [opencode@microsoft.com](mailto:opencode@microsoft.com) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/CONTRIBUTING.md b/translations/ar/CONTRIBUTING.md new file mode 100644 index 00000000..8f12d86e --- /dev/null +++ b/translations/ar/CONTRIBUTING.md @@ -0,0 +1,24 @@ + +# المساهمة + +هذا المشروع يرحب بالمساهمات والاقتراحات. معظم المساهمات تتطلب منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تؤكد أنك تمتلك الحق في، وتقوم فعليًا، بمنحنا الحقوق لاستخدام مساهمتك. لمزيد من التفاصيل، قم بزيارة +https://cla.microsoft.com. + +عند تقديم طلب سحب (pull request)، سيقوم روبوت CLA تلقائيًا بتحديد ما إذا كنت بحاجة إلى تقديم CLA وتزيين الطلب بشكل مناسب (مثل إضافة علامة أو تعليق). ببساطة اتبع التعليمات التي يقدمها الروبوت. ستحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع المستودعات التي تستخدم CLA الخاص بنا. + +هذا المشروع تبنى [مدونة قواعد السلوك لمصادر مايكروسوفت المفتوحة](https://opensource.microsoft.com/codeofconduct/). +لمزيد من المعلومات، راجع [الأسئلة الشائعة حول مدونة قواعد السلوك](https://opensource.microsoft.com/codeofconduct/faq/) +أو تواصل مع [opencode@microsoft.com](mailto:opencode@microsoft.com) لأي أسئلة أو تعليقات إضافية. + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/README.md b/translations/ar/README.md new file mode 100644 index 00000000..b90a4878 --- /dev/null +++ b/translations/ar/README.md @@ -0,0 +1,163 @@ + +# علم البيانات للمبتدئين - منهج دراسي + +Azure Cloud Advocates في Microsoft يسعدهم تقديم منهج دراسي لمدة 10 أسابيع يتضمن 20 درسًا حول علم البيانات. يحتوي كل درس على اختبارات قبل وبعد الدرس، وتعليمات مكتوبة لإكمال الدرس، وحل، ومهمة. تعتمد طريقتنا التعليمية على المشاريع، مما يتيح لك التعلم أثناء البناء، وهي طريقة مثبتة لجعل المهارات الجديدة "تترسخ". + +**شكر خاص لمؤلفينا:** [جاسمين جريناواي](https://www.twitter.com/paladique)، [ديمتري سوشنيكوف](http://soshnikov.com)، [نيتيا ناراسيمهان](https://twitter.com/nitya)، [جيلين ماكجي](https://twitter.com/JalenMcG)، [جين لوبر](https://twitter.com/jenlooper)، [مود ليفي](https://twitter.com/maudstweets)، [تيفاني سوتير](https://twitter.com/TiffanySouterre)، [كريستوفر هاريسون](https://www.twitter.com/geektrainer). + +**🙏 شكر خاص 🙏 لـ [سفراء الطلاب في Microsoft](https://studentambassadors.microsoft.com/) المؤلفين، المراجعين، والمساهمين في المحتوى،** ومن بينهم أريان أرورا، [أديتيا جارج](https://github.com/AdityaGarg00)، [ألوندرا سانشيز](https://www.linkedin.com/in/alondra-sanchez-molina/)، [أنكيتا سينغ](https://www.linkedin.com/in/ankitasingh007)، [أنوبام ميشرا](https://www.linkedin.com/in/anupam--mishra/)، [أربيتا داس](https://www.linkedin.com/in/arpitadas01/)، شيل بيهاري دوباي، [ديبري نسوفور](https://www.linkedin.com/in/dibrinsofor)، [ديشيتا بهاسين](https://www.linkedin.com/in/dishita-bhasin-7065281bb)، [مجد صافي](https://www.linkedin.com/in/majd-s/)، [ماكس بلوم](https://www.linkedin.com/in/max-blum-6036a1186/)، [ميغيل كوريا](https://www.linkedin.com/in/miguelmque/)، [محمد افتخار (إفتو) ابن جلال](https://twitter.com/iftu119)، [نورين تبسم](https://www.linkedin.com/in/nawrin-tabassum)، [ريموند وانجسا بوترا](https://www.linkedin.com/in/raymond-wp/)، [روهيت ياداف](https://www.linkedin.com/in/rty2423)، سمردهي شارما، [سانيا سينها](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200)، [شينا نارولا](https://www.linkedin.com/in/sheena-narua-n/)، [توقير أحمد](https://www.linkedin.com/in/tauqeerahmad5201/)، يوغندراسينغ باوار، [فيدوشي جوبتا](https://www.linkedin.com/in/vidushi-gupta07/)، [جسلين سوندي](https://www.linkedin.com/in/jasleen-sondhi/) + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](./sketchnotes/00-Title.png)| +|:---:| +| علم البيانات للمبتدئين - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +## إعلان - منهج جديد حول الذكاء الاصطناعي التوليدي تم إصداره للتو! + +لقد أصدرنا منهجًا مكونًا من 12 درسًا حول الذكاء الاصطناعي التوليدي. تعال وتعلم أشياء مثل: + +- التوجيه وهندسة التوجيه +- إنشاء تطبيقات نصوص وصور +- تطبيقات البحث + +كالعادة، هناك درس، مهام لإكمالها، اختبارات معرفية وتحديات. + +اطلع عليه: + +> https://aka.ms/genai-beginners + +# هل أنت طالب؟ + +ابدأ باستخدام الموارد التالية: + +- [صفحة مركز الطلاب](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) ستجد في هذه الصفحة موارد للمبتدئين، حزم الطلاب وحتى طرق للحصول على قسيمة شهادة مجانية. هذه صفحة يجب أن تضيفها إلى إشاراتك المرجعية وتفحصها من وقت لآخر حيث نقوم بتحديث المحتوى شهريًا على الأقل. +- [سفراء الطلاب في Microsoft](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) انضم إلى مجتمع عالمي من سفراء الطلاب، قد تكون هذه فرصتك للدخول إلى Microsoft. + +# كيفية البدء + +> **للمعلمين**: لقد قمنا [بتضمين بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهج. نود أن نسمع ملاحظاتكم [في منتدى النقاش الخاص بنا](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! + +> **[للطلاب](https://aka.ms/student-page)**: لاستخدام هذا المنهج بمفردك، قم بعمل fork للمستودع بأكمله وأكمل التمارين بنفسك، بدءًا من اختبار ما قبل المحاضرة. ثم اقرأ المحاضرة وأكمل بقية الأنشطة. حاول إنشاء المشاريع من خلال فهم الدروس بدلاً من نسخ كود الحل؛ ومع ذلك، يتوفر هذا الكود في مجلدات /solutions في كل درس قائم على المشاريع. فكرة أخرى هي تشكيل مجموعة دراسة مع أصدقائك ومراجعة المحتوى معًا. لمزيد من الدراسة، نوصي بـ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum). + +## تعرف على الفريق + +[![فيديو ترويجي](../../ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "فيديو ترويجي") + +**الرسوم المتحركة بواسطة** [موهيت جايسال](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 انقر على الصورة أعلاه لمشاهدة فيديو عن المشروع والأشخاص الذين أنشأوه! + +## الطريقة التعليمية + +لقد اخترنا مبدأين تعليميين أثناء بناء هذا المنهج: التأكد من أنه قائم على المشاريع وأنه يتضمن اختبارات متكررة. بحلول نهاية هذه السلسلة، سيتعلم الطلاب المبادئ الأساسية لعلم البيانات، بما في ذلك المفاهيم الأخلاقية، إعداد البيانات، طرق مختلفة للعمل مع البيانات، تصور البيانات، تحليل البيانات، حالات استخدام علم البيانات في العالم الحقيقي، والمزيد. + +بالإضافة إلى ذلك، يحدد الاختبار منخفض المخاطر قبل الفصل نية الطالب لتعلم موضوع معين، بينما يضمن اختبار آخر بعد الفصل مزيدًا من الاحتفاظ بالمعلومات. تم تصميم هذا المنهج ليكون مرنًا وممتعًا ويمكن تناوله بالكامل أو جزئيًا. تبدأ المشاريع صغيرة وتصبح أكثر تعقيدًا تدريجيًا بحلول نهاية دورة الـ 10 أسابيع. + +> اعثر على [مدونة قواعد السلوك](CODE_OF_CONDUCT.md)، [إرشادات المساهمة](CONTRIBUTING.md)، [إرشادات الترجمة](TRANSLATIONS.md). نرحب بملاحظاتكم البناءة! + +## يتضمن كل درس: + +- رسم توضيحي اختياري +- فيديو إضافي اختياري +- اختبار تمهيدي قبل الدرس +- درس مكتوب +- بالنسبة للدروس القائمة على المشاريع، إرشادات خطوة بخطوة حول كيفية بناء المشروع +- اختبارات معرفية +- تحدٍ +- قراءة إضافية +- مهمة +- اختبار بعد الدرس + +> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في مجلد Quiz-App، بإجمالي 40 اختبارًا يحتوي كل منها على ثلاثة أسئلة. يتم ربطها من داخل الدروس، ولكن يمكن تشغيل تطبيق الاختبار محليًا أو نشره على Azure؛ اتبع التعليمات في مجلد `quiz-app`. يتم ترجمتها تدريجيًا. + +## الدروس + +|![رسم توضيحي من [(@sketchthedocs)](https://sketchthedocs.dev)](./sketchnotes/00-Roadmap.png)| +|:---:| +| علم البيانات للمبتدئين: خارطة الطريق - _رسم توضيحي من [@nitya](https://twitter.com/nitya)_ | + +| رقم الدرس | الموضوع | مجموعة الدروس | أهداف التعلم | الدرس المرتبط | المؤلف | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | تعريف علم البيانات | [المقدمة](1-Introduction/README.md) | تعلم المفاهيم الأساسية وراء علم البيانات وكيف يرتبط بالذكاء الاصطناعي، التعلم الآلي، والبيانات الضخمة. | [الدرس](1-Introduction/01-defining-data-science/README.md) [الفيديو](https://youtu.be/beZ7Mb_oz9I) | [ديمتري](http://soshnikov.com) | +| 02 | أخلاقيات علم البيانات | [المقدمة](1-Introduction/README.md) | مفاهيم أخلاقيات البيانات، التحديات والأطر. | [الدرس](1-Introduction/02-ethics/README.md) | [نيتيا](https://twitter.com/nitya) | +| 03 | تعريف البيانات | [المقدمة](1-Introduction/README.md) | كيفية تصنيف البيانات ومصادرها الشائعة. | [الدرس](1-Introduction/03-defining-data/README.md) | [جاسمين](https://www.twitter.com/paladique) | +| 04 | مقدمة في الإحصاء والاحتمالات | [المقدمة](1-Introduction/README.md) | التقنيات الرياضية للاحتمالات والإحصاء لفهم البيانات. | [الدرس](1-Introduction/04-stats-and-probability/README.md) [الفيديو](https://youtu.be/Z5Zy85g4Yjw) | [ديمتري](http://soshnikov.com) | +| 05 | العمل مع البيانات العلائقية | [العمل مع البيانات](2-Working-With-Data/README.md) | مقدمة في البيانات العلائقية وأساسيات استكشاف وتحليل البيانات العلائقية باستخدام لغة الاستعلام الهيكلية، المعروفة أيضًا بـ SQL (تُنطق "سي-كويل"). | [الدرس](2-Working-With-Data/05-relational-databases/README.md) | [كريستوفر](https://www.twitter.com/geektrainer) | +| 06 | العمل مع بيانات NoSQL | [العمل مع البيانات](2-Working-With-Data/README.md) | مقدمة في البيانات غير العلائقية، أنواعها المختلفة وأساسيات استكشاف وتحليل قواعد بيانات الوثائق. | [الدرس](2-Working-With-Data/06-non-relational/README.md) | [جاسمين](https://twitter.com/paladique) | +| 07 | العمل مع بايثون | [العمل مع البيانات](2-Working-With-Data/README.md) | أساسيات استخدام بايثون لاستكشاف البيانات باستخدام مكتبات مثل Pandas. يُفضل وجود فهم أساسي لبرمجة بايثون. | [الدرس](2-Working-With-Data/07-python/README.md) [الفيديو](https://youtu.be/dZjWOGbsN4Y) | [ديمتري](http://soshnikov.com) | +| 08 | إعداد البيانات | [العمل مع البيانات](2-Working-With-Data/README.md) | مواضيع حول تقنيات تنظيف وتحويل البيانات للتعامل مع تحديات البيانات المفقودة أو غير الدقيقة أو غير المكتملة. | [الدرس](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | تصور الكميات | [تصور البيانات](3-Data-Visualization/README.md) | تعلم كيفية استخدام Matplotlib لتصور بيانات الطيور 🦆 | [الدرس](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | تصور توزيع البيانات | [تصور البيانات](3-Data-Visualization/README.md) | تصور الملاحظات والاتجاهات ضمن فترة زمنية. | [الدرس](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | تصور النسب | [تصور البيانات](3-Data-Visualization/README.md) | تصور النسب المئوية المنفصلة والمجمعة. | [الدرس](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | تصور العلاقات | [تصور البيانات](3-Data-Visualization/README.md) | تصور الروابط والارتباطات بين مجموعات البيانات ومتغيراتها. | [الدرس](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | تصورات ذات معنى | [تصور البيانات](3-Data-Visualization/README.md) | تقنيات وإرشادات لجعل تصوراتك ذات قيمة لحل المشكلات بشكل فعال واستخلاص الأفكار. | [الدرس](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | مقدمة في دورة حياة علم البيانات | [دورة الحياة](4-Data-Science-Lifecycle/README.md) | مقدمة في دورة حياة علم البيانات وخطوتها الأولى في الحصول على البيانات واستخراجها. | [الدرس](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | التحليل | [دورة الحياة](4-Data-Science-Lifecycle/README.md) | تركز هذه المرحلة من دورة حياة علم البيانات على تقنيات تحليل البيانات. | [الدرس](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | التواصل | [دورة الحياة](4-Data-Science-Lifecycle/README.md) | تركز هذه المرحلة من دورة حياة علم البيانات على تقديم الأفكار المستخلصة من البيانات بطريقة تسهل على صناع القرار فهمها. | [الدرس](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | علم البيانات في السحابة | [بيانات السحابة](5-Data-Science-In-Cloud/README.md) | تقدم هذه السلسلة من الدروس علم البيانات في السحابة وفوائده. | [الدرس](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) و [Maud](https://twitter.com/maudstweets) | +| 18 | علم البيانات في السحابة | [بيانات السحابة](5-Data-Science-In-Cloud/README.md) | تدريب النماذج باستخدام أدوات Low Code. | [الدرس](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) و [Maud](https://twitter.com/maudstweets) | +| 19 | علم البيانات في السحابة | [بيانات السحابة](5-Data-Science-In-Cloud/README.md) | نشر النماذج باستخدام Azure Machine Learning Studio. | [الدرس](5-Data-Science-In-Cloud/19-Azure/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) و [Maud](https://twitter.com/maudstweets) | +| 20 | علم البيانات في العالم الحقيقي | [في العالم الحقيقي](6-Data-Science-In-Wild/README.md) | مشاريع علم البيانات المدفوعة في العالم الحقيقي. | [الدرس](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## GitHub Codespaces + +اتبع هذه الخطوات لفتح هذا المثال في Codespace: +1. انقر على القائمة المنسدلة "Code" واختر خيار "Open with Codespaces". +2. اختر + New codespace في أسفل اللوحة. +لمزيد من المعلومات، تحقق من [وثائق GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace). + +## VSCode Remote - Containers +اتبع هذه الخطوات لفتح هذا المستودع في حاوية باستخدام جهازك المحلي وVSCode باستخدام امتداد VS Code Remote - Containers: + +1. إذا كانت هذه هي المرة الأولى التي تستخدم فيها حاوية تطوير، يرجى التأكد من أن نظامك يلبي المتطلبات الأساسية (مثل تثبيت Docker) في [وثائق البدء](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started). + +لاستخدام هذا المستودع، يمكنك فتحه إما في وحدة تخزين Docker معزولة: + +**ملاحظة**: في الخلفية، سيتم استخدام أمر Remote-Containers: **Clone Repository in Container Volume...** لنسخ الكود المصدر في وحدة تخزين Docker بدلاً من نظام الملفات المحلي. [الوحدات التخزينية](https://docs.docker.com/storage/volumes/) هي الآلية المفضلة للحفاظ على بيانات الحاوية. + +أو فتح نسخة محلية مستنسخة أو محملة من المستودع: + +- قم باستنساخ هذا المستودع إلى نظام الملفات المحلي. +- اضغط F1 واختر الأمر **Remote-Containers: Open Folder in Container...**. +- اختر النسخة المستنسخة من هذا المجلد، انتظر حتى تبدأ الحاوية، وجرب الأمور. + +## الوصول دون اتصال + +يمكنك تشغيل هذا التوثيق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). قم باستنساخ هذا المستودع، [تثبيت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذري لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على localhost: `localhost:3000`. + +> ملاحظة، لن يتم عرض دفاتر الملاحظات عبر Docsify، لذا عندما تحتاج إلى تشغيل دفتر ملاحظات، قم بذلك بشكل منفصل في VS Code باستخدام نواة Python. + +## مطلوب مساعدة! + +إذا كنت ترغب في ترجمة كل أو جزء من المنهج، يرجى اتباع دليلنا [Translations](TRANSLATIONS.md). + +## مناهج أخرى + +فريقنا ينتج مناهج أخرى! تحقق من: + +- [الذكاء الاصطناعي التوليدي للمبتدئين](https://aka.ms/genai-beginners) +- [الذكاء الاصطناعي التوليدي للمبتدئين .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) +- [الذكاء الاصطناعي التوليدي باستخدام JavaScript](https://github.com/microsoft/generative-ai-with-javascript) +- [الذكاء الاصطناعي التوليدي باستخدام Java](https://aka.ms/genaijava) +- [الذكاء الاصطناعي للمبتدئين](https://aka.ms/ai-beginners) +- [علم البيانات للمبتدئين](https://aka.ms/datascience-beginners) +- [تعلم الآلة للمبتدئين](https://aka.ms/ml-beginners) +- [الأمن السيبراني للمبتدئين](https://github.com/microsoft/Security-101) +- [تطوير الويب للمبتدئين](https://aka.ms/webdev-beginners) +- [إنترنت الأشياء للمبتدئين](https://aka.ms/iot-beginners) +- [تطوير الواقع الممتد للمبتدئين](https://github.com/microsoft/xr-development-for-beginners) +- [إتقان GitHub Copilot للبرمجة الزوجية](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) +- [إتقان GitHub Copilot لمطوري C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) +- [اختر مغامرتك مع Copilot](https://github.com/microsoft/CopilotAdventures) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/SECURITY.md b/translations/ar/SECURITY.md new file mode 100644 index 00000000..4fdfc0ef --- /dev/null +++ b/translations/ar/SECURITY.md @@ -0,0 +1,51 @@ + +## الأمن + +تأخذ Microsoft أمن منتجاتها وخدماتها البرمجية على محمل الجد، بما في ذلك جميع مستودعات التعليمات البرمجية المصدرية التي تُدار من خلال منظماتنا على GitHub، والتي تشمل [Microsoft](https://github.com/Microsoft)، [Azure](https://github.com/Azure)، [DotNet](https://github.com/dotnet)، [AspNet](https://github.com/aspnet)، [Xamarin](https://github.com/xamarin)، و[منظماتنا على GitHub](https://opensource.microsoft.com/). + +إذا كنت تعتقد أنك قد اكتشفت ثغرة أمنية في أي مستودع مملوك لـ Microsoft وتوافق تعريف [Microsoft للثغرة الأمنية](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10))، يرجى الإبلاغ عنها لنا كما هو موضح أدناه. + +## الإبلاغ عن المشكلات الأمنية + +**يرجى عدم الإبلاغ عن الثغرات الأمنية عبر قضايا GitHub العامة.** + +بدلاً من ذلك، يرجى الإبلاغ عنها إلى مركز استجابة أمان Microsoft (MSRC) عبر [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +إذا كنت تفضل الإرسال دون تسجيل الدخول، يمكنك إرسال بريد إلكتروني إلى [secure@microsoft.com](mailto:secure@microsoft.com). إذا أمكن، قم بتشفير رسالتك باستخدام مفتاح PGP الخاص بنا؛ يمكنك تنزيله من [صفحة مفتاح PGP لمركز استجابة أمان Microsoft](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +يجب أن تتلقى ردًا خلال 24 ساعة. إذا لم يحدث ذلك لأي سبب، يرجى المتابعة عبر البريد الإلكتروني للتأكد من أننا تلقينا رسالتك الأصلية. يمكن العثور على معلومات إضافية على [microsoft.com/msrc](https://www.microsoft.com/msrc). + +يرجى تضمين المعلومات المطلوبة المدرجة أدناه (قدر الإمكان) لمساعدتنا في فهم طبيعة ومدى المشكلة المحتملة: + + * نوع المشكلة (مثل تجاوز سعة المخزن المؤقت، حقن SQL، البرمجة النصية عبر المواقع، إلخ.) + * المسارات الكاملة لملفات المصدر المتعلقة بظهور المشكلة + * موقع التعليمات البرمجية المتأثرة (علامة/فرع/التزام أو رابط مباشر) + * أي تكوين خاص مطلوب لإعادة إنتاج المشكلة + * تعليمات خطوة بخطوة لإعادة إنتاج المشكلة + * إثبات المفهوم أو كود الاستغلال (إن أمكن) + * تأثير المشكلة، بما في ذلك كيفية استغلال المهاجم للمشكلة + +ستساعدنا هذه المعلومات في تصنيف تقريرك بشكل أسرع. + +إذا كنت تقدم تقريرًا للحصول على مكافأة عن خطأ، فإن التقارير الأكثر اكتمالاً يمكن أن تساهم في الحصول على مكافأة أعلى. يرجى زيارة صفحة [برنامج مكافآت الأخطاء من Microsoft](https://microsoft.com/msrc/bounty) للحصول على مزيد من التفاصيل حول برامجنا النشطة. + +## اللغات المفضلة + +نفضل أن تكون جميع الاتصالات باللغة الإنجليزية. + +## السياسة + +تتبع Microsoft مبدأ [الإفصاح المنسق عن الثغرات الأمنية](https://www.microsoft.com/en-us/msrc/cvd). + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذه الوثيقة باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). على الرغم من أننا نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار الوثيقة الأصلية بلغتها الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/SUPPORT.md b/translations/ar/SUPPORT.md new file mode 100644 index 00000000..0cf23570 --- /dev/null +++ b/translations/ar/SUPPORT.md @@ -0,0 +1,24 @@ + +# الدعم +## كيفية تقديم المشاكل والحصول على المساعدة + +يستخدم هذا المشروع GitHub Issues لتتبع الأخطاء وطلبات الميزات. يُرجى البحث في المشاكل الموجودة مسبقًا قبل تقديم مشاكل جديدة لتجنب التكرار. بالنسبة للمشاكل الجديدة، قم بتقديم خطأك أو طلب الميزة كمشكلة جديدة. + +للحصول على المساعدة والأسئلة حول استخدام هذا المشروع، قم بتقديم مشكلة. + +## سياسة دعم Microsoft + +الدعم لهذا المستودع يقتصر على الموارد المذكورة أعلاه. + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/docs/_sidebar.md b/translations/ar/docs/_sidebar.md new file mode 100644 index 00000000..ece15349 --- /dev/null +++ b/translations/ar/docs/_sidebar.md @@ -0,0 +1,40 @@ + +- المقدمة + - [تعريف علم البيانات](../1-Introduction/01-defining-data-science/README.md) + - [أخلاقيات علم البيانات](../1-Introduction/02-ethics/README.md) + - [تعريف البيانات](../1-Introduction/03-defining-data/README.md) + - [الاحتمالات والإحصاء](../1-Introduction/04-stats-and-probability/README.md) +- العمل مع البيانات + - [قواعد البيانات العلائقية](../2-Working-With-Data/05-relational-databases/README.md) + - [قواعد البيانات غير العلائقية](../2-Working-With-Data/06-non-relational/README.md) + - [بايثون](../2-Working-With-Data/07-python/README.md) + - [تحضير البيانات](../2-Working-With-Data/08-data-preparation/README.md) +- تصور البيانات + - [تصور الكميات](../3-Data-Visualization/09-visualization-quantities/README.md) + - [تصور التوزيعات](../3-Data-Visualization/10-visualization-distributions/README.md) + - [تصور النسب](../3-Data-Visualization/11-visualization-proportions/README.md) + - [تصور العلاقات](../3-Data-Visualization/12-visualization-relationships/README.md) + - [تصورات ذات معنى](../3-Data-Visualization/13-meaningful-visualizations/README.md) +- دورة حياة علم البيانات + - [المقدمة](../4-Data-Science-Lifecycle/14-Introduction/README.md) + - [التحليل](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [التواصل](../4-Data-Science-Lifecycle/16-communication/README.md) +- علم البيانات في السحابة + - [المقدمة](../5-Data-Science-In-Cloud/17-Introduction/README.md) + - [البرمجة منخفضة الكود](../5-Data-Science-In-Cloud/18-Low-Code/README.md) + - [أزور](../5-Data-Science-In-Cloud/19-Azure/README.md) +- علم البيانات في الواقع + - [علم البيانات في الواقع](../6-Data-Science-In-Wild/README.md) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/for-teachers.md b/translations/ar/for-teachers.md new file mode 100644 index 00000000..00236669 --- /dev/null +++ b/translations/ar/for-teachers.md @@ -0,0 +1,78 @@ + +## للمُعلمين + +هل ترغب في استخدام هذا المنهج الدراسي في صفك؟ لا تتردد! + +في الواقع، يمكنك استخدامه مباشرةً على GitHub من خلال GitHub Classroom. + +للقيام بذلك، قم بعمل fork لهذا المستودع. ستحتاج إلى إنشاء مستودع لكل درس، لذا ستحتاج إلى استخراج كل مجلد إلى مستودع منفصل. بهذه الطريقة، يمكن لـ [GitHub Classroom](https://classroom.github.com/classrooms) التعامل مع كل درس بشكل منفصل. + +هذه [التعليمات الكاملة](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) ستعطيك فكرة عن كيفية إعداد صفك الدراسي. + +## استخدام المستودع كما هو + +إذا كنت ترغب في استخدام هذا المستودع كما هو حاليًا، دون استخدام GitHub Classroom، فهذا ممكن أيضًا. ستحتاج إلى التواصل مع طلابك لتحديد الدرس الذي ستعملون عليه معًا. + +في بيئة تعليمية عبر الإنترنت (مثل Zoom أو Teams أو غيرها)، يمكنك إنشاء غرف جانبية للاختبارات، وتوجيه الطلاب لمساعدتهم على الاستعداد للتعلم. ثم قم بدعوة الطلاب لإجراء الاختبارات وتقديم إجاباتهم كـ "issues" في وقت محدد. يمكنك القيام بنفس الشيء مع المهام إذا كنت تريد من الطلاب العمل بشكل تعاوني في العلن. + +إذا كنت تفضل تنسيقًا أكثر خصوصية، اطلب من طلابك عمل fork للمنهج، درسًا بدرس، إلى مستودعاتهم الخاصة على GitHub كمستودعات خاصة، ومنحك حق الوصول. بعد ذلك، يمكنهم إكمال الاختبارات والمهام بشكل خاص وتقديمها لك عبر "issues" في مستودع صفك الدراسي. + +هناك العديد من الطرق لجعل هذا يعمل في بيئة صف دراسي عبر الإنترنت. يرجى إخبارنا بما يناسبك أكثر! + +## ما يتضمنه هذا المنهج: + +20 درسًا، 40 اختبارًا، و20 مهمة. ترافق الرسومات التخطيطية الدروس لتناسب المتعلمين البصريين. العديد من الدروس متوفرة باللغتين Python وR ويمكن إكمالها باستخدام Jupyter notebooks في VS Code. تعرف على المزيد حول كيفية إعداد صفك الدراسي لاستخدام هذه التقنية: https://code.visualstudio.com/docs/datascience/jupyter-notebooks. + +جميع الرسومات التخطيطية، بما في ذلك ملصق كبير الحجم، موجودة في [هذا المجلد](../../sketchnotes). + +المنهج بأكمله متوفر [كملف PDF](../../pdf/readme.pdf). + +يمكنك أيضًا تشغيل هذا المنهج كصفحة ويب مستقلة تعمل دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). [قم بتثبيت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذري لنسختك المحلية من هذا المستودع، اكتب `docsify serve`. سيتم تشغيل الموقع على المنفذ 3000 على localhost الخاص بك: `localhost:3000`. + +نسخة تعمل دون اتصال من المنهج ستفتح كصفحة ويب مستقلة: https://localhost:3000 + +الدروس مقسمة إلى 6 أجزاء: + +- 1: المقدمة + - 1: تعريف علم البيانات + - 2: الأخلاقيات + - 3: تعريف البيانات + - 4: نظرة عامة على الاحتمالات والإحصاء +- 2: العمل مع البيانات + - 5: قواعد البيانات العلائقية + - 6: قواعد البيانات غير العلائقية + - 7: Python + - 8: تحضير البيانات +- 3: تصور البيانات + - 9: تصور الكميات + - 10: تصور التوزيعات + - 11: تصور النسب + - 12: تصور العلاقات + - 13: تصورات ذات معنى +- 4: دورة حياة علم البيانات + - 14: المقدمة + - 15: التحليل + - 16: التواصل +- 5: علم البيانات في السحابة + - 17: المقدمة + - 18: الخيارات قليلة التعليمات البرمجية + - 19: Azure +- 6: علم البيانات في العالم الواقعي + - 20: نظرة عامة + +## نرجو أن تشاركنا أفكارك! + +نرغب في جعل هذا المنهج مناسبًا لك ولطلابك. يرجى تقديم ملاحظاتك في لوحات النقاش! لا تتردد في إنشاء مساحة صف دراسي على لوحات النقاش لطلابك. + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/quiz-app/README.md b/translations/ar/quiz-app/README.md new file mode 100644 index 00000000..dda599f1 --- /dev/null +++ b/translations/ar/quiz-app/README.md @@ -0,0 +1,139 @@ + +# الاختبارات + +هذه الاختبارات هي اختبارات ما قبل وبعد المحاضرات لمنهج علم البيانات على الرابط https://aka.ms/datascience-beginners + +## إضافة مجموعة اختبارات مترجمة + +قم بإضافة ترجمة للاختبارات عن طريق إنشاء هياكل اختبارات مطابقة في مجلدات `assets/translations`. الاختبارات الأصلية موجودة في `assets/translations/en`. يتم تقسيم الاختبارات إلى عدة مجموعات. تأكد من مطابقة الترقيم مع القسم الصحيح للاختبار. هناك 40 اختبارًا في هذا المنهج، ويبدأ العد من 0. + +بعد تحرير الترجمات، قم بتحرير ملف index.js في مجلد الترجمة لاستيراد جميع الملفات وفقًا للمعايير الموجودة في `en`. + +قم بتحرير ملف `index.js` في `assets/translations` لاستيراد الملفات المترجمة الجديدة. + +ثم قم بتحرير القائمة المنسدلة في `App.vue` في هذا التطبيق لإضافة لغتك. طابق الاختصار المحلي مع اسم المجلد الخاص بلغتك. + +أخيرًا، قم بتحرير جميع روابط الاختبارات في الدروس المترجمة، إذا كانت موجودة، لتضمين هذا التوطين كمعامل استعلام: `?loc=fr` على سبيل المثال. + +## إعداد المشروع + +``` +npm install +``` + +### التجميع وإعادة التحميل السريع للتطوير + +``` +npm run serve +``` + +### التجميع والتصغير للإنتاج + +``` +npm run build +``` + +### التحقق من الأخطاء وإصلاح الملفات + +``` +npm run lint +``` + +### تخصيص الإعدادات + +راجع [مرجع الإعدادات](https://cli.vuejs.org/config/). + +الشكر: شكرًا للإصدار الأصلي لهذا التطبيق الخاص بالاختبارات: https://github.com/arpan45/simple-quiz-vue + +## النشر على Azure + +إليك دليل خطوة بخطوة لمساعدتك على البدء: + +1. قم بعمل Fork لمستودع GitHub +تأكد من أن كود تطبيق الويب الثابت الخاص بك موجود في مستودع GitHub الخاص بك. قم بعمل Fork لهذا المستودع. + +2. قم بإنشاء تطبيق ويب ثابت على Azure +- قم بإنشاء [حساب Azure](http://azure.microsoft.com) +- انتقل إلى [بوابة Azure](https://portal.azure.com) +- انقر على "إنشاء مورد" وابحث عن "تطبيق ويب ثابت". +- انقر على "إنشاء". + +3. قم بتكوين تطبيق الويب الثابت +- الأساسيات: + - الاشتراك: اختر اشتراك Azure الخاص بك. + - مجموعة الموارد: قم بإنشاء مجموعة موارد جديدة أو استخدم واحدة موجودة. + - الاسم: قدم اسمًا لتطبيق الويب الثابت الخاص بك. + - المنطقة: اختر المنطقة الأقرب لمستخدميك. + +- #### تفاصيل النشر: + - المصدر: اختر "GitHub". + - حساب GitHub: قم بتفويض Azure للوصول إلى حساب GitHub الخاص بك. + - المؤسسة: اختر مؤسسة GitHub الخاصة بك. + - المستودع: اختر المستودع الذي يحتوي على تطبيق الويب الثابت الخاص بك. + - الفرع: اختر الفرع الذي تريد النشر منه. + +- #### تفاصيل البناء: + - إعدادات البناء: اختر الإطار الذي تم بناء تطبيقك به (مثل React، Angular، Vue، إلخ). + - موقع التطبيق: حدد المجلد الذي يحتوي على كود التطبيق الخاص بك (مثل / إذا كان في الجذر). + - موقع API: إذا كان لديك API، حدد موقعه (اختياري). + - موقع الإخراج: حدد المجلد الذي يتم فيه إنشاء إخراج البناء (مثل build أو dist). + +4. المراجعة والإنشاء +راجع إعداداتك وانقر على "إنشاء". سيقوم Azure بإعداد الموارد اللازمة وإنشاء ملف سير عمل GitHub Actions في مستودعك. + +5. سير عمل GitHub Actions +سيقوم Azure تلقائيًا بإنشاء ملف سير عمل GitHub Actions في مستودعك (.github/workflows/azure-static-web-apps-.yml). هذا الملف سيتولى عملية البناء والنشر. + +6. مراقبة النشر +انتقل إلى علامة التبويب "Actions" في مستودع GitHub الخاص بك. +يجب أن ترى سير عمل قيد التشغيل. هذا السير سيقوم ببناء ونشر تطبيق الويب الثابت الخاص بك على Azure. +بمجرد اكتمال سير العمل، سيكون تطبيقك متاحًا على عنوان URL الذي يوفره Azure. + +### مثال على ملف سير العمل + +إليك مثال على ما قد يبدو عليه ملف سير عمل GitHub Actions: +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### موارد إضافية +- [وثائق تطبيقات الويب الثابتة على Azure](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [وثائق GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + +**إخلاء المسؤولية**: +تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/ar/sketchnotes/README.md b/translations/ar/sketchnotes/README.md new file mode 100644 index 00000000..71a24c07 --- /dev/null +++ b/translations/ar/sketchnotes/README.md @@ -0,0 +1,21 @@ + +اعثر على جميع الرسومات التخطيطية هنا! + +## الشكر والتقدير + +نيتيا ناراسيمهان، الفنانة + +![رسم تخطيطي لخريطة الطريق](../../../translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ar.png) + +--- + +**إخلاء المسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/bn/1-Introduction/01-defining-data-science/README.md b/translations/bn/1-Introduction/01-defining-data-science/README.md new file mode 100644 index 00000000..f016caf9 --- /dev/null +++ b/translations/bn/1-Introduction/01-defining-data-science/README.md @@ -0,0 +1,78 @@ + +## ডেটার ধরন + +আমরা আগেই উল্লেখ করেছি, ডেটা সর্বত্রই রয়েছে। আমাদের শুধু সঠিকভাবে এটি সংগ্রহ করতে হবে! **স্ট্রাকচারড** এবং **আনস্ট্রাকচারড** ডেটার মধ্যে পার্থক্য করা গুরুত্বপূর্ণ। স্ট্রাকচারড ডেটা সাধারণত একটি সুসংগঠিত আকারে উপস্থাপিত হয়, যেমন একটি টেবিল বা একাধিক টেবিল। অন্যদিকে, আনস্ট্রাকচারড ডেটা হলো ফাইলের একটি সংগ্রহ। কখনও কখনও আমরা **সেমি-স্ট্রাকচারড** ডেটার কথাও বলতে পারি, যার কিছুটা গঠন থাকে, তবে তা অনেকভাবে পরিবর্তিত হতে পারে। + +| স্ট্রাকচারড | সেমি-স্ট্রাকচারড | আনস্ট্রাকচারড | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --------------------------------------- | +| ফোন নম্বরসহ মানুষের তালিকা | উইকিপিডিয়া পেজের লিঙ্কসমূহ | এনসাইক্লোপিডিয়া ব্রিটানিকার টেক্সট | +| গত ২০ বছরে প্রতিটি মিনিটে একটি ভবনের প্রতিটি কক্ষের তাপমাত্রা | JSON ফরম্যাটে বৈজ্ঞানিক প্রবন্ধের সংগ্রহ, যেখানে লেখক, প্রকাশনার তারিখ এবং সারাংশ রয়েছে | কর্পোরেট ডকুমেন্টের ফাইল শেয়ার | +| ভবনে প্রবেশকারী সকল মানুষের বয়স এবং লিঙ্গ সম্পর্কিত ডেটা | ইন্টারনেট পেজ | নজরদারি ক্যামেরার কাঁচা ভিডিও ফিড | + +## ডেটা কোথায় পাওয়া যাবে + +ডেটার অনেক সম্ভাব্য উৎস রয়েছে, এবং সবগুলো তালিকাভুক্ত করা অসম্ভব! তবে, কিছু সাধারণ জায়গা উল্লেখ করা যাক যেখানে আপনি ডেটা পেতে পারেন: + +* **স্ট্রাকচারড** + - **ইন্টারনেট অফ থিংস** (IoT), যেমন বিভিন্ন সেন্সর থেকে পাওয়া ডেটা (তাপমাত্রা বা চাপ সেন্সর), অনেক দরকারী ডেটা সরবরাহ করে। উদাহরণস্বরূপ, যদি একটি অফিস ভবন IoT সেন্সর দিয়ে সজ্জিত থাকে, আমরা স্বয়ংক্রিয়ভাবে গরম এবং আলো নিয়ন্ত্রণ করতে পারি যাতে খরচ কমানো যায়। + - **জরিপ** যা আমরা ব্যবহারকারীদের একটি কেনাকাটার পরে বা একটি ওয়েবসাইট পরিদর্শনের পরে পূরণ করতে বলি। + - **আচরণের বিশ্লেষণ** আমাদের বুঝতে সাহায্য করতে পারে যে একজন ব্যবহারকারী একটি সাইটে কতটা গভীরে যায় এবং সাইটটি ছাড়ার সাধারণ কারণ কী। +* **আনস্ট্রাকচারড** + - **টেক্সট** একটি সমৃদ্ধ তথ্যের উৎস হতে পারে, যেমন সামগ্রিক **সেন্টিমেন্ট স্কোর**, বা কীওয়ার্ড এবং অর্থপূর্ণ তথ্য বের করা। + - **ইমেজ** বা **ভিডিও**। নজরদারি ক্যামেরার একটি ভিডিও রাস্তার ট্রাফিক অনুমান করতে এবং সম্ভাব্য যানজট সম্পর্কে মানুষকে জানাতে ব্যবহার করা যেতে পারে। + - ওয়েব সার্ভার **লগ** আমাদের বুঝতে সাহায্য করতে পারে যে আমাদের সাইটের কোন পেজগুলো সবচেয়ে বেশি পরিদর্শিত হয় এবং কতক্ষণ ধরে। +* সেমি-স্ট্রাকচারড + - **সোশ্যাল নেটওয়ার্ক** গ্রাফ ব্যবহারকারীদের ব্যক্তিত্ব এবং তথ্য ছড়িয়ে দেওয়ার সম্ভাব্য কার্যকারিতা সম্পর্কে ডেটার একটি চমৎকার উৎস হতে পারে। + - যখন আমাদের কাছে একটি পার্টির অনেক ছবি থাকে, আমরা **গ্রুপ ডায়নামিকস** ডেটা বের করার চেষ্টা করতে পারি, যেমন একে অপরের সাথে ছবি তোলার মানুষের গ্রাফ তৈরি করে। + +ডেটার বিভিন্ন সম্ভাব্য উৎস সম্পর্কে জেনে, আপনি বিভিন্ন পরিস্থিতি সম্পর্কে চিন্তা করতে পারেন যেখানে ডেটা সায়েন্সের কৌশল প্রয়োগ করে পরিস্থিতি আরও ভালোভাবে বোঝা এবং ব্যবসার প্রক্রিয়া উন্নত করা সম্ভব। + +## ডেটা দিয়ে আপনি কী করতে পারেন + +ডেটা সায়েন্সে, আমরা ডেটার যাত্রার নিম্নলিখিত ধাপগুলোর উপর ফোকাস করি: + +## ডিজিটালাইজেশন এবং ডিজিটাল ট্রান্সফরমেশন + +গত দশকে, অনেক ব্যবসা বুঝতে শুরু করেছে যে ব্যবসার সিদ্ধান্ত নেওয়ার ক্ষেত্রে ডেটা কতটা গুরুত্বপূর্ণ। ব্যবসা পরিচালনায় ডেটা সায়েন্সের নীতিগুলো প্রয়োগ করতে হলে প্রথমে কিছু ডেটা সংগ্রহ করতে হবে, অর্থাৎ ব্যবসার প্রক্রিয়াগুলোকে ডিজিটাল আকারে রূপান্তর করতে হবে। এটি **ডিজিটালাইজেশন** নামে পরিচিত। এই ডেটার উপর ডেটা সায়েন্সের কৌশল প্রয়োগ করে সিদ্ধান্ত নেওয়া ব্যবসার উৎপাদনশীলতায় উল্লেখযোগ্য বৃদ্ধি (বা এমনকি ব্যবসার দিক পরিবর্তন) আনতে পারে, যা **ডিজিটাল ট্রান্সফরমেশন** নামে পরিচিত। + +চলুন একটি উদাহরণ বিবেচনা করি। ধরুন আমাদের একটি ডেটা সায়েন্স কোর্স রয়েছে (যেমন এই কোর্সটি) যা আমরা অনলাইনে শিক্ষার্থীদের কাছে সরবরাহ করি, এবং আমরা এটি উন্নত করতে ডেটা সায়েন্স ব্যবহার করতে চাই। আমরা কীভাবে এটি করতে পারি? + +আমরা শুরু করতে পারি "কী ডিজিটালাইজ করা যেতে পারে?" এই প্রশ্নটি করে। সবচেয়ে সহজ উপায় হতে পারে প্রতিটি শিক্ষার্থীকে প্রতিটি মডিউল সম্পন্ন করতে কত সময় লাগে তা পরিমাপ করা এবং প্রতিটি মডিউলের শেষে একটি মাল্টিপল-চয়েস টেস্ট দিয়ে অর্জিত জ্ঞান পরিমাপ করা। সকল শিক্ষার্থীর গড় সময়-সম্পন্ন করে আমরা জানতে পারি কোন মডিউলগুলো শিক্ষার্থীদের জন্য সবচেয়ে বেশি সমস্যার সৃষ্টি করে এবং সেগুলো সহজ করার জন্য কাজ করতে পারি। +আপনি হয়তো যুক্তি দিতে পারেন যে এই পদ্ধতিটি আদর্শ নয়, কারণ মডিউলগুলোর দৈর্ঘ্য ভিন্ন হতে পারে। সম্ভবত মডিউলের দৈর্ঘ্য (অক্ষরের সংখ্যায়) দিয়ে সময় ভাগ করা এবং সেই মানগুলো তুলনা করা আরও ন্যায্য হবে। +যখন আমরা বহু-বিকল্প প্রশ্নের পরীক্ষার ফলাফল বিশ্লেষণ শুরু করি, তখন আমরা চেষ্টা করতে পারি ছাত্ররা কোন ধারণাগুলি বুঝতে অসুবিধা অনুভব করছে তা নির্ধারণ করতে এবং সেই তথ্য ব্যবহার করে বিষয়বস্তু উন্নত করতে। এটি করার জন্য, আমাদের এমনভাবে পরীক্ষা ডিজাইন করতে হবে যাতে প্রতিটি প্রশ্ন একটি নির্দিষ্ট ধারণা বা জ্ঞানের অংশের সাথে সম্পর্কিত হয়। + +যদি আমরা আরও জটিল হতে চাই, তবে আমরা প্রতিটি মডিউল সম্পন্ন করতে যে সময় লাগে তা ছাত্রদের বয়স বিভাগের বিপরীতে চিত্রিত করতে পারি। আমরা হয়তো দেখতে পারি যে কিছু বয়স বিভাগের জন্য মডিউলটি সম্পন্ন করতে অপ্রত্যাশিতভাবে দীর্ঘ সময় লাগে, অথবা ছাত্ররা এটি সম্পূর্ণ করার আগেই ছেড়ে দেয়। এটি আমাদের মডিউলের জন্য বয়সের সুপারিশ প্রদান করতে এবং ভুল প্রত্যাশা থেকে মানুষের অসন্তোষ কমাতে সাহায্য করতে পারে। + +## 🚀 চ্যালেঞ্জ + +এই চ্যালেঞ্জে, আমরা ডেটা সায়েন্স ক্ষেত্রের সাথে সম্পর্কিত ধারণাগুলি খুঁজে বের করার চেষ্টা করব টেক্সট বিশ্লেষণ করে। আমরা ডেটা সায়েন্স সম্পর্কিত একটি উইকিপিডিয়া নিবন্ধ নেব, টেক্সট ডাউনলোড এবং প্রক্রিয়া করব, এবং তারপর একটি ওয়ার্ড ক্লাউড তৈরি করব, যেমন এটি: + +![ডেটা সায়েন্সের জন্য ওয়ার্ড ক্লাউড](../../../../translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.bn.png) + +[`notebook.ipynb`](../../../../../../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') পরিদর্শন করুন কোডটি পড়ার জন্য। আপনি কোডটি চালাতে পারেন এবং এটি কীভাবে রিয়েল টাইমে সমস্ত ডেটা রূপান্তর সম্পাদন করে তা দেখতে পারেন। + +> যদি আপনি জানেন না কীভাবে একটি জুপিটার নোটবুকে কোড চালাতে হয়, তবে [এই নিবন্ধটি](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) দেখুন। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/1) + +## অ্যাসাইনমেন্ট + +* **টাস্ক ১**: উপরের কোডটি পরিবর্তন করুন যাতে **বিগ ডেটা** এবং **মেশিন লার্নিং** ক্ষেত্রের সাথে সম্পর্কিত ধারণাগুলি খুঁজে বের করা যায়। +* **টাস্ক ২**: [ডেটা সায়েন্সের দৃশ্যপট নিয়ে ভাবুন](assignment.md) + +## কৃতজ্ঞতা + +এই পাঠটি ♥️ দিয়ে [দিমিত্রি সশনিকভ](http://soshnikov.com) দ্বারা রচিত হয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/01-defining-data-science/assignment.md b/translations/bn/1-Introduction/01-defining-data-science/assignment.md new file mode 100644 index 00000000..50129d78 --- /dev/null +++ b/translations/bn/1-Introduction/01-defining-data-science/assignment.md @@ -0,0 +1,46 @@ + +# অ্যাসাইনমেন্ট: ডেটা সায়েন্স পরিস্থিতি + +এই প্রথম অ্যাসাইনমেন্টে, আমরা আপনাকে অনুরোধ করছি বিভিন্ন সমস্যার ক্ষেত্র বা বাস্তব জীবনের প্রক্রিয়া সম্পর্কে চিন্তা করতে এবং কীভাবে ডেটা সায়েন্স প্রক্রিয়া ব্যবহার করে এটি উন্নত করা যায় তা ভাবতে। নিম্নলিখিত বিষয়গুলো বিবেচনা করুন: + +1. কোন ডেটা আপনি সংগ্রহ করতে পারেন? +1. কীভাবে আপনি এটি সংগ্রহ করবেন? +1. কীভাবে আপনি ডেটা সংরক্ষণ করবেন? ডেটার আকার কত বড় হতে পারে? +1. এই ডেটা থেকে আপনি কোন অন্তর্দৃষ্টি পেতে পারেন? ডেটার ভিত্তিতে আমরা কোন সিদ্ধান্ত নিতে পারব? + +তিনটি ভিন্ন সমস্যা/প্রক্রিয়া সম্পর্কে চিন্তা করার চেষ্টা করুন এবং প্রতিটি সমস্যার ক্ষেত্রের জন্য উপরের পয়েন্টগুলো বর্ণনা করুন। + +এখানে কিছু সমস্যার ক্ষেত্র এবং সমস্যা রয়েছে যা আপনাকে চিন্তা শুরু করতে সাহায্য করতে পারে: + +1. কীভাবে আপনি ডেটা ব্যবহার করে স্কুলে শিশুদের শিক্ষার প্রক্রিয়া উন্নত করতে পারেন? +1. কীভাবে আপনি ডেটা ব্যবহার করে মহামারীর সময় টিকাদান নিয়ন্ত্রণ করতে পারেন? +1. কীভাবে আপনি ডেটা ব্যবহার করে নিশ্চিত করতে পারেন যে আপনি কর্মক্ষেত্রে উৎপাদনশীল রয়েছেন? + +## নির্দেশনা + +নিম্নলিখিত টেবিলটি পূরণ করুন (প্রয়োজনে আপনার নিজস্ব সমস্যার ক্ষেত্রের জন্য প্রস্তাবিত সমস্যার ক্ষেত্রগুলি প্রতিস্থাপন করুন): + +| সমস্যার ক্ষেত্র | সমস্যা | কোন ডেটা সংগ্রহ করতে হবে | কীভাবে ডেটা সংরক্ষণ করতে হবে | কোন অন্তর্দৃষ্টি/সিদ্ধান্ত আমরা নিতে পারি | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| শিক্ষা | | | | | +| টিকাদান | | | | | +| উৎপাদনশীলতা | | | | | + +## মূল্যায়ন + +উৎকৃষ্ট | যথাযথ | উন্নতির প্রয়োজন +--- | --- | -- | +সব সমস্যার ক্ষেত্রের জন্য যুক্তিসঙ্গত ডেটা উৎস, ডেটা সংরক্ষণের পদ্ধতি এবং সম্ভাব্য সিদ্ধান্ত/অন্তর্দৃষ্টি চিহ্নিত করা হয়েছে | সমাধানের কিছু দিক বিস্তারিত নয়, ডেটা সংরক্ষণ আলোচনা করা হয়নি, অন্তত ২টি সমস্যার ক্ষেত্র বর্ণনা করা হয়েছে | শুধুমাত্র ডেটা সমাধানের কিছু অংশ বর্ণনা করা হয়েছে, শুধুমাত্র একটি সমস্যার ক্ষেত্র বিবেচনা করা হয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/01-defining-data-science/solution/assignment.md b/translations/bn/1-Introduction/01-defining-data-science/solution/assignment.md new file mode 100644 index 00000000..17d06aa6 --- /dev/null +++ b/translations/bn/1-Introduction/01-defining-data-science/solution/assignment.md @@ -0,0 +1,48 @@ + +# অ্যাসাইনমেন্ট: ডেটা সায়েন্স পরিস্থিতি + +এই প্রথম অ্যাসাইনমেন্টে, আপনাকে বিভিন্ন সমস্যার ক্ষেত্র বা বাস্তব জীবনের প্রক্রিয়া নিয়ে চিন্তা করতে বলা হচ্ছে এবং কীভাবে ডেটা সায়েন্স প্রক্রিয়া ব্যবহার করে এটি উন্নত করা যায় তা ভাবতে বলা হচ্ছে। নিম্নলিখিত বিষয়গুলো বিবেচনা করুন: + +1. কোন ডেটা সংগ্রহ করা যেতে পারে? +1. কীভাবে এটি সংগ্রহ করবেন? +1. কীভাবে ডেটা সংরক্ষণ করবেন? ডেটার আকার কত বড় হতে পারে? +1. এই ডেটা থেকে আপনি কী কী অন্তর্দৃষ্টি পেতে পারেন? ডেটার ভিত্তিতে আমরা কোন সিদ্ধান্ত নিতে পারি? + +তিনটি ভিন্ন সমস্যা/প্রক্রিয়া নিয়ে চিন্তা করার চেষ্টা করুন এবং প্রতিটি সমস্যার ক্ষেত্রের জন্য উপরের পয়েন্টগুলো বর্ণনা করুন। + +এখানে কিছু সমস্যার ক্ষেত্র এবং সমস্যা দেওয়া হয়েছে যা আপনাকে চিন্তা শুরু করতে সাহায্য করতে পারে: + +1. কীভাবে ডেটা ব্যবহার করে স্কুলে শিশুদের শিক্ষার প্রক্রিয়া উন্নত করা যায়? +1. কীভাবে ডেটা ব্যবহার করে মহামারীর সময় টিকাদান নিয়ন্ত্রণ করা যায়? +1. কীভাবে ডেটা ব্যবহার করে নিশ্চিত করা যায় যে আপনি কর্মক্ষেত্রে উৎপাদনশীল রয়েছেন? + +## নির্দেশনা + +নিম্নলিখিত টেবিলটি পূরণ করুন (প্রয়োজনে আপনার নিজস্ব সমস্যার ক্ষেত্র দিয়ে প্রস্তাবিত সমস্যার ক্ষেত্র প্রতিস্থাপন করুন): + +| সমস্যার ক্ষেত্র | সমস্যা | কোন ডেটা সংগ্রহ করা হবে | কীভাবে ডেটা সংরক্ষণ করবেন | কোন অন্তর্দৃষ্টি/সিদ্ধান্ত নেওয়া যেতে পারে | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| শিক্ষা | বিশ্ববিদ্যালয়ে, সাধারণত লেকচারে উপস্থিতি কম থাকে, এবং আমাদের ধারণা যে যারা লেকচারে উপস্থিত থাকে তারা পরীক্ষায় গড়ে ভালো করে। আমরা উপস্থিতি বাড়াতে এবং ধারণাটি পরীক্ষা করতে চাই। | আমরা উপস্থিতি ট্র্যাক করতে পারি ক্লাসে নিরাপত্তা ক্যামেরার মাধ্যমে তোলা ছবি বা ছাত্রদের মোবাইল ফোনের ব্লুটুথ/ওয়াইফাই ঠিকানা ট্র্যাক করে। পরীক্ষার ডেটা ইতিমধ্যেই বিশ্ববিদ্যালয়ের ডেটাবেসে রয়েছে। | যদি আমরা নিরাপত্তা ক্যামেরার ছবি ট্র্যাক করি - আমাদের ক্লাস চলাকালীন কয়েকটি (৫-১০) ছবি সংরক্ষণ করতে হবে (অসংগঠিত ডেটা), এবং তারপর AI ব্যবহার করে ছাত্রদের মুখ শনাক্ত করতে হবে (ডেটাকে সংগঠিত রূপে রূপান্তরিত করতে হবে)। | আমরা প্রতিটি ছাত্রের গড় উপস্থিতির ডেটা গণনা করতে পারি এবং পরীক্ষার গ্রেডের সাথে কোনো সম্পর্ক আছে কিনা তা দেখতে পারি। আমরা [সম্ভাবনা এবং পরিসংখ্যান](../../04-stats-and-probability/README.md) বিভাগে সম্পর্ক নিয়ে আরও আলোচনা করব। ছাত্রদের উপস্থিতি বাড়ানোর জন্য, আমরা স্কুল পোর্টালে সাপ্তাহিক উপস্থিতির রেটিং প্রকাশ করতে পারি এবং সর্বোচ্চ উপস্থিতি থাকা ছাত্রদের মধ্যে পুরস্কার বিতরণ করতে পারি। | +| টিকাদান | | | | | +| উৎপাদনশীলতা | | | | | + +> *আমরা শুধু একটি উত্তর উদাহরণ হিসেবে প্রদান করেছি, যাতে আপনি এই অ্যাসাইনমেন্টে কী প্রত্যাশিত তা বুঝতে পারেন।* + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +সব সমস্যার ক্ষেত্রের জন্য যুক্তিসঙ্গত ডেটা উৎস, ডেটা সংরক্ষণের পদ্ধতি এবং সম্ভাব্য সিদ্ধান্ত/অন্তর্দৃষ্টি চিহ্নিত করা হয়েছে | সমাধানের কিছু দিক বিস্তারিত নয়, ডেটা সংরক্ষণ নিয়ে আলোচনা করা হয়নি, অন্তত ২টি সমস্যার ক্ষেত্র বর্ণনা করা হয়েছে | শুধুমাত্র ডেটা সমাধানের অংশবিশেষ বর্ণনা করা হয়েছে, শুধুমাত্র একটি সমস্যার ক্ষেত্র বিবেচনা করা হয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/02-ethics/README.md b/translations/bn/1-Introduction/02-ethics/README.md new file mode 100644 index 00000000..fe38b4b3 --- /dev/null +++ b/translations/bn/1-Introduction/02-ethics/README.md @@ -0,0 +1,247 @@ + +# ডেটা নৈতিকতার পরিচিতি + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/02-Ethics.png)| +|:---:| +| ডেটা সায়েন্স নৈতিকতা - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +--- + +আমরা সবাই ডেটা নাগরিক, যারা একটি ডেটা-নির্ভর বিশ্বে বাস করছি। + +বাজারের প্রবণতা আমাদের বলে যে ২০২২ সালের মধ্যে, প্রতি তিনটি বড় প্রতিষ্ঠানের মধ্যে একটি তাদের ডেটা অনলাইনে [মার্কেটপ্লেস এবং এক্সচেঞ্জ](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/) এর মাধ্যমে ক্রয় এবং বিক্রয় করবে। **অ্যাপ ডেভেলপার** হিসেবে, আমাদের জন্য ডেটা-নির্ভর অন্তর্দৃষ্টি এবং অ্যালগরিদম-নির্ভর অটোমেশনকে দৈনন্দিন ব্যবহারকারীর অভিজ্ঞতায় সংযুক্ত করা আরও সহজ এবং সাশ্রয়ী হবে। তবে, যখন AI সর্বব্যাপী হয়ে উঠছে, তখন আমাদের এই অ্যালগরিদমগুলির [অস্ত্রায়ন](https://www.youtube.com/watch?v=TQHs8SA1qpk) দ্বারা সম্ভাব্য ক্ষতির বিষয়টি বুঝতে হবে। + +প্রবণতা আরও নির্দেশ করে যে আমরা ২০২৫ সালের মধ্যে [১৮০ জেটাবাইট](https://www.statista.com/statistics/871513/worldwide-data-created/) ডেটা তৈরি এবং ব্যবহার করব। **ডেটা বিজ্ঞানী** হিসেবে, এটি আমাদের ব্যক্তিগত ডেটার অভূতপূর্ব স্তরে প্রবেশাধিকার দেয়। এর অর্থ হলো আমরা ব্যবহারকারীদের আচরণগত প্রোফাইল তৈরি করতে পারি এবং সিদ্ধান্ত গ্রহণে প্রভাব ফেলতে পারি এমনভাবে যা [মুক্ত পছন্দের বিভ্রম](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) তৈরি করে, তবে সম্ভাব্যভাবে ব্যবহারকারীদের আমাদের পছন্দের ফলাফলের দিকে ঠেলে দেয়। এটি ডেটা গোপনীয়তা এবং ব্যবহারকারীর সুরক্ষার বিষয়ে আরও বিস্তৃত প্রশ্নও উত্থাপন করে। + +ডেটা নৈতিকতা এখন ডেটা বিজ্ঞান এবং প্রকৌশলের জন্য _প্রয়োজনীয় গার্ডরেল_, যা আমাদের ডেটা-নির্ভর ক্রিয়াকলাপ থেকে সম্ভাব্য ক্ষতি এবং অনিচ্ছাকৃত পরিণতি কমাতে সাহায্য করে। [গার্টনার হাইপ সাইকেল ফর AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) ডিজিটাল নৈতিকতা, দায়িত্বশীল AI, এবং AI গভর্নেন্সের প্রাসঙ্গিক প্রবণতাগুলিকে চিহ্নিত করে, যা AI-এর _গণতন্ত্রায়ন_ এবং _শিল্পায়ন_ এর বৃহত্তর মেগাট্রেন্ডগুলির মূল চালক। + +![গার্টনারের AI-এর হাইপ সাইকেল - ২০২০](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +এই পাঠে, আমরা ডেটা নৈতিকতার চমৎকার ক্ষেত্রটি অন্বেষণ করব - মূল ধারণা এবং চ্যালেঞ্জ থেকে শুরু করে কেস স্টাডি এবং গভর্নেন্সের মতো প্রয়োগকৃত AI ধারণা - যা ডেটা এবং AI নিয়ে কাজ করা দল এবং প্রতিষ্ঠানে একটি নৈতিকতার সংস্কৃতি প্রতিষ্ঠায় সাহায্য করে। + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/2) 🎯 + +## মৌলিক সংজ্ঞা + +চলুন মৌলিক পরিভাষা বোঝা শুরু করি। + +"নৈতিকতা" শব্দটি [গ্রিক শব্দ "ethikos"](https://en.wikipedia.org/wiki/Ethics) (এবং এর মূল "ethos") থেকে এসেছে, যার অর্থ _চরিত্র বা নৈতিক প্রকৃতি_। + +**নৈতিকতা** হলো সমাজে আমাদের আচরণ পরিচালনা করার জন্য ভাগ করা মূল্যবোধ এবং নৈতিক নীতিগুলির বিষয়। নৈতিকতা আইন নয়, বরং "সঠিক বনাম ভুল" সম্পর্কে ব্যাপকভাবে গৃহীত মানদণ্ডের উপর ভিত্তি করে। তবে, নৈতিক বিবেচনা কর্পোরেট গভর্নেন্স উদ্যোগ এবং সরকারী নিয়মকানুনকে প্রভাবিত করতে পারে, যা সম্মতির জন্য আরও প্রণোদনা তৈরি করে। + +**ডেটা নৈতিকতা** হলো একটি [নতুন শাখা](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) যা "_ডেটা, অ্যালগরিদম এবং সংশ্লিষ্ট অনুশীলন_" সম্পর্কিত নৈতিক সমস্যাগুলি অধ্যয়ন এবং মূল্যায়ন করে। এখানে, **"ডেটা"** জেনারেশন, রেকর্ডিং, কিউরেশন, প্রসেসিং, প্রচার, শেয়ারিং এবং ব্যবহারের সাথে সম্পর্কিত ক্রিয়াকলাপগুলির উপর ফোকাস করে, **"অ্যালগরিদম"** AI, এজেন্ট, মেশিন লার্নিং এবং রোবটের উপর ফোকাস করে, এবং **"অনুশীলন"** দায়িত্বশীল উদ্ভাবন, প্রোগ্রামিং, হ্যাকিং এবং নৈতিকতার কোডের মতো বিষয়গুলির উপর ফোকাস করে। + +**প্রয়োগকৃত নৈতিকতা** হলো [নৈতিক বিবেচনার বাস্তব প্রয়োগ](https://en.wikipedia.org/wiki/Applied_ethics)। এটি হলো _বাস্তব-জগতের ক্রিয়াকলাপ, পণ্য এবং প্রক্রিয়ার_ প্রসঙ্গে নৈতিক সমস্যাগুলি সক্রিয়ভাবে তদন্ত করার প্রক্রিয়া এবং আমাদের সংজ্ঞায়িত নৈতিক মূল্যবোধের সাথে সামঞ্জস্য বজায় রাখতে সংশোধনমূলক ব্যবস্থা গ্রহণ। + +**নৈতিকতার সংস্কৃতি** হলো [_প্রয়োগকৃত নৈতিকতাকে_ কার্যকর করা](https://hbr.org/2019/05/how-to-design-an-ethical-organization) যাতে আমাদের নৈতিক নীতিগুলি এবং অনুশীলনগুলি পুরো প্রতিষ্ঠানের মধ্যে ধারাবাহিক এবং স্কেলযোগ্যভাবে গ্রহণ করা হয়। সফল নৈতিকতার সংস্কৃতি প্রতিষ্ঠানের-ব্যাপী নৈতিক নীতিগুলি সংজ্ঞায়িত করে, সম্মতির জন্য অর্থপূর্ণ প্রণোদনা প্রদান করে এবং প্রতিটি স্তরে পছন্দসই আচরণকে উৎসাহিত এবং প্রসারিত করে নৈতিকতার মানদণ্ডকে শক্তিশালী করে। + +## নৈতিকতার ধারণা + +এই বিভাগে, আমরা **ভাগ করা মূল্যবোধ** (নীতিগুলি) এবং **নৈতিক চ্যালেঞ্জ** (সমস্যাগুলি) নিয়ে আলোচনা করব - এবং **কেস স্টাডি** অন্বেষণ করব যা আপনাকে বাস্তব-জগতের প্রসঙ্গে এই ধারণাগুলি বুঝতে সাহায্য করবে। + +### ১. নৈতিকতার নীতিগুলি + +প্রত্যেক ডেটা নৈতিকতার কৌশল শুরু হয় _নৈতিক নীতিগুলি_ সংজ্ঞায়িত করে - "ভাগ করা মূল্যবোধ" যা গ্রহণযোগ্য আচরণ বর্ণনা করে এবং আমাদের ডেটা এবং AI প্রকল্পে সম্মতিমূলক ক্রিয়াকলাপ পরিচালনা করে। আপনি এগুলি ব্যক্তিগত বা দলীয় স্তরে সংজ্ঞায়িত করতে পারেন। তবে, বেশিরভাগ বড় প্রতিষ্ঠান এগুলি একটি _নৈতিক AI_ মিশন বিবৃতি বা কাঠামোতে সংজ্ঞায়িত করে যা কর্পোরেট স্তরে সংজ্ঞায়িত এবং সমস্ত দলের মধ্যে ধারাবাহিকভাবে প্রয়োগ করা হয়। + +**উদাহরণ:** Microsoft's [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai) মিশন বিবৃতি বলে: _"আমরা AI-এর অগ্রগতির জন্য প্রতিশ্রুতিবদ্ধ, যা নৈতিক নীতিগুলির দ্বারা পরিচালিত হয় যা মানুষকে প্রথমে রাখে"_ - নিচের কাঠামোতে ৬টি নৈতিক নীতিকে চিহ্নিত করে: + +![Microsoft-এ দায়িত্বশীল AI](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +চলুন এই নীতিগুলি সংক্ষেপে অন্বেষণ করি। _স্বচ্ছতা_ এবং _দায়িত্বশীলতা_ হলো মৌলিক মূল্যবোধ যা অন্যান্য নীতিগুলির উপর ভিত্তি করে তৈরি - তাই এখানে শুরু করা যাক: + +* [**দায়িত্বশীলতা**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) অনুশীলনকারীদের তাদের ডেটা এবং AI ক্রিয়াকলাপের জন্য এবং এই নৈতিক নীতিগুলির সাথে সম্মতির জন্য _দায়িত্বশীল_ করে তোলে। +* [**স্বচ্ছতা**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) নিশ্চিত করে যে ডেটা এবং AI ক্রিয়াকলাপগুলি ব্যবহারকারীদের কাছে _বোধ্য_ (ব্যাখ্যাযোগ্য) হয়, সিদ্ধান্তের পেছনের কী এবং কেন ব্যাখ্যা করে। +* [**ন্যায্যতা**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - নিশ্চিত করে যে AI _সব মানুষকে_ ন্যায্যভাবে আচরণ করে, ডেটা এবং সিস্টেমে থাকা যেকোনো পদ্ধতিগত বা অন্তর্নিহিত সামাজিক-প্রযুক্তিগত পক্ষপাতিত্ব মোকাবিলা করে। +* [**বিশ্বাসযোগ্যতা এবং নিরাপত্তা**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - নিশ্চিত করে যে AI _ধারাবাহিকভাবে_ সংজ্ঞায়িত মূল্যবোধের সাথে আচরণ করে, সম্ভাব্য ক্ষতি বা অনিচ্ছাকৃত পরিণতি কমিয়ে দেয়। +* [**গোপনীয়তা এবং নিরাপত্তা**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - ডেটার উত্স বোঝা এবং ব্যবহারকারীদের _ডেটা গোপনীয়তা এবং সংশ্লিষ্ট সুরক্ষা_ প্রদান সম্পর্কে। +* [**অন্তর্ভুক্তি**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - উদ্দেশ্য নিয়ে AI সমাধান ডিজাইন করার বিষয়ে, এগুলিকে _বিস্তৃত মানব প্রয়োজন এবং সক্ষমতা_ পূরণের জন্য মানিয়ে নেওয়া। + +> 🚨 আপনার ডেটা নৈতিকতার মিশন বিবৃতি কী হতে পারে তা নিয়ে ভাবুন। অন্যান্য প্রতিষ্ঠানের নৈতিক AI কাঠামো অন্বেষণ করুন - এখানে [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles), এবং [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/) থেকে উদাহরণ রয়েছে। তাদের মধ্যে কী সাধারণ ভাগ করা মূল্যবোধ রয়েছে? এই নীতিগুলি তারা যে AI পণ্য বা শিল্পে কাজ করে তার সাথে কীভাবে সম্পর্কিত? + +### ২. নৈতিক চ্যালেঞ্জ + +যখন আমরা নৈতিক নীতিগুলি সংজ্ঞায়িত করি, তখন পরবর্তী ধাপ হলো আমাদের ডেটা এবং AI ক্রিয়াকলাপগুলি মূল্যায়ন করা যাতে তারা সেই ভাগ করা মূল্যবোধের সাথে সামঞ্জস্যপূর্ণ কিনা তা দেখা যায়। আপনার ক্রিয়াকলাপগুলি দুটি বিভাগে ভাবুন: _ডেটা সংগ্রহ_ এবং _অ্যালগরিদম ডিজাইন_। + +ডেটা সংগ্রহের ক্ষেত্রে, ক্রিয়াকলাপগুলি সম্ভবত **ব্যক্তিগত ডেটা** বা ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য (PII) অন্তর্ভুক্ত করবে যা জীবিত ব্যক্তিদের শনাক্ত করতে পারে। এটি [বিভিন্ন ধরনের অ-ব্যক্তিগত ডেটা](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) অন্তর্ভুক্ত করে যা _সমষ্টিগতভাবে_ একজন ব্যক্তিকে শনাক্ত করে। নৈতিক চ্যালেঞ্জগুলি _ডেটা গোপনীয়তা_, _ডেটা মালিকানা_, এবং _অবগত সম্মতি_ এবং ব্যবহারকারীদের _বৌদ্ধিক সম্পত্তি অধিকার_ এর মতো সম্পর্কিত বিষয়গুলির সাথে সম্পর্কিত হতে পারে। + +অ্যালগরিদম ডিজাইনের ক্ষেত্রে, ক্রিয়াকলাপগুলি **ডেটাসেট** সংগ্রহ এবং কিউরেট করা এবং তারপরে **ডেটা মডেল** প্রশিক্ষণ এবং বাস্তব-জগতের প্রসঙ্গে ফলাফল পূর্বাভাস বা সিদ্ধান্ত অটোমেট করার জন্য ব্যবহার করা অন্তর্ভুক্ত করবে। নৈতিক চ্যালেঞ্জগুলি _ডেটাসেট পক্ষপাতিত্ব_, _ডেটা গুণমান_ সমস্যা, _অন্যায্যতা_, এবং অ্যালগরিদমে _ভুল উপস্থাপনা_ থেকে উদ্ভূত হতে পারে - যার মধ্যে কিছু সমস্যা পদ্ধতিগত প্রকৃতির। + +উভয় ক্ষেত্রেই, নৈতিক চ্যালেঞ্জগুলি এমন ক্ষেত্রগুলিকে হাইলাইট করে যেখানে আমাদের ক্রিয়াকলাপগুলি আমাদের ভাগ করা মূল্যবোধের সাথে সংঘর্ষে পড়তে পারে। এই উদ্বেগগুলি সনাক্ত, প্রশমিত, কমানো বা দূর করতে - আমাদের আমাদের ক্রিয়াকলাপ সম্পর্কিত নৈতিক "হ্যাঁ/না" প্রশ্ন জিজ্ঞাসা করতে হবে এবং প্রয়োজন অনুযায়ী সংশোধনমূলক ব্যবস্থা নিতে হবে। চলুন কিছু নৈতিক চ্যালেঞ্জ এবং তারা যে নৈতিক প্রশ্ন উত্থাপন করে তা দেখি: + +#### ২.১ ডেটা মালিকানা + +ডেটা সংগ্রহ প্রায়ই ব্যক্তিগত ডেটা অন্তর্ভুক্ত করে যা ডেটা বিষয়গুলিকে শনাক্ত করতে পারে। [ডেটা মালিকানা](https://permission.io/blog/data-ownership) হলো ডেটা তৈরি, প্রক্রিয়াকরণ এবং প্রচারের সাথে সম্পর্কিত _নিয়ন্ত্রণ_ এবং [_ব্যবহারকারীর অধিকার_](https://permission.io/blog/data-ownership)। + +আমাদের জিজ্ঞাসা করা নৈতিক প্রশ্নগুলো হলো: + * ডেটার মালিক কে? (ব্যবহারকারী বা প্রতিষ্ঠান) + * ডেটা বিষয়গুলির কী অধিকার রয়েছে? (যেমন: অ্যাক্সেস, মুছে ফেলা, পোর্টেবিলিটি) + * প্রতিষ্ঠানের কী অধিকার রয়েছে? (যেমন: ক্ষতিকারক ব্যবহারকারীর পর্যালোচনা সংশোধন করা) + +#### ২.২ অবগত সম্মতি + +[অবগত সম্মতি](https://legaldictionary.net/informed-consent/) সংজ্ঞায়িত করে ব্যবহারকারীদের একটি ক্রিয়াকলাপ (যেমন ডেটা সংগ্রহ) সম্মত হওয়ার কাজ, যেখানে তারা প্রাসঙ্গিক তথ্যের _সম্পূর্ণ বোঝাপড়া_ রাখে, যার মধ্যে উদ্দেশ্য, সম্ভাব্য ঝুঁকি এবং বিকল্প রয়েছে। + +এখানে অনুসন্ধানের প্রশ্নগুলো হলো: + * ব্যবহারকারী (ডেটা বিষয়) ডেটা সংগ্রহ এবং ব্যবহারের জন্য অনুমতি দিয়েছেন কি? + * ব্যবহারকারী বুঝেছেন কি কেন সেই ডেটা সংগ্রহ করা হয়েছে? + * ব্যবহারকারী তাদের অংশগ্রহণ থেকে সম্ভাব্য ঝুঁকিগুলি বুঝেছেন কি? + +#### ২.৩ বৌদ্ধিক সম্পত্তি + +[বৌদ্ধিক সম্পত্তি](https://en.wikipedia.org/wiki/Intellectual_property) হলো মানব উদ্যোগ থেকে উদ্ভূত অমূর্ত সৃষ্টি, যা ব্যক্তিদের বা ব্যবসার জন্য _অর্থনৈতিক মূল্য_ থাকতে পারে। + +এখানে অনুসন্ধানের প্রশ্নগুলো হলো: + * সংগৃহীত ডেটার ব্যবহারকারী বা ব্যবসার জন্য অর্থনৈতিক মূল্য ছিল কি? + * এখানে **ব্যবহারকারী** এর বৌদ্ধিক সম্পত্তি রয়েছে কি? + * এখানে **প্রতিষ্ঠান** এর বৌদ্ধিক সম্পত্তি রয়েছে কি? + * যদি এই অধিকারগুলি থাকে, আমরা কীভাবে সেগুলি রক্ষা করছি? + +#### ২.৪ ডেটা গোপনীয়তা + +[ডেটা গোপনীয়তা](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) বা তথ্য গোপনীয়তা ব্যবহারকারীর গোপনীয়তা সংরক্ষণ এবং ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্যের সাথে ব্যবহারকারীর পরিচয় সুরক্ষার বিষয়ে। + +এখানে অনুসন্ধানের প্রশ্নগুলো হলো: + * ব্যবহারকারীর (ব্যক্তিগত) ডেটা হ্যাক এবং লিকের বিরুদ্ধে সুরক্ষিত কি? + * ব্যবহারকারীর ডেটা শুধুমাত্র অনুমোদিত ব্যবহারকারী এবং প্রসঙ্গে অ্যাক্সেসযোগ্য কি? + * ডেটা শেয়ার বা প্রচার করার সময় ব্যবহারকারীর নাম গোপন রাখা হয়েছে কি? + * ব্যবহারকারীকে বেনামী ডেটাসেট থেকে শনাক্ত করা যেতে পারে কি? + +#### ২.৫ ভুলে যাওয়ার অধিকার + +[ভুলে যাওয়ার অধিকার](https://en.wikipedia.org/wiki/Right_to_be_forgotten) বা [মুছে ফেলার অধিকার](https://www.gdpreu.org/right-to-be-forgotten/) ব্যবহারকারীদের অতিরিক্ত ব্যক্তিগত ডেটা সুরক্ষা প্রদান করে। বিশেষত, এটি ব্যবহারকারীদের ইন্টারনেট অনুসন্ধান এবং অন্যান্য স্থানে ব্যক্তিগত ডেটা মুছে ফেলার বা অপসারণের অনুরোধ করার অধিকার দেয়, _নির্দিষ্ট পরিস্থিতিতে_ - তাদের অনলাইনে একটি নতুন সূচনা করার অনুমতি দেয় যাতে অতীতের ক্রিয়াকলাপগুলি তাদের বিরুদ্ধে না থাকে। + +এখানে অনুসন্ধানের প্রশ্নগুলো হলো: + * সিস্টেমটি ডেটা বিষয়গুলিকে মুছে ফেলার অনুরোধ করার অনুমতি দেয় কি? + * ব্যবহারকারীর সম্মতি প্রত্যাহার স্বয়ংক্রিয় মুছে ফেলা ট্রিগার করা উচিত কি? + * ডেটা সম্মতি ছাড়াই বা অবৈধ উপায়ে সংগ্রহ করা হয়েছিল কি? + * আমরা ডেটা গোপনীয়তার জন্য সরকারী নিয়মকানুনের সাথে সম্মত কি? + +#### ২.৬ ডেটাসেট পক্ষপাতিত্ব + +ডেটাসেট বা [সংগ্রহ পক্ষপাতিত্ব](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) হলো অ্যালগরিদম উন্নয়নের জন্য একটি _অপ্রতিনিধিত্বমূলক_ ডেটার +[Algorithm Fairness](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) পরীক্ষা করে দেখে যে কোনো অ্যালগরিদম ডিজাইন কি নির্দিষ্ট ডেটা সাবগ্রুপের বিরুদ্ধে পক্ষপাতমূলক আচরণ করছে কিনা, যা _বণ্টন_ (যেখানে সেই গ্রুপের কাছে সম্পদ পৌঁছানো বা সরবরাহ করা হয় না) এবং _সেবার গুণগত মান_ (যেখানে AI কিছু সাবগ্রুপের জন্য অন্যদের তুলনায় কম সঠিক) ক্ষেত্রে [সম্ভাব্য ক্ষতি](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) সৃষ্টি করতে পারে। + +এখানে যে প্রশ্নগুলো বিবেচনা করা যেতে পারে: + * আমরা কি বিভিন্ন সাবগ্রুপ এবং শর্তের জন্য মডেলের সঠিকতা মূল্যায়ন করেছি? + * আমরা কি সিস্টেমকে সম্ভাব্য ক্ষতির (যেমন, স্টেরিওটাইপিং) জন্য গভীরভাবে পর্যবেক্ষণ করেছি? + * আমরা কি চিহ্নিত ক্ষতি কমানোর জন্য ডেটা সংশোধন বা মডেল পুনরায় প্রশিক্ষণ করতে পারি? + +আরও জানার জন্য [AI Fairness checklists](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) এর মতো রিসোর্সগুলো অন্বেষণ করুন। + +#### 2.9 ভুল উপস্থাপন + +[ডেটা ভুল উপস্থাপন](https://www.sciencedirect.com/topics/computer-science/misrepresentation) হলো এই প্রশ্ন করা যে আমরা কি সৎভাবে রিপোর্ট করা ডেটা থেকে প্রাপ্ত অন্তর্দৃষ্টি এমনভাবে উপস্থাপন করছি যা ইচ্ছাকৃতভাবে একটি নির্দিষ্ট বর্ণনার সমর্থনে বিভ্রান্তিকর হতে পারে। + +এখানে যে প্রশ্নগুলো বিবেচনা করা যেতে পারে: + * আমরা কি অসম্পূর্ণ বা ভুল ডেটা রিপোর্ট করছি? + * আমরা কি ডেটা এমনভাবে ভিজ্যুয়ালাইজ করছি যা বিভ্রান্তিকর সিদ্ধান্তে পৌঁছাতে সাহায্য করে? + * আমরা কি নির্বাচিত পরিসংখ্যানগত কৌশল ব্যবহার করে ফলাফলকে প্রভাবিত করছি? + * এমন কোনো বিকল্প ব্যাখ্যা আছে কি যা ভিন্ন সিদ্ধান্ত দিতে পারে? + +#### 2.10 স্বাধীন পছন্দ +[স্বাধীন পছন্দের ভ্রম](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) ঘটে যখন সিস্টেমের "পছন্দ স্থাপত্য" সিদ্ধান্ত গ্রহণের অ্যালগরিদম ব্যবহার করে মানুষকে একটি পছন্দসই ফলাফলের দিকে ঠেলে দেয়, যদিও তাদের কাছে বিকল্প এবং নিয়ন্ত্রণ থাকার ভান করা হয়। এই [ডার্ক প্যাটার্ন](https://www.darkpatterns.org/) ব্যবহারকারীদের সামাজিক এবং অর্থনৈতিক ক্ষতি করতে পারে। যেহেতু ব্যবহারকারীর সিদ্ধান্ত আচরণগত প্রোফাইলকে প্রভাবিত করে, এই পদক্ষেপগুলো ভবিষ্যতের পছন্দগুলোকে আরও বাড়াতে বা প্রসারিত করতে পারে। + +এখানে যে প্রশ্নগুলো বিবেচনা করা যেতে পারে: + * ব্যবহারকারী কি সেই পছন্দ করার প্রভাবগুলো বুঝতে পেরেছে? + * ব্যবহারকারী কি (বিকল্প) পছন্দ এবং প্রতিটির সুবিধা ও অসুবিধা সম্পর্কে সচেতন ছিল? + * ব্যবহারকারী কি একটি স্বয়ংক্রিয় বা প্রভাবিত পছন্দ পরে পরিবর্তন করতে পারে? + +### 3. কেস স্টাডি + +এই নৈতিক চ্যালেঞ্জগুলোকে বাস্তব জীবনের প্রেক্ষাপটে রাখার জন্য, এমন কেস স্টাডি দেখা সহায়ক যা নৈতিক লঙ্ঘন উপেক্ষা করার ফলে ব্যক্তি এবং সমাজের ওপর সম্ভাব্য ক্ষতি এবং পরিণতি তুলে ধরে। + +কিছু উদাহরণ এখানে দেওয়া হলো: + +| নৈতিক চ্যালেঞ্জ | কেস স্টাডি | +|--- |--- | +| **সচেতন সম্মতি** | 1972 - [টাস্কিগি সিফিলিস স্টাডি](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - আফ্রিকান আমেরিকান পুরুষদের বিনামূল্যে চিকিৎসার প্রতিশ্রুতি দেওয়া হয়েছিল, কিন্তু গবেষকরা তাদের রোগ নির্ণয় বা চিকিৎসার প্রাপ্যতা সম্পর্কে জানাতে ব্যর্থ হন। অনেক অংশগ্রহণকারী মারা যান এবং তাদের সঙ্গী বা সন্তান ক্ষতিগ্রস্ত হন; এই গবেষণা ৪০ বছর ধরে চলে। | +| **ডেটা গোপনীয়তা** | 2007 - [নেটফ্লিক্স ডেটা প্রাইজ](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) গবেষকদের _৫০,০০০ গ্রাহকের ১০ মিলিয়ন অ্যানোনিমাইজড মুভি রেটিং_ প্রদান করে সুপারিশ অ্যালগরিদম উন্নত করতে। তবে, গবেষকরা অ্যানোনিমাইজড ডেটাকে _বাহ্যিক ডেটাসেটের_ (যেমন, IMDb মন্তব্য) সঙ্গে সংযুক্ত করে কিছু নেটফ্লিক্স গ্রাহকদের "ডি-অ্যানোনিমাইজ" করতে সক্ষম হন।| +| **সংগ্রহ পক্ষপাত** | 2013 - বোস্টন শহর [স্ট্রিট বাম্প](https://www.boston.gov/transportation/street-bump) অ্যাপ তৈরি করে যা নাগরিকদের পটহোল রিপোর্ট করতে দেয়, শহরকে ভালো রাস্তার ডেটা দিয়ে সমস্যা খুঁজে বের করতে এবং ঠিক করতে সাহায্য করে। তবে, [নিম্ন আয়ের গ্রুপের মানুষের গাড়ি এবং ফোনে কম প্রবেশাধিকার ছিল](https://hbr.org/2013/04/the-hidden-biases-in-big-data), যার ফলে তাদের রাস্তার সমস্যাগুলো এই অ্যাপে অদৃশ্য হয়ে যায়। ডেভেলপাররা ন্যায্যতার জন্য _সমান প্রবেশাধিকার এবং ডিজিটাল বিভাজন_ সমস্যাগুলো নিয়ে একাডেমিকদের সঙ্গে কাজ করেন। | +| **অ্যালগরিদমিক ন্যায্যতা** | 2018 - MIT [জেন্ডার শেডস স্টাডি](http://gendershades.org/overview.html) লিঙ্গ শ্রেণীবিন্যাস AI পণ্যের সঠিকতা মূল্যায়ন করে, নারীদের এবং রঙের মানুষের জন্য সঠিকতার ফাঁকগুলো প্রকাশ করে। একটি [2019 অ্যাপল কার্ড](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) পুরুষদের তুলনায় নারীদের কম ক্রেডিট অফার করে বলে মনে হয়। উভয়ই অ্যালগরিদমিক পক্ষপাতের সমস্যাগুলো তুলে ধরে যা সামাজিক-অর্থনৈতিক ক্ষতি সৃষ্টি করে।| +| **ডেটা ভুল উপস্থাপন** | 2020 - [জর্জিয়া ডিপার্টমেন্ট অফ পাবলিক হেলথ COVID-19 চার্ট প্রকাশ করে](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) যা নিশ্চিত কেসের প্রবণতা সম্পর্কে নাগরিকদের বিভ্রান্ত করতে পারে, যেখানে x-অক্ষের অchronological অর্ডারিং ছিল। এটি ভিজ্যুয়ালাইজেশন কৌশলের মাধ্যমে ভুল উপস্থাপনের উদাহরণ। | +| **স্বাধীন পছন্দের ভ্রম** | 2020 - লার্নিং অ্যাপ [ABCmouse $10M জরিমানা দিয়ে FTC অভিযোগ মীমাংসা করে](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) যেখানে অভিভাবকরা এমন সাবস্ক্রিপশন পেমেন্টে আটকা পড়েন যা তারা বাতিল করতে পারেননি। এটি পছন্দ স্থাপত্যে ডার্ক প্যাটার্নের উদাহরণ, যেখানে ব্যবহারকারীদের ক্ষতিকর পছন্দের দিকে ঠেলে দেওয়া হয়। | +| **ডেটা গোপনীয়তা ও ব্যবহারকারীর অধিকার** | 2021 - ফেসবুক [ডেটা ব্রিচ](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) ৫৩০ মিলিয়ন ব্যবহারকারীর ডেটা প্রকাশ করে, যার ফলে FTC-কে $5B জরিমানা দিতে হয়। তবে, এটি ব্যবহারকারীদের ব্রিচ সম্পর্কে জানাতে অস্বীকার করে, যা ডেটা স্বচ্ছতা এবং প্রবেশাধিকারের ক্ষেত্রে ব্যবহারকারীর অধিকার লঙ্ঘন করে। | + +আরও কেস স্টাডি অন্বেষণ করতে চান? এই রিসোর্সগুলো দেখুন: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - বিভিন্ন শিল্পের নৈতিক দ্বিধা। +* [Data Science Ethics course](https://www.coursera.org/learn/data-science-ethics#syllabus) - গুরুত্বপূর্ণ কেস স্টাডি। +* [Where things have gone wrong](https://deon.drivendata.org/examples/) - ডিওন চেকলিস্টের উদাহরণ। + +> 🚨 আপনি যে কেস স্টাডিগুলো দেখেছেন তা নিয়ে ভাবুন - আপনার জীবনে কি এমন কোনো নৈতিক চ্যালেঞ্জের অভিজ্ঞতা হয়েছে বা আপনি ক্ষতিগ্রস্ত হয়েছেন? আপনি কি এই বিভাগে আলোচনা করা নৈতিক চ্যালেঞ্জগুলোর মধ্যে অন্তত একটি চিত্রিত করে এমন অন্য কোনো কেস স্টাডি ভাবতে পারেন? + +## প্রয়োগকৃত নৈতিকতা + +আমরা নৈতিকতার ধারণা, চ্যালেঞ্জ এবং বাস্তব জীবনের প্রেক্ষাপটে কেস স্টাডি নিয়ে আলোচনা করেছি। কিন্তু কীভাবে আমরা আমাদের প্রকল্পগুলোতে নৈতিক নীতিমালা এবং অনুশীলন _প্রয়োগ_ করতে শুরু করব? এবং কীভাবে আমরা এই অনুশীলনগুলোকে _অপারেশনালাইজ_ করব যাতে ভালো শাসন নিশ্চিত করা যায়? আসুন কিছু বাস্তব সমাধান অন্বেষণ করি: + +### 1. পেশাদার কোড + +পেশাদার কোডগুলো সংগঠনগুলোর জন্য একটি বিকল্প প্রদান করে যাতে তারা তাদের নৈতিক নীতিমালা এবং মিশন বিবৃতিকে সমর্থন করার জন্য সদস্যদের "উৎসাহিত" করতে পারে। কোডগুলো পেশাদার আচরণের জন্য _নৈতিক নির্দেশিকা_ প্রদান করে, যা কর্মচারী বা সদস্যদের এমন সিদ্ধান্ত নিতে সাহায্য করে যা তাদের সংগঠনের নীতিমালার সঙ্গে সামঞ্জস্যপূর্ণ। এগুলো শুধুমাত্র সদস্যদের স্বেচ্ছাসেবী সম্মতির উপর নির্ভর করে কার্যকর; তবে, অনেক সংগঠন সদস্যদের সম্মতি উৎসাহিত করতে অতিরিক্ত পুরস্কার এবং শাস্তি প্রদান করে। + +উদাহরণগুলো অন্তর্ভুক্ত: + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) নৈতিকতার কোড + * [Data Science Association](http://datascienceassn.org/code-of-conduct.html) আচরণবিধি (২০১৩ সালে তৈরি) + * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) (১৯৯৩ সাল থেকে) + +> 🚨 আপনি কি কোনো পেশাদার ইঞ্জিনিয়ারিং বা ডেটা সায়েন্স সংগঠনের সদস্য? তাদের সাইটটি অন্বেষণ করুন এবং দেখুন তারা কি পেশাদার নৈতিকতার কোড সংজ্ঞায়িত করেছে। এটি তাদের নৈতিক নীতিমালা সম্পর্কে কী বলে? তারা সদস্যদের কোড অনুসরণ করতে কীভাবে "উৎসাহিত" করছে? + +### 2. নৈতিকতার চেকলিস্ট + +যেখানে পেশাদার কোডগুলো অনুশীলনকারীদের থেকে প্রয়োজনীয় _নৈতিক আচরণ_ সংজ্ঞায়িত করে, সেখানে [পরিচিত সীমাবদ্ধতা](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) রয়েছে, বিশেষত বৃহৎ প্রকল্পগুলোতে প্রয়োগে। এর পরিবর্তে, অনেক ডেটা সায়েন্স বিশেষজ্ঞ [চেকলিস্টের](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) পক্ষে যুক্তি দেন, যা নীতিমালাকে আরও নির্ধারক এবং কার্যকর উপায়ে অনুশীলনে সংযুক্ত করতে পারে। + +চেকলিস্টগুলো প্রশ্নগুলোকে "হ্যাঁ/না" কাজগুলোতে রূপান্তর করে যা অপারেশনালাইজ করা যায়, এবং এগুলোকে স্ট্যান্ডার্ড প্রোডাক্ট রিলিজ ওয়ার্কফ্লো হিসেবে ট্র্যাক করা যায়। + +উদাহরণগুলো অন্তর্ভুক্ত: + * [Deon](https://deon.drivendata.org/) - শিল্পের সুপারিশ থেকে তৈরি একটি সাধারণ উদ্দেশ্য ডেটা নৈতিকতার চেকলিস্ট, যা সহজ ইন্টিগ্রেশনের জন্য কমান্ড-লাইন টুল প্রদান করে। + * [Privacy Audit Checklist](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - আইনি এবং সামাজিক এক্সপোজার দৃষ্টিকোণ থেকে তথ্য পরিচালনার অনুশীলনের জন্য সাধারণ নির্দেশিকা প্রদান করে। + * [AI Fairness Checklist](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - AI উন্নয়ন চক্রে ন্যায্যতা চেকগুলোর গ্রহণ এবং ইন্টিগ্রেশন সমর্থন করার জন্য AI অনুশীলনকারীদের দ্বারা তৈরি। + * [22 questions for ethics in data and AI](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - আরও খোলা কাঠামো, নকশা, বাস্তবায়ন এবং সাংগঠনিক প্রেক্ষাপটে নৈতিক সমস্যার প্রাথমিক অনুসন্ধানের জন্য গঠিত। + +### 3. নৈতিকতার নিয়মকানুন + +নৈতিকতা হলো ভাগ করা মূল্যবোধ সংজ্ঞায়িত করা এবং _স্বেচ্ছায়_ সঠিক কাজ করা। **অনুগততা** হলো _আইন অনুসরণ করা_ যেখানে এবং যদি সংজ্ঞায়িত করা হয়। **শাসন** ব্যাপকভাবে সংগঠনগুলো কীভাবে নৈতিক নীতিমালা প্রয়োগ এবং প্রতিষ্ঠিত আইন মেনে চলার জন্য পরিচালনা করে তা অন্তর্ভুক্ত করে। + +আজ, শাসন সংগঠনগুলোর মধ্যে দুটি রূপ নেয়। প্রথমত, এটি **নৈতিক AI** নীতিমালা সংজ্ঞায়িত করা এবং সংগঠনের সমস্ত AI-সম্পর্কিত প্রকল্পে গ্রহণের অনুশীলন প্রতিষ্ঠা করা। দ্বিতীয়ত, এটি যে অঞ্চলে এটি পরিচালনা করে তার জন্য সমস্ত সরকার-নির্ধারিত **ডেটা সুরক্ষা নিয়মকানুন** মেনে চলা। + +ডেটা সুরক্ষা এবং গোপনীয়তার নিয়মকানুনের উদাহরণ: + + * `1974`, [US Privacy Act](https://www.justice.gov/opcl/privacy-act-1974) - _ফেডারেল সরকার_ দ্বারা ব্যক্তিগত তথ্য সংগ্রহ, ব্যবহার এবং প্রকাশ নিয়ন্ত্রণ করে। + * `1996`, [US Health Insurance Portability & Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - ব্যক্তিগত স্বাস্থ্য ডেটা সুরক্ষা করে। + * `1998`, [US Children's Online Privacy Protection Act (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - ১৩ বছরের কম বয়সী শিশুদের ডেটা গোপনীয়তা সুরক্ষা করে। + * `2018`, [General Data Protection Regulation (GDPR)](https://gdpr-info.eu/) - ব্যবহারকারীর অধিকার, ডেটা সুরক্ষা এবং গোপনীয়তা প্রদান করে। + * `2018`, [California Consumer Privacy Act (CCPA)](https://www.oag.ca.gov/privacy/ccpa) - ভোক্তাদের তাদের (ব্যক্তিগত) ডেটার উপর আরও _অধিকার_ প্রদান করে। + * `2021`, চীনের [Personal Information Protection Law](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) সম্প্রতি পাস হয়েছে, যা বিশ্বের অন্যতম শক্তিশালী অনলাইন ডেটা গোপনীয়তা নিয়মকানুন তৈরি করেছে। + +> 🚨 ইউরোপীয় ইউনিয়ন দ্বারা সংজ্ঞায়িত GDPR (General Data Protection Regulation) আজকের অন্যতম প্রভাবশালী ডেটা গোপনীয়তা নিয়মকানুন। আপনি কি জানেন এটি [৮টি ব্যবহারকারীর অধিকার](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) সংজ্ঞায়িত করে যা নাগরিকদের ডিজিটাল গোপনীয়তা এবং ব্যক্তিগত ডেটা সুরক্ষা করে? এগুলো কী এবং কেন গুরুত্বপূর্ণ তা জানুন। + +### 4. নৈতিকতার সংস্কৃতি + +লক্ষ্য করুন যে _অনুগততা_ (আইনের "অক্ষর" পূরণ করার জন্য যথেষ্ট করা) এবং [পদ্ধতিগত সমস্যাগুলো](https://www.coursera.org/learn/data-science-ethics/home/week/4) (যেমন, অস্থিরতা, তথ্যের অসমতা এবং বিতরণগত পক্ষপাত) সমাধান করার মধ্যে একটি অদৃশ্য ফাঁক রয়ে গেছে, যা AI-এর অস্ত্রায়নকে ত্বরান্বিত করতে পারে। + +পরবর্তীটি [নৈতিকতার সংস্কৃতি সংজ্ঞায়িত করার জন্য সহযোগিতামূলক পদ্ধতির](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) আহ্বান জানায় যা শিল্পের মধ্যে _সংগঠনগুলোর_ মধ্যে আবেগগত সংযোগ এবং ধারাবাহিক ভাগ করা মূল্যবোধ তৈরি করে। এটি সংগঠনগুলোতে আরও [আনুষ্ঠানিক ডেটা নৈতিকতার সংস্কৃতি](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) তৈরি করার আহ্বান জানায় - যা _যেকোনো ব্যক্তিকে_ [অ্যান্ডন কর্ড টানতে](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (প্রক্রিয়ার প্রাথমিক পর্যায়ে নৈতিক উদ্বেগ উত্থাপন করতে) এবং AI প্রকল্পে দল গঠনের জন্য _নৈতিক মূল্যায়ন_ (যেমন, নিয়োগে) একটি মূল মানদণ্ড তৈরি করে। + +--- +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/3) 🎯 +## পর্যালোচনা ও স্ব-অধ্যয়ন + +কোর্স এবং বইগুলো নৈতিকতার মূল ধারণা এবং চ্যালেঞ্জগুলো বুঝতে সাহায্য করে, যখন কেস স্টাডি এবং টুল +* [Responsible AI এর নীতিমালা](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - Microsoft Learn থেকে বিনামূল্যে শেখার পথ। +* [নৈতিকতা এবং ডেটা বিজ্ঞান](https://resources.oreilly.com/examples/0636920203964) - O'Reilly ইবুক (M. Loukides, H. Mason প্রমুখ) +* [ডেটা বিজ্ঞান নৈতিকতা](https://www.coursera.org/learn/data-science-ethics#syllabus) - মিশিগান বিশ্ববিদ্যালয়ের অনলাইন কোর্স। +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - টেক্সাস বিশ্ববিদ্যালয়ের কেস স্টাডি। + +# অ্যাসাইনমেন্ট + +[ডেটা নৈতিকতার একটি কেস স্টাডি লিখুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/02-ethics/assignment.md b/translations/bn/1-Introduction/02-ethics/assignment.md new file mode 100644 index 00000000..df0e0638 --- /dev/null +++ b/translations/bn/1-Introduction/02-ethics/assignment.md @@ -0,0 +1,35 @@ + +## একটি ডেটা নীতিশাস্ত্র কেস স্টাডি লিখুন + +## নির্দেশাবলী + +আপনি ইতিমধ্যে বিভিন্ন [ডেটা নীতিশাস্ত্র চ্যালেঞ্জ](README.md#2-ethics-challenges) সম্পর্কে শিখেছেন এবং বাস্তব জীবনের প্রেক্ষাপটে ডেটা নীতিশাস্ত্র চ্যালেঞ্জ প্রতিফলিত করে এমন কিছু [কেস স্টাডি](README.md#3-case-studies) উদাহরণ দেখেছেন। + +এই অ্যাসাইনমেন্টে, আপনাকে আপনার নিজের অভিজ্ঞতা থেকে বা আপনি পরিচিত এমন একটি প্রাসঙ্গিক বাস্তব জীবনের প্রেক্ষাপট থেকে একটি ডেটা নীতিশাস্ত্র চ্যালেঞ্জ প্রতিফলিত করে একটি কেস স্টাডি লিখতে হবে। কেবল নিচের ধাপগুলো অনুসরণ করুন: + +1. `একটি ডেটা নীতিশাস্ত্র চ্যালেঞ্জ নির্বাচন করুন`। [পাঠের উদাহরণগুলো](README.md#2-ethics-challenges) দেখুন অথবা অনলাইনে [Deon Checklist](https://deon.drivendata.org/examples/) এর মতো উদাহরণ অনুসন্ধান করে অনুপ্রেরণা নিন। + +2. `একটি বাস্তব জীবনের উদাহরণ বর্ণনা করুন`। এমন একটি পরিস্থিতি নিয়ে ভাবুন যা আপনি শুনেছেন (সংবাদ শিরোনাম, গবেষণা ইত্যাদি) বা অভিজ্ঞতা করেছেন (স্থানীয় সম্প্রদায়), যেখানে এই নির্দিষ্ট চ্যালেঞ্জটি ঘটেছে। এই চ্যালেঞ্জের সাথে সম্পর্কিত ডেটা নীতিশাস্ত্রের প্রশ্নগুলো নিয়ে ভাবুন - এবং এই সমস্যার কারণে উদ্ভূত সম্ভাব্য ক্ষতি বা অনিচ্ছাকৃত পরিণতি নিয়ে আলোচনা করুন। বোনাস পয়েন্ট: এখানে ক্ষতিকর প্রভাব দূর করতে বা কমাতে সাহায্য করতে পারে এমন সম্ভাব্য সমাধান বা প্রক্রিয়া নিয়ে চিন্তা করুন। + +3. `সম্পর্কিত সম্পদগুলোর একটি তালিকা প্রদান করুন`। একটি বা একাধিক সম্পদ শেয়ার করুন (যেমন একটি নিবন্ধের লিঙ্ক, ব্যক্তিগত ব্লগ পোস্ট বা ছবি, অনলাইন গবেষণা পেপার ইত্যাদি) যা প্রমাণ করে যে এটি একটি বাস্তব জীবনের ঘটনা। বোনাস পয়েন্ট: এমন সম্পদ শেয়ার করুন যা এই ঘটনার সম্ভাব্য ক্ষতি ও পরিণতি প্রদর্শন করে, অথবা এর পুনরাবৃত্তি রোধে গৃহীত ইতিবাচক পদক্ষেপগুলো হাইলাইট করে। + + + +## মূল্যায়ন মানদণ্ড + +উদাহরণস্বরূপ | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +এক বা একাধিক ডেটা নীতিশাস্ত্র চ্যালেঞ্জ চিহ্নিত করা হয়েছে।

কেস স্টাডিটি স্পষ্টভাবে একটি বাস্তব জীবনের ঘটনা বর্ণনা করে যা সেই চ্যালেঞ্জ প্রতিফলিত করে এবং এটি দ্বারা সৃষ্ট অপ্রত্যাশিত পরিণতি বা ক্ষতির উপর আলোকপাত করে।

এটি প্রমাণ করার জন্য অন্তত একটি লিঙ্কযুক্ত সম্পদ রয়েছে। | একটি ডেটা নীতিশাস্ত্র চ্যালেঞ্জ চিহ্নিত করা হয়েছে।

অন্তত একটি প্রাসঙ্গিক ক্ষতি বা পরিণতি সংক্ষেপে আলোচনা করা হয়েছে।

তবে আলোচনা সীমিত বা বাস্তব জীবনের ঘটনার প্রমাণের অভাব রয়েছে। | একটি ডেটা চ্যালেঞ্জ চিহ্নিত করা হয়েছে।

তবে বর্ণনা বা সম্পদগুলো যথাযথভাবে চ্যালেঞ্জটি প্রতিফলিত করে না বা এর বাস্তব জীবনের ঘটনার প্রমাণ প্রদান করে না। | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/03-defining-data/README.md b/translations/bn/1-Introduction/03-defining-data/README.md new file mode 100644 index 00000000..01ccb6cf --- /dev/null +++ b/translations/bn/1-Introduction/03-defining-data/README.md @@ -0,0 +1,85 @@ + +# ডেটা সংজ্ঞায়িত করা + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) এর স্কেচনোট ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|ডেটা সংজ্ঞায়িত করা - _[@nitya](https://twitter.com/nitya) এর স্কেচনোট_ | + +ডেটা হলো তথ্য, পর্যবেক্ষণ এবং পরিমাপ যা আবিষ্কার করতে এবং সঠিক সিদ্ধান্ত গ্রহণে সহায়তা করতে ব্যবহৃত হয়। একটি ডেটা পয়েন্ট হলো একটি ডেটাসেটে থাকা একক ডেটার ইউনিট, যেখানে ডেটাসেট হলো একাধিক ডেটা পয়েন্টের সমষ্টি। ডেটাসেট বিভিন্ন ফরম্যাট এবং কাঠামোতে আসতে পারে এবং সাধারণত এটি তার উৎস বা ডেটা কোথা থেকে এসেছে তার উপর ভিত্তি করে তৈরি হয়। উদাহরণস্বরূপ, একটি কোম্পানির মাসিক আয়ের তথ্য একটি স্প্রেডশিটে থাকতে পারে, কিন্তু একটি স্মার্টওয়াচ থেকে প্রতি ঘণ্টার হার্ট রেট ডেটা [JSON](https://stackoverflow.com/a/383699) ফরম্যাটে থাকতে পারে। ডেটা বিজ্ঞানীরা প্রায়শই একটি ডেটাসেটের মধ্যে বিভিন্ন ধরনের ডেটা নিয়ে কাজ করেন। + +এই পাঠে ডেটার বৈশিষ্ট্য এবং উৎস অনুযায়ী ডেটা চিহ্নিত করা এবং শ্রেণীবদ্ধ করার উপর গুরুত্ব দেওয়া হয়েছে। + +## [পূর্ব-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/4) + +## ডেটা কীভাবে বর্ণনা করা হয় + +### কাঁচা ডেটা +কাঁচা ডেটা হলো সেই ডেটা যা তার উৎস থেকে প্রাথমিক অবস্থায় এসেছে এবং যা এখনও বিশ্লেষণ বা সংগঠিত করা হয়নি। একটি ডেটাসেটের সাথে কী ঘটছে তা বোঝার জন্য এটি এমন একটি ফরম্যাটে সংগঠিত করতে হবে যা মানুষ এবং তারা যে প্রযুক্তি ব্যবহার করে তা সহজে বিশ্লেষণ করতে পারে। একটি ডেটাসেটের কাঠামো বর্ণনা করে এটি কীভাবে সংগঠিত হয়েছে এবং এটি কাঠামোগত, অ-কাঠামোগত এবং আধা-কাঠামোগত হিসাবে শ্রেণীবদ্ধ করা যেতে পারে। এই কাঠামোগুলি উৎসের উপর নির্ভর করে পরিবর্তিত হবে, তবে শেষ পর্যন্ত এই তিনটি শ্রেণীতে পড়বে। + +### পরিমাণগত ডেটা +পরিমাণগত ডেটা হলো একটি ডেটাসেটে থাকা সংখ্যাসূচক পর্যবেক্ষণ, যা সাধারণত বিশ্লেষণ, পরিমাপ এবং গাণিতিকভাবে ব্যবহার করা যায়। পরিমাণগত ডেটার কিছু উদাহরণ হলো: একটি দেশের জনসংখ্যা, একজন ব্যক্তির উচ্চতা বা একটি কোম্পানির ত্রৈমাসিক আয়। কিছু অতিরিক্ত বিশ্লেষণের মাধ্যমে, পরিমাণগত ডেটা ব্যবহার করে বায়ুর গুণমান সূচকের (AQI) ঋতুভিত্তিক প্রবণতা আবিষ্কার করা বা একটি সাধারণ কর্মদিবসে রাশ আওয়ার ট্রাফিকের সম্ভাবনা অনুমান করা যেতে পারে। + +### গুণগত ডেটা +গুণগত ডেটা, যা শ্রেণীবদ্ধ ডেটা নামেও পরিচিত, এমন ডেটা যা পরিমাণগত ডেটার মতো উদ্দেশ্যমূলকভাবে পরিমাপ করা যায় না। এটি সাধারণত বিভিন্ন ধরনের বিষয়ভিত্তিক ডেটা যা কোনো পণ্য বা প্রক্রিয়ার গুণমান ধারণ করে। কখনও কখনও, গুণগত ডেটা সংখ্যাসূচক হতে পারে, তবে এটি সাধারণত গাণিতিকভাবে ব্যবহার করা হয় না, যেমন ফোন নম্বর বা টাইমস্ট্যাম্প। গুণগত ডেটার কিছু উদাহরণ হলো: ভিডিওর মন্তব্য, একটি গাড়ির মডেল এবং ব্র্যান্ড, বা আপনার সবচেয়ে কাছের বন্ধুর প্রিয় রং। গুণগত ডেটা ব্যবহার করে বোঝা যেতে পারে কোন পণ্যগুলি ভোক্তারা সবচেয়ে বেশি পছন্দ করে বা চাকরির আবেদনপত্রের রেজুমেতে জনপ্রিয় কীওয়ার্ড চিহ্নিত করা যেতে পারে। + +### কাঠামোগত ডেটা +কাঠামোগত ডেটা হলো এমন ডেটা যা সারি এবং কলামে সংগঠিত থাকে, যেখানে প্রতিটি সারির একই সেটের কলাম থাকে। কলামগুলো একটি নির্দিষ্ট ধরনের মানকে উপস্থাপন করে এবং একটি নাম দ্বারা চিহ্নিত হয় যা মানটি কী উপস্থাপন করে তা বর্ণনা করে, আর সারিগুলোতে থাকে প্রকৃত মান। কলামগুলোতে প্রায়শই একটি নির্দিষ্ট নিয়ম বা সীমাবদ্ধতা থাকে যাতে মানগুলো সঠিকভাবে কলামটি উপস্থাপন করে। উদাহরণস্বরূপ, কাস্টমারদের একটি স্প্রেডশিট কল্পনা করুন যেখানে প্রতিটি সারিতে একটি ফোন নম্বর থাকতে হবে এবং ফোন নম্বরগুলোতে কখনও বর্ণমালা থাকবে না। ফোন নম্বর কলামে এমন নিয়ম প্রয়োগ করা হতে পারে যাতে এটি কখনও খালি না থাকে এবং শুধুমাত্র সংখ্যা থাকে। + +কাঠামোগত ডেটার একটি সুবিধা হলো এটি এমনভাবে সংগঠিত করা যায় যাতে এটি অন্যান্য কাঠামোগত ডেটার সাথে সম্পর্কিত হতে পারে। তবে, যেহেতু ডেটা একটি নির্দিষ্ট উপায়ে সংগঠিত হওয়ার জন্য ডিজাইন করা হয়েছে, এর সামগ্রিক কাঠামো পরিবর্তন করতে অনেক প্রচেষ্টা প্রয়োজন হতে পারে। উদাহরণস্বরূপ, কাস্টমার স্প্রেডশিটে একটি ইমেইল কলাম যোগ করা যা খালি থাকতে পারবে না, এর মানে হলো আপনাকে বিদ্যমান কাস্টমারদের সারিতে এই মানগুলো কীভাবে যোগ করবেন তা বের করতে হবে। + +কাঠামোগত ডেটার উদাহরণ: স্প্রেডশিট, রিলেশনাল ডেটাবেস, ফোন নম্বর, ব্যাংক স্টেটমেন্ট + +### অ-কাঠামোগত ডেটা +অ-কাঠামোগত ডেটা সাধারণত সারি বা কলামে শ্রেণীবদ্ধ করা যায় না এবং এটি কোনো নির্দিষ্ট ফরম্যাট বা নিয়ম অনুসরণ করে না। অ-কাঠামোগত ডেটার কাঠামোতে কম সীমাবদ্ধতা থাকার কারণে এটি একটি কাঠামোগত ডেটাসেটের তুলনায় নতুন তথ্য যোগ করা সহজ। উদাহরণস্বরূপ, একটি সেন্সর যা প্রতি ২ মিনিটে বায়ুমণ্ডলীয় চাপের ডেটা সংগ্রহ করে, যদি এটি আপডেট হয়ে তাপমাত্রা পরিমাপ এবং রেকর্ড করতে সক্ষম হয়, তবে এটি যদি অ-কাঠামোগত হয় তবে বিদ্যমান ডেটা পরিবর্তন করার প্রয়োজন হবে না। তবে, এই ধরনের ডেটা বিশ্লেষণ বা তদন্ত করতে বেশি সময় লাগতে পারে। উদাহরণস্বরূপ, একজন বিজ্ঞানী যদি সেন্সরের ডেটা থেকে আগের মাসের গড় তাপমাত্রা খুঁজে বের করতে চান, কিন্তু দেখেন যে সেন্সরটি কিছু ডেটায় "e" রেকর্ড করেছে এটি ভাঙা বোঝাতে, তবে ডেটা অসম্পূর্ণ হয়ে যায়। + +অ-কাঠামোগত ডেটার উদাহরণ: টেক্সট ফাইল, টেক্সট মেসেজ, ভিডিও ফাইল + +### আধা-কাঠামোগত ডেটা +আধা-কাঠামোগত ডেটার এমন বৈশিষ্ট্য রয়েছে যা এটিকে কাঠামোগত এবং অ-কাঠামোগত ডেটার সংমিশ্রণ করে তোলে। এটি সাধারণত সারি এবং কলামের ফরম্যাট অনুসরণ করে না, তবে এটি এমনভাবে সংগঠিত থাকে যা কাঠামোগত বলে বিবেচিত হয় এবং একটি নির্দিষ্ট ফরম্যাট বা নিয়ম অনুসরণ করতে পারে। কাঠামো উৎসের উপর নির্ভর করে পরিবর্তিত হয়, যেমন একটি সুসংহত শ্রেণীবিন্যাস থেকে আরও নমনীয় কিছু যা নতুন তথ্য সহজে সংহত করতে দেয়। মেটাডেটা হলো সূচক যা ডেটা কীভাবে সংগঠিত এবং সংরক্ষণ করা হয় তা নির্ধারণ করতে সহায়তা করে এবং এটি ডেটার ধরন অনুযায়ী বিভিন্ন নাম ধারণ করে। মেটাডেটার কিছু সাধারণ নাম হলো ট্যাগ, উপাদান, সত্তা এবং বৈশিষ্ট্য। উদাহরণস্বরূপ, একটি সাধারণ ইমেইল বার্তায় একটি বিষয়, মূল অংশ এবং প্রাপকদের একটি সেট থাকবে এবং এটি কার কাছে বা কখন পাঠানো হয়েছে তার দ্বারা সংগঠিত করা যেতে পারে। + +আধা-কাঠামোগত ডেটার উদাহরণ: HTML, CSV ফাইল, জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (JSON) + +## ডেটার উৎস + +ডেটার উৎস হলো সেই প্রাথমিক স্থান যেখানে ডেটা তৈরি হয়েছে বা যেখানে এটি "বসবাস" করে এবং এটি কীভাবে এবং কখন সংগ্রহ করা হয়েছে তার উপর ভিত্তি করে পরিবর্তিত হয়। ব্যবহারকারী দ্বারা তৈরি ডেটা প্রাথমিক ডেটা নামে পরিচিত, যেখানে মাধ্যমিক ডেটা এমন একটি উৎস থেকে আসে যা সাধারণ ব্যবহারের জন্য ডেটা সংগ্রহ করেছে। উদাহরণস্বরূপ, একটি রেইনফরেস্টে পর্যবেক্ষণ সংগ্রহকারী বিজ্ঞানীদের একটি দলকে প্রাথমিক ডেটা হিসেবে বিবেচনা করা হবে এবং যদি তারা এটি অন্যান্য বিজ্ঞানীদের সাথে ভাগ করে নেয় তবে এটি তাদের জন্য মাধ্যমিক ডেটা হিসেবে বিবেচিত হবে। + +ডেটাবেস হলো একটি সাধারণ উৎস এবং এটি একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেমের উপর নির্ভর করে ডেটা হোস্ট এবং রক্ষণাবেক্ষণ করতে, যেখানে ব্যবহারকারীরা ডেটা অনুসন্ধানের জন্য কোয়েরি নামে পরিচিত কমান্ড ব্যবহার করে। ফাইলগুলো ডেটার উৎস হতে পারে, যেমন অডিও, ইমেজ এবং ভিডিও ফাইল, পাশাপাশি এক্সেলের মতো স্প্রেডশিট। ইন্টারনেট উৎস হলো ডেটা হোস্ট করার একটি সাধারণ স্থান, যেখানে ডেটাবেস এবং ফাইল উভয়ই পাওয়া যেতে পারে। অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস, যা API নামে পরিচিত, প্রোগ্রামারদের ইন্টারনেটের মাধ্যমে বাহ্যিক ব্যবহারকারীদের সাথে ডেটা ভাগ করার উপায় তৈরি করতে দেয়, যেখানে ওয়েব স্ক্র্যাপিং একটি ওয়েব পেজ থেকে ডেটা বের করে। [ডেটার সাথে কাজ করার পাঠ](../../../../../../../../../2-Working-With-Data) বিভিন্ন ডেটার উৎস কীভাবে ব্যবহার করতে হয় তার উপর ফোকাস করে। + +## উপসংহার + +এই পাঠে আমরা শিখেছি: + +- ডেটা কী +- ডেটা কীভাবে বর্ণনা করা হয় +- ডেটা কীভাবে শ্রেণীবদ্ধ এবং শ্রেণীকরণ করা হয় +- ডেটা কোথায় পাওয়া যায় + +## 🚀 চ্যালেঞ্জ + +Kaggle হলো উন্মুক্ত ডেটাসেটের একটি চমৎকার উৎস। [ডেটাসেট অনুসন্ধান টুল](https://www.kaggle.com/datasets) ব্যবহার করে কিছু আকর্ষণীয় ডেটাসেট খুঁজুন এবং এই মানদণ্ড অনুযায়ী ৩-৫টি ডেটাসেট শ্রেণীবদ্ধ করুন: + +- ডেটা কি পরিমাণগত নাকি গুণগত? +- ডেটা কি কাঠামোগত, অ-কাঠামোগত, নাকি আধা-কাঠামোগত? + +## [পাঠ-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/5) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +- Microsoft Learn-এর এই ইউনিট, [আপনার ডেটা শ্রেণীবদ্ধ করুন](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) শিরোনামে, কাঠামোগত, আধা-কাঠামোগত এবং অ-কাঠামোগত ডেটার একটি বিস্তারিত বিশ্লেষণ প্রদান করে। + +## অ্যাসাইনমেন্ট + +[ডেটাসেট শ্রেণীবদ্ধকরণ](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/03-defining-data/assignment.md b/translations/bn/1-Introduction/03-defining-data/assignment.md new file mode 100644 index 00000000..499952f7 --- /dev/null +++ b/translations/bn/1-Introduction/03-defining-data/assignment.md @@ -0,0 +1,79 @@ + +# ডেটাসেট শ্রেণীবিন্যাস + +## নির্দেশাবলী + +এই অ্যাসাইনমেন্টের প্রম্পট অনুসরণ করে প্রতিটি ডেটা নিম্নলিখিত ডেটা প্রকারগুলোর একটির সাথে সনাক্ত এবং শ্রেণীবদ্ধ করুন: + +**স্ট্রাকচার প্রকার**: স্ট্রাকচারড, সেমি-স্ট্রাকচারড, বা আনস্ট্রাকচারড + +**মান প্রকার**: গুণগত (Qualitative) বা পরিমাণগত (Quantitative) + +**উৎস প্রকার**: প্রাথমিক (Primary) বা গৌণ (Secondary) + +1. একটি কোম্পানি অধিগ্রহণ করা হয়েছে এবং এখন এটি একটি প্যারেন্ট কোম্পানির অধীনে। ডেটা বিজ্ঞানীরা প্যারেন্ট কোম্পানি থেকে গ্রাহকের ফোন নম্বরের একটি স্প্রেডশিট পেয়েছেন। + +স্ট্রাকচার প্রকার: + +মান প্রকার: + +উৎস প্রকার: + +--- + +2. একটি স্মার্টওয়াচ তার ব্যবহারকারীর হার্ট রেটের ডেটা সংগ্রহ করছে, এবং কাঁচা ডেটা JSON ফরম্যাটে রয়েছে। + +স্ট্রাকচার প্রকার: + +মান প্রকার: + +উৎস প্রকার: + +--- + +3. কর্মক্ষেত্রে কর্মচারীদের মনোবল নিয়ে একটি জরিপ যা একটি CSV ফাইলে সংরক্ষিত। + +স্ট্রাকচার প্রকার: + +মান প্রকার: + +উৎস প্রকার: + +--- + +4. জ্যোতির্বিজ্ঞানীরা একটি মহাকাশ প্রোব দ্বারা সংগৃহীত গ্যালাক্সির ডেটাবেসে অ্যাক্সেস করছেন। ডেটাতে প্রতিটি গ্যালাক্সিতে থাকা গ্রহের সংখ্যা অন্তর্ভুক্ত রয়েছে। + +স্ট্রাকচার প্রকার: + +মান প্রকার: + +উৎস প্রকার: + +--- + +5. একটি ব্যক্তিগত ফাইন্যান্স অ্যাপ ব্যবহারকারীর আর্থিক অ্যাকাউন্টে সংযোগ করতে API ব্যবহার করে তাদের নিট সম্পদ গণনা করে। তারা তাদের সমস্ত লেনদেন সারি এবং কলামের ফরম্যাটে দেখতে পারে যা একটি স্প্রেডশিটের মতো দেখায়। + +স্ট্রাকচার প্রকার: + +মান প্রকার: + +উৎস প্রকার: + +## মূল্যায়ন মানদণ্ড + +উদাহরণযোগ্য | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +সঠিকভাবে সমস্ত স্ট্রাকচার, মান, এবং উৎস সনাক্ত করে | সঠিকভাবে ৩টি স্ট্রাকচার, মান, এবং উৎস সনাক্ত করে | সঠিকভাবে ২টি বা তার কম স্ট্রাকচার, মান, এবং উৎস সনাক্ত করে | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/04-stats-and-probability/README.md b/translations/bn/1-Introduction/04-stats-and-probability/README.md new file mode 100644 index 00000000..b3a94930 --- /dev/null +++ b/translations/bn/1-Introduction/04-stats-and-probability/README.md @@ -0,0 +1,276 @@ + +# পরিসংখ্যান এবং সম্ভাবনার একটি সংক্ষিপ্ত পরিচিতি + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| পরিসংখ্যান এবং সম্ভাবনা - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +পরিসংখ্যান এবং সম্ভাবনা তত্ত্ব গণিতের দুটি অত্যন্ত সম্পর্কিত ক্ষেত্র যা ডেটা সায়েন্সের জন্য অত্যন্ত গুরুত্বপূর্ণ। গভীর গণিতের জ্ঞান ছাড়াই ডেটা নিয়ে কাজ করা সম্ভব, তবে অন্তত কিছু মৌলিক ধারণা জানা ভালো। এখানে আমরা একটি সংক্ষিপ্ত পরিচিতি উপস্থাপন করব যা আপনাকে শুরু করতে সাহায্য করবে। + +[![ভূমিকা ভিডিও](../../../../translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.bn.png)](https://youtu.be/Z5Zy85g4Yjw) + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/6) + +## সম্ভাবনা এবং র্যান্ডম ভেরিয়েবল + +**সম্ভাবনা** হল 0 এবং 1 এর মধ্যে একটি সংখ্যা যা একটি **ঘটনা** কতটা সম্ভাব্য তা প্রকাশ করে। এটি ইতিবাচক ফলাফলের সংখ্যা (যা ঘটনাটি ঘটায়) দ্বারা সংজ্ঞায়িত হয়, মোট ফলাফলের সংখ্যা দ্বারা ভাগ করে, ধরে নেওয়া হয় যে সমস্ত ফলাফল সমানভাবে সম্ভাব্য। উদাহরণস্বরূপ, যখন আমরা একটি পাশা গড়াই, একটি জোড় সংখ্যার সম্ভাবনা পাওয়ার সম্ভাবনা 3/6 = 0.5। + +যখন আমরা ঘটনাগুলি নিয়ে কথা বলি, আমরা **র্যান্ডম ভেরিয়েবল** ব্যবহার করি। উদাহরণস্বরূপ, একটি পাশা গড়ানোর সময় প্রাপ্ত সংখ্যাটি উপস্থাপনকারী র্যান্ডম ভেরিয়েবলটি 1 থেকে 6 পর্যন্ত মান নেবে। 1 থেকে 6 পর্যন্ত সংখ্যার সেটটিকে **নমুনা স্থান** বলা হয়। আমরা একটি নির্দিষ্ট মান নেওয়ার র্যান্ডম ভেরিয়েবলের সম্ভাবনা সম্পর্কে কথা বলতে পারি, উদাহরণস্বরূপ P(X=3)=1/6। + +উপরে উল্লেখিত উদাহরণে র্যান্ডম ভেরিয়েবলটিকে **বিচ্ছিন্ন** বলা হয়, কারণ এর একটি গণনাযোগ্য নমুনা স্থান রয়েছে, অর্থাৎ পৃথক মান রয়েছে যা গণনা করা যায়। এমন কিছু ক্ষেত্রে নমুনা স্থান বাস্তব সংখ্যার একটি পরিসর বা পুরো বাস্তব সংখ্যার সেট হতে পারে। এই ধরনের ভেরিয়েবলগুলিকে **ধারাবাহিক** বলা হয়। একটি ভাল উদাহরণ হল বাস আসার সময়। + +## সম্ভাবনা বিতরণ + +বিচ্ছিন্ন র্যান্ডম ভেরিয়েবলের ক্ষেত্রে, প্রতিটি ঘটনার সম্ভাবনাকে একটি ফাংশন P(X) দ্বারা বর্ণনা করা সহজ। নমুনা স্থান *S* থেকে প্রতিটি মান *s* এর জন্য এটি 0 থেকে 1 এর মধ্যে একটি সংখ্যা দেবে, যাতে সমস্ত ঘটনার জন্য P(X=s) এর সমস্ত মানের যোগফল 1 হবে। + +সবচেয়ে পরিচিত বিচ্ছিন্ন বিতরণ হল **সমUniform distribution**, যেখানে N উপাদানের একটি নমুনা স্থান থাকে, প্রতিটির জন্য সমান সম্ভাবনা 1/N। + +ধারাবাহিক ভেরিয়েবলের সম্ভাবনা বিতরণ বর্ণনা করা আরও কঠিন, যার মান কিছু [a,b] অন্তর থেকে বা পুরো বাস্তব সংখ্যার সেট ℝ থেকে নেওয়া হয়। বাস আসার সময়ের ক্ষেত্রে বিবেচনা করুন। প্রকৃতপক্ষে, প্রতিটি সঠিক আসার সময় *t* এর জন্য, বাসটি ঠিক সেই সময়ে আসার সম্ভাবনা 0! + +> এখন আপনি জানেন যে 0 সম্ভাবনা সহ ঘটনা ঘটে, এবং খুবই ঘন ঘন! অন্তত প্রতিবার যখন বাস আসে! + +আমরা শুধুমাত্র একটি ভেরিয়েবলের একটি নির্দিষ্ট মানের অন্তর মধ্যে পড়ার সম্ভাবনা সম্পর্কে কথা বলতে পারি, যেমন P(t1≤X2)। এই ক্ষেত্রে, সম্ভাবনা বিতরণ একটি **সম্ভাবনা ঘনত্ব ফাংশন** p(x) দ্বারা বর্ণনা করা হয়, যাতে + +![P(t_1\le X1, x2, ..., xn। আমরা ক্রমের **গড়** (বা **গাণিতিক গড়**) মানকে ঐতিহ্যগতভাবে সংজ্ঞায়িত করতে পারি (x1+x2+xn)/n। যখন আমরা নমুনার আকার বাড়াই (অর্থাৎ n→∞ সীমা গ্রহণ করি), আমরা বিতরণের গড় (যাকে **প্রত্যাশা**ও বলা হয়) পাব। আমরা প্রত্যাশাকে **E**(x) দ্বারা চিহ্নিত করব। + +> এটি প্রদর্শিত হতে পারে যে {x1, x2, ..., xN} মান এবং p1, p2, ..., pN সম্ভাবনা সহ যেকোনো বিচ্ছিন্ন বিতরণের জন্য, প্রত্যাশা হবে E(X)=x1p1+x2p2+...+xNpN। + +মানগুলি কতটা ছড়িয়ে আছে তা চিহ্নিত করতে, আমরা বৈচিত্র্য σ2 = ∑(xi - μ)2/n গণনা করতে পারি, যেখানে μ হল ক্রমের গড়। মান σ কে **স্ট্যান্ডার্ড ডেভিয়েশন** বলা হয়, এবং σ2 কে **বৈচিত্র্য** বলা হয়। + +## মোড, মিডিয়ান এবং কোয়ার্টাইল + +কখনও কখনও, গড় ডেটার "সাধারণ" মানকে যথাযথভাবে উপস্থাপন করে না। উদাহরণস্বরূপ, যখন কয়েকটি চরম মান থাকে যা সম্পূর্ণরূপে পরিসরের বাইরে থাকে, তারা গড়কে প্রভাবিত করতে পারে। আরেকটি ভাল সূচক হল **মিডিয়ান**, একটি মান যাতে ডেটা পয়েন্টের অর্ধেক তার চেয়ে কম এবং অন্য অর্ধেক - বেশি। + +ডেটার বিতরণ বুঝতে সাহায্য করার জন্য, **কোয়ার্টাইল** সম্পর্কে কথা বলা সহায়ক: + +* প্রথম কোয়ার্টাইল, বা Q1, একটি মান, যাতে 25% ডেটা তার চেয়ে কম পড়ে +* তৃতীয় কোয়ার্টাইল, বা Q3, একটি মান যাতে 75% ডেটা তার চেয়ে কম পড়ে + +গ্রাফিকভাবে আমরা মিডিয়ান এবং কোয়ার্টাইলের মধ্যে সম্পর্ককে **বক্স প্লট** নামে একটি ডায়াগ্রামে উপস্থাপন করতে পারি: + + + +এখানে আমরা **ইন্টার-কোয়ার্টাইল রেঞ্জ** IQR=Q3-Q1 এবং তথাকথিত **আউটলায়ার** - মানগুলি গণনা করি, যা [Q1-1.5*IQR,Q3+1.5*IQR] সীমানার বাইরে থাকে। + +যে সীমিত বিতরণে সম্ভাব্য মানের সংখ্যা কম থাকে, একটি ভাল "সাধারণ" মান হল সেই মান যা সবচেয়ে ঘন ঘন উপস্থিত হয়, যাকে **মোড** বলা হয়। এটি প্রায়শই শ্রেণীবদ্ধ ডেটার ক্ষেত্রে প্রয়োগ করা হয়, যেমন রং। একটি পরিস্থিতি বিবেচনা করুন যেখানে আমাদের দুটি গোষ্ঠী রয়েছে - কিছু যারা লালকে দৃঢ়ভাবে পছন্দ করে এবং অন্যরা যারা নীলকে পছন্দ করে। যদি আমরা সংখ্যার মাধ্যমে রং কোড করি, প্রিয় রঙের গড় মানটি কোথাও কমলা-সবুজ বর্ণালীতে থাকবে, যা কোনও গোষ্ঠীর প্রকৃত পছন্দ নির্দেশ করে না। তবে, মোড হয়তো একটি রঙ হবে, অথবা উভয় রঙ হবে, যদি তাদের জন্য ভোট দেওয়া মানুষের সংখ্যা সমান হয় (এই ক্ষেত্রে আমরা নমুনাকে **মাল্টিমোডাল** বলি)। + +## বাস্তব-জগতের ডেটা + +যখন আমরা বাস্তব জীবনের ডেটা বিশ্লেষণ করি, তারা প্রায়শই র্যান্ডম ভেরিয়েবল নয়, এই অর্থে যে আমরা অজানা ফলাফলের সাথে পরীক্ষা করি না। উদাহরণস্বরূপ, একটি বেসবল খেলোয়াড়দের দল এবং তাদের শরীরের ডেটা, যেমন উচ্চতা, ওজন এবং বয়স বিবেচনা করুন। এই সংখ্যাগুলি ঠিক র্যান্ডম নয়, তবে আমরা এখনও একই গণিত ধারণাগুলি প্রয়োগ করতে পারি। উদাহরণস্বরূপ, মানুষের ওজনের একটি ক্রমকে কিছু র্যান্ডম ভেরিয়েবল থেকে নেওয়া মানগুলির একটি ক্রম হিসাবে বিবেচনা করা যেতে পারে। নীচে [মেজর লীগ বেসবল](http://mlb.mlb.com/index.jsp) থেকে আসল বেসবল খেলোয়াড়দের ওজনের ক্রম রয়েছে, [এই ডেটাসেট](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) থেকে নেওয়া হয়েছে (আপনার সুবিধার জন্য, শুধুমাত্র প্রথম 20 মান দেখানো হয়েছে): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **Note**: এই ডেটাসেট নিয়ে কাজ করার উদাহরণ দেখতে, [সংযুক্ত নোটবুক](notebook.ipynb) দেখুন। এই পাঠের সময় বেশ কয়েকটি চ্যালেঞ্জ রয়েছে, এবং আপনি সেই নোটবুকে কিছু কোড যোগ করে সেগুলি সম্পূর্ণ করতে পারেন। যদি আপনি ডেটার উপর কাজ করতে না জানেন, চিন্তা করবেন না - আমরা পরে পাইথন ব্যবহার করে ডেটার উপর কাজ করার জন্য ফিরে আসব। যদি আপনি জুপিটার নোটবুকে কোড চালানোর পদ্ধতি না জানেন, [এই নিবন্ধটি](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) দেখুন। + +এখানে আমাদের ডেটার জন্য গড়, মিডিয়ান এবং কোয়ার্টাইল দেখানো একটি বক্স প্লট রয়েছে: + +![Weight Box Plot](../../../../translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.bn.png) + +আমাদের ডেটা বিভিন্ন খেলোয়াড়ের **ভূমিকা** সম্পর্কে তথ্য ধারণ করে, আমরা ভূমিকা অনুসারে বক্স প্লটও করতে পারি - এটি আমাদের প্যারামিটার মানগুলি ভূমিকা অনুসারে কীভাবে পরিবর্তিত হয় তা ধারণা পেতে সাহায্য করবে। এইবার আমরা উচ্চতা বিবেচনা করব: + +![Box plot by role](../../../../translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.bn.png) + +এই ডায়াগ্রামটি পরামর্শ দেয় যে, গড়ে, প্রথম বেসম্যানদের উচ্চতা দ্বিতীয় বেসম্যানদের উচ্চতার চেয়ে বেশি। এই পাঠে পরে আমরা শিখব কীভাবে আমরা এই অনুমানটি আরও আনুষ্ঠানিকভাবে পরীক্ষা করতে পারি এবং কীভাবে আমাদের ডেটা পরিসংখ্যানগতভাবে গুরুত্বপূর্ণ তা প্রদর্শন করতে পারি। + +> বাস্তব-জগতের ডেটার সাথে কাজ করার সময়, আমরা ধরে নিই যে সমস্ত ডেটা পয়েন্টগুলি কিছু সম্ভাবনা বিতরণ থেকে নেওয়া নমুনা। এই অনুমানটি আমাদের মেশিন লার্নিং কৌশল প্রয়োগ করতে এবং কার্যকর ভবিষ্যদ্বাণীমূলক মডেল তৈরি করতে দেয়। + +আমাদের ডেটার বিতরণ দেখতে, আমরা একটি **হিস্টোগ্রাম** নামে একটি গ্রাফ আঁকতে পারি। X-অক্ষটি বিভিন্ন ওজনের অন্তর (তথাকথিত **বিন**) ধারণ করবে, এবং উল্লম্ব অক্ষটি দেখাবে আমাদের র্যান্ডম ভেরিয়েবল নমুনা একটি প্রদত্ত অন্তরে কতবার ছিল। + +![Histogram of real world data](../../../../translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.bn.png) + +এই হিস্টোগ্রাম থেকে আপনি দেখতে পারেন যে সমস্ত মান একটি নির্দিষ্ট গড় ওজনের চারপাশে কেন্দ্রীভূত, এবং আমরা সেই ওজন থেকে যত দূরে যাই - সেই মানের ওজন তত কম দেখা যায়। অর্থাৎ, একটি বেসবল খেলোয়াড়ের ওজন গড় ওজন থেকে খুব আলাদা হওয়া খুবই অসম্ভাব্য। ওজনের বৈচিত্র্য দেখায় যে ওজনগুলি গড় থেকে কতটা ভিন্ন হতে পারে। + +> যদি আমরা অন্য লোকেদের ওজন নিই, যারা বেসবল লিগের অন্তর্ভুক্ত নয়, বিতরণটি সম্ভবত ভিন্ন হবে। তবে, বিতরণের আকৃতি একই থাকবে, তবে গড় এবং বৈচিত্র্য পরিবর্তিত হবে। সুতরাং, যদি আমরা আমাদের মডেলটি বেসবল খেলোয়াড়দের উপর প্রশিক্ষণ দিই, এটি সম্ভবত ভুল ফলাফল দেবে যখন এটি একটি বিশ্ববিদ্যালয়ের ছাত্রদের উপর প্রয়োগ করা হবে, কারণ অন্তর্নিহিত বিতরণটি ভিন্ন। + +## Normal Distribution + +আমরা উপরে যে ওজনের বিতরণ দেখেছি তা খুবই সাধারণ, এবং বাস্তব জগতের অনেক পরিমাপ একই ধরনের বিতরণ অনুসরণ করে, তবে বিভিন্ন গড় এবং বৈচিত্র্য সহ। এই বিতরণটিকে **Normal Distribution** বলা হয়, এবং এটি পরিসংখ্যানের ক্ষেত্রে একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। + +Normal Distribution ব্যবহার করা সম্ভাব্য বেসবল খেলোয়াড়দের সম্ভাব্য ওজন তৈরি করার একটি সঠিক উপায়। একবার আমরা গড় ওজন `mean` এবং স্ট্যান্ডার্ড ডেভিয়েশন `std` জানলে, আমরা নিম্নলিখিতভাবে 1000 ওজন নমুনা তৈরি করতে পারি: +```python +samples = np.random.normal(mean,std,1000) +``` + +যদি আমরা তৈরি করা নমুনার হিস্টোগ্রাম আঁকি, আমরা উপরে দেখানো ছবির সাথে খুব মিল দেখতে পাব। এবং যদি আমরা নমুনার সংখ্যা এবং বিনের সংখ্যা বাড়াই, আমরা একটি Normal Distribution-এর একটি ছবি তৈরি করতে পারি যা আদর্শের কাছাকাছি: + +![Normal Distribution with mean=0 and std.dev=1](../../../../translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.bn.png) + +*গড়=0 এবং স্ট্যান্ডার্ড ডেভিয়েশন=1 সহ Normal Distribution* + +## Confidence Intervals + +যখন আমরা বেসবল খেলোয়াড়দের ওজন সম্পর্কে কথা বলি, আমরা ধরে নিই যে একটি নির্দিষ্ট **র্যান্ডম ভেরিয়েবল W** রয়েছে যা সমস্ত বেসবল খেলোয়াড়দের ওজনের আদর্শ সম্ভাবনা বিতরণ (তথাকথিত **জনসংখ্যা**) এর সাথে সম্পর্কিত। আমাদের ওজনের ক্রম সমস্ত বেসবল খেলোয়াড়দের একটি উপসেটের সাথে সম্পর্কিত যা আমরা **নমুনা** বলি। একটি আকর্ষণীয় প্রশ্ন হল, আমরা কি W-এর বিতরণের পরামিতিগুলি জানতে পারি, অর্থাৎ জনসংখ্যার গড় এবং বৈচিত্র্য? + +সবচেয়ে সহজ উত্তর হবে আমাদের নমুনার গড় এবং বৈচিত্র্য গণনা করা। তবে, এটি ঘটতে পারে যে আমাদের র্যান্ডম নমুনা সম্পূর্ণ জনসংখ্যাকে সঠিকভাবে উপস্থাপন করে না। সুতরাং **Confidence Interval** সম্পর্কে কথা বলা অর্থপূর্ণ। +> **কনফিডেন্স ইন্টারভ্যাল** হলো একটি নির্দিষ্ট সম্ভাবনা (অথবা **কনফিডেন্স লেভেল**) অনুযায়ী আমাদের নমুনা থেকে প্রাপ্ত জনসংখ্যার প্রকৃত গড়ের একটি অনুমান। +ধরা যাক আমাদের একটি নমুনা X1, ..., Xn রয়েছে যা আমাদের ডিস্ট্রিবিউশন থেকে নেওয়া। প্রতিবার যখন আমরা আমাদের ডিস্ট্রিবিউশন থেকে একটি নমুনা নিই, তখন আমরা ভিন্ন গড় মান μ পাই। সুতরাং, μ-কে একটি র‍্যান্ডম ভেরিয়েবল হিসেবে বিবেচনা করা যেতে পারে। একটি **কনফিডেন্স ইন্টারভ্যাল** (confidence interval) যার কনফিডেন্স p, এটি দুটি মানের একটি জোড়া (Lp,Rp), যাতে **P**(Lp≤μ≤Rp) = p হয়, অর্থাৎ মাপা গড় মান এই ইন্টারভ্যালের মধ্যে পড়ার সম্ভাবনা p-এর সমান। + +এই কনফিডেন্স ইন্টারভ্যাল কীভাবে গণনা করা হয় তা বিশদে আলোচনা করা আমাদের এই সংক্ষিপ্ত পরিচিতির বাইরে। আরও বিস্তারিত তথ্য [উইকিপিডিয়ায়](https://en.wikipedia.org/wiki/Confidence_interval) পাওয়া যাবে। সংক্ষেপে, আমরা প্রকৃত জনসংখ্যার গড়ের তুলনায় গণিতকৃত নমুনার গড়ের ডিস্ট্রিবিউশনকে সংজ্ঞায়িত করি, যাকে **স্টুডেন্ট ডিস্ট্রিবিউশন** বলা হয়। + +> **মজার তথ্য**: স্টুডেন্ট ডিস্ট্রিবিউশনের নামকরণ করা হয়েছে গণিতবিদ উইলিয়াম সিলি গসেট-এর নামে, যিনি "স্টুডেন্ট" ছদ্মনামে তার গবেষণা প্রকাশ করেছিলেন। তিনি গিনেস ব্রুয়ারিতে কাজ করতেন, এবং একটি মতানুযায়ী, তার নিয়োগকর্তা চায়নি যে সাধারণ মানুষ জানুক যে তারা কাঁচামালের গুণমান নির্ধারণে পরিসংখ্যানগত পরীক্ষা ব্যবহার করছিল। + +যদি আমরা আমাদের জনসংখ্যার গড় μ কনফিডেন্স p-সহ অনুমান করতে চাই, তাহলে আমাদের স্টুডেন্ট ডিস্ট্রিবিউশন A-এর *(1-p)/2-থ পারসেন্টাইল* নিতে হবে, যা টেবিল থেকে নেওয়া যেতে পারে বা পরিসংখ্যান সফটওয়্যারের (যেমন Python, R ইত্যাদি) কিছু বিল্ট-ইন ফাংশন ব্যবহার করে গণনা করা যেতে পারে। এরপর μ-এর ইন্টারভ্যাল হবে X±A*D/√n, যেখানে X হলো নমুনার প্রাপ্ত গড়, D হলো স্ট্যান্ডার্ড ডেভিয়েশন। + +> **নোট**: আমরা [ডিগ্রিজ অফ ফ্রিডম](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)) নামক একটি গুরুত্বপূর্ণ ধারণার আলোচনা বাদ দিয়েছি, যা স্টুডেন্ট ডিস্ট্রিবিউশনের সাথে সম্পর্কিত। এই ধারণাটি আরও গভীরভাবে বুঝতে পরিসংখ্যানের সম্পূর্ণ বইগুলো দেখতে পারেন। + +ওজন এবং উচ্চতার জন্য কনফিডেন্স ইন্টারভ্যাল গণনার একটি উদাহরণ [সংযুক্ত নোটবুকে](notebook.ipynb) দেওয়া হয়েছে। + +| p | ওজনের গড় | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +লক্ষ্য করুন যে কনফিডেন্স সম্ভাবনা যত বেশি হয়, কনফিডেন্স ইন্টারভ্যাল তত বিস্তৃত হয়। + +## হাইপোথিসিস টেস্টিং + +আমাদের বেসবল খেলোয়াড়দের ডেটাসেটে বিভিন্ন খেলোয়াড়ের ভূমিকা রয়েছে, যা নিচের টেবিলে সংক্ষেপে দেখানো হয়েছে (কীভাবে এই টেবিলটি গণনা করা যায় তা দেখতে [সংযুক্ত নোটবুক](notebook.ipynb) দেখুন): + +| ভূমিকা | উচ্চতা | ওজন | সংখ্যা | +|------|--------|--------|-------| +| ক্যাচার | 72.723684 | 204.328947 | 76 | +| ডিজাইনেটেড হিটার | 74.222222 | 220.888889 | 18 | +| ফার্স্ট বেসম্যান | 74.000000 | 213.109091 | 55 | +| আউটফিল্ডার | 73.010309 | 199.113402 | 194 | +| রিলিফ পিচার | 74.374603 | 203.517460 | 315 | +| সেকেন্ড বেসম্যান | 71.362069 | 184.344828 | 58 | +| শর্টস্টপ | 71.903846 | 182.923077 | 52 | +| স্টার্টিং পিচার | 74.719457 | 205.163636 | 221 | +| থার্ড বেসম্যান | 73.044444 | 200.955556 | 45 | + +আমরা লক্ষ্য করি যে ফার্স্ট বেসম্যানদের গড় উচ্চতা সেকেন্ড বেসম্যানদের চেয়ে বেশি। সুতরাং, আমরা এই সিদ্ধান্তে পৌঁছাতে পারি যে **ফার্স্ট বেসম্যানরা সেকেন্ড বেসম্যানদের চেয়ে লম্বা।** + +> এই বক্তব্যটিকে **একটি হাইপোথিসিস** বলা হয়, কারণ আমরা জানি না এটি আসলে সত্য কিনা। + +তবে, সবসময় এটি স্পষ্ট নয় যে আমরা এই সিদ্ধান্ত নিতে পারি। উপরের আলোচনায় আমরা জানি যে প্রতিটি গড়ের সাথে একটি কনফিডেন্স ইন্টারভ্যাল যুক্ত থাকে, এবং এই পার্থক্যটি কেবল একটি পরিসংখ্যানগত ত্রুটি হতে পারে। আমাদের হাইপোথিসিস পরীক্ষা করার জন্য আরও আনুষ্ঠানিক পদ্ধতির প্রয়োজন। + +আসুন ফার্স্ট এবং সেকেন্ড বেসম্যানদের উচ্চতার জন্য কনফিডেন্স ইন্টারভ্যাল আলাদাভাবে গণনা করি: + +| কনফিডেন্স | ফার্স্ট বেসম্যান | সেকেন্ড বেসম্যান | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +আমরা দেখতে পাই যে কোনো কনফিডেন্স লেভেলেই ইন্টারভ্যালগুলো ওভারল্যাপ করে না। এটি প্রমাণ করে যে ফার্স্ট বেসম্যানরা সেকেন্ড বেসম্যানদের চেয়ে লম্বা। + +আরও আনুষ্ঠানিকভাবে, আমরা যে সমস্যাটি সমাধান করছি তা হলো **দুটি সম্ভাব্য ডিস্ট্রিবিউশন একই কিনা**, বা অন্তত তাদের প্যারামিটারগুলো একই কিনা তা দেখা। ডিস্ট্রিবিউশন অনুযায়ী, আমাদের জন্য বিভিন্ন টেস্ট ব্যবহার করতে হয়। যদি আমরা জানি যে আমাদের ডিস্ট্রিবিউশনগুলো নরমাল, তাহলে আমরা **[স্টুডেন্ট টি-টেস্ট](https://en.wikipedia.org/wiki/Student%27s_t-test)** প্রয়োগ করতে পারি। + +স্টুডেন্ট টি-টেস্টে, আমরা তথাকথিত **টি-ভ্যালু** গণনা করি, যা গড়ের পার্থক্যকে নির্দেশ করে, ভ্যারিয়েন্সকে বিবেচনায় রেখে। এটি প্রমাণিত যে টি-ভ্যালু **স্টুডেন্ট ডিস্ট্রিবিউশন** অনুসরণ করে, যা আমাদের একটি নির্দিষ্ট কনফিডেন্স লেভেল **p**-এর জন্য থ্রেশহোল্ড মান পেতে সাহায্য করে (এটি গণনা করা যায় বা সংখ্যাগত টেবিল থেকে দেখা যায়)। এরপর আমরা টি-ভ্যালুকে এই থ্রেশহোল্ডের সাথে তুলনা করি হাইপোথিসিস অনুমোদন বা প্রত্যাখ্যান করার জন্য। + +Python-এ, আমরা **SciPy** প্যাকেজ ব্যবহার করতে পারি, যা `ttest_ind` ফাংশন অন্তর্ভুক্ত করে (অন্যান্য অনেক দরকারী পরিসংখ্যানগত ফাংশনের পাশাপাশি!)। এটি আমাদের জন্য টি-ভ্যালু গণনা করে এবং কনফিডেন্স p-ভ্যালুর রিভার্স লুকআপও করে, যাতে আমরা কেবল কনফিডেন্স দেখে সিদ্ধান্ত নিতে পারি। + +উদাহরণস্বরূপ, ফার্স্ট এবং সেকেন্ড বেসম্যানদের উচ্চতার তুলনা আমাদের নিম্নলিখিত ফলাফল দেয়: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +আমাদের ক্ষেত্রে, p-ভ্যালু খুবই কম, যা নির্দেশ করে যে ফার্স্ট বেসম্যানরা লম্বা হওয়ার পক্ষে শক্তিশালী প্রমাণ রয়েছে। + +এছাড়াও, আমরা বিভিন্ন ধরনের হাইপোথিসিস পরীক্ষা করতে পারি, যেমন: +* প্রমাণ করা যে একটি নির্দিষ্ট নমুনা কোনো ডিস্ট্রিবিউশন অনুসরণ করে। আমাদের ক্ষেত্রে আমরা ধরে নিয়েছি যে উচ্চতাগুলো নরমাল ডিস্ট্রিবিউটেড, তবে এটি আনুষ্ঠানিক পরিসংখ্যানগত যাচাইয়ের প্রয়োজন। +* প্রমাণ করা যে একটি নমুনার গড় মান কোনো পূর্বনির্ধারিত মানের সাথে মেলে। +* একাধিক নমুনার গড়ের তুলনা করা (যেমন: বিভিন্ন বয়সের গোষ্ঠীর মধ্যে সুখের স্তরের পার্থক্য কী)। + +## বৃহৎ সংখ্যার আইন এবং সেন্ট্রাল লিমিট থিওরেম + +নরমাল ডিস্ট্রিবিউশন এত গুরুত্বপূর্ণ হওয়ার একটি কারণ হলো তথাকথিত **সেন্ট্রাল লিমিট থিওরেম**। ধরা যাক আমাদের কাছে N সংখ্যক স্বাধীন মান X1, ..., XN রয়েছে, যা কোনো ডিস্ট্রিবিউশন থেকে গড় μ এবং ভ্যারিয়েন্স σ2 সহ নমুনা করা হয়েছে। তাহলে, যথেষ্ট বড় N-এর জন্য (অর্থাৎ, যখন N→∞), ΣiXi-এর গড় নরমাল ডিস্ট্রিবিউটেড হবে, গড় μ এবং ভ্যারিয়েন্স σ2/N সহ। + +> সেন্ট্রাল লিমিট থিওরেমের আরেকটি ব্যাখ্যা হলো, ডিস্ট্রিবিউশন যাই হোক না কেন, যখন আপনি যেকোনো র‍্যান্ডম ভেরিয়েবলের মানের যোগফলের গড় গণনা করেন, আপনি নরমাল ডিস্ট্রিবিউশন পাবেন। + +সেন্ট্রাল লিমিট থিওরেম থেকে আরও বোঝা যায় যে, যখন N→∞, নমুনার গড় μ-এর সমান হওয়ার সম্ভাবনা 1 হয়ে যায়। এটি **বৃহৎ সংখ্যার আইন** নামে পরিচিত। + +## কোভেরিয়েন্স এবং করেলেশন + +ডেটা সায়েন্সের একটি কাজ হলো ডেটার মধ্যে সম্পর্ক খুঁজে বের করা। আমরা বলি যে দুটি সিকোয়েন্স **করেলেট** করে যখন তারা একই সময়ে একই রকম আচরণ প্রদর্শন করে, অর্থাৎ তারা একসাথে বাড়ে/কমে, অথবা একটি সিকোয়েন্স বাড়লে অন্যটি কমে এবং এর বিপরীত। অন্য কথায়, দুটি সিকোয়েন্সের মধ্যে কোনো সম্পর্ক রয়েছে বলে মনে হয়। + +> করেলেশন সবসময় দুটি সিকোয়েন্সের মধ্যে কার্যকারণ সম্পর্ক নির্দেশ করে না; কখনও কখনও উভয় ভেরিয়েবল কোনো বাহ্যিক কারণের উপর নির্ভর করতে পারে, অথবা এটি কেবল কাকতালীয় হতে পারে যে দুটি সিকোয়েন্স করেলেট করে। তবে, শক্তিশালী গাণিতিক করেলেশন দুটি ভেরিয়েবলের মধ্যে কোনোভাবে সংযোগ থাকার একটি ভালো ইঙ্গিত। + +গাণিতিকভাবে, দুটি র‍্যান্ডম ভেরিয়েবলের মধ্যে সম্পর্ক দেখানোর প্রধান ধারণা হলো **কোভেরিয়েন্স**, যা এভাবে গণনা করা হয়: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]। আমরা উভয় ভেরিয়েবলের গড় মান থেকে বিচ্যুতি গণনা করি, এবং তারপর সেই বিচ্যুতিগুলোর গুণফল। যদি উভয় ভেরিয়েবল একসাথে বিচ্যুত হয়, গুণফল সবসময় একটি ধনাত্মক মান হবে, যা ধনাত্মক কোভেরিয়েন্সে যোগ হবে। যদি উভয় ভেরিয়েবল সিঙ্কের বাইরে বিচ্যুত হয় (অর্থাৎ একটি গড়ের নিচে পড়ে যখন অন্যটি গড়ের উপরে ওঠে), আমরা সবসময় ঋণাত্মক সংখ্যা পাব, যা ঋণাত্মক কোভেরিয়েন্সে যোগ হবে। যদি বিচ্যুতিগুলো নির্ভরশীল না হয়, তারা আনুমানিক শূন্যে যোগ হবে। + +কোভেরিয়েন্সের পরম মান আমাদের করেলেশন কতটা বড় তা সম্পর্কে খুব বেশি কিছু বলে না, কারণ এটি প্রকৃত মানগুলোর মাত্রার উপর নির্ভর করে। এটি স্বাভাবিক করতে, আমরা উভয় ভেরিয়েবলের স্ট্যান্ডার্ড ডেভিয়েশন দ্বারা কোভেরিয়েন্স ভাগ করতে পারি, যাতে **করেলেশন** পাওয়া যায়। ভালো দিক হলো করেলেশন সবসময় [-1,1]-এর মধ্যে থাকে, যেখানে 1 মানে মানগুলোর মধ্যে শক্তিশালী ধনাত্মক করেলেশন, -1 মানে শক্তিশালী ঋণাত্মক করেলেশন, এবং 0 মানে কোনো করেলেশন নেই (ভেরিয়েবলগুলো স্বাধীন)। + +**উদাহরণ**: আমরা বেসবল খেলোয়াড়দের ওজন এবং উচ্চতার মধ্যে করেলেশন গণনা করতে পারি উপরের ডেটাসেট থেকে: +```python +print(np.corrcoef(weights,heights)) +``` +ফলস্বরূপ, আমরা একটি **করেলেশন ম্যাট্রিক্স** পাই যা এরকম দেখায়: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> করেলেশন ম্যাট্রিক্স C যেকোনো সংখ্যক ইনপুট সিকোয়েন্স S1, ..., Sn-এর জন্য গণনা করা যেতে পারে। Cij-এর মান হলো Si এবং Sj-এর মধ্যে করেলেশন, এবং ডায়াগোনাল উপাদানগুলো সবসময় 1 (যা Si-এর স্ব-করেলেশন)। + +আমাদের ক্ষেত্রে, মান 0.53 নির্দেশ করে যে একজন ব্যক্তির ওজন এবং উচ্চতার মধ্যে কিছু করেলেশন রয়েছে। আমরা একটি স্ক্যাটার প্লটও তৈরি করতে পারি একটি মানের বিপরীতে অন্য মানের সম্পর্কটি চাক্ষুষভাবে দেখতে: + +![ওজন এবং উচ্চতার মধ্যে সম্পর্ক](../../../../translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.bn.png) + +> করেলেশন এবং কোভেরিয়েন্সের আরও উদাহরণ [সংযুক্ত নোটবুকে](notebook.ipynb) পাওয়া যাবে। + +## উপসংহার + +এই অধ্যায়ে আমরা শিখেছি: + +* ডেটার মৌলিক পরিসংখ্যানগত বৈশিষ্ট্য, যেমন গড়, ভ্যারিয়েন্স, মোড এবং কোয়ার্টাইল +* র‍্যান্ডম ভেরিয়েবলের বিভিন্ন ডিস্ট্রিবিউশন, যার মধ্যে নরমাল ডিস্ট্রিবিউশন অন্তর্ভুক্ত +* বিভিন্ন বৈশিষ্ট্যের মধ্যে করেলেশন কীভাবে খুঁজে বের করতে হয় +* কিছু হাইপোথিসিস প্রমাণ করার জন্য গাণিতিক এবং পরিসংখ্যানগত পদ্ধতি কীভাবে ব্যবহার করতে হয় +* ডেটা নমুনা থেকে র‍্যান্ডম ভেরিয়েবলের জন্য কনফিডেন্স ইন্টারভ্যাল কীভাবে গণনা করতে হয় + +যদিও এটি সম্ভাবনা এবং পরিসংখ্যানের মধ্যে বিদ্যমান বিষয়গুলোর একটি সম্পূর্ণ তালিকা নয়, এটি এই কোর্সে একটি ভালো সূচনা দেওয়ার জন্য যথেষ্ট। + +## 🚀 চ্যালেঞ্জ + +নোটবুকে দেওয়া নমুনা কোড ব্যবহার করে অন্যান্য হাইপোথিসিস পরীক্ষা করুন: +1. ফার্স্ট বেসম্যানরা সেকেন্ড বেসম্যানদের চেয়ে বেশি বয়সী +2. ফার্স্ট বেসম্যানরা থার্ড বেসম্যানদের চেয়ে লম্বা +3. শর্টস্টপরা সেকেন্ড বেসম্যানদের চেয়ে লম্বা + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/7) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +সম্ভাবনা এবং পরিসংখ্যান এত বিস্তৃত একটি বিষয় যে এটি একটি আলাদা কোর্সের দাবি রাখে। আপনি যদি তত্ত্বে আরও গভীরভাবে যেতে আগ্রহী হন, তাহলে নিম্নলিখিত বইগুলো পড়তে পারেন: + +1. নিউইয়র্ক ইউনিভার্সিটির [কার্লোস ফার্নান্দেজ-গ্রান্ডা](https://cims.nyu.edu/~cfgranda/) এর চমৎকার লেকচার নোট [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (অনলাইনে উপলব্ধ) +1. [পিটার এবং অ্যান্ড্রু ব্রুস। Practical Statistics for Data Scientists।](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[R-এ নমুনা কোড](https://github.com/andrewgbruce/statistics-for-data-scientists)]। +1. [জেমস ডি. মিলার। Statistics for Data Science](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[R-এ নমুনা কোড](https://github.com/PacktPublishing/Statistics-for-Data-Science)]। + +## অ্যাসাইনমেন্ট + +[ছোট ডায়াবেটিস স্টাডি](assignment.md) + +## কৃতজ্ঞতা + +এই পাঠটি ভালোবাসা দিয়ে রচনা করেছেন [দিমিত্রি সশনিকভ](http://soshnikov.com) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/04-stats-and-probability/assignment.md b/translations/bn/1-Introduction/04-stats-and-probability/assignment.md new file mode 100644 index 00000000..cfa47e79 --- /dev/null +++ b/translations/bn/1-Introduction/04-stats-and-probability/assignment.md @@ -0,0 +1,40 @@ + +# ছোট ডায়াবেটিস গবেষণা + +এই অ্যাসাইনমেন্টে, আমরা ডায়াবেটিস রোগীদের একটি ছোট ডেটাসেট নিয়ে কাজ করব যা [এখান থেকে](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html) নেওয়া হয়েছে। + +| | বয়স | লিঙ্গ | BMI | BP | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|-----|-----|-----|----|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2 | 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ...| ...| ...| ...| ...| ...| ...| ... | + +## নির্দেশনা + +* [অ্যাসাইনমেন্ট নোটবুক](assignment.ipynb) একটি জুপিটার নোটবুক পরিবেশে খুলুন +* নোটবুকে তালিকাভুক্ত সমস্ত কাজ সম্পন্ন করুন, যথা: + * [ ] সমস্ত মানের গড় এবং বৈচিত্র্য গণনা করুন + * [ ] লিঙ্গ অনুযায়ী BMI, BP এবং Y এর জন্য বক্সপ্লট তৈরি করুন + * [ ] বয়স, লিঙ্গ, BMI এবং Y ভেরিয়েবলগুলোর বিতরণ কী? + * [ ] বিভিন্ন ভেরিয়েবল এবং রোগের অগ্রগতির (Y) মধ্যে সম্পর্ক পরীক্ষা করুন + * [ ] এই হাইপোথিসিস পরীক্ষা করুন যে ডায়াবেটিসের অগ্রগতির মাত্রা পুরুষ এবং নারীদের মধ্যে ভিন্ন + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +সমস্ত প্রয়োজনীয় কাজ সম্পন্ন, গ্রাফিক্যালি উপস্থাপিত এবং ব্যাখ্যা করা হয়েছে | বেশিরভাগ কাজ সম্পন্ন, গ্রাফ এবং/অথবা প্রাপ্ত মান থেকে ব্যাখ্যা বা মূল বক্তব্য অনুপস্থিত | শুধুমাত্র মৌলিক কাজ যেমন গড়/বৈচিত্র্য গণনা এবং মৌলিক প্লট সম্পন্ন, ডেটা থেকে কোনো সিদ্ধান্ত নেওয়া হয়নি + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/1-Introduction/README.md b/translations/bn/1-Introduction/README.md new file mode 100644 index 00000000..25a459dd --- /dev/null +++ b/translations/bn/1-Introduction/README.md @@ -0,0 +1,31 @@ + +# ডেটা সায়েন্সের পরিচিতি + +![ডেটা কার্যক্রমে](../../../translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.bn.jpg) +> ছবি: স্টিফেন ডসন এর তোলা আনস্প্ল্যাশ এ + +এই পাঠগুলোতে, আপনি শিখবেন কীভাবে ডেটা সায়েন্স সংজ্ঞায়িত হয় এবং একজন ডেটা বিজ্ঞানীর জন্য বিবেচনা করতে হবে এমন নৈতিক বিষয়গুলো সম্পর্কে জানবেন। আপনি ডেটা কীভাবে সংজ্ঞায়িত হয় তা শিখবেন এবং পরিসংখ্যান ও সম্ভাবনার বিষয়ে কিছুটা ধারণা পাবেন, যা ডেটা সায়েন্সের মূল একাডেমিক ক্ষেত্র। + +### বিষয়সমূহ + +1. [ডেটা সায়েন্স সংজ্ঞায়িত করা](01-defining-data-science/README.md) +2. [ডেটা সায়েন্সের নৈতিকতা](02-ethics/README.md) +3. [ডেটা সংজ্ঞায়িত করা](03-defining-data/README.md) +4. [পরিসংখ্যান ও সম্ভাবনার পরিচিতি](04-stats-and-probability/README.md) + +### কৃতজ্ঞতা + +এই পাঠগুলো ❤️ দিয়ে লিখেছেন [নিত্য নারাসিমহান](https://twitter.com/nitya) এবং [দিমিত্রি সশনিকভ](https://twitter.com/shwars)। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/05-relational-databases/README.md b/translations/bn/2-Working-With-Data/05-relational-databases/README.md new file mode 100644 index 00000000..48a8e462 --- /dev/null +++ b/translations/bn/2-Working-With-Data/05-relational-databases/README.md @@ -0,0 +1,195 @@ + +# ডেটার সাথে কাজ করা: রিলেশনাল ডেটাবেস + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) এর স্কেচনোট ](../../sketchnotes/05-RelationalData.png)| +|:---:| +| ডেটার সাথে কাজ করা: রিলেশনাল ডেটাবেস - _[@nitya](https://twitter.com/nitya) এর স্কেচনোট_ | + +সম্ভবত আপনি অতীতে তথ্য সংরক্ষণ করার জন্য একটি স্প্রেডশিট ব্যবহার করেছেন। সেখানে সারি এবং কলামের একটি সেট ছিল, যেখানে সারিগুলো তথ্য (বা ডেটা) ধারণ করত এবং কলামগুলো সেই তথ্যের বর্ণনা দিত (যাকে কখনও কখনও মেটাডেটা বলা হয়)। একটি রিলেশনাল ডেটাবেস এই মূল নীতির উপর ভিত্তি করে তৈরি হয়, যেখানে টেবিলের মধ্যে কলাম এবং সারি থাকে, যা আপনাকে একাধিক টেবিলে তথ্য ছড়িয়ে রাখতে দেয়। এটি আপনাকে আরও জটিল ডেটার সাথে কাজ করতে, পুনরাবৃত্তি এড়াতে এবং ডেটা অনুসন্ধানের ক্ষেত্রে নমনীয়তা প্রদান করে। চলুন রিলেশনাল ডেটাবেসের ধারণাগুলো অন্বেষণ করি। + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/8) + +## সবকিছু শুরু হয় টেবিল দিয়ে + +একটি রিলেশনাল ডেটাবেসের মূল অংশ হলো টেবিল। স্প্রেডশিটের মতোই, একটি টেবিল হলো কলাম এবং সারির একটি সংগ্রহ। সারি ডেটা বা তথ্য ধারণ করে, যেমন একটি শহরের নাম বা বৃষ্টিপাতের পরিমাণ। কলামগুলো সেই ডেটার বর্ণনা দেয় যা তারা সংরক্ষণ করে। + +চলুন আমাদের অনুসন্ধান শুরু করি একটি টেবিল তৈরি করে যেখানে শহরগুলোর তথ্য সংরক্ষণ করা হবে। আমরা তাদের নাম এবং দেশ দিয়ে শুরু করতে পারি। আপনি এটি একটি টেবিলে নিম্নরূপ সংরক্ষণ করতে পারেন: + +| শহর | দেশ | +| -------- | ------------- | +| টোকিও | জাপান | +| আটলান্টা | যুক্তরাষ্ট্র | +| অকল্যান্ড | নিউজিল্যান্ড | + +লক্ষ করুন **শহর**, **দেশ** এবং **জনসংখ্যা** কলামগুলো সংরক্ষিত ডেটার বর্ণনা দেয়, এবং প্রতিটি সারি একটি শহরের তথ্য ধারণ করে। + +## একটি একক টেবিল পদ্ধতির সীমাবদ্ধতা + +সম্ভবত উপরের টেবিলটি আপনার কাছে বেশ পরিচিত মনে হচ্ছে। চলুন আমাদের ডেটাবেসে কিছু অতিরিক্ত তথ্য যোগ করি - বার্ষিক বৃষ্টিপাত (মিলিমিটারে)। আমরা ২০১৮, ২০১৯ এবং ২০২০ সালের দিকে মনোযোগ দেব। যদি আমরা টোকিওর জন্য এটি যোগ করি, এটি নিম্নরূপ হতে পারে: + +| শহর | দেশ | বছর | পরিমাণ | +| ----- | ------- | ---- | ------ | +| টোকিও | জাপান | ২০২০ | ১৬৯০ | +| টোকিও | জাপান | ২০১৯ | ১৮৭৪ | +| টোকিও | জাপান | ২০১৮ | ১৪৪৫ | + +আমাদের টেবিল সম্পর্কে আপনি কী লক্ষ্য করেন? আপনি লক্ষ্য করতে পারেন যে আমরা শহরের নাম এবং দেশ বারবার পুনরাবৃত্তি করছি। এটি অনেক বেশি স্টোরেজ নিতে পারে এবং এটি মূলত অপ্রয়োজনীয়। কারণ, টোকিওর জন্য আমরা শুধুমাত্র একটি নামের তথ্য চাই। + +ঠিক আছে, চলুন অন্য কিছু চেষ্টা করি। প্রতিটি বছরের জন্য নতুন কলাম যোগ করি: + +| শহর | দেশ | ২০১৮ | ২০১৯ | ২০২০ | +| -------- | ------------- | ---- | ---- | ---- | +| টোকিও | জাপান | ১৪৪৫ | ১৮৭৪ | ১৬৯০ | +| আটলান্টা | যুক্তরাষ্ট্র | ১৭৭৯ | ১১১১ | ১৬৮৩ | +| অকল্যান্ড | নিউজিল্যান্ড | ১৩৮৬ | ৯৪২ | ১১৭৬ | + +যদিও এটি সারির পুনরাবৃত্তি এড়ায়, এটি কয়েকটি অন্যান্য চ্যালেঞ্জ যোগ করে। প্রতিবার নতুন বছর যোগ করার সময় আমাদের টেবিলের কাঠামো পরিবর্তন করতে হবে। এছাড়াও, আমাদের ডেটা বাড়ার সাথে সাথে বছরের তথ্য কলাম হিসেবে রাখা আরও জটিল হয়ে উঠবে। + +এ কারণেই আমাদের একাধিক টেবিল এবং সম্পর্কের প্রয়োজন। ডেটা ভাগ করে আমরা পুনরাবৃত্তি এড়াতে পারি এবং ডেটার সাথে কাজ করার ক্ষেত্রে আরও নমনীয়তা পেতে পারি। + +## সম্পর্কের ধারণা + +চলুন আমাদের ডেটায় ফিরে যাই এবং এটি কীভাবে ভাগ করা যায় তা নির্ধারণ করি। আমরা জানি যে আমরা শহরের নাম এবং দেশ সংরক্ষণ করতে চাই, তাই এটি সম্ভবত একটি টেবিলে ভালোভাবে কাজ করবে। + +| শহর | দেশ | +| -------- | ------------- | +| টোকিও | জাপান | +| আটলান্টা | যুক্তরাষ্ট্র | +| অকল্যান্ড | নিউজিল্যান্ড | + +কিন্তু পরবর্তী টেবিল তৈরি করার আগে, আমাদের প্রতিটি শহরকে কীভাবে রেফারেন্স করতে হবে তা নির্ধারণ করতে হবে। আমাদের একটি আইডেন্টিফায়ার, আইডি বা (প্রযুক্তিগত ডেটাবেস পরিভাষায়) একটি প্রাইমারি কী প্রয়োজন। একটি প্রাইমারি কী হলো একটি মান যা একটি টেবিলের একটি নির্দিষ্ট সারি চিহ্নিত করতে ব্যবহৃত হয়। যদিও এটি নিজেই একটি মানের উপর ভিত্তি করে হতে পারে (যেমন আমরা শহরের নাম ব্যবহার করতে পারি), এটি প্রায়শই একটি সংখ্যা বা অন্য কোনো আইডেন্টিফায়ার হওয়া উচিত। আমরা চাই না যে আইডি কখনও পরিবর্তিত হোক, কারণ এটি সম্পর্ক ভেঙে দেবে। বেশিরভাগ ক্ষেত্রে প্রাইমারি কী বা আইডি একটি স্বয়ংক্রিয়ভাবে তৈরি সংখ্যা হবে। + +> ✅ প্রাইমারি কী প্রায়ই সংক্ষেপে PK বলা হয় + +### শহরসমূহ + +| city_id | শহর | দেশ | +| ------- | -------- | ------------- | +| 1 | টোকিও | জাপান | +| 2 | আটলান্টা | যুক্তরাষ্ট্র | +| 3 | অকল্যান্ড | নিউজিল্যান্ড | + +> ✅ আপনি লক্ষ্য করবেন যে আমরা এই পাঠে "id" এবং "প্রাইমারি কী" শব্দগুলো বিনিময়যোগ্যভাবে ব্যবহার করছি। এই ধারণাগুলো ডেটাফ্রেমের ক্ষেত্রেও প্রযোজ্য, যা আপনি পরে অন্বেষণ করবেন। ডেটাফ্রেমগুলো "প্রাইমারি কী" পরিভাষা ব্যবহার করে না, তবে আপনি লক্ষ্য করবেন যে তারা একইভাবে আচরণ করে। + +আমাদের শহর টেবিল তৈরি করার পর, চলুন বৃষ্টিপাত সংরক্ষণ করি। শহরের সম্পূর্ণ তথ্য পুনরাবৃত্তি করার পরিবর্তে, আমরা আইডি ব্যবহার করতে পারি। আমরা নিশ্চিত করতে পারি যে নতুন তৈরি টেবিলেও একটি *id* কলাম রয়েছে, কারণ সব টেবিলে একটি id বা প্রাইমারি কী থাকা উচিত। + +### বৃষ্টিপাত + +| rainfall_id | city_id | বছর | পরিমাণ | +| ----------- | ------- | ---- | ------ | +| 1 | 1 | ২০১৮ | ১৪৪৫ | +| 2 | 1 | ২০১৯ | ১৮৭৪ | +| 3 | 1 | ২০২০ | ১৬৯০ | +| 4 | 2 | ২০১৮ | ১৭৭৯ | +| 5 | 2 | ২০১৯ | ১১১১ | +| 6 | 2 | ২০২০ | ১৬৮৩ | +| 7 | 3 | ২০১৮ | ১৩৮৬ | +| 8 | 3 | ২০১৯ | ৯৪২ | +| 9 | 3 | ২০২০ | ১১৭৬ | + +লক্ষ করুন **city_id** কলামটি নতুন তৈরি **rainfall** টেবিলের মধ্যে রয়েছে। এই কলামটি **cities** টেবিলের আইডিগুলোকে রেফারেন্স করে। প্রযুক্তিগত রিলেশনাল ডেটা পরিভাষায়, এটি একটি **ফরেন কী** বলা হয়; এটি অন্য একটি টেবিলের প্রাইমারি কী। আপনি এটিকে একটি রেফারেন্স বা পয়েন্টার হিসেবে ভাবতে পারেন। **city_id** 1 টোকিওকে রেফারেন্স করে। + +> [!NOTE] ফরেন কী প্রায়ই সংক্ষেপে FK বলা হয় + +## ডেটা পুনরুদ্ধার করা + +আমাদের ডেটা দুটি টেবিলে ভাগ করার পর, আপনি হয়তো ভাবছেন কীভাবে এটি পুনরুদ্ধার করা যায়। যদি আমরা MySQL, SQL Server বা Oracle-এর মতো একটি রিলেশনাল ডেটাবেস ব্যবহার করি, আমরা একটি ভাষা ব্যবহার করতে পারি যার নাম Structured Query Language বা SQL। SQL (কখনও কখনও সিকুয়েল উচ্চারণ করা হয়) একটি স্ট্যান্ডার্ড ভাষা যা রিলেশনাল ডেটাবেসে ডেটা পুনরুদ্ধার এবং পরিবর্তন করতে ব্যবহৃত হয়। + +ডেটা পুনরুদ্ধার করতে আপনি `SELECT` কমান্ড ব্যবহার করেন। এর মূল অংশ হলো, আপনি যে কলামগুলো দেখতে চান তা **select** করেন এবং সেগুলো যে টেবিলে রয়েছে তা **from** করেন। যদি আপনি শুধুমাত্র শহরের নামগুলো প্রদর্শন করতে চান, আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন: + +```sql +SELECT city +FROM cities; + +-- Output: +-- Tokyo +-- Atlanta +-- Auckland +``` + +`SELECT` হলো যেখানে আপনি কলামগুলো তালিকাভুক্ত করেন, এবং `FROM` হলো যেখানে আপনি টেবিলগুলো তালিকাভুক্ত করেন। + +> [NOTE] SQL সিনট্যাক্স কেস-ইনসেনসিটিভ, অর্থাৎ `select` এবং `SELECT` একই জিনিস। তবে, আপনি যে ডেটাবেস ব্যবহার করছেন তার উপর নির্ভর করে কলাম এবং টেবিলগুলো কেস-সেনসিটিভ হতে পারে। ফলস্বরূপ, প্রোগ্রামিংয়ে সবকিছু কেস-সেনসিটিভ হিসেবে বিবেচনা করা সর্বদা একটি ভালো অভ্যাস। SQL কোয়েরি লেখার সময় সাধারণত কীওয়ার্ডগুলো সব বড় অক্ষরে লেখা হয়। + +উপরের কোয়েরি সব শহর প্রদর্শন করবে। চলুন কল্পনা করি আমরা শুধুমাত্র নিউজিল্যান্ডের শহরগুলো প্রদর্শন করতে চাই। আমাদের একটি ফিল্টার দরকার। SQL-এর জন্য এই কীওয়ার্ড হলো `WHERE`, বা "যেখানে কিছু সত্য"। + +```sql +SELECT city +FROM cities +WHERE country = 'New Zealand'; + +-- Output: +-- Auckland +``` + +## ডেটা যোগ করা + +এখন পর্যন্ত আমরা একটি একক টেবিল থেকে ডেটা পুনরুদ্ধার করেছি। এখন আমরা **cities** এবং **rainfall** উভয় টেবিলের ডেটা একত্রিত করতে চাই। এটি *joining* এর মাধ্যমে করা হয়। আপনি কার্যত দুটি টেবিলের মধ্যে একটি সিম তৈরি করবেন এবং প্রতিটি টেবিলের একটি কলামের মানগুলো মিলিয়ে দেবেন। + +আমাদের উদাহরণে, আমরা **rainfall** টেবিলের **city_id** কলামকে **cities** টেবিলের **city_id** কলামের সাথে মিলাব। এটি বৃষ্টিপাতের মানকে তার সংশ্লিষ্ট শহরের সাথে মিলাবে। আমরা যে ধরনের যোগ করব তা হলো *inner* join, অর্থাৎ যদি কোনো সারি অন্য টেবিলের কিছু সঙ্গে মেলে না, তবে তা প্রদর্শিত হবে না। আমাদের ক্ষেত্রে প্রতিটি শহরের বৃষ্টিপাত রয়েছে, তাই সবকিছু প্রদর্শিত হবে। + +চলুন ২০১৯ সালের জন্য আমাদের সব শহরের বৃষ্টিপাত পুনরুদ্ধার করি। + +আমরা এটি ধাপে ধাপে করব। প্রথম ধাপ হলো ডেটা একত্রিত করা, যেখানে আমরা সিমের জন্য কলামগুলো নির্দেশ করব - **city_id** যেমন আগে হাইলাইট করা হয়েছে। + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +``` + +আমরা দুটি কলাম হাইলাইট করেছি এবং টেবিলগুলোকে **city_id** দ্বারা একত্রিত করতে চাই তা উল্লেখ করেছি। এখন আমরা `WHERE` স্টেটমেন্ট যোগ করতে পারি যাতে শুধুমাত্র ২০১৯ সালের বছরটি ফিল্টার করা যায়। + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +WHERE rainfall.year = 2019 + +-- Output + +-- city | amount +-- -------- | ------ +-- Tokyo | 1874 +-- Atlanta | 1111 +-- Auckland | 942 +``` + +## সারসংক্ষেপ + +রিলেশনাল ডেটাবেসের মূল ধারণা হলো তথ্যকে একাধিক টেবিলে ভাগ করা, যা পরে প্রদর্শন এবং বিশ্লেষণের জন্য একত্রিত করা হয়। এটি গণনা এবং ডেটা পরিচালনার ক্ষেত্রে উচ্চ মাত্রার নমনীয়তা প্রদান করে। আপনি একটি রিলেশনাল ডেটাবেসের মূল ধারণাগুলো এবং দুটি টেবিলের মধ্যে যোগ করার পদ্ধতি দেখেছেন। + +## 🚀 চ্যালেঞ্জ + +ইন্টারনেটে অসংখ্য রিলেশনাল ডেটাবেস উপলব্ধ রয়েছে। আপনি উপরের শেখা দক্ষতাগুলো ব্যবহার করে ডেটা অন্বেষণ করতে পারেন। + +## পোস্ট-লেকচার কুইজ + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/9) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +SQL এবং রিলেশনাল ডেটাবেস ধারণাগুলো অন্বেষণ চালিয়ে যাওয়ার জন্য [Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum)-এ বেশ কয়েকটি রিসোর্স উপলব্ধ রয়েছে: + +- [রিলেশনাল ডেটার ধারণাগুলো বর্ণনা করুন](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) +- [Transact-SQL দিয়ে কোয়েরি শুরু করুন](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum) (Transact-SQL হলো SQL-এর একটি সংস্করণ) +- [Microsoft Learn-এ SQL বিষয়বস্তু](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) + +## অ্যাসাইনমেন্ট + +[অ্যাসাইনমেন্ট শিরোনাম](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/05-relational-databases/assignment.md b/translations/bn/2-Working-With-Data/05-relational-databases/assignment.md new file mode 100644 index 00000000..d71b7e3c --- /dev/null +++ b/translations/bn/2-Working-With-Data/05-relational-databases/assignment.md @@ -0,0 +1,73 @@ + +# বিমানবন্দর ডেটা প্রদর্শন + +আপনাকে একটি [ডেটাবেস](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) প্রদান করা হয়েছে যা [SQLite](https://sqlite.org/index.html)-এর উপর ভিত্তি করে তৈরি এবং এতে বিমানবন্দর সম্পর্কিত তথ্য রয়েছে। নিচে স্কিমা প্রদর্শিত হয়েছে। আপনি [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum)-এ [SQLite extension](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে বিভিন্ন শহরের বিমানবন্দর সম্পর্কিত তথ্য প্রদর্শন করবেন। + +## নির্দেশনা + +এই অ্যাসাইনমেন্ট শুরু করতে হলে আপনাকে কয়েকটি ধাপ সম্পন্ন করতে হবে। কিছু টুল ইনস্টল করতে হবে এবং নমুনা ডেটাবেস ডাউনলোড করতে হবে। + +### আপনার সিস্টেম সেটআপ করুন + +ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে Visual Studio Code এবং SQLite extension ব্যবহার করতে পারেন। + +1. [code.visualstudio.com](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum)-এ যান এবং Visual Studio Code ইনস্টল করার নির্দেশনা অনুসরণ করুন +1. [SQLite extension](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) ইনস্টল করুন, যা মার্কেটপ্লেস পেজে নির্দেশিত আছে + +### ডেটাবেস ডাউনলোড এবং খুলুন + +এরপর আপনি ডেটাবেস ডাউনলোড করবেন এবং খুলবেন। + +1. [GitHub থেকে ডেটাবেস ফাইল](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) ডাউনলোড করুন এবং একটি ডিরেক্টরিতে সংরক্ষণ করুন +1. Visual Studio Code খুলুন +1. SQLite extension-এ ডেটাবেস খুলুন **Ctl-Shift-P** (অথবা ম্যাক-এ **Cmd-Shift-P**) নির্বাচন করে এবং `SQLite: Open database` টাইপ করে +1. **Choose database from file** নির্বাচন করুন এবং পূর্বে ডাউনলোড করা **airports.db** ফাইলটি খুলুন +1. ডেটাবেস খুলার পরে (স্ক্রিনে কোনো আপডেট দেখা যাবে না), একটি নতুন কোয়েরি উইন্ডো তৈরি করুন **Ctl-Shift-P** (অথবা ম্যাক-এ **Cmd-Shift-P**) নির্বাচন করে এবং `SQLite: New query` টাইপ করে + +একবার খুললে, নতুন কোয়েরি উইন্ডোটি ডেটাবেসের বিরুদ্ধে SQL স্টেটমেন্ট চালানোর জন্য ব্যবহার করা যেতে পারে। **Ctl-Shift-Q** (অথবা ম্যাক-এ **Cmd-Shift-Q**) কমান্ড ব্যবহার করে ডেটাবেসের বিরুদ্ধে কোয়েরি চালানো যাবে। + +> [!NOTE] SQLite extension সম্পর্কে আরও তথ্যের জন্য, আপনি [ডকুমেন্টেশন](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) পরামর্শ করতে পারেন + +## ডেটাবেস স্কিমা + +একটি ডেটাবেসের স্কিমা হলো এর টেবিলের ডিজাইন এবং কাঠামো। **airports** ডেটাবেসে দুটি টেবিল রয়েছে, `cities`, যেখানে যুক্তরাজ্য এবং আয়ারল্যান্ডের শহরগুলোর তালিকা রয়েছে, এবং `airports`, যেখানে সমস্ত বিমানবন্দরের তালিকা রয়েছে। কারণ কিছু শহরে একাধিক বিমানবন্দর থাকতে পারে, তথ্য সংরক্ষণের জন্য দুটি টেবিল তৈরি করা হয়েছে। এই অনুশীলনে আপনি বিভিন্ন শহরের তথ্য প্রদর্শনের জন্য জয়েন ব্যবহার করবেন। + +| Cities | +| ---------------- | +| id (PK, integer) | +| city (text) | +| country (text) | + +| Airports | +| -------------------------------- | +| id (PK, integer) | +| name (text) | +| code (text) | +| city_id (FK to id in **Cities**) | + +## অ্যাসাইনমেন্ট + +নিম্নলিখিত তথ্য ফেরত দেওয়ার জন্য কোয়েরি তৈরি করুন: + +1. `Cities` টেবিলের সমস্ত শহরের নাম +1. `Cities` টেবিলের আয়ারল্যান্ডের সমস্ত শহর +1. শহর এবং দেশের সাথে সমস্ত বিমানবন্দরের নাম +1. লন্ডন, যুক্তরাজ্যের সমস্ত বিমানবন্দর + +## মূল্যায়ন + +| চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন | +| ------- | -------- | ---------------- | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/06-non-relational/README.md b/translations/bn/2-Working-With-Data/06-non-relational/README.md new file mode 100644 index 00000000..e08bea68 --- /dev/null +++ b/translations/bn/2-Working-With-Data/06-non-relational/README.md @@ -0,0 +1,158 @@ + +# ডেটার সাথে কাজ করা: নন-রিলেশনাল ডেটা + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) এর স্কেচনোট ](../../sketchnotes/06-NoSQL.png)| +|:---:| +|নোএসকিউএল ডেটার সাথে কাজ করা - _[@nitya](https://twitter.com/nitya) এর স্কেচনোট_ | + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/10) + +ডেটা শুধুমাত্র রিলেশনাল ডেটাবেসে সীমাবদ্ধ নয়। এই পাঠে নন-রিলেশনাল ডেটার উপর আলোকপাত করা হবে এবং স্প্রেডশিট ও নোএসকিউএলের মৌলিক বিষয়গুলো আলোচনা করা হবে। + +## স্প্রেডশিট + +স্প্রেডশিট ডেটা সংরক্ষণ এবং বিশ্লেষণের একটি জনপ্রিয় মাধ্যম, কারণ এটি সেটআপ এবং শুরু করার জন্য কম পরিশ্রমের প্রয়োজন হয়। এই পাঠে আপনি একটি স্প্রেডশিটের মৌলিক উপাদান, পাশাপাশি সূত্র এবং ফাংশন সম্পর্কে শিখবেন। উদাহরণগুলো মাইক্রোসফট এক্সেলের মাধ্যমে দেখানো হবে, তবে অন্যান্য স্প্রেডশিট সফটওয়্যারের সাথে নাম এবং ধাপগুলো তুলনামূলকভাবে একই রকম হবে। + +![দুটি ওয়ার্কশিট সহ একটি খালি মাইক্রোসফট এক্সেল ওয়ার্কবুক](../../../../translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.bn.png) + +একটি স্প্রেডশিট একটি ফাইল এবং এটি একটি কম্পিউটার, ডিভাইস বা ক্লাউড-ভিত্তিক ফাইল সিস্টেমে অ্যাক্সেসযোগ্য। সফটওয়্যারটি ব্রাউজার-ভিত্তিক হতে পারে অথবা একটি অ্যাপ্লিকেশন যা কম্পিউটারে ইনস্টল করতে হবে বা অ্যাপ হিসেবে ডাউনলোড করতে হবে। এক্সেলে এই ফাইলগুলোকে **ওয়ার্কবুক** বলা হয় এবং এই পাঠে এই পরিভাষা ব্যবহার করা হবে। + +একটি ওয়ার্কবুকে এক বা একাধিক **ওয়ার্কশিট** থাকে, যেখানে প্রতিটি ওয়ার্কশিট ট্যাব দ্বারা লেবেল করা থাকে। একটি ওয়ার্কশিটে আয়তক্ষেত্রাকার **সেল** থাকে, যা প্রকৃত ডেটা ধারণ করে। একটি সেল হল একটি সারি এবং কলামের ছেদ, যেখানে কলামগুলো বর্ণানুক্রমিক অক্ষর দ্বারা এবং সারিগুলো সংখ্যাসূচকভাবে লেবেল করা থাকে। কিছু স্প্রেডশিটে সেলের ডেটা বর্ণনা করার জন্য প্রথম কয়েকটি সারিতে হেডার থাকে। + +একটি এক্সেল ওয়ার্কবুকের এই মৌলিক উপাদানগুলো দিয়ে, আমরা [মাইক্রোসফট টেমপ্লেট](https://templates.office.com/) থেকে একটি ইনভেন্টরি উদাহরণ ব্যবহার করে একটি স্প্রেডশিটের অতিরিক্ত অংশগুলো নিয়ে আলোচনা করব। + +### ইনভেন্টরি পরিচালনা + +"InventoryExample" নামে একটি স্প্রেডশিট ফাইল একটি ইনভেন্টরির আইটেমগুলোর ফরম্যাট করা স্প্রেডশিট, যেখানে তিনটি ওয়ার্কশিট রয়েছে, এবং ট্যাবগুলো "Inventory List", "Inventory Pick List" এবং "Bin Lookup" নামে লেবেল করা। ইনভেন্টরি লিস্ট ওয়ার্কশিটের ৪ নম্বর সারি হেডার, যা হেডার কলামে প্রতিটি সেলের মান বর্ণনা করে। + +![মাইক্রোসফট এক্সেলের একটি উদাহরণ ইনভেন্টরি তালিকা থেকে একটি হাইলাইট করা সূত্র](../../../../translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.bn.png) + +কিছু ক্ষেত্রে একটি সেলের মান অন্যান্য সেলের মানের উপর নির্ভর করে তৈরি হয়। ইনভেন্টরি লিস্ট স্প্রেডশিট ইনভেন্টরির প্রতিটি আইটেমের খরচ ট্র্যাক করে, তবে যদি আমাদের ইনভেন্টরির সবকিছুর মোট মূল্য জানতে হয়? [**সূত্র**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) সেলের ডেটার উপর ক্রিয়া সম্পাদন করে এবং এই উদাহরণে ইনভেন্টরির খরচ গণনা করতে ব্যবহৃত হয়। এই স্প্রেডশিটে ইনভেন্টরি ভ্যালু কলামে একটি সূত্র ব্যবহার করা হয়েছে, যা QTY হেডারের অধীনে পরিমাণ এবং COST হেডারের অধীনে খরচ গুণ করে প্রতিটি আইটেমের মান গণনা করে। একটি সেল ডাবল ক্লিক বা হাইলাইট করলে সূত্রটি দেখা যাবে। আপনি লক্ষ্য করবেন যে সূত্রগুলো একটি সমান চিহ্ন দিয়ে শুরু হয়, তারপরে গণনা বা অপারেশন থাকে। + +![মাইক্রোসফট এক্সেলের একটি উদাহরণ ইনভেন্টরি তালিকা থেকে একটি হাইলাইট করা ফাংশন](../../../../translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.bn.png) + +আমরা ইনভেন্টরি ভ্যালুর সমস্ত মান যোগ করে এর মোট মান পেতে আরেকটি সূত্র ব্যবহার করতে পারি। এটি প্রতিটি সেল যোগ করে গণনা করা যেতে পারে, তবে এটি একটি শ্রমসাধ্য কাজ হতে পারে। এক্সেলে [**ফাংশন**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89), বা পূর্বনির্ধারিত সূত্র রয়েছে যা সেলের মানের উপর গণনা সম্পাদন করে। ফাংশনগুলো আর্গুমেন্ট প্রয়োজন, যা এই গণনা সম্পাদনের জন্য প্রয়োজনীয় মান। যখন ফাংশনগুলো একাধিক আর্গুমেন্ট প্রয়োজন হয়, তখন সেগুলো একটি নির্দিষ্ট ক্রমে তালিকাভুক্ত করতে হবে, নাহলে ফাংশনটি সঠিক মান গণনা করতে পারবে না। এই উদাহরণে SUM ফাংশন ব্যবহার করা হয়েছে এবং ইনভেন্টরি ভ্যালুর মানগুলো আর্গুমেন্ট হিসেবে ব্যবহার করে মোট যোগফল তৈরি করা হয়েছে, যা সারি ৩, কলাম B (B3) এ তালিকাভুক্ত। + +## নোএসকিউএল + +নোএসকিউএল একটি ছাতার পরিভাষা যা নন-রিলেশনাল ডেটা সংরক্ষণের বিভিন্ন পদ্ধতিকে বোঝায় এবং এটি "নন-এসকিউএল", "নন-রিলেশনাল" বা "শুধুমাত্র এসকিউএল নয়" হিসেবে ব্যাখ্যা করা যেতে পারে। এই ধরনের ডেটাবেস সিস্টেমগুলোকে চারটি প্রকারে শ্রেণীবদ্ধ করা যায়। + +![একটি কী-মান ডেটা স্টোরের গ্রাফিকাল উপস্থাপনা, যেখানে ৪টি অনন্য সংখ্যাসূচক কী ৪টি বিভিন্ন মানের সাথে যুক্ত](../../../../translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.bn.png) +> উৎস: [Michał Białecki Blog](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) + +[কী-মান](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) ডেটাবেসগুলো অনন্য কী এবং তার সাথে যুক্ত মানের জোড়া তৈরি করে। এই জোড়াগুলো একটি [হ্যাশ টেবিল](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) ব্যবহার করে সংরক্ষণ করা হয়, যেখানে একটি উপযুক্ত হ্যাশিং ফাংশন ব্যবহৃত হয়। + +![গ্রাফ ডেটা স্টোরের গ্রাফিকাল উপস্থাপনা, যেখানে মানুষের সম্পর্ক, তাদের আগ্রহ এবং অবস্থান দেখানো হয়েছে](../../../../translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.bn.png) +> উৎস: [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) + +[গ্রাফ](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) ডেটাবেসগুলো ডেটার সম্পর্ক বর্ণনা করে এবং নোড ও এজের একটি সংগ্রহ হিসেবে উপস্থাপিত হয়। একটি নোড একটি সত্তাকে উপস্থাপন করে, যেমন একজন ছাত্র বা ব্যাংক স্টেটমেন্ট। এজ দুটি সত্তার মধ্যে সম্পর্ক উপস্থাপন করে। প্রতিটি নোড এবং এজের বৈশিষ্ট্য থাকে, যা তাদের সম্পর্কে অতিরিক্ত তথ্য প্রদান করে। + +![কলামার ডেটা স্টোরের গ্রাফিকাল উপস্থাপনা, যেখানে একটি গ্রাহক ডেটাবেসে দুটি কলাম পরিবার "Identity" এবং "Contact Info" নামে দেখানো হয়েছে](../../../../translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.bn.png) + +[কলামার](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) ডেটা স্টোরগুলো ডেটাকে কলাম এবং সারিতে সংগঠিত করে, যা রিলেশনাল ডেটা কাঠামোর মতো, তবে প্রতিটি কলাম কলাম পরিবারের নামে গোষ্ঠীবদ্ধ থাকে, যেখানে একটি কলামের অধীনে সমস্ত ডেটা সম্পর্কিত এবং একক ইউনিট হিসেবে পুনরুদ্ধার ও পরিবর্তন করা যায়। + +### অ্যাজুর কসমস ডিবি সহ ডকুমেন্ট ডেটা স্টোর + +[ডকুমেন্ট](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) ডেটা স্টোরগুলো কী-মান ডেটা স্টোরের ধারণার উপর ভিত্তি করে তৈরি এবং এটি ক্ষেত্র ও অবজেক্টের একটি সিরিজ নিয়ে গঠিত। এই অংশে আমরা কসমস ডিবি এমুলেটর ব্যবহার করে ডকুমেন্ট ডেটাবেসগুলো অন্বেষণ করব। + +কসমস ডিবি ডেটাবেস "শুধুমাত্র এসকিউএল নয়" সংজ্ঞার সাথে মিলে যায়, যেখানে কসমস ডিবির ডকুমেন্ট ডেটাবেস এসকিউএল ব্যবহার করে ডেটা অনুসন্ধান করে। [পূর্ববর্তী পাঠে](../05-relational-databases/README.md) এসকিউএলের মৌলিক বিষয়গুলো আলোচনা করা হয়েছে, এবং আমরা এখানে ডকুমেন্ট ডেটাবেসে একই ধরনের কিছু অনুসন্ধান প্রয়োগ করতে পারব। আমরা কসমস ডিবি এমুলেটর ব্যবহার করব, যা আমাদের একটি কম্পিউটারে স্থানীয়ভাবে একটি ডকুমেন্ট ডেটাবেস তৈরি এবং অন্বেষণ করতে দেয়। এমুলেটর সম্পর্কে আরও পড়ুন [এখানে](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21)। + +একটি ডকুমেন্ট হল ক্ষেত্র এবং অবজেক্ট মানের একটি সংগ্রহ, যেখানে ক্ষেত্রগুলো অবজেক্ট মান কী উপস্থাপন করে তা বর্ণনা করে। নিচে একটি ডকুমেন্টের উদাহরণ দেওয়া হলো। + +```json +{ + "firstname": "Eva", + "age": 44, + "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", + "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", + "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", + "_attachments": "attachments/", + "_ts": 1630544034 +} +``` + +এই ডকুমেন্টে আগ্রহের ক্ষেত্রগুলো হল: `firstname`, `id`, এবং `age`। বাকিগুলো কসমস ডিবি দ্বারা স্বয়ংক্রিয়ভাবে তৈরি করা হয়েছে। + +#### কসমস ডিবি এমুলেটর দিয়ে ডেটা অন্বেষণ + +আপনি [উইন্ডোজের জন্য এখানে](https://aka.ms/cosmosdb-emulator) এমুলেটর ডাউনলোড এবং ইনস্টল করতে পারেন। ম্যাকওএস এবং লিনাক্সে এমুলেটর চালানোর বিকল্পের জন্য এই [ডকুমেন্টেশন](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos) দেখুন। + +এমুলেটর একটি ব্রাউজার উইন্ডো চালু করে, যেখানে এক্সপ্লোরার ভিউ আপনাকে ডকুমেন্টগুলো অন্বেষণ করতে দেয়। + +![কসমস ডিবি এমুলেটরের এক্সপ্লোরার ভিউ](../../../../translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.bn.png) + +যদি আপনি অনুসরণ করছেন, "Start with Sample" এ ক্লিক করুন একটি নমুনা ডেটাবেস তৈরি করতে, যার নাম SampleDB। SampleDB প্রসারিত করতে তীর চিহ্নে ক্লিক করুন, আপনি একটি কন্টেইনার পাবেন যার নাম `Persons`, একটি কন্টেইনারে আইটেমের একটি সংগ্রহ থাকে, যা কন্টেইনারের ডকুমেন্ট। আপনি `Items` এর অধীনে চারটি পৃথক ডকুমেন্ট অন্বেষণ করতে পারেন। + +![কসমস ডিবি এমুলেটরে নমুনা ডেটা অন্বেষণ](../../../../translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.bn.png) + +#### কসমস ডিবি এমুলেটর দিয়ে ডকুমেন্ট ডেটা অনুসন্ধান + +আমরা নতুন SQL Query বোতামে ক্লিক করে (বাম থেকে দ্বিতীয় বোতাম) নমুনা ডেটা অনুসন্ধান করতে পারি। + +`SELECT * FROM c` কন্টেইনারের সমস্ত ডকুমেন্ট ফেরত দেয়। চলুন একটি where ক্লজ যোগ করি এবং ৪০ বছরের কম বয়সী সবাইকে খুঁজে বের করি। + +`SELECT * FROM c where c.age < 40` + +![কসমস ডিবি এমুলেটরে নমুনা ডেটার উপর একটি SELECT অনুসন্ধান চালানো, যেখানে age ফিল্ডের মান ৪০ এর কম](../../../../translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.bn.png) + +অনুসন্ধানটি দুটি ডকুমেন্ট ফেরত দেয়, লক্ষ্য করুন প্রতিটি ডকুমেন্টের age মান ৪০ এর কম। + +#### JSON এবং ডকুমেন্ট + +যদি আপনি জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (JSON) এর সাথে পরিচিত হন, তবে আপনি লক্ষ্য করবেন যে ডকুমেন্টগুলো JSON এর মতো দেখায়। এই ডিরেক্টরিতে একটি `PersonsData.json` ফাইল রয়েছে, যাতে আরও ডেটা রয়েছে যা আপনি এমুলেটরে Persons কন্টেইনারে `Upload Item` বোতামের মাধ্যমে আপলোড করতে পারেন। + +বেশিরভাগ ক্ষেত্রে, JSON ডেটা ফেরত দেয় এমন API সরাসরি ডকুমেন্ট ডেটাবেসে স্থানান্তর এবং সংরক্ষণ করা যায়। নিচে আরেকটি ডকুমেন্ট রয়েছে, এটি মাইক্রোসফট টুইটার অ্যাকাউন্ট থেকে টুইট উপস্থাপন করে, যা টুইটার API ব্যবহার করে পুনরুদ্ধার করা হয়েছিল এবং তারপর কসমস ডিবিতে সন্নিবেশ করা হয়েছিল। + +```json +{ + "created_at": "2021-08-31T19:03:01.000Z", + "id": "1432780985872142341", + "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", + "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", + "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", + "_attachments": "attachments/", + "_ts": 1630537000 +``` + +এই ডকুমেন্টে আগ্রহের ক্ষেত্রগুলো হল: `created_at`, `id`, এবং `text`। + +## 🚀 চ্যালেঞ্জ + +একটি `TwitterData.json` ফাইল রয়েছে যা আপনি SampleDB ডেটাবেসে আপলোড করতে পারেন। এটি একটি পৃথক কন্টেইনারে যোগ করার পরামর্শ দেওয়া হয়। এটি করতে: + +1. উপরের ডানদিকে নতুন কন্টেইনার বোতামে ক্লিক করুন +1. বিদ্যমান ডেটাবেস (SampleDB) নির্বাচন করুন এবং কন্টেইনারের জন্য একটি আইডি তৈরি করুন +1. পার্টিশন কী `/id` সেট করুন +1. OK ক্লিক করুন (এই ভিউতে বাকি তথ্য উপেক্ষা করতে পারেন, কারণ এটি একটি ছোট ডেটাসেট যা আপনার মেশিনে স্থানীয়ভাবে চলছে) +1. আপনার নতুন কন্টেইনার খুলুন এবং `Upload Item` বোতামের মাধ্যমে টুইটার ডেটা ফাইল আপলোড করুন + +`text` ফিল্ডে Microsoft থাকা ডকুমেন্টগুলো খুঁজে বের করতে কয়েকটি SELECT অনুসন্ধান চালানোর চেষ্টা করুন। টিপ: [LIKE কীওয়ার্ড](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character) ব্যবহার করার চেষ্টা করুন। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/11) + +## পুনরায় দেখুন এবং স্ব-অধ্যয়ন + +- এই স্প্রেডশিটে কিছু অতিরিক্ত ফরম্যাটিং এবং বৈশিষ্ট্য যোগ করা হয়েছে যা এই পাঠে আলোচনা করা হয়নি। এক্সেল সম্পর্কে আরও জানতে চাইলে মাইক্রোসফটের [বৃহৎ ডকুমেন্টেশন এবং ভিডিও লাইব্রেরি](https://support.microsoft.com/excel) দেখুন। + +- নন-রিলেশনাল ডেটার বিভিন্ন প্রকারের বৈশিষ্ট্য সম্পর্কে এই আর্কিটেকচারাল ডকুমেন্টেশনটি বিস্তারিত জানায়: [নন-রিলেশনাল ডেটা এবং নোএসকিউএল](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data) + +- কসমস ডিবি একটি ক্লাউড-ভিত্তিক নন-রিলেশনাল ডেটাবেস, যা এই পাঠে উল্লেখিত বিভিন্ন নোএসকিউএল প্রকার সংরক্ষণ করতে পারে। এই [কসমস ডিবি মাইক্রোসফট লার্ন মডিউল](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) এ এই প্রকারগুলো সম্পর্কে আরও জানুন। + +## অ্যাসাইনমেন্ট + +[Soda Profits](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/06-non-relational/assignment.md b/translations/bn/2-Working-With-Data/06-non-relational/assignment.md new file mode 100644 index 00000000..eb6e26b2 --- /dev/null +++ b/translations/bn/2-Working-With-Data/06-non-relational/assignment.md @@ -0,0 +1,33 @@ + +# সোডা লাভ + +## নির্দেশনা + +[Coca Cola Co spreadsheet](../../../../2-Working-With-Data/06-non-relational/CocaColaCo.xlsx) ফাইলটিতে কিছু হিসাব অনুপস্থিত। আপনার কাজ হলো: + +1. FY '15, '16, '17, এবং '18 এর মোট লাভ হিসাব করুন + - মোট লাভ = নেট অপারেটিং রাজস্ব - পণ্য বিক্রির খরচ +1. সমস্ত মোট লাভের গড় হিসাব করুন। এটি একটি ফাংশন ব্যবহার করে করার চেষ্টা করুন। + - গড় = মোট লাভের যোগফল ভাগ করা অর্থবছরের সংখ্যা (১০) + - [AVERAGE ফাংশন](https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) সম্পর্কিত ডকুমেন্টেশন +1. এটি একটি এক্সেল ফাইল, তবে এটি যেকোনো স্প্রেডশিট প্ল্যাটফর্মে সম্পাদনাযোগ্য হওয়া উচিত + +[তথ্য সূত্রের কৃতিত্ব Yiyi Wang](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/07-python/README.md b/translations/bn/2-Working-With-Data/07-python/README.md new file mode 100644 index 00000000..8459a98f --- /dev/null +++ b/translations/bn/2-Working-With-Data/07-python/README.md @@ -0,0 +1,292 @@ + +# ডেটা নিয়ে কাজ করা: পাইথন এবং প্যান্ডাস লাইব্রেরি + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| :-------------------------------------------------------------------------------------------------------: | +| পাইথন নিয়ে কাজ করা - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +[![Intro Video](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.bn.png)](https://youtu.be/dZjWOGbsN4Y) + +যদিও ডেটাবেস ডেটা সংরক্ষণ এবং কুয়েরি করার জন্য খুবই কার্যকর পদ্ধতি প্রদান করে, ডেটা প্রক্রিয়াকরণের সবচেয়ে নমনীয় উপায় হলো নিজের প্রোগ্রাম লিখে ডেটা ম্যানিপুলেট করা। অনেক ক্ষেত্রে, ডেটাবেস কুয়েরি করা আরও কার্যকর হতে পারে। তবে, কিছু ক্ষেত্রে যখন আরও জটিল ডেটা প্রক্রিয়াকরণ প্রয়োজন হয়, তা সহজে SQL ব্যবহার করে করা সম্ভব নয়। +ডেটা প্রক্রিয়াকরণ যেকোনো প্রোগ্রামিং ভাষায় করা যেতে পারে, তবে কিছু ভাষা ডেটা নিয়ে কাজ করার ক্ষেত্রে উচ্চতর স্তরের। ডেটা বিজ্ঞানীরা সাধারণত নিম্নলিখিত ভাষাগুলোর একটি পছন্দ করেন: + +* **[Python](https://www.python.org/)**, একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা, যা তার সরলতার কারণে প্রারম্ভিকদের জন্য সেরা বিকল্পগুলোর একটি হিসেবে বিবেচিত হয়। পাইথনের অনেক অতিরিক্ত লাইব্রেরি রয়েছে যা আপনাকে অনেক বাস্তব সমস্যার সমাধান করতে সাহায্য করতে পারে, যেমন ZIP আর্কাইভ থেকে ডেটা বের করা বা ছবি গ্রেস্কেলে রূপান্তর করা। ডেটা বিজ্ঞান ছাড়াও, পাইথন ওয়েব ডেভেলপমেন্টের জন্যও প্রায়ই ব্যবহৃত হয়। +* **[R](https://www.r-project.org/)** একটি ঐতিহ্যবাহী টুলবক্স যা পরিসংখ্যানগত ডেটা প্রক্রিয়াকরণের জন্য তৈরি হয়েছে। এটি বড় লাইব্রেরি সংগ্রহ (CRAN) ধারণ করে, যা ডেটা প্রক্রিয়াকরণের জন্য একটি ভালো পছন্দ। তবে, R একটি সাধারণ উদ্দেশ্য প্রোগ্রামিং ভাষা নয় এবং ডেটা বিজ্ঞান ক্ষেত্রের বাইরে খুব কমই ব্যবহৃত হয়। +* **[Julia](https://julialang.org/)** আরেকটি ভাষা যা বিশেষভাবে ডেটা বিজ্ঞান জন্য তৈরি হয়েছে। এটি পাইথনের চেয়ে ভালো পারফরম্যান্স দেওয়ার উদ্দেশ্যে তৈরি, যা বৈজ্ঞানিক পরীক্ষার জন্য একটি চমৎকার টুল। + +এই পাঠে, আমরা সহজ ডেটা প্রক্রিয়াকরণের জন্য পাইথন ব্যবহার করার উপর মনোযোগ দেব। আমরা ভাষার মৌলিক পরিচিতি ধরে নেব। যদি আপনি পাইথনের আরও গভীর পরিচিতি চান, তাহলে নিম্নলিখিত উৎসগুলোর একটি দেখতে পারেন: + +* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) - পাইথন প্রোগ্রামিংয়ের জন্য একটি দ্রুত পরিচিতি কোর্স +* [Take your First Steps with Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum)-এ একটি লার্নিং পাথ + +ডেটা বিভিন্ন রূপে আসতে পারে। এই পাঠে, আমরা তিনটি রূপের ডেটা বিবেচনা করব - **ট্যাবুলার ডেটা**, **টেক্সট** এবং **ইমেজ**। + +আমরা সমস্ত সম্পর্কিত লাইব্রেরির পূর্ণ পর্যালোচনা দেওয়ার পরিবর্তে ডেটা প্রক্রিয়াকরণের কয়েকটি উদাহরণে মনোযোগ দেব। এটি আপনাকে কী কী সম্ভব তা বোঝার মূল ধারণা দেবে এবং যখন প্রয়োজন হবে তখন আপনার সমস্যার সমাধান কোথায় খুঁজে পাবেন তা বুঝতে সাহায্য করবে। + +> **সবচেয়ে কার্যকর পরামর্শ**। যখন আপনাকে ডেটার উপর একটি নির্দিষ্ট অপারেশন করতে হবে যা আপনি কীভাবে করবেন তা জানেন না, ইন্টারনেটে এটি অনুসন্ধান করার চেষ্টা করুন। [Stackoverflow](https://stackoverflow.com/) প্রায়ই অনেক সাধারণ কাজের জন্য পাইথনে অনেক দরকারী কোড নমুনা ধারণ করে। + + + +## [পাঠের পূর্ববর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/12) + +## ট্যাবুলার ডেটা এবং ডেটাফ্রেম + +আপনি ইতিমধ্যেই ট্যাবুলার ডেটার সাথে পরিচিত হয়েছেন যখন আমরা রিলেশনাল ডেটাবেস নিয়ে আলোচনা করেছি। যখন আপনার কাছে অনেক ডেটা থাকে এবং এটি অনেক ভিন্ন সংযুক্ত টেবিলে থাকে, তখন এটি নিয়ে কাজ করার জন্য SQL ব্যবহার করা অবশ্যই অর্থবহ। তবে, অনেক ক্ষেত্রে আমাদের একটি ডেটার টেবিল থাকে এবং আমরা এই ডেটা সম্পর্কে কিছু **বোঝাপড়া** বা **অন্তর্দৃষ্টি** পেতে চাই, যেমন বিতরণ, মানগুলোর মধ্যে সম্পর্ক ইত্যাদি। ডেটা বিজ্ঞানে, অনেক ক্ষেত্রে আমাদের মূল ডেটার কিছু রূপান্তর করতে হয়, তারপরে ভিজ্যুয়ালাইজেশন করতে হয়। এই দুটি ধাপই পাইথন ব্যবহার করে সহজে করা যায়। + +পাইথনে ট্যাবুলার ডেটা নিয়ে কাজ করার জন্য দুটি সবচেয়ে দরকারী লাইব্রেরি রয়েছে: +* **[Pandas](https://pandas.pydata.org/)** আপনাকে তথাকথিত **ডেটাফ্রেম** ম্যানিপুলেট করতে দেয়, যা রিলেশনাল টেবিলের অনুরূপ। আপনি নামকৃত কলাম রাখতে পারেন এবং সারি, কলাম এবং ডেটাফ্রেমের উপর বিভিন্ন অপারেশন করতে পারেন। +* **[Numpy](https://numpy.org/)** একটি লাইব্রেরি যা **টেনসর**, অর্থাৎ বহু-মাত্রিক **অ্যারে** নিয়ে কাজ করার জন্য। অ্যারে একই অন্তর্নিহিত টাইপের মান ধারণ করে এবং এটি ডেটাফ্রেমের চেয়ে সহজ, তবে এটি আরও গাণিতিক অপারেশন প্রদান করে এবং কম ওভারহেড তৈরি করে। + +এছাড়াও কয়েকটি অন্যান্য লাইব্রেরি রয়েছে যা আপনার জানা উচিত: +* **[Matplotlib](https://matplotlib.org/)** একটি লাইব্রেরি যা ডেটা ভিজ্যুয়ালাইজেশন এবং গ্রাফ প্লট করার জন্য ব্যবহৃত হয় +* **[SciPy](https://www.scipy.org/)** একটি লাইব্রেরি যা কিছু অতিরিক্ত বৈজ্ঞানিক ফাংশন ধারণ করে। আমরা ইতিমধ্যেই এই লাইব্রেরির সাথে পরিচিত হয়েছি যখন আমরা সম্ভাবনা এবং পরিসংখ্যান নিয়ে আলোচনা করেছি + +এখানে একটি কোডের অংশ রয়েছে যা আপনি সাধারণত আপনার পাইথন প্রোগ্রামের শুরুতে এই লাইব্রেরিগুলো আমদানি করতে ব্যবহার করবেন: +```python +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from scipy import ... # you need to specify exact sub-packages that you need +``` + +Pandas কয়েকটি মৌলিক ধারণার উপর ভিত্তি করে কাজ করে। + +### সিরিজ + +**সিরিজ** হলো মানগুলোর একটি ক্রম, যা তালিকা বা numpy অ্যারের মতো। প্রধান পার্থক্য হলো সিরিজের একটি **ইন্ডেক্স** থাকে, এবং যখন আমরা সিরিজের উপর অপারেশন করি (যেমন, যোগ করি), তখন ইন্ডেক্সটি বিবেচনা করা হয়। ইন্ডেক্সটি যতটা সহজ হতে পারে, যেমন পূর্ণসংখ্যার সারি নম্বর (যখন তালিকা বা অ্যারে থেকে সিরিজ তৈরি করা হয় তখন এটি ডিফল্ট ইন্ডেক্স), অথবা এটি একটি জটিল কাঠামো থাকতে পারে, যেমন তারিখের সময়কাল। + +> **নোট**: সংযুক্ত নোটবুকে [`notebook.ipynb`](notebook.ipynb) কিছু প্রাথমিক Pandas কোড রয়েছে। আমরা এখানে কিছু উদাহরণ তুলে ধরেছি, এবং আপনি অবশ্যই পুরো নোটবুকটি দেখতে পারেন। + +একটি উদাহরণ বিবেচনা করুন: আমরা আমাদের আইসক্রিম বিক্রির বিশ্লেষণ করতে চাই। আসুন একটি সময়কালের জন্য বিক্রির সংখ্যা (প্রতিদিন বিক্রি হওয়া আইটেমের সংখ্যা) তৈরি করি: + +```python +start_date = "Jan 1, 2020" +end_date = "Mar 31, 2020" +idx = pd.date_range(start_date,end_date) +print(f"Length of index is {len(idx)}") +items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) +items_sold.plot() +``` +![Time Series Plot](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.bn.png) + +এখন ধরুন প্রতি সপ্তাহে আমরা বন্ধুদের জন্য একটি পার্টি আয়োজন করি এবং পার্টির জন্য অতিরিক্ত ১০ প্যাক আইসক্রিম নিই। আমরা এটি প্রদর্শনের জন্য সপ্তাহ অনুযায়ী আরেকটি সিরিজ তৈরি করতে পারি: +```python +additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) +``` +যখন আমরা দুটি সিরিজ একসাথে যোগ করি, তখন আমরা মোট সংখ্যা পাই: +```python +total_items = items_sold.add(additional_items,fill_value=0) +total_items.plot() +``` +![Time Series Plot](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.bn.png) + +> **নোট** যে আমরা সাধারণ সিনট্যাক্স `total_items+additional_items` ব্যবহার করছি না। যদি আমরা করতাম, তাহলে আমরা অনেক `NaN` (*Not a Number*) মান পেতাম ফলাফলের সিরিজে। এর কারণ হলো `additional_items` সিরিজের কিছু ইন্ডেক্স পয়েন্টে মান অনুপস্থিত, এবং `NaN` যোগ করলে ফলাফল `NaN` হয়। তাই যোগ করার সময় আমাদের `fill_value` প্যারামিটার নির্দিষ্ট করতে হবে। + +টাইম সিরিজের সাথে, আমরা বিভিন্ন সময় ব্যবধানে সিরিজ **resample** করতে পারি। উদাহরণস্বরূপ, ধরুন আমরা মাসিক গড় বিক্রয় পরিমাণ গণনা করতে চাই। আমরা নিম্নলিখিত কোড ব্যবহার করতে পারি: +```python +monthly = total_items.resample("1M").mean() +ax = monthly.plot(kind='bar') +``` +![Monthly Time Series Averages](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.bn.png) + +### ডেটাফ্রেম + +একটি ডেটাফ্রেম মূলত একই ইন্ডেক্স সহ সিরিজের একটি সংগ্রহ। আমরা একাধিক সিরিজ একসাথে ডেটাফ্রেমে সংযুক্ত করতে পারি: +```python +a = pd.Series(range(1,10)) +b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) +df = pd.DataFrame([a,b]) +``` +এটি একটি অনুভূমিক টেবিল তৈরি করবে: +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| 1 | I | like | to | use | Python | and | Pandas | very | much | + +আমরা সিরিজকে কলাম হিসেবে ব্যবহার করতে পারি এবং ডিকশনারি ব্যবহার করে কলামের নাম নির্দিষ্ট করতে পারি: +```python +df = pd.DataFrame({ 'A' : a, 'B' : b }) +``` +এটি আমাদের একটি টেবিল দেবে: + +| | A | B | +| --- | --- | ------ | +| 0 | 1 | I | +| 1 | 2 | like | +| 2 | 3 | to | +| 3 | 4 | use | +| 4 | 5 | Python | +| 5 | 6 | and | +| 6 | 7 | Pandas | +| 7 | 8 | very | +| 8 | 9 | much | + +**নোট** যে আমরা আগের টেবিলটি ট্রান্সপোজ করে এই টেবিল লেআউটও পেতে পারি, যেমন লিখে +```python +df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) +``` +এখানে `.T` ডেটাফ্রেম ট্রান্সপোজ করার অপারেশন নির্দেশ করে, অর্থাৎ সারি এবং কলাম পরিবর্তন করা, এবং `rename` অপারেশন আমাদের কলামগুলোর নাম পরিবর্তন করতে দেয় যাতে আগের উদাহরণের সাথে মিলে যায়। + +এখানে ডেটাফ্রেমে আমরা করতে পারি এমন কয়েকটি গুরুত্বপূর্ণ অপারেশন রয়েছে: + +**কলাম নির্বাচন**। আমরা পৃথক কলাম নির্বাচন করতে পারি `df['A']` লিখে - এই অপারেশন একটি সিরিজ প্রদান করে। আমরা কলামের একটি সাবসেট অন্য ডেটাফ্রেমে নির্বাচন করতে পারি `df[['B','A']]` লিখে - এটি আরেকটি ডেটাফ্রেম প্রদান করে। + +**ফিল্টারিং** নির্দিষ্ট ক্রাইটেরিয়া অনুযায়ী শুধুমাত্র কিছু সারি। উদাহরণস্বরূপ, কলাম `A`-এর মান ৫-এর বেশি রেখে দিতে হলে আমরা লিখতে পারি `df[df['A']>5]`। + +> **নোট**: ফিল্টারিং যেভাবে কাজ করে তা হলো নিম্নরূপ। `df['A']<5` এক্সপ্রেশন একটি বুলিয়ান সিরিজ প্রদান করে, যা নির্দেশ করে যে এক্সপ্রেশনটি মূল সিরিজ `df['A']`-এর প্রতিটি উপাদানের জন্য `True` বা `False`। যখন বুলিয়ান সিরিজটি একটি ইন্ডেক্স হিসেবে ব্যবহৃত হয়, এটি ডেটাফ্রেমের সাবসেট প্রদান করে। তাই যেকোনো সাধারণ পাইথন বুলিয়ান এক্সপ্রেশন ব্যবহার করা সম্ভব নয়, উদাহরণস্বরূপ, `df[df['A']>5 and df['A']<7]` লেখা ভুল হবে। পরিবর্তে, আপনাকে বুলিয়ান সিরিজে বিশেষ `&` অপারেশন ব্যবহার করতে হবে, যেমন লিখতে হবে `df[(df['A']>5) & (df['A']<7)]` (*ব্র্যাকেট গুরুত্বপূর্ণ এখানে*)। + +**নতুন গণনাযোগ্য কলাম তৈরি করা**। আমরা সহজেই আমাদের ডেটাফ্রেমের জন্য নতুন গণনাযোগ্য কলাম তৈরি করতে পারি নিম্নলিখিত সহজ এক্সপ্রেশন ব্যবহার করে: +```python +df['DivA'] = df['A']-df['A'].mean() +``` +এই উদাহরণটি A-এর গড় মান থেকে তার বিচ্যুতি গণনা করে। এখানে যা ঘটে তা হলো আমরা একটি সিরিজ গণনা করছি এবং তারপর এই সিরিজটি বাম দিকে বরাদ্দ করছি, একটি নতুন কলাম তৈরি করছি। তাই, আমরা এমন কোনো অপারেশন ব্যবহার করতে পারি না যা সিরিজের সাথে সামঞ্জস্যপূর্ণ নয়, উদাহরণস্বরূপ, নিচের কোডটি ভুল: +```python +# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" +df['LenB'] = len(df['B']) # <- Wrong result +``` +শেষ উদাহরণটি, যদিও সিনট্যাকটিক্যালি সঠিক, আমাদের ভুল ফলাফল দেয়, কারণ এটি সিরিজ `B`-এর দৈর্ঘ্য সমস্ত মানে বরাদ্দ করে, এবং আমরা যা চেয়েছিলাম তা নয়। + +যদি আমাদের এমন জটিল এক্সপ্রেশন গণনা করতে হয়, তাহলে আমরা `apply` ফাংশন ব্যবহার করতে পারি। শেষ উদাহরণটি নিম্নরূপ লেখা যেতে পারে: +```python +df['LenB'] = df['B'].apply(lambda x : len(x)) +# or +df['LenB'] = df['B'].apply(len) +``` + +উপরের অপারেশনগুলোর পরে, আমরা নিম্নলিখিত ডেটাফ্রেম পাব: + +| | A | B | DivA | LenB | +| --- | --- | ------ | ---- | ---- | +| 0 | 1 | I | -4.0 | 1 | +| 1 | 2 | like | -3.0 | 4 | +| 2 | 3 | to | -2.0 | 2 | +| 3 | 4 | use | -1.0 | 3 | +| 4 | 5 | Python | 0.0 | 6 | +| 5 | 6 | and | 1.0 | 3 | +| 6 | 7 | Pandas | 2.0 | 6 | +| 7 | 8 | very | 3.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | + +**সংখ্যার উপর ভিত্তি করে সারি নির্বাচন** `iloc` কনস্ট্রাক্ট ব্যবহার করে করা যেতে পারে। উদাহরণস্বরূপ, ডেটাফ্রেম থেকে প্রথম ৫টি সারি নির্বাচন করতে: +```python +df.iloc[:5] +``` + +**গ্রুপিং** প্রায়ই *পিভট টেবিল* এর মতো ফলাফল পেতে ব্যবহৃত হয়। ধরুন আমরা `LenB`-এর প্রতিটি নির্দিষ্ট সংখ্যার জন্য কলাম `A`-এর গড় মান গণনা করতে চাই। তাহলে আমরা আমাদের ডেটাফ্রেমকে `LenB` দ্বারা গ্রুপ করতে পারি এবং `mean` কল করতে পারি: +```python +df.groupby(by='LenB').mean() +``` +যদি আমাদের গড় এবং গ্রুপে উপাদানের সংখ্যা গণনা করতে হয়, তাহলে আমরা আরও জটিল `aggregate` ফাংশন ব্যবহার করতে পারি: +```python +df.groupby(by='LenB') \ + .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ + .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) +``` +এটি আমাদের নিম্নলিখিত টেবিল দেবে: + +| LenB | Count | Mean | +| ---- | ----- | -------- | +| 1 | 1 | 1.000000 | +| 2 | 1 | 3.000000 | +| 3 | 2 | 5.000000 | +| 4 | 3 | 6.333333 | +| 6 | 2 | 6.000000 | + +### ডেটা সংগ্রহ করা +আমরা দেখেছি কীভাবে Python অবজেক্ট থেকে সহজেই Series এবং DataFrames তৈরি করা যায়। তবে, ডেটা সাধারণত টেক্সট ফাইল বা Excel টেবিলের আকারে আসে। সৌভাগ্যক্রমে, Pandas আমাদের ডিস্ক থেকে ডেটা লোড করার একটি সহজ উপায় প্রদান করে। উদাহরণস্বরূপ, CSV ফাইল পড়া এতটাই সহজ: +```python +df = pd.read_csv('file.csv') +``` +আমরা "Challenge" সেকশনে আরও উদাহরণ দেখব, যেখানে বাইরের ওয়েবসাইট থেকে ডেটা আনার বিষয়টি অন্তর্ভুক্ত থাকবে। + +### প্রিন্টিং এবং প্লটিং + +একজন Data Scientist প্রায়ই ডেটা অন্বেষণ করতে হয়, তাই এটি ভিজ্যুয়ালাইজ করতে পারা গুরুত্বপূর্ণ। যখন DataFrame বড় হয়, তখন অনেক সময় আমরা নিশ্চিত হতে চাই যে আমরা সবকিছু সঠিকভাবে করছি, এবং এর জন্য প্রথম কয়েকটি সারি প্রিন্ট করা দরকার। এটি `df.head()` কল করে করা যায়। যদি আপনি Jupyter Notebook থেকে এটি চালান, এটি DataFrame-কে সুন্দর টেবিল আকারে প্রিন্ট করবে। + +আমরা `plot` ফাংশনের ব্যবহারও দেখেছি কিছু কলাম ভিজ্যুয়ালাইজ করতে। যদিও `plot` অনেক কাজের জন্য খুবই উপযোগী এবং `kind=` প্যারামিটারের মাধ্যমে বিভিন্ন গ্রাফ টাইপ সমর্থন করে, আপনি সবসময় raw `matplotlib` লাইব্রেরি ব্যবহার করে আরও জটিল কিছু প্লট করতে পারেন। আমরা আলাদা কোর্স লেসনে ডেটা ভিজ্যুয়ালাইজেশন বিস্তারিতভাবে আলোচনা করব। + +এই ওভারভিউটি Pandas-এর সবচেয়ে গুরুত্বপূর্ণ ধারণাগুলো কভার করে, তবে লাইব্রেরিটি খুবই সমৃদ্ধ এবং এর মাধ্যমে আপনি যা করতে পারেন তার কোনো সীমা নেই! এখন চলুন এই জ্ঞান ব্যবহার করে একটি নির্দিষ্ট সমস্যার সমাধান করি। + +## 🚀 চ্যালেঞ্জ ১: COVID ছড়িয়ে পড়া বিশ্লেষণ + +প্রথম সমস্যাটি আমরা ফোকাস করব COVID-19-এর মহামারী ছড়িয়ে পড়ার মডেলিংয়ে। এটি করার জন্য, আমরা বিভিন্ন দেশে আক্রান্ত ব্যক্তিদের সংখ্যা সম্পর্কিত ডেটা ব্যবহার করব, যা [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) দ্বারা [Johns Hopkins University](https://jhu.edu/) থেকে সরবরাহ করা হয়েছে। ডেটাসেটটি [এই GitHub Repository](https://github.com/CSSEGISandData/COVID-19)-এ উপলব্ধ। + +যেহেতু আমরা ডেটা নিয়ে কাজ করার পদ্ধতি প্রদর্শন করতে চাই, আমরা আপনাকে [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) খুলে শুরু থেকে শেষ পর্যন্ত পড়ার আমন্ত্রণ জানাই। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের রেখে যাওয়া কিছু চ্যালেঞ্জ সম্পন্ন করতে পারেন। + +![COVID ছড়িয়ে পড়া](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.bn.png) + +> যদি আপনি Jupyter Notebook-এ কোড চালানোর পদ্ধতি না জানেন, [এই আর্টিকেলটি](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) দেখুন। + +## অসংগঠিত ডেটার সাথে কাজ করা + +যদিও ডেটা প্রায়ই টেবুলার আকারে আসে, কিছু ক্ষেত্রে আমাদের কম সংগঠিত ডেটার সাথে কাজ করতে হয়, যেমন টেক্সট বা ইমেজ। এই ক্ষেত্রে, উপরে দেখা ডেটা প্রসেসিং কৌশল প্রয়োগ করতে, আমাদের **সংগঠিত** ডেটা **এক্সট্র্যাক্ট** করতে হয়। এখানে কিছু উদাহরণ দেওয়া হলো: + +* টেক্সট থেকে কীওয়ার্ড বের করা এবং কীভাবে সেগুলো কতবার উপস্থিত হয় তা দেখা +* ছবিতে থাকা অবজেক্ট সম্পর্কে তথ্য বের করতে নিউরাল নেটওয়ার্ক ব্যবহার করা +* ভিডিও ক্যামেরা ফিডে থাকা মানুষের আবেগ সম্পর্কে তথ্য পাওয়া + +## 🚀 চ্যালেঞ্জ ২: COVID সম্পর্কিত গবেষণাপত্র বিশ্লেষণ + +এই চ্যালেঞ্জে, আমরা COVID মহামারীর বিষয়টি নিয়ে আলোচনা চালিয়ে যাব এবং এই বিষয়ে বৈজ্ঞানিক গবেষণাপত্র প্রসেসিংয়ে ফোকাস করব। [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge)-এ ৭০০০-এর বেশি (লেখার সময়) COVID সম্পর্কিত গবেষণাপত্র রয়েছে, যা মেটাডেটা এবং অ্যাবস্ট্রাক্টসহ উপলব্ধ (এবং এর মধ্যে প্রায় অর্ধেকের জন্য পূর্ণ টেক্সটও সরবরাহ করা হয়েছে)। + +এই ডেটাসেট বিশ্লেষণের একটি পূর্ণ উদাহরণ [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) কগনিটিভ সার্ভিস ব্যবহার করে [এই ব্লগ পোস্টে](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) বর্ণনা করা হয়েছে। আমরা এই বিশ্লেষণের একটি সরলীকৃত সংস্করণ আলোচনা করব। + +> **NOTE**: আমরা এই রিপোজিটরির অংশ হিসেবে ডেটাসেটের একটি কপি সরবরাহ করি না। আপনাকে প্রথমে [এই ডেটাসেটের Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) থেকে [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) ফাইল ডাউনলোড করতে হতে পারে। Kaggle-এ রেজিস্ট্রেশন প্রয়োজন হতে পারে। আপনি রেজিস্ট্রেশন ছাড়াই [এখান থেকে](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ডেটাসেট ডাউনলোড করতে পারেন, তবে এটি মেটাডেটা ফাইলের পাশাপাশি সমস্ত পূর্ণ টেক্সট অন্তর্ভুক্ত করবে। + +[`notebook-papers.ipynb`](notebook-papers.ipynb) খুলুন এবং শুরু থেকে শেষ পর্যন্ত পড়ুন। আপনি সেলগুলো চালাতে পারেন এবং শেষে আমাদের রেখে যাওয়া কিছু চ্যালেঞ্জ সম্পন্ন করতে পারেন। + +![Covid চিকিৎসা](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.bn.png) + +## ইমেজ ডেটা প্রসেসিং + +সম্প্রতি, খুব শক্তিশালী AI মডেল তৈরি করা হয়েছে যা আমাদের ইমেজ বুঝতে সাহায্য করে। অনেক কাজ প্রি-ট্রেইনড নিউরাল নেটওয়ার্ক বা ক্লাউড সার্ভিস ব্যবহার করে সমাধান করা যায়। কিছু উদাহরণ হলো: + +* **ইমেজ ক্লাসিফিকেশন**, যা আপনাকে ইমেজকে পূর্বনির্ধারিত ক্লাসগুলোর মধ্যে একটিতে শ্রেণীবদ্ধ করতে সাহায্য করে। আপনি সহজেই [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) সার্ভিস ব্যবহার করে আপনার নিজস্ব ইমেজ ক্লাসিফায়ার ট্রেইন করতে পারেন। +* **অবজেক্ট ডিটেকশন** ইমেজে বিভিন্ন অবজেক্ট সনাক্ত করতে। [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) সার্ভিস অনেক সাধারণ অবজেক্ট সনাক্ত করতে পারে, এবং আপনি [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) মডেল ট্রেইন করে নির্দিষ্ট আগ্রহের অবজেক্ট সনাক্ত করতে পারেন। +* **ফেস ডিটেকশন**, যার মধ্যে বয়স, লিঙ্গ এবং আবেগ সনাক্তকরণ অন্তর্ভুক্ত। এটি [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে করা যায়। + +এই সমস্ত ক্লাউড সার্ভিস [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে কল করা যায় এবং সহজেই আপনার ডেটা এক্সপ্লোরেশন ওয়ার্কফ্লোতে অন্তর্ভুক্ত করা যায়। + +ইমেজ ডেটা সোর্স থেকে ডেটা এক্সপ্লোর করার কিছু উদাহরণ এখানে দেওয়া হলো: +* [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) ব্লগ পোস্টে আমরা Instagram ছবিগুলো এক্সপ্লোর করি, চেষ্টা করি বুঝতে কীভাবে একটি ছবিতে বেশি লাইক পাওয়া যায়। আমরা প্রথমে [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ছবিগুলো থেকে যতটা সম্ভব তথ্য বের করি এবং তারপর [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে একটি ব্যাখ্যাযোগ্য মডেল তৈরি করি। +* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies)-এ আমরা [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) ব্যবহার করে ইভেন্টের ছবিতে থাকা মানুষের আবেগ বের করি, চেষ্টা করি বুঝতে কীভাবে মানুষকে খুশি করা যায়। + +## উপসংহার + +আপনার কাছে সংগঠিত বা অসংগঠিত ডেটা যাই থাকুক না কেন, Python ব্যবহার করে আপনি ডেটা প্রসেসিং এবং বোঝার সাথে সম্পর্কিত সমস্ত ধাপ সম্পাদন করতে পারেন। এটি সম্ভবত ডেটা প্রসেসিংয়ের সবচেয়ে নমনীয় উপায়, এবং এ কারণেই বেশিরভাগ ডেটা বিজ্ঞানী Python-কে তাদের প্রধান টুল হিসেবে ব্যবহার করেন। যদি আপনি আপনার ডেটা সায়েন্স যাত্রায় সিরিয়াস হন, Python গভীরভাবে শেখা সম্ভবত একটি ভালো ধারণা। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/13) + +## রিভিউ এবং স্ব-অধ্যয়ন + +**বই** +* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) + +**অনলাইন রিসোর্স** +* অফিসিয়াল [10 minutes to Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) টিউটোরিয়াল +* [Pandas Visualization সম্পর্কিত ডকুমেন্টেশন](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) + +**Python শেখা** +* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) +* [Take your First Steps with Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn-এ লার্নিং পাথ + +## অ্যাসাইনমেন্ট + +[উপরের চ্যালেঞ্জগুলোর জন্য আরও বিস্তারিত ডেটা স্টাডি সম্পাদন করুন](assignment.md) + +## ক্রেডিট + +এই লেসনটি ♥️ দিয়ে [Dmitry Soshnikov](http://soshnikov.com) দ্বারা রচিত। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/07-python/assignment.md b/translations/bn/2-Working-With-Data/07-python/assignment.md new file mode 100644 index 00000000..35ab2dd9 --- /dev/null +++ b/translations/bn/2-Working-With-Data/07-python/assignment.md @@ -0,0 +1,37 @@ + +# পাইথনে ডেটা প্রসেসিংয়ের জন্য অ্যাসাইনমেন্ট + +এই অ্যাসাইনমেন্টে, আমরা আপনাকে আমাদের চ্যালেঞ্জগুলিতে শুরু করা কোডটি আরও বিস্তারিতভাবে ব্যাখ্যা করতে বলব। অ্যাসাইনমেন্টটি দুইটি অংশে বিভক্ত: + +## COVID-19 সংক্রমণ মডেলিং + + - [ ] তুলনার জন্য ৫-৬টি ভিন্ন দেশের *R* গ্রাফ একসাথে একটি প্লটে বা পাশাপাশি কয়েকটি প্লটে আঁকুন। + - [ ] সংক্রমিত কেসের সংখ্যার সাথে মৃত্যুর সংখ্যা এবং সুস্থতার সংখ্যার সম্পর্ক দেখুন। + - [ ] সংক্রমণের হার এবং মৃত্যুর হারের ভিজ্যুয়াল সম্পর্ক দেখে এবং কিছু অস্বাভাবিকতা খুঁজে বের করে দেখুন একটি সাধারণ রোগ কতদিন স্থায়ী হয়। এটি খুঁজে বের করতে আপনাকে বিভিন্ন দেশের ডেটা দেখতে হতে পারে। + - [ ] মৃত্যুর হার গণনা করুন এবং এটি সময়ের সাথে কীভাবে পরিবর্তিত হয় তা দেখুন। *গণনার আগে রোগের দৈর্ঘ্য (দিনে) বিবেচনা করে একটি টাইম সিরিজকে স্থানান্তরিত করতে হতে পারে।* + +## COVID-19 গবেষণাপত্র বিশ্লেষণ + +- [ ] বিভিন্ন ওষুধের কো-অকারেন্স ম্যাট্রিক্স তৈরি করুন এবং দেখুন কোন ওষুধগুলো একসাথে বেশি উল্লেখিত হয় (অর্থাৎ একটি অ্যাবস্ট্রাক্টে উল্লেখিত)। ওষুধ এবং রোগ নির্ণয়ের জন্য কো-অকারেন্স ম্যাট্রিক্স তৈরির কোডটি পরিবর্তন করতে পারেন। +- [ ] এই ম্যাট্রিক্সটি হিটম্যাপ ব্যবহার করে ভিজ্যুয়ালাইজ করুন। +- [ ] একটি অতিরিক্ত চ্যালেঞ্জ হিসেবে, ওষুধের কো-অকারেন্স [chord diagram](https://en.wikipedia.org/wiki/Chord_diagram) ব্যবহার করে ভিজ্যুয়ালাইজ করুন। [এই লাইব্রেরি](https://pypi.org/project/chord/) আপনাকে একটি chord diagram আঁকতে সাহায্য করতে পারে। +- [ ] আরেকটি অতিরিক্ত চ্যালেঞ্জ হিসেবে, বিভিন্ন ওষুধের ডোজ (যেমন **400mg** *প্রতিদিন 400mg chloroquine নিন*) নিয়মিত এক্সপ্রেশন ব্যবহার করে বের করুন এবং একটি ডেটাফ্রেম তৈরি করুন যা বিভিন্ন ওষুধের জন্য বিভিন্ন ডোজ দেখায়। **নোট**: ওষুধের নামের কাছাকাছি টেক্সটের মধ্যে থাকা সংখ্যাগুলি বিবেচনা করুন। + +## মূল্যায়ন + +উদাহরণযোগ্য | যথাযথ | উন্নতির প্রয়োজন +--- | --- | -- | +সব কাজ সম্পন্ন, গ্রাফিক্যালি উপস্থাপিত এবং ব্যাখ্যা করা হয়েছে, অন্তত একটি অতিরিক্ত চ্যালেঞ্জ সম্পন্ন | ৫টির বেশি কাজ সম্পন্ন, কোনো অতিরিক্ত চ্যালেঞ্জ চেষ্টা করা হয়নি, অথবা ফলাফল পরিষ্কার নয় | ৩টির বেশি কিন্তু ৫টির কম কাজ সম্পন্ন, ভিজ্যুয়ালাইজেশন পয়েন্টটি বোঝাতে সাহায্য করে না + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/08-data-preparation/README.md b/translations/bn/2-Working-With-Data/08-data-preparation/README.md new file mode 100644 index 00000000..67950b4d --- /dev/null +++ b/translations/bn/2-Working-With-Data/08-data-preparation/README.md @@ -0,0 +1,346 @@ + +# ডেটার সাথে কাজ করা: ডেটা প্রস্তুতি + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/08-DataPreparation.png)| +|:---:| +|ডেটা প্রস্তুতি - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/14) + +ডেটার উৎসের উপর নির্ভর করে, কাঁচা ডেটাতে এমন কিছু অসঙ্গতি থাকতে পারে যা বিশ্লেষণ এবং মডেলিংয়ে চ্যালেঞ্জ সৃষ্টি করবে। অন্য কথায়, এই ডেটাকে "নোংরা" হিসাবে শ্রেণীবদ্ধ করা যেতে পারে এবং এটি পরিষ্কার করা প্রয়োজন। এই পাঠে অনুপস্থিত, ভুল বা অসম্পূর্ণ ডেটা মোকাবেলার জন্য ডেটা পরিষ্কার এবং রূপান্তর করার কৌশলগুলির উপর ফোকাস করা হয়েছে। এই পাঠে আলোচনা করা বিষয়গুলি Python এবং Pandas লাইব্রেরি ব্যবহার করবে এবং এই ডিরেক্টরির [নোটবুকে](notebook.ipynb) প্রদর্শিত হবে। + +## ডেটা পরিষ্কারের গুরুত্ব + +- **ব্যবহার এবং পুনঃব্যবহারের সহজতা**: যখন ডেটা সঠিকভাবে সংগঠিত এবং স্বাভাবিকীকৃত হয়, তখন এটি অনুসন্ধান, ব্যবহার এবং অন্যদের সাথে শেয়ার করা সহজ হয়। + +- **সঙ্গতি**: ডেটা সায়েন্স প্রায়শই একাধিক ডেটাসেট নিয়ে কাজ করার প্রয়োজন হয়, যেখানে বিভিন্ন উৎস থেকে ডেটাসেট একত্রিত করতে হয়। প্রতিটি পৃথক ডেটাসেটের সাধারণ মানকরণ নিশ্চিত করা হলে, একত্রিত ডেটাসেটেও ডেটা কার্যকর থাকবে। + +- **মডেলের নির্ভুলতা**: পরিষ্কার করা ডেটা সেই মডেলগুলির নির্ভুলতা উন্নত করে যা এর উপর নির্ভর করে। + +## সাধারণ পরিষ্কারের লক্ষ্য এবং কৌশল + +- **ডেটাসেট অন্বেষণ**: ডেটা অন্বেষণ, যা [পরবর্তী পাঠে](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/4-Data-Science-Lifecycle/15-analyzing) আলোচনা করা হয়েছে, আপনাকে এমন ডেটা আবিষ্কার করতে সাহায্য করতে পারে যা পরিষ্কার করা প্রয়োজন। ডেটাসেটের মধ্যে মানগুলি ভিজ্যুয়ালি পর্যবেক্ষণ করা বাকি অংশটি কেমন হবে তার প্রত্যাশা তৈরি করতে পারে বা সমাধানযোগ্য সমস্যাগুলির ধারণা দিতে পারে। অন্বেষণ মৌলিক কোয়েরি, ভিজ্যুয়ালাইজেশন এবং স্যাম্পলিং অন্তর্ভুক্ত করতে পারে। + +- **ফরম্যাটিং**: উৎসের উপর নির্ভর করে, ডেটাতে উপস্থাপনার ক্ষেত্রে অসঙ্গতি থাকতে পারে। এটি মান অনুসন্ধান এবং উপস্থাপনার ক্ষেত্রে সমস্যা সৃষ্টি করতে পারে, যেখানে এটি ডেটাসেটে দেখা যায় কিন্তু ভিজ্যুয়ালাইজেশন বা কোয়েরি ফলাফলে সঠিকভাবে উপস্থাপিত হয় না। সাধারণ ফরম্যাটিং সমস্যাগুলির মধ্যে রয়েছে হোয়াইটস্পেস, তারিখ এবং ডেটা টাইপ সমাধান করা। ফরম্যাটিং সমস্যাগুলি সাধারণত ডেটা ব্যবহারকারীদের উপর নির্ভর করে সমাধান করা হয়। উদাহরণস্বরূপ, তারিখ এবং সংখ্যাগুলি কীভাবে উপস্থাপন করা হয় তার মান দেশভেদে ভিন্ন হতে পারে। + +- **ডুপ্লিকেশন**: একাধিকবার উপস্থিত ডেটা ভুল ফলাফল তৈরি করতে পারে এবং সাধারণত এটি সরিয়ে ফেলা উচিত। এটি দুই বা ততোধিক ডেটাসেট একত্রিত করার সময় একটি সাধারণ ঘটনা হতে পারে। তবে, এমন কিছু ক্ষেত্রে ডুপ্লিকেশন থাকা প্রয়োজন হতে পারে যেখানে এটি অতিরিক্ত তথ্য প্রদান করে। + +- **অনুপস্থিত ডেটা**: অনুপস্থিত ডেটা ভুল বা পক্ষপাতদুষ্ট ফলাফল তৈরি করতে পারে। কখনও কখনও এগুলি ডেটা পুনরায় লোড করে, Python কোড ব্যবহার করে অনুপস্থিত মান পূরণ করে বা কেবল মান এবং সংশ্লিষ্ট ডেটা সরিয়ে সমাধান করা যায়। ডেটা কেন অনুপস্থিত এবং কীভাবে এটি সমাধান করা হবে তা নির্ভর করে এটি কীভাবে এবং কেন অনুপস্থিত হয়েছে তার উপর। + +## ডেটাফ্রেম তথ্য অন্বেষণ +> **শিক্ষার লক্ষ্য:** এই উপ-অধ্যায়ের শেষে, আপনি pandas DataFrame-এ সংরক্ষিত ডেটার সাধারণ তথ্য খুঁজে পেতে স্বাচ্ছন্দ্যবোধ করবেন। + +আপনার ডেটা pandas-এ লোড করার পরে, এটি সম্ভবত একটি DataFrame-এ থাকবে (পূর্ববর্তী [পাঠ](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/07-python#dataframe) থেকে বিস্তারিত পর্যালোচনা দেখুন)। তবে, যদি আপনার DataFrame-এ ৬০,০০০ সারি এবং ৪০০ কলাম থাকে, তাহলে আপনি কীভাবে বুঝবেন যে আপনি কী নিয়ে কাজ করছেন? সৌভাগ্যক্রমে, [pandas](https://pandas.pydata.org/) DataFrame-এর সামগ্রিক তথ্য দ্রুত দেখার জন্য কিছু সুবিধাজনক টুল সরবরাহ করে, পাশাপাশি প্রথম এবং শেষ কয়েকটি সারি দেখার জন্য। + +এই কার্যকারিতা অন্বেষণ করতে, আমরা Python-এর scikit-learn লাইব্রেরি আমদানি করব এবং একটি আইকনিক ডেটাসেট ব্যবহার করব: **Iris ডেটাসেট**। + +```python +import pandas as pd +from sklearn.datasets import load_iris + +iris = load_iris() +iris_df = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) +``` +| |sepal length (cm)|sepal width (cm)|petal length (cm)|petal width (cm)| +|----------------------------------------|-----------------|----------------|-----------------|----------------| +|0 |5.1 |3.5 |1.4 |0.2 | +|1 |4.9 |3.0 |1.4 |0.2 | +|2 |4.7 |3.2 |1.3 |0.2 | +|3 |4.6 |3.1 |1.5 |0.2 | +|4 |5.0 |3.6 |1.4 |0.2 | + +- **DataFrame.info**: শুরুতে, `info()` পদ্ধতি ব্যবহার করে একটি DataFrame-এ উপস্থিত সামগ্রীর সারাংশ প্রিন্ট করা হয়। আসুন এই ডেটাসেটটি দেখি: +```python +iris_df.info() +``` +``` +RangeIndex: 150 entries, 0 to 149 +Data columns (total 4 columns): + # Column Non-Null Count Dtype +--- ------ -------------- ----- + 0 sepal length (cm) 150 non-null float64 + 1 sepal width (cm) 150 non-null float64 + 2 petal length (cm) 150 non-null float64 + 3 petal width (cm) 150 non-null float64 +dtypes: float64(4) +memory usage: 4.8 KB +``` +এখান থেকে আমরা জানতে পারি যে *Iris* ডেটাসেটে ১৫০টি এন্ট্রি রয়েছে চারটি কলামে এবং কোনো null এন্ট্রি নেই। সমস্ত ডেটা ৬৪-বিট ফ্লোটিং-পয়েন্ট সংখ্যার আকারে সংরক্ষিত। + +- **DataFrame.head()**: এরপর, DataFrame-এর প্রকৃত বিষয়বস্তু পরীক্ষা করতে, আমরা `head()` পদ্ধতি ব্যবহার করি। আসুন দেখি আমাদের `iris_df`-এর প্রথম কয়েকটি সারি কেমন দেখাচ্ছে: +```python +iris_df.head() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +0 5.1 3.5 1.4 0.2 +1 4.9 3.0 1.4 0.2 +2 4.7 3.2 1.3 0.2 +3 4.6 3.1 1.5 0.2 +4 5.0 3.6 1.4 0.2 +``` +- **DataFrame.tail()**: বিপরীতে, DataFrame-এর শেষ কয়েকটি সারি পরীক্ষা করতে, আমরা `tail()` পদ্ধতি ব্যবহার করি: +```python +iris_df.tail() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +145 6.7 3.0 5.2 2.3 +146 6.3 2.5 5.0 1.9 +147 6.5 3.0 5.2 2.0 +148 6.2 3.4 5.4 2.3 +149 5.9 3.0 5.1 1.8 +``` +> **মূল কথা:** DataFrame-এর তথ্য বা প্রথম এবং শেষ কয়েকটি মান দেখেই আপনি ডেটার আকার, গঠন এবং বিষয়বস্তু সম্পর্কে একটি প্রাথমিক ধারণা পেতে পারেন। + +## অনুপস্থিত ডেটা মোকাবেলা করা +> **শিক্ষার লক্ষ্য:** এই উপ-অধ্যায়ের শেষে, আপনি DataFrame থেকে null মান প্রতিস্থাপন বা সরানোর পদ্ধতি জানতে পারবেন। + +প্রায়শই আপনি যে ডেটাসেট ব্যবহার করতে চান (বা ব্যবহার করতে বাধ্য হন) তাতে অনুপস্থিত মান থাকে। অনুপস্থিত ডেটা কীভাবে পরিচালনা করা হয় তার সাথে সূক্ষ্ম আপস জড়িত থাকে যা আপনার চূড়ান্ত বিশ্লেষণ এবং বাস্তব-জীবনের ফলাফলে প্রভাব ফেলতে পারে। + +Pandas দুটি উপায়ে অনুপস্থিত মান পরিচালনা করে। প্রথমটি আপনি আগের অংশে দেখেছেন: `NaN`, বা Not a Number। এটি আসলে IEEE ফ্লোটিং-পয়েন্ট স্পেসিফিকেশনের একটি বিশেষ মান এবং এটি শুধুমাত্র অনুপস্থিত ফ্লোটিং-পয়েন্ট মান নির্দেশ করতে ব্যবহৃত হয়। + +ফ্লোট ছাড়া অন্য অনুপস্থিত মানগুলির জন্য, pandas Python-এর `None` অবজেক্ট ব্যবহার করে। যদিও এটি বিভ্রান্তিকর মনে হতে পারে যে আপনি দুটি ভিন্ন ধরনের মানের সম্মুখীন হবেন যা মূলত একই জিনিস বলে, এই নকশা পছন্দের জন্য প্রোগ্রাম্যাটিক কারণ রয়েছে এবং বাস্তবে, এটি বেশিরভাগ ক্ষেত্রে pandas-কে একটি ভাল সমঝোতা প্রদান করতে সক্ষম করে। তবুও, `None` এবং `NaN` উভয়েরই কিছু সীমাবদ্ধতা রয়েছে যা তাদের ব্যবহারের ক্ষেত্রে আপনাকে সচেতন থাকতে হবে। + +`NaN` এবং `None` সম্পর্কে আরও জানুন [নোটবুক](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/4-Data-Science-Lifecycle/15-analyzing/notebook.ipynb) থেকে! + +- **Null মান সনাক্ত করা**: pandas-এ, `isnull()` এবং `notnull()` পদ্ধতিগুলি null ডেটা সনাক্ত করার জন্য আপনার প্রধান পদ্ধতি। উভয়ই আপনার ডেটার উপর Boolean মাস্ক প্রদান করে। আমরা `NaN` মানগুলির জন্য `numpy` ব্যবহার করব: +```python +import numpy as np + +example1 = pd.Series([0, np.nan, '', None]) +example1.isnull() +``` +``` +0 False +1 True +2 False +3 True +dtype: bool +``` +আউটপুটটি ভালো করে দেখুন। কোনো কিছু কি আপনাকে অবাক করেছে? যদিও `0` একটি গাণিতিক null, এটি তবুও একটি সম্পূর্ণ সঠিক পূর্ণসংখ্যা এবং pandas এটিকে সেভাবেই বিবেচনা করে। `''` একটু বেশি সূক্ষ্ম। যদিও আমরা এটি সেকশন ১-এ একটি খালি স্ট্রিং মান উপস্থাপন করতে ব্যবহার করেছি, এটি তবুও একটি স্ট্রিং অবজেক্ট এবং pandas-এর দৃষ্টিতে null-এর একটি উপস্থাপনা নয়। + +এখন, আসুন এটি উল্টে দিই এবং এই পদ্ধতিগুলি এমনভাবে ব্যবহার করি যেভাবে আপনি বাস্তবে সেগুলি ব্যবহার করবেন। আপনি Boolean মাস্ক সরাসরি একটি ``Series`` বা ``DataFrame`` সূচক হিসাবে ব্যবহার করতে পারেন, যা অনুপস্থিত (বা উপস্থিত) মানগুলির সাথে কাজ করার সময় কার্যকর হতে পারে। + +> **মূল কথা:** `isnull()` এবং `notnull()` পদ্ধতিগুলি `DataFrame`-এ ব্যবহার করার সময় একই ধরনের ফলাফল প্রদান করে: তারা ফলাফল এবং সেই ফলাফলের সূচক দেখায়, যা আপনার ডেটার সাথে কাজ করার সময় আপনাকে অনেক সাহায্য করবে। + +- **Null মান বাদ দেওয়া**: অনুপস্থিত মান সনাক্ত করার বাইরেও, pandas `Series` এবং `DataFrame` থেকে null মান সরানোর একটি সুবিধাজনক উপায় প্রদান করে। (বিশেষত বড় ডেটাসেটে, অন্য উপায়ে তাদের মোকাবেলা করার চেয়ে আপনার বিশ্লেষণ থেকে অনুপস্থিত [NA] মান সরিয়ে ফেলা প্রায়শই বেশি উপযুক্ত।) এটি ক্রিয়ায় দেখতে, আসুন `example1`-এ ফিরে যাই: +```python +example1 = example1.dropna() +example1 +``` +``` +0 0 +2 +dtype: object +``` +এটি আপনার `example3[example3.notnull()]` আউটপুটের মতো হওয়া উচিত। এখানে পার্থক্য হল, মাস্কড মানগুলির উপর সূচক করার পরিবর্তে, `dropna` সেই অনুপস্থিত মানগুলি `Series` `example1` থেকে সরিয়ে দিয়েছে। + +কারণ `DataFrame`-এর দুটি মাত্রা রয়েছে, সেগুলি ডেটা বাদ দেওয়ার জন্য আরও বিকল্প সরবরাহ করে। + +```python +example2 = pd.DataFrame([[1, np.nan, 7], + [2, 5, 8], + [np.nan, 6, 9]]) +example2 +``` +| | 0 | 1 | 2 | +|------|---|---|---| +|0 |1.0|NaN|7 | +|1 |2.0|5.0|8 | +|2 |NaN|6.0|9 | + +(pandas `NaN`-এর জন্য দুটি কলামকে ফ্লোটে আপকাস্ট করেছে কি আপনি লক্ষ্য করেছেন?) + +আপনি একটি `DataFrame` থেকে একটি একক মান বাদ দিতে পারবেন না, তাই আপনাকে সম্পূর্ণ সারি বা কলাম বাদ দিতে হবে। আপনি যা করছেন তার উপর নির্ভর করে, আপনি একটির পরিবর্তে অন্যটি করতে চাইতে পারেন, এবং তাই pandas আপনাকে উভয়ের জন্য বিকল্প দেয়। কারণ ডেটা সায়েন্সে, কলামগুলি সাধারণত ভেরিয়েবল এবং সারিগুলি পর্যবেক্ষণ উপস্থাপন করে, আপনি ডেটার সারি বাদ দেওয়ার সম্ভাবনা বেশি; `dropna()`-এর ডিফল্ট সেটিং হল যেকোনো null মান ধারণকারী সমস্ত সারি বাদ দেওয়া: + +```python +example2.dropna() +``` +``` + 0 1 2 +1 2.0 5.0 8 +``` +যদি প্রয়োজন হয়, আপনি কলাম থেকে NA মান বাদ দিতে পারেন। এটি করতে `axis=1` ব্যবহার করুন: +```python +example2.dropna(axis='columns') +``` +``` + 2 +0 7 +1 8 +2 9 +``` +লক্ষ্য করুন যে এটি এমন অনেক ডেটা বাদ দিতে পারে যা আপনি রাখতে চাইতে পারেন, বিশেষত ছোট ডেটাসেটে। যদি আপনি কেবল এমন সারি বা কলাম বাদ দিতে চান যা কয়েকটি বা এমনকি সমস্ত null মান ধারণ করে? আপনি `dropna`-তে `how` এবং `thresh` প্যারামিটার দিয়ে সেই সেটিংগুলি নির্দিষ্ট করেন। + +ডিফল্টরূপে, `how='any'` (আপনি যদি নিজের জন্য পরীক্ষা করতে চান বা পদ্ধতিটির অন্য কোন প্যারামিটার রয়েছে তা দেখতে চান, একটি কোড সেলে `example4.dropna?` চালান)। আপনি বিকল্পভাবে `how='all'` নির্দিষ্ট করতে পারেন যাতে কেবল এমন সারি বা কলাম বাদ দেওয়া হয় যা সমস্ত null মান ধারণ করে। এটি ক্রিয়ায় দেখতে আমাদের উদাহরণ `DataFrame` প্রসারিত করি। + +```python +example2[3] = np.nan +example2 +``` +| |0 |1 |2 |3 | +|------|---|---|---|---| +|0 |1.0|NaN|7 |NaN| +|1 |2.0|5.0|8 |NaN| +|2 |NaN|6.0|9 |NaN| + +`thresh` প্যারামিটার আপনাকে আরও সূক্ষ্ম নিয়ন্ত্রণ দেয়: আপনি এমন সংখ্যক *non-null* মান নির্ধারণ করেন যা একটি সারি বা কলামে থাকা প্রয়োজন যাতে এটি রাখা হয়: +```python +example2.dropna(axis='rows', thresh=3) +``` +``` + 0 1 2 3 +1 2.0 5.0 8 NaN +``` +এখানে, প্রথম এবং শেষ সারি বাদ দেওয়া হয়েছে, কারণ সেগুলিতে কেবল দুটি non-null মান রয়েছে। + +- **Null মান পূরণ করা**: আপনার ডেটাসেটের উপর নির্ভর করে, কখনও কখনও null মানগুলি বৈধ মান দিয়ে পূরণ করা null মান বাদ দেওয়ার চেয়ে বেশি অর্থবহ হতে পারে। আপনি এটি ইন-প্লেসে করতে `isnull` ব্যবহার করতে পারেন, তবে এটি শ্রমসাধ্য হতে পারে, বিশেষত যদি আপনার অনেক মান পূরণ করতে হয়। কারণ এটি ডেটা সায়েন্সে একটি সাধারণ কাজ, pandas `fillna` প্রদান করে, যা একটি `Series` বা `DataFrame`-এর একটি কপি প্রদান করে যেখানে অনুপস্থিত মানগুলি আপনার পছন্দের একটি মান দিয়ে প্রতিস্থাপিত হয়। এটি বাস্তবে কীভাবে কাজ করে তা দেখতে একটি উদাহরণ `Series` তৈরি করি। +```python +example3 = pd.Series([1, np.nan, 2, None, 3], index=list('abcde')) +example3 +``` +``` +a 1.0 +b NaN +c 2.0 +d NaN +e 3.0 +dtype: float64 +``` +আপনি সমস্ত null এন্ট্রি একটি একক মান, যেমন `0` দিয়ে পূরণ করতে পারেন: +```python +example3.fillna(0) +``` +``` +a 1.0 +b 0.0 +c 2.0 +d 0.0 +e 3.0 +dtype: float64 +``` +আপনি null মানগুলিকে **ফরওয়ার্ড-ফিল** করতে পারেন, অর্থাৎ শেষ বৈধ মানটি null পূরণ করতে ব্যবহার করতে পারেন: +```python +example3.fillna(method='ffill') +``` +``` +a 1.0 +b 1.0 +c 2.0 +d 2.0 +e 3.0 +dtype: float64 +``` +আপনি null পূরণ করতে **ব্যাক-ফিল** করতে পারেন, অর্থাৎ পরবর্তী বৈধ মানটি null পূরণ করতে ব্যবহার করতে পারেন: +```python +example3.fillna(method='bfill') +``` +``` +a 1.0 +b 2.0 +c 2.0 +d 3.0 +e 3.0 +dtype: float64 +``` +আপনি অনুমান করতে পারেন, এটি `DataFrame`-এর ক্ষেত্রেও একইভাবে কাজ করে, তবে আপনি null মান পূরণের জন্য একটি `axis` নির্দিষ্ট করতে পারেন। পূর্বে ব্যবহৃত `example2` আবার নিন: +```python +example2.fillna(method='ffill', axis=1) +``` +``` + 0 1 2 3 +0 1.0 1.0 7.0 7.0 +1 2.0 5.0 8.0 8.0 +2 NaN 6.0 9.0 9.0 +``` +লক্ষ্য করুন যে যখন ফরওয়ার্ড-ফিলিংয়ের জন্য একটি পূর্ববর্তী মান উপলব্ধ নয়, তখন null মানটি রয়ে যায়। +> **মূল কথা:** আপনার ডেটাসেটে অনুপস্থিত মানগুলোর সাথে মোকাবিলা করার জন্য একাধিক পদ্ধতি রয়েছে। আপনি যে নির্দিষ্ট কৌশলটি ব্যবহার করবেন (অনুপস্থিত মানগুলো সরানো, প্রতিস্থাপন করা, বা কীভাবে প্রতিস্থাপন করবেন) তা সেই ডেটার বৈশিষ্ট্যের উপর নির্ভর করবে। আপনি যত বেশি ডেটাসেট নিয়ে কাজ করবেন এবং তাদের সাথে ইন্টারঅ্যাক্ট করবেন, অনুপস্থিত মানগুলো পরিচালনা করার ক্ষেত্রে তত ভালো ধারণা তৈরি হবে। + +## ডুপ্লিকেট ডেটা সরানো + +> **শেখার লক্ষ্য:** এই উপ-অধ্যায়ের শেষে, আপনি ডেটাফ্রেম থেকে ডুপ্লিকেট মানগুলো সনাক্ত এবং সরাতে স্বাচ্ছন্দ্যবোধ করবেন। + +অনুপস্থিত ডেটার পাশাপাশি, বাস্তব জীবনের ডেটাসেটে প্রায়ই ডুপ্লিকেট ডেটার সম্মুখীন হতে হয়। সৌভাগ্যক্রমে, `pandas` সহজেই ডুপ্লিকেট এন্ট্রি সনাক্ত এবং সরানোর একটি উপায় প্রদান করে। + +- **ডুপ্লিকেট সনাক্ত করা: `duplicated`**: `pandas`-এ `duplicated` মেথড ব্যবহার করে আপনি সহজেই ডুপ্লিকেট মানগুলো সনাক্ত করতে পারেন, যা একটি বুলিয়ান মাস্ক প্রদান করে যা নির্দেশ করে যে একটি `DataFrame`-এর এন্ট্রি পূর্বের কোনো এন্ট্রির ডুপ্লিকেট কিনা। এটি কার্যকরভাবে দেখার জন্য আমরা একটি উদাহরণ `DataFrame` তৈরি করব। +```python +example4 = pd.DataFrame({'letters': ['A','B'] * 2 + ['B'], + 'numbers': [1, 2, 1, 3, 3]}) +example4 +``` +| |letters|numbers| +|------|-------|-------| +|0 |A |1 | +|1 |B |2 | +|2 |A |1 | +|3 |B |3 | +|4 |B |3 | + +```python +example4.duplicated() +``` +``` +0 False +1 False +2 True +3 False +4 True +dtype: bool +``` +- **ডুপ্লিকেট সরানো: `drop_duplicates`:** এটি সহজভাবে ডেটার একটি কপি প্রদান করে যেখানে সমস্ত `duplicated` মানগুলো `False`: +```python +example4.drop_duplicates() +``` +``` + letters numbers +0 A 1 +1 B 2 +3 B 3 +``` +`duplicated` এবং `drop_duplicates` ডিফল্টভাবে সমস্ত কলাম বিবেচনা করে, তবে আপনি নির্দিষ্ট করতে পারেন যে তারা আপনার `DataFrame`-এর শুধুমাত্র একটি সাবসেট কলাম পরীক্ষা করবে: +```python +example4.drop_duplicates(['letters']) +``` +``` +letters numbers +0 A 1 +1 B 2 +``` + +> **মূল কথা:** ডুপ্লিকেট ডেটা সরানো প্রায় প্রতিটি ডেটা-সায়েন্স প্রকল্পের একটি গুরুত্বপূর্ণ অংশ। ডুপ্লিকেট ডেটা আপনার বিশ্লেষণের ফলাফল পরিবর্তন করতে পারে এবং আপনাকে ভুল ফলাফল দিতে পারে! + + +## 🚀 চ্যালেঞ্জ + +এই আলোচিত উপকরণগুলো একটি [Jupyter Notebook](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/2-Working-With-Data/08-data-preparation/notebook.ipynb) হিসেবে প্রদান করা হয়েছে। এছাড়াও, প্রতিটি অধ্যায়ের শেষে অনুশীলন রয়েছে, সেগুলো চেষ্টা করে দেখুন! + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/15) + + + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +আপনার ডেটা বিশ্লেষণ এবং মডেলিংয়ের জন্য প্রস্তুত করার এবং ডেটা পরিষ্কার করার বিভিন্ন উপায় রয়েছে, যা একটি "হ্যান্ডস অন" অভিজ্ঞতা। এই চ্যালেঞ্জগুলো চেষ্টা করুন যা এই পাঠে আলোচনা করা হয়নি। + +- [ডেটা ক্লিনিং চ্যালেঞ্জ: তারিখ পার্সিং](https://www.kaggle.com/rtatman/data-cleaning-challenge-parsing-dates/) + +- [ডেটা ক্লিনিং চ্যালেঞ্জ: ডেটা স্কেল এবং নরমালাইজ করা](https://www.kaggle.com/rtatman/data-cleaning-challenge-scale-and-normalize-data) + + +## অ্যাসাইনমেন্ট + +[ফর্ম থেকে ডেটা মূল্যায়ন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/08-data-preparation/assignment.md b/translations/bn/2-Working-With-Data/08-data-preparation/assignment.md new file mode 100644 index 00000000..e8eb7721 --- /dev/null +++ b/translations/bn/2-Working-With-Data/08-data-preparation/assignment.md @@ -0,0 +1,28 @@ + +# একটি ফর্ম থেকে ডেটা মূল্যায়ন + +একজন ক্লায়েন্ট তাদের গ্রাহক-ভিত্তি সম্পর্কে কিছু মৌলিক তথ্য সংগ্রহ করার জন্য একটি [ছোট ফর্ম](../../../../2-Working-With-Data/08-data-preparation/index.html) পরীক্ষা করেছেন। তারা তাদের সংগ্রহ করা ডেটা যাচাই করার জন্য আপনার কাছে এনেছেন। ফর্মটি দেখতে আপনি ব্রাউজারে `index.html` পৃষ্ঠাটি খুলতে পারেন। + +আপনাকে একটি [csv রেকর্ডের ডেটাসেট](../../../../data/form.csv) সরবরাহ করা হয়েছে, যেখানে ফর্ম থেকে প্রাপ্ত এন্ট্রি এবং কিছু মৌলিক ভিজ্যুয়ালাইজেশন অন্তর্ভুক্ত রয়েছে। ক্লায়েন্ট উল্লেখ করেছেন যে কিছু ভিজ্যুয়ালাইজেশন সঠিক মনে হচ্ছে না, তবে তারা এটি কীভাবে সমাধান করবেন তা নিশ্চিত নন। আপনি এটি [অ্যাসাইনমেন্ট নোটবুক](assignment.ipynb)-এ অন্বেষণ করতে পারেন। + +## নির্দেশাবলী + +এই পাঠে শেখানো কৌশলগুলি ব্যবহার করে ফর্মটি সম্পর্কে সুপারিশ দিন যাতে এটি সঠিক এবং সামঞ্জস্যপূর্ণ তথ্য সংগ্রহ করতে পারে। + +## মূল্যায়ন মানদণ্ড + +উদাহরণযোগ্য | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/2-Working-With-Data/README.md b/translations/bn/2-Working-With-Data/README.md new file mode 100644 index 00000000..ddace2e4 --- /dev/null +++ b/translations/bn/2-Working-With-Data/README.md @@ -0,0 +1,31 @@ + +# ডেটা নিয়ে কাজ করা + +![ডেটার প্রতি ভালোবাসা](../../../translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.bn.jpg) +> ছবি আলেকজান্ডার সিন এর তোলা, আনস্প্ল্যাশ থেকে + +এই পাঠগুলোতে, আপনি শিখবেন কীভাবে ডেটা পরিচালনা, পরিবর্তন এবং অ্যাপ্লিকেশনে ব্যবহার করা যায়। আপনি সম্পর্কিত এবং অ-সম্পর্কিত ডেটাবেস সম্পর্কে শিখবেন এবং কীভাবে ডেটা সেখানে সংরক্ষণ করা যায়। আপনি পাইথন ব্যবহার করে ডেটা পরিচালনার মৌলিক বিষয়গুলো শিখবেন এবং পাইথন ব্যবহার করে ডেটা পরিচালনা ও বিশ্লেষণের বিভিন্ন উপায় আবিষ্কার করবেন। + +### বিষয়সমূহ + +1. [সম্পর্কিত ডেটাবেস](05-relational-databases/README.md) +2. [অ-সম্পর্কিত ডেটাবেস](06-non-relational/README.md) +3. [পাইথন নিয়ে কাজ করা](07-python/README.md) +4. [ডেটা প্রস্তুত করা](08-data-preparation/README.md) + +### কৃতজ্ঞতা + +এই পাঠগুলো ❤️ দিয়ে লিখেছেন [ক্রিস্টোফার হ্যারিসন](https://twitter.com/geektrainer), [দিমিত্রি সশনিকভ](https://twitter.com/shwars) এবং [জ্যাসমিন গ্রিনঅ্যাওয়ে](https://twitter.com/paladique) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/09-visualization-quantities/README.md b/translations/bn/3-Data-Visualization/09-visualization-quantities/README.md new file mode 100644 index 00000000..f5968304 --- /dev/null +++ b/translations/bn/3-Data-Visualization/09-visualization-quantities/README.md @@ -0,0 +1,217 @@ + +# পরিমাণের ভিজ্যুয়ালাইজেশন + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| পরিমাণের ভিজ্যুয়ালাইজেশন - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +এই পাঠে আপনি শিখবেন কীভাবে বিভিন্ন উপলব্ধ পাইথন লাইব্রেরি ব্যবহার করে পরিমাণের ধারণা নিয়ে আকর্ষণীয় ভিজ্যুয়ালাইজেশন তৈরি করা যায়। মিনেসোটা রাজ্যের পাখিদের একটি পরিষ্কার ডেটাসেট ব্যবহার করে, আপনি স্থানীয় বন্যপ্রাণী সম্পর্কে অনেক আকর্ষণীয় তথ্য জানতে পারবেন। +## [পাঠ-পূর্ব কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## Matplotlib দিয়ে উইংসপ্যান পর্যবেক্ষণ করুন + +সরল এবং জটিল বিভিন্ন ধরনের প্লট এবং চার্ট তৈরি করার জন্য একটি চমৎকার লাইব্রেরি হলো [Matplotlib](https://matplotlib.org/stable/index.html)। সাধারণভাবে, এই লাইব্রেরি ব্যবহার করে ডেটা প্লট করার প্রক্রিয়াটি অন্তর্ভুক্ত করে: আপনার ডেটাফ্রেমের যে অংশটি লক্ষ্য করতে চান তা চিহ্নিত করা, প্রয়োজনীয় ডেটার উপর ট্রান্সফর্ম করা, এর x এবং y অক্ষের মান নির্ধারণ করা, কোন ধরনের প্লট দেখানো হবে তা সিদ্ধান্ত নেওয়া এবং তারপর প্লটটি দেখানো। Matplotlib বিভিন্ন ধরনের ভিজ্যুয়ালাইজেশন অফার করে, তবে এই পাঠে আমরা পরিমাণের ভিজ্যুয়ালাইজেশনের জন্য সবচেয়ে উপযুক্ত চার্টগুলোর দিকে মনোযোগ দেব: লাইন চার্ট, স্ক্যাটারপ্লট এবং বার প্লট। + +> ✅ আপনার ডেটার গঠন এবং আপনি যে গল্পটি বলতে চান তার জন্য সেরা চার্টটি ব্যবহার করুন। +> - সময়ের সাথে প্রবণতা বিশ্লেষণ করতে: লাইন +> - মান তুলনা করতে: বার, কলাম, পাই, স্ক্যাটারপ্লট +> - অংশগুলো কীভাবে পুরো সাথে সম্পর্কিত তা দেখাতে: পাই +> - ডেটার বিতরণ দেখাতে: স্ক্যাটারপ্লট, বার +> - প্রবণতা দেখাতে: লাইন, কলাম +> - মানগুলোর মধ্যে সম্পর্ক দেখাতে: লাইন, স্ক্যাটারপ্লট, বাবল + +যদি আপনার কাছে একটি ডেটাসেট থাকে এবং জানতে চান একটি নির্দিষ্ট আইটেমের কতটা অন্তর্ভুক্ত রয়েছে, তাহলে আপনার প্রথম কাজ হবে এর মানগুলো পরিদর্শন করা। + +✅ Matplotlib-এর জন্য খুব ভালো 'চিট শিট' [এখানে](https://matplotlib.org/cheatsheets/cheatsheets.pdf) পাওয়া যায়। + +## পাখির উইংসপ্যান মান নিয়ে একটি লাইন প্লট তৈরি করুন + +এই পাঠের ফোল্ডারের মূল অংশে থাকা `notebook.ipynb` ফাইলটি খুলুন এবং একটি সেল যোগ করুন। + +> নোট: ডেটা এই রিপোজিটরির মূল অংশে `/data` ফোল্ডারে সংরক্ষিত রয়েছে। + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +এই ডেটা টেক্সট এবং সংখ্যার মিশ্রণ: + +| | নাম | বৈজ্ঞানিক নাম | বিভাগ | অর্ডার | পরিবার | গণ | সংরক্ষণ অবস্থা | সর্বনিম্ন দৈর্ঘ্য | সর্বোচ্চ দৈর্ঘ্য | সর্বনিম্ন ওজন | সর্বোচ্চ ওজন | সর্বনিম্ন উইংসপ্যান | সর্বোচ্চ উইংসপ্যান | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | ব্ল্যাক-বেলিড হুইসলিং ডাক | Dendrocygna autumnalis | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | ফুলভাস হুইসলিং ডাক | Dendrocygna bicolor | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | স্নো গিজ | Anser caerulescens | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | রসের গিজ | Anser rossii | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | গ্রেটার হোয়াইট-ফ্রন্টেড গিজ | Anser albifrons | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +চলুন কিছু সংখ্যাসূচক ডেটা একটি সাধারণ লাইন প্লট ব্যবহার করে প্লট করা শুরু করি। ধরুন আপনি এই আকর্ষণীয় পাখিদের সর্বোচ্চ উইংসপ্যান দেখতে চান। + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![সর্বোচ্চ উইংসপ্যান](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.bn.png) + +আপনি প্রথমেই কী লক্ষ্য করেন? অন্তত একটি অস্বাভাবিক মান রয়েছে - এটি বেশ বড় উইংসপ্যান! ২৩০০ সেন্টিমিটার উইংসপ্যান মানে ২৩ মিটার - মিনেসোটায় কি প্টেরোড্যাকটিল ঘুরে বেড়াচ্ছে? চলুন তদন্ত করি। + +যদিও আপনি Excel-এ দ্রুত একটি সোর্ট করে এই অস্বাভাবিক মানগুলো খুঁজে বের করতে পারেন, চলুন প্লটের ভেতর থেকেই ভিজ্যুয়ালাইজেশন প্রক্রিয়া চালিয়ে যাই। + +x-অক্ষের লেবেলগুলো যোগ করুন যাতে বোঝা যায় কোন ধরনের পাখি নিয়ে আলোচনা করা হচ্ছে: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![লেবেলসহ উইংসপ্যান](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.bn.png) + +লেবেলগুলো ৪৫ ডিগ্রি ঘুরিয়ে দেওয়া হলেও পড়া কঠিন। চলুন একটি ভিন্ন কৌশল চেষ্টা করি: শুধুমাত্র অস্বাভাবিক মানগুলো লেবেল করি এবং লেবেলগুলো চার্টের ভেতরে সেট করি। আপনি একটি স্ক্যাটার চার্ট ব্যবহার করতে পারেন যাতে লেবেলিংয়ের জন্য আরও জায়গা তৈরি হয়: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +এখানে কী ঘটছে? আপনি `tick_params` ব্যবহার করে নিচের লেবেলগুলো লুকিয়েছেন এবং তারপর আপনার পাখির ডেটাসেটের উপর একটি লুপ তৈরি করেছেন। `bo` ব্যবহার করে ছোট গোলাকার নীল বিন্দু দিয়ে চার্ট প্লট করে, আপনি ৫০০-এর বেশি সর্বোচ্চ উইংসপ্যানযুক্ত কোনো পাখি খুঁজে বের করেছেন এবং যদি থাকে তবে বিন্দুর পাশে তাদের লেবেল প্রদর্শন করেছেন। আপনি লেবেলগুলো y অক্ষের উপর একটু সরিয়ে দিয়েছেন (`y * (1 - 0.05)`) এবং পাখির নামকে লেবেল হিসেবে ব্যবহার করেছেন। + +আপনি কী আবিষ্কার করেছেন? + +![অস্বাভাবিক মান](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.bn.png) +## আপনার ডেটা ফিল্টার করুন + +বাল্ড ঈগল এবং প্রেইরি ফ্যালকন, সম্ভবত খুব বড় পাখি, ভুলভাবে লেবেল করা হয়েছে, তাদের সর্বোচ্চ উইংসপ্যানের সাথে একটি অতিরিক্ত `0` যোগ করা হয়েছে। ২৫ মিটার উইংসপ্যানযুক্ত বাল্ড ঈগল দেখা অসম্ভব, তবে যদি দেখেন, আমাদের জানাবেন! চলুন একটি নতুন ডেটাফ্রেম তৈরি করি যেখানে এই দুটি অস্বাভাবিক মান বাদ দেওয়া হয়েছে: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +অস্বাভাবিক মানগুলো ফিল্টার করার মাধ্যমে, আপনার ডেটা এখন আরও সংহত এবং বোধগম্য। + +![উইংসপ্যানের স্ক্যাটারপ্লট](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.bn.png) + +এখন আমাদের কাছে উইংসপ্যানের ক্ষেত্রে অন্তত একটি পরিষ্কার ডেটাসেট রয়েছে, চলুন এই পাখিদের সম্পর্কে আরও কিছু আবিষ্কার করি। + +যদিও লাইন এবং স্ক্যাটার প্লট ডেটা মান এবং তাদের বিতরণ সম্পর্কে তথ্য প্রদর্শন করতে পারে, আমরা এই ডেটাসেটে অন্তর্নিহিত মানগুলো সম্পর্কে চিন্তা করতে চাই। আপনি পরিমাণ সম্পর্কে নিম্নলিখিত প্রশ্নগুলোর উত্তর দিতে ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন: + +> এখানে কতগুলো পাখির বিভাগ রয়েছে এবং তাদের সংখ্যা কত? +> কতগুলো পাখি বিলুপ্ত, বিপন্ন, বিরল বা সাধারণ? +> লিনিয়াসের পরিভাষায় বিভিন্ন গণ এবং অর্ডারের সংখ্যা কত? +## বার চার্ট অন্বেষণ করুন + +বার চার্ট ব্যবহারিক যখন আপনাকে ডেটার গ্রুপিং দেখাতে হয়। চলুন এই ডেটাসেটে বিদ্যমান পাখির বিভাগগুলো অন্বেষণ করি এবং সংখ্যার ভিত্তিতে কোনটি সবচেয়ে সাধারণ তা দেখি। + +নোটবুক ফাইলে একটি সাধারণ বার চার্ট তৈরি করুন। + +✅ নোট, আপনি আগের অংশে চিহ্নিত দুটি অস্বাভাবিক পাখি ফিল্টার করতে পারেন, তাদের উইংসপ্যানের টাইপো সম্পাদনা করতে পারেন, অথবা এই অনুশীলনগুলোর জন্য তাদের রেখে দিতে পারেন যা উইংসপ্যান মানের উপর নির্ভর করে না। + +যদি আপনি একটি বার চার্ট তৈরি করতে চান, আপনি যে ডেটার উপর ফোকাস করতে চান তা নির্বাচন করতে পারেন। বার চার্ট কাঁচা ডেটা থেকে তৈরি করা যেতে পারে: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![সম্পূর্ণ ডেটা বার চার্ট](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.bn.png) + +তবে এই বার চার্টটি পড়া কঠিন কারণ এখানে অনেক অ-গ্রুপকৃত ডেটা রয়েছে। আপনাকে শুধুমাত্র সেই ডেটা নির্বাচন করতে হবে যা আপনি প্লট করতে চান, তাই চলুন পাখির বিভাগ অনুযায়ী দৈর্ঘ্য দেখি। + +আপনার ডেটা শুধুমাত্র পাখির বিভাগ অন্তর্ভুক্ত করতে ফিল্টার করুন। + +✅ লক্ষ্য করুন যে আপনি Pandas ব্যবহার করে ডেটা পরিচালনা করেন এবং তারপর Matplotlib চার্টিং করে। + +যেহেতু অনেক বিভাগ রয়েছে, আপনি এই চার্টটি উল্লম্বভাবে প্রদর্শন করতে পারেন এবং সমস্ত ডেটার জন্য এর উচ্চতা সামঞ্জস্য করতে পারেন: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![বিভাগ এবং দৈর্ঘ্য](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.bn.png) + +এই বার চার্টটি পাখির প্রতিটি বিভাগের সংখ্যার একটি ভালো দৃশ্য দেখায়। এক নজরে, আপনি দেখতে পারেন যে এই অঞ্চলে সবচেয়ে বেশি সংখ্যক পাখি হাঁস/গিজ/জলপাখি বিভাগে রয়েছে। মিনেসোটা '১০,০০০ হ্রদের দেশ', তাই এটি আশ্চর্যজনক নয়! + +✅ এই ডেটাসেটে কিছু অন্যান্য গণনা চেষ্টা করুন। কিছু কি আপনাকে অবাক করে? + +## ডেটা তুলনা করা + +আপনি নতুন অক্ষ তৈরি করে গ্রুপকৃত ডেটার বিভিন্ন তুলনা চেষ্টা করতে পারেন। পাখির বিভাগ অনুযায়ী সর্বোচ্চ দৈর্ঘ্যের একটি তুলনা চেষ্টা করুন: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![ডেটা তুলনা](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.bn.png) + +এখানে কিছুই আশ্চর্যজনক নয়: হামিংবার্ডের সর্বোচ্চ দৈর্ঘ্য পেলিকান বা গিজের তুলনায় কম। যখন ডেটা যৌক্তিক মনে হয় তখন এটি ভালো! + +আপনি বার চার্টের আরও আকর্ষণীয় ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন ডেটা সুপারইম্পোজ করে। চলুন একটি পাখির বিভাগে সর্বনিম্ন এবং সর্বোচ্চ দৈর্ঘ্য সুপারইম্পোজ করি: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +এই প্লটে, আপনি একটি পাখির বিভাগের সর্বনিম্ন দৈর্ঘ্য এবং সর্বোচ্চ দৈর্ঘ্যের পরিসর দেখতে পারেন। আপনি নিরাপদে বলতে পারেন যে, এই ডেটা অনুযায়ী, পাখি যত বড়, তার দৈর্ঘ্যের পরিসর তত বেশি। চমৎকার! + +![সুপারইম্পোজড মান](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.bn.png) + +## 🚀 চ্যালেঞ্জ + +এই পাখির ডেটাসেটটি একটি নির্দিষ্ট বাস্তুতন্ত্রের মধ্যে বিভিন্ন ধরনের পাখি সম্পর্কে প্রচুর তথ্য সরবরাহ করে। ইন্টারনেটে অনুসন্ধান করুন এবং দেখুন আপনি কি অন্য পাখি-ভিত্তিক ডেটাসেট খুঁজে পেতে পারেন। এই পাখিদের চার্ট এবং গ্রাফ তৈরি করার অনুশীলন করুন এবং এমন তথ্য আবিষ্কার করুন যা আপনি আগে জানতেন না। +## [পাঠ-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## পর্যালোচনা এবং স্ব-অধ্যয়ন + +এই প্রথম পাঠটি আপনাকে পরিমাণের ভিজ্যুয়ালাইজেশনের জন্য Matplotlib ব্যবহার করার বিষয়ে কিছু তথ্য দিয়েছে। ডেটাসেট নিয়ে কাজ করার অন্যান্য উপায় সম্পর্কে গবেষণা করুন। [Plotly](https://github.com/plotly/plotly.py) একটি যা আমরা এই পাঠে কভার করব না, তাই এটি কী অফার করতে পারে তা দেখুন। +## অ্যাসাইনমেন্ট + +[লাইন, স্ক্যাটার এবং বার](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/09-visualization-quantities/assignment.md b/translations/bn/3-Data-Visualization/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..f61eb664 --- /dev/null +++ b/translations/bn/3-Data-Visualization/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# লাইন, স্ক্যাটার এবং বার + +## নির্দেশনা + +এই পাঠে, আপনি লাইন চার্ট, স্ক্যাটারপ্লট এবং বার চার্ট ব্যবহার করে এই ডেটাসেট সম্পর্কে আকর্ষণীয় তথ্য প্রদর্শন করেছেন। এই অ্যাসাইনমেন্টে, ডেটাসেটটি আরও গভীরভাবে বিশ্লেষণ করুন এবং একটি নির্দিষ্ট প্রজাতির পাখি সম্পর্কে একটি তথ্য আবিষ্কার করুন। উদাহরণস্বরূপ, একটি নোটবুক তৈরি করুন যেখানে আপনি স্নো গিজ সম্পর্কে সমস্ত আকর্ষণীয় ডেটা চিত্রিত করেছেন। আপনার নোটবুকে একটি গল্প বলার জন্য উপরের তিনটি প্লট ব্যবহার করুন। + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +একটি নোটবুক উপস্থাপন করা হয়েছে যেখানে ভালো মন্তব্য, শক্তিশালী গল্প বলার ক্ষমতা এবং আকর্ষণীয় গ্রাফ রয়েছে | নোটবুকে এই উপাদানগুলির মধ্যে একটি অনুপস্থিত | নোটবুকে এই উপাদানগুলির মধ্যে দুটি অনুপস্থিত + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/10-visualization-distributions/README.md b/translations/bn/3-Data-Visualization/10-visualization-distributions/README.md new file mode 100644 index 00000000..0f6e1933 --- /dev/null +++ b/translations/bn/3-Data-Visualization/10-visualization-distributions/README.md @@ -0,0 +1,217 @@ + +# ডিস্ট্রিবিউশন ভিজুয়ালাইজেশন + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| ডিস্ট্রিবিউশন ভিজুয়ালাইজেশন - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +পূর্ববর্তী পাঠে, আপনি মিনেসোটার পাখিদের একটি ডেটাসেট সম্পর্কে কিছু আকর্ষণীয় তথ্য শিখেছেন। আউটলায়ার ভিজুয়ালাইজ করে কিছু ভুল ডেটা খুঁজে পেয়েছেন এবং পাখির ক্যাটাগরিগুলোর মধ্যে তাদের সর্বোচ্চ দৈর্ঘ্যের পার্থক্য দেখেছেন। + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## পাখিদের ডেটাসেট অন্বেষণ করুন + +ডেটা বিশ্লেষণের আরেকটি উপায় হলো এর ডিস্ট্রিবিউশন দেখা, অর্থাৎ ডেটা কীভাবে একটি অক্ষ বরাবর সংগঠিত হয়েছে। উদাহরণস্বরূপ, আপনি হয়তো জানতে চাইবেন মিনেসোটার পাখিদের সর্বোচ্চ ডানার বিস্তার বা সর্বোচ্চ শরীরের ভরের সাধারণ ডিস্ট্রিবিউশন সম্পর্কে। + +এই ডেটাসেটের ডিস্ট্রিবিউশন সম্পর্কে কিছু তথ্য আবিষ্কার করা যাক। এই পাঠের মূল ফোল্ডারের _notebook.ipynb_ ফাইলে Pandas, Matplotlib এবং আপনার ডেটা ইমপোর্ট করুন: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +| | নাম | বৈজ্ঞানিক নাম | ক্যাটাগরি | অর্ডার | পরিবার | গণ | সংরক্ষণ অবস্থা | সর্বনিম্ন দৈর্ঘ্য | সর্বোচ্চ দৈর্ঘ্য | সর্বনিম্ন ভর | সর্বোচ্চ ভর | সর্বনিম্ন ডানার বিস্তার | সর্বোচ্চ ডানার বিস্তার | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | ব্ল্যাক-বেলিড হুইসলিং ডাক | Dendrocygna autumnalis | হাঁস/গিজ/জলচর পাখি | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | ফুলভাস হুইসলিং ডাক | Dendrocygna bicolor | হাঁস/গিজ/জলচর পাখি | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | স্নো গিজ | Anser caerulescens | হাঁস/গিজ/জলচর পাখি | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | রসের গিজ | Anser rossii | হাঁস/গিজ/জলচর পাখি | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | গ্রেটার হোয়াইট-ফ্রন্টেড গিজ | Anser albifrons | হাঁস/গিজ/জলচর পাখি | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +সাধারণভাবে, আপনি একটি স্ক্যাটার প্লট ব্যবহার করে দ্রুত ডেটার ডিস্ট্রিবিউশন দেখতে পারেন, যেমনটি আমরা পূর্ববর্তী পাঠে করেছি: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +![অর্ডার অনুযায়ী সর্বোচ্চ দৈর্ঘ্য](../../../../translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.bn.png) + +এটি পাখির অর্ডার অনুযায়ী শরীরের দৈর্ঘ্যের সাধারণ ডিস্ট্রিবিউশন দেখায়, তবে এটি প্রকৃত ডিস্ট্রিবিউশন দেখানোর জন্য আদর্শ নয়। এই কাজটি সাধারণত একটি হিস্টোগ্রাম তৈরি করে করা হয়। + +## হিস্টোগ্রামের সাথে কাজ করা + +Matplotlib ডেটা ডিস্ট্রিবিউশন ভিজুয়ালাইজ করার জন্য খুব ভালো উপায় প্রদান করে, যেমন হিস্টোগ্রাম। এই ধরনের চার্ট একটি বার চার্টের মতো, যেখানে ডিস্ট্রিবিউশন বারগুলোর উত্থান-পতনের মাধ্যমে দেখা যায়। একটি হিস্টোগ্রাম তৈরি করতে, আপনার প্রয়োজন সংখ্যাসূচক ডেটা। একটি হিস্টোগ্রাম তৈরি করতে, আপনি চার্টের ধরণ 'hist' হিসাবে সংজ্ঞায়িত করে একটি চার্ট প্লট করতে পারেন। এই চার্টটি পুরো ডেটাসেটের সংখ্যাসূচক ডেটার ডিস্ট্রিবিউশন দেখায়। ডেটার অ্যারের মানগুলোকে ছোট ছোট 'বিন'-এ ভাগ করে এটি ডেটার মানগুলোর ডিস্ট্রিবিউশন প্রদর্শন করতে পারে: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![পুরো ডেটাসেটের ডিস্ট্রিবিউশন](../../../../translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.bn.png) + +আপনি দেখতে পাচ্ছেন, এই ডেটাসেটে থাকা ৪০০+ পাখির বেশিরভাগই তাদের সর্বোচ্চ শরীরের ভরের ক্ষেত্রে ২০০০-এর নিচে পড়ে। `bins` প্যারামিটারটি একটি বড় সংখ্যায় পরিবর্তন করে ডেটা সম্পর্কে আরও অন্তর্দৃষ্টি লাভ করুন, যেমন ৩০: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![বড় বিন প্যারামিটার সহ ডিস্ট্রিবিউশন](../../../../translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.bn.png) + +এই চার্টটি আরও বিস্তারিতভাবে ডিস্ট্রিবিউশন দেখায়। একটি কম বাঁ দিকে ঝোঁকানো চার্ট তৈরি করা যেতে পারে নির্দিষ্ট একটি পরিসরের মধ্যে থাকা ডেটা নির্বাচন করে: + +আপনার ডেটা ফিল্টার করুন এবং কেবল সেই পাখিগুলো দেখান যাদের শরীরের ভর ৬০-এর নিচে, এবং ৪০ `bins` দেখান: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![ফিল্টার করা হিস্টোগ্রাম](../../../../translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.bn.png) + +✅ অন্যান্য ফিল্টার এবং ডেটা পয়েন্ট চেষ্টা করুন। ডেটার সম্পূর্ণ ডিস্ট্রিবিউশন দেখতে, `['MaxBodyMass']` ফিল্টারটি সরিয়ে লেবেলযুক্ত ডিস্ট্রিবিউশন দেখান। + +হিস্টোগ্রাম কিছু সুন্দর রঙ এবং লেবেলিং উন্নয়নও প্রদান করে যা চেষ্টা করা যেতে পারে: + +দুটি ডিস্ট্রিবিউশনের মধ্যে সম্পর্ক তুলনা করতে একটি ২ডি হিস্টোগ্রাম তৈরি করুন। আসুন `MaxBodyMass` এবং `MaxLength` তুলনা করি। Matplotlib একটি অন্তর্নির্মিত উপায় প্রদান করে উজ্জ্বল রঙ ব্যবহার করে কনভারজেন্স দেখানোর জন্য: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +এখানে একটি প্রত্যাশিত অক্ষ বরাবর এই দুটি উপাদানের মধ্যে একটি প্রত্যাশিত সম্পর্ক দেখা যাচ্ছে, একটি বিশেষভাবে শক্তিশালী কনভারজেন্স পয়েন্ট সহ: + +![২ডি প্লট](../../../../translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.bn.png) + +হিস্টোগ্রাম সাধারণত সংখ্যাসূচক ডেটার জন্য ভালো কাজ করে। যদি আপনি টেক্সট ডেটা অনুযায়ী ডিস্ট্রিবিউশন দেখতে চান তাহলে কী করবেন? +## টেক্সট ডেটা ব্যবহার করে ডিস্ট্রিবিউশন অন্বেষণ করুন + +এই ডেটাসেটে পাখির ক্যাটাগরি, গণ, প্রজাতি এবং পরিবার সম্পর্কিত তথ্যের পাশাপাশি সংরক্ষণ অবস্থা সম্পর্কেও ভালো তথ্য রয়েছে। আসুন এই সংরক্ষণ তথ্যটি অন্বেষণ করি। পাখিদের সংরক্ষণ অবস্থার ডিস্ট্রিবিউশন কী? + +> ✅ ডেটাসেটে সংরক্ষণ অবস্থার বর্ণনা করতে কয়েকটি সংক্ষিপ্ত রূপ ব্যবহার করা হয়েছে। এই সংক্ষিপ্ত রূপগুলো [IUCN Red List Categories](https://www.iucnredlist.org/) থেকে এসেছে, একটি সংস্থা যা প্রজাতির অবস্থা তালিকাভুক্ত করে। +> +> - CR: অত্যন্ত বিপন্ন +> - EN: বিপন্ন +> - EX: বিলুপ্ত +> - LC: কম উদ্বেগ +> - NT: প্রায় বিপন্ন +> - VU: ঝুঁকিপূর্ণ + +এই মানগুলো টেক্সট-ভিত্তিক, তাই একটি হিস্টোগ্রাম তৈরি করতে আপনাকে একটি রূপান্তর করতে হবে। ফিল্টার করা পাখিদের ডেটাফ্রেম ব্যবহার করে এর সংরক্ষণ অবস্থা এবং সর্বনিম্ন ডানার বিস্তার দেখান। আপনি কী দেখতে পাচ্ছেন? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Min Wingspan') +plt.legend(); +``` + +![ডানার বিস্তার এবং সংরক্ষণ অবস্থা](../../../../translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.bn.png) + +সর্বনিম্ন ডানার বিস্তার এবং সংরক্ষণ অবস্থার মধ্যে কোনো ভালো সম্পর্ক দেখা যাচ্ছে না। এই পদ্ধতি ব্যবহার করে ডেটাসেটের অন্যান্য উপাদান পরীক্ষা করুন। আপনি কি কোনো সম্পর্ক খুঁজে পান? + +## ডেনসিটি প্লট + +আপনি হয়তো লক্ষ্য করেছেন যে আমরা এখন পর্যন্ত যে হিস্টোগ্রামগুলো দেখেছি সেগুলো 'ধাপযুক্ত' এবং একটি মসৃণ আর্কে প্রবাহিত হয় না। একটি মসৃণ ডেনসিটি চার্ট দেখানোর জন্য, আপনি একটি ডেনসিটি প্লট চেষ্টা করতে পারেন। + +ডেনসিটি প্লটের সাথে কাজ করতে, একটি নতুন প্লটিং লাইব্রেরি, [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) এর সাথে পরিচিত হন। + +Seaborn লোড করে একটি মৌলিক ডেনসিটি প্লট চেষ্টা করুন: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![ডেনসিটি প্লট](../../../../translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.bn.png) + +আপনি দেখতে পাচ্ছেন যে এই প্লটটি পূর্ববর্তী সর্বনিম্ন ডানার বিস্তারের ডেটার মতোই প্রতিধ্বনিত হয়েছে; এটি কেবল একটু মসৃণ। Seaborn-এর ডকুমেন্টেশন অনুযায়ী, "একটি হিস্টোগ্রামের তুলনায়, KDE এমন একটি প্লট তৈরি করতে পারে যা কম বিশৃঙ্খল এবং আরও ব্যাখ্যাযোগ্য, বিশেষত একাধিক ডিস্ট্রিবিউশন আঁকার সময়। তবে এটি বিকৃতি প্রবর্তনের সম্ভাবনা রাখে যদি অন্তর্নিহিত ডিস্ট্রিবিউশন সীমাবদ্ধ বা মসৃণ না হয়। একটি হিস্টোগ্রামের মতো, উপস্থাপনার গুণমানও ভাল স্মুথিং প্যারামিটার নির্বাচনের উপর নির্ভর করে।" [source](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) অর্থাৎ, আউটলায়ার সবসময় আপনার চার্টকে খারাপভাবে প্রভাবিত করবে। + +আপনি যদি দ্বিতীয় চার্টে তৈরি করা সেই খাঁজযুক্ত MaxBodyMass লাইনে ফিরে যেতে চান, তবে এই পদ্ধতি ব্যবহার করে এটি খুব ভালোভাবে মসৃণ করতে পারেন: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![মসৃণ শরীরের ভরের লাইন](../../../../translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.bn.png) + +আপনি যদি একটি মসৃণ, তবে খুব বেশি মসৃণ নয় এমন লাইন চান, তবে `bw_adjust` প্যারামিটারটি সম্পাদনা করুন: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![কম মসৃণ শরীরের ভরের লাইন](../../../../translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.bn.png) + +✅ এই ধরনের প্লটের জন্য উপলব্ধ প্যারামিটার সম্পর্কে পড়ুন এবং পরীক্ষা করুন! + +এই ধরনের চার্ট সুন্দরভাবে ব্যাখ্যাযোগ্য ভিজুয়ালাইজেশন প্রদান করে। কয়েকটি কোড লাইনের সাহায্যে, উদাহরণস্বরূপ, আপনি পাখির অর্ডার অনুযায়ী সর্বোচ্চ শরীরের ভরের ডেনসিটি দেখাতে পারেন: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![অর্ডার অনুযায়ী শরীরের ভর](../../../../translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.bn.png) + +আপনি এক চার্টে একাধিক ভেরিয়েবলের ডেনসিটি ম্যাপ করতে পারেন। পাখির সর্বোচ্চ দৈর্ঘ্য এবং সর্বনিম্ন দৈর্ঘ্য তাদের সংরক্ষণ অবস্থার সাথে তুলনা করুন: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![একাধিক ডেনসিটি, সুপারইম্পোজড](../../../../translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.bn.png) + +সম্ভবত এটি গবেষণা করার মতো যে 'ঝুঁকিপূর্ণ' পাখিদের দৈর্ঘ্যের ক্লাস্টারটি অর্থবহ কিনা। + +## 🚀 চ্যালেঞ্জ + +হিস্টোগ্রাম একটি বেসিক স্ক্যাটারপ্লট, বার চার্ট, বা লাইন চার্টের তুলনায় আরও উন্নত ধরনের চার্ট। ইন্টারনেটে হিস্টোগ্রামের ভালো উদাহরণ খুঁজুন। সেগুলো কীভাবে ব্যবহার করা হয়, কী প্রদর্শন করে, এবং কোন ক্ষেত্র বা অনুসন্ধানের ক্ষেত্রে সেগুলো বেশি ব্যবহৃত হয় তা জানুন। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +এই পাঠে, আপনি Matplotlib ব্যবহার করেছেন এবং আরও উন্নত চার্ট দেখানোর জন্য Seaborn নিয়ে কাজ শুরু করেছেন। Seaborn-এ `kdeplot` সম্পর্কে গবেষণা করুন, যা "এক বা একাধিক মাত্রায় একটি ক্রমাগত সম্ভাব্য ডেনসিটি কার্ভ"। [ডকুমেন্টেশন](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) পড়ুন এবং এটি কীভাবে কাজ করে তা বোঝার চেষ্টা করুন। + +## অ্যাসাইনমেন্ট + +[আপনার দক্ষতা প্রয়োগ করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/10-visualization-distributions/assignment.md b/translations/bn/3-Data-Visualization/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..07758e54 --- /dev/null +++ b/translations/bn/3-Data-Visualization/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# আপনার দক্ষতা প্রয়োগ করুন + +## নির্দেশাবলী + +এখন পর্যন্ত, আপনি মিনেসোটা পাখির ডেটাসেট ব্যবহার করে পাখির সংখ্যা এবং জনসংখ্যার ঘনত্ব সম্পর্কে তথ্য আবিষ্কার করেছেন। এই কৌশলগুলির প্রয়োগ অনুশীলন করতে একটি ভিন্ন ডেটাসেট ব্যবহার করে দেখুন, যা হয়তো [Kaggle](https://www.kaggle.com/) থেকে সংগ্রহ করা যেতে পারে। একটি নোটবুক তৈরি করুন যা এই ডেটাসেট সম্পর্কে একটি গল্প বলে এবং এটি আলোচনা করার সময় অবশ্যই হিস্টোগ্রাম ব্যবহার করুন। + +## মূল্যায়ন মানদণ্ড + +উদাহরণযোগ্য | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | +একটি নোটবুক উপস্থাপন করা হয়েছে যেখানে এই ডেটাসেট সম্পর্কে টীকা রয়েছে, যার মধ্যে উৎস উল্লেখ করা হয়েছে, এবং অন্তত ৫টি হিস্টোগ্রাম ব্যবহার করে ডেটা সম্পর্কে তথ্য আবিষ্কার করা হয়েছে। | একটি নোটবুক উপস্থাপন করা হয়েছে যেখানে টীকা অসম্পূর্ণ বা বাগ রয়েছে। | একটি নোটবুক উপস্থাপন করা হয়েছে যেখানে টীকা নেই এবং বাগ রয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/11-visualization-proportions/README.md b/translations/bn/3-Data-Visualization/11-visualization-proportions/README.md new file mode 100644 index 00000000..32497c7d --- /dev/null +++ b/translations/bn/3-Data-Visualization/11-visualization-proportions/README.md @@ -0,0 +1,203 @@ + +# অনুপাতের ভিজুয়ালাইজেশন + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা স্কেচনোট ](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|অনুপাতের ভিজুয়ালাইজেশন - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +এই পাঠে, আপনি প্রকৃতি-কেন্দ্রিক একটি ভিন্ন ডেটাসেট ব্যবহার করে অনুপাত ভিজুয়ালাইজ করবেন, যেমন একটি মাশরুম সম্পর্কিত ডেটাসেটে বিভিন্ন প্রকারের ফাঙ্গির সংখ্যা। আসুন আমরা এই চমৎকার ফাঙ্গিগুলো অন্বেষণ করি Audubon থেকে প্রাপ্ত একটি ডেটাসেট ব্যবহার করে, যেখানে Agaricus এবং Lepiota পরিবারের ২৩ প্রজাতির গিল্ড মাশরুমের বিবরণ রয়েছে। আপনি মজাদার ভিজুয়ালাইজেশন নিয়ে পরীক্ষা করবেন, যেমন: + +- পাই চার্ট 🥧 +- ডোনাট চার্ট 🍩 +- ওয়াফল চার্ট 🧇 + +> 💡 Microsoft Research-এর একটি খুবই আকর্ষণীয় প্রকল্প [Charticulator](https://charticulator.com) একটি ফ্রি ড্র্যাগ-এন্ড-ড্রপ ইন্টারফেস প্রদান করে ডেটা ভিজুয়ালাইজেশনের জন্য। তাদের একটি টিউটোরিয়ালে এই মাশরুম ডেটাসেটও ব্যবহার করা হয়েছে! তাই আপনি একই সাথে ডেটা অন্বেষণ করতে এবং লাইব্রেরি শিখতে পারেন: [Charticulator টিউটোরিয়াল](https://charticulator.com/tutorials/tutorial4.html)। + +## [পাঠ-পূর্ব কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## আপনার মাশরুম সম্পর্কে জানুন 🍄 + +মাশরুম খুবই আকর্ষণীয়। আসুন আমরা একটি ডেটাসেট আমদানি করি এবং সেগুলো অধ্যয়ন করি: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +একটি টেবিল প্রিন্ট করা হয়েছে, যা বিশ্লেষণের জন্য দারুণ ডেটা সরবরাহ করে: + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +প্রথমেই, আপনি লক্ষ্য করবেন যে সমস্ত ডেটা টেক্সট আকারে রয়েছে। এই ডেটা চার্টে ব্যবহার করার জন্য আপনাকে এটি রূপান্তর করতে হবে। প্রকৃতপক্ষে, বেশিরভাগ ডেটা একটি অবজেক্ট হিসেবে উপস্থাপিত: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +আউটপুট হলো: + +```output +Index(['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'], + dtype='object') +``` +এই ডেটা নিন এবং 'class' কলামটিকে একটি ক্যাটাগরিতে রূপান্তর করুন: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` + +```python +edibleclass=mushrooms.groupby(['class']).count() +edibleclass +``` + +এখন, যদি আপনি মাশরুম ডেটা প্রিন্ট করেন, তবে দেখতে পাবেন এটি বিষাক্ত/খাদ্যোপযোগী শ্রেণী অনুযায়ী ক্যাটাগরিতে বিভক্ত হয়েছে: + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | 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 | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Edible | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Poisonous | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +যদি আপনি এই টেবিলে প্রদত্ত ক্রম অনুসরণ করেন শ্রেণী ক্যাটাগরি লেবেল তৈরি করতে, তবে আপনি একটি পাই চার্ট তৈরি করতে পারবেন: + +## পাই! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +দেখুন, একটি পাই চার্ট যা এই ডেটার অনুপাত দেখায় এই দুই শ্রেণীর মাশরুম অনুযায়ী। লেবেলের ক্রম সঠিক রাখা খুবই গুরুত্বপূর্ণ, বিশেষ করে এখানে, তাই নিশ্চিত করুন যে লেবেল অ্যারের ক্রম যাচাই করা হয়েছে! + +![পাই চার্ট](../../../../translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.bn.png) + +## ডোনাট! + +একটি কিছুটা বেশি আকর্ষণীয় পাই চার্ট হলো ডোনাট চার্ট, যা একটি পাই চার্ট যার মাঝখানে একটি গর্ত থাকে। আসুন এই পদ্ধতিতে আমাদের ডেটা দেখি। + +মাশরুম যেসব বিভিন্ন পরিবেশে বৃদ্ধি পায় তা দেখুন: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +এখানে, আপনি আপনার ডেটাকে পরিবেশ অনুযায়ী গ্রুপ করছেন। ৭টি পরিবেশ তালিকাভুক্ত রয়েছে, তাই সেগুলোকে আপনার ডোনাট চার্টের লেবেল হিসেবে ব্যবহার করুন: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![ডোনাট চার্ট](../../../../translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.bn.png) + +এই কোডটি একটি চার্ট এবং একটি কেন্দ্র বৃত্ত আঁকে, তারপর সেই কেন্দ্র বৃত্তটি চার্টে যোগ করে। কেন্দ্র বৃত্তের প্রস্থ পরিবর্তন করতে `0.40`-কে অন্য মানে পরিবর্তন করুন। + +ডোনাট চার্ট বিভিন্ন উপায়ে পরিবর্তন করা যায় লেবেলগুলোকে আরও পাঠযোগ্য করার জন্য। আরও জানুন [ডকুমেন্টেশন](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut) থেকে। + +এখন যেহেতু আপনি জানেন কিভাবে আপনার ডেটাকে গ্রুপ করতে হয় এবং তারপর এটি পাই বা ডোনাট আকারে প্রদর্শন করতে হয়, আপনি অন্যান্য ধরণের চার্ট অন্বেষণ করতে পারেন। একটি ওয়াফল চার্ট চেষ্টা করুন, যা পরিমাণ অন্বেষণের একটি ভিন্ন উপায়। + +## ওয়াফল! + +'ওয়াফল' টাইপ চার্ট একটি ২ডি স্কোয়ারের অ্যারে হিসেবে পরিমাণ ভিজুয়ালাইজ করার একটি ভিন্ন উপায়। এই ডেটাসেটে মাশরুমের ক্যাপ রঙের বিভিন্ন পরিমাণ ভিজুয়ালাইজ করতে চেষ্টা করুন। এটি করতে, আপনাকে একটি সহায়ক লাইব্রেরি [PyWaffle](https://pypi.org/project/pywaffle/) ইনস্টল করতে হবে এবং Matplotlib ব্যবহার করতে হবে: + +```python +pip install pywaffle +``` + +আপনার ডেটার একটি অংশ নির্বাচন করুন এবং গ্রুপ করুন: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +লেবেল তৈরি করুন এবং তারপর আপনার ডেটাকে গ্রুপ করে একটি ওয়াফল চার্ট তৈরি করুন: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +ওয়াফল চার্ট ব্যবহার করে, আপনি স্পষ্টভাবে এই মাশরুম ডেটাসেটের ক্যাপ রঙের অনুপাত দেখতে পাবেন। মজার বিষয় হলো, অনেক সবুজ ক্যাপযুক্ত মাশরুম রয়েছে! + +![ওয়াফল চার্ট](../../../../translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.bn.png) + +✅ Pywaffle চার্টে আইকন সমর্থন করে, যা [Font Awesome](https://fontawesome.com/) থেকে যেকোনো আইকন ব্যবহার করতে পারে। আইকনের পরিবর্তে স্কোয়ার ব্যবহার করে আরও আকর্ষণীয় ওয়াফল চার্ট তৈরি করতে কিছু পরীক্ষা করুন। + +এই পাঠে, আপনি অনুপাত ভিজুয়ালাইজ করার তিনটি উপায় শিখেছেন। প্রথমে, আপনাকে আপনার ডেটাকে ক্যাটাগরিতে গ্রুপ করতে হবে এবং তারপর সিদ্ধান্ত নিতে হবে কোনটি ডেটা প্রদর্শনের জন্য সেরা উপায় - পাই, ডোনাট, বা ওয়াফল। সবগুলোই মজাদার এবং ব্যবহারকারীকে ডেটাসেটের একটি তাত্ক্ষণিক ঝলক দেয়। + +## 🚀 চ্যালেঞ্জ + +[Charticulator](https://charticulator.com) এ এই মজাদার চার্টগুলো পুনরায় তৈরি করার চেষ্টা করুন। +## [পাঠ-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## পুনরায় দেখুন এবং স্ব-অধ্যয়ন + +কখন পাই, ডোনাট, বা ওয়াফল চার্ট ব্যবহার করবেন তা সবসময় স্পষ্ট নয়। এই বিষয়ে পড়ার জন্য কিছু নিবন্ধ: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +আরও তথ্য পেতে কিছু গবেষণা করুন এই কঠিন সিদ্ধান্ত নিয়ে। +## অ্যাসাইনমেন্ট + +[Excel-এ চেষ্টা করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/11-visualization-proportions/assignment.md b/translations/bn/3-Data-Visualization/11-visualization-proportions/assignment.md new file mode 100644 index 00000000..455c4f6c --- /dev/null +++ b/translations/bn/3-Data-Visualization/11-visualization-proportions/assignment.md @@ -0,0 +1,25 @@ + +# এক্সেলে চেষ্টা করুন + +## নির্দেশনা + +আপনি কি জানেন যে এক্সেলে আপনি ডোনাট, পাই এবং ওয়াফেল চার্ট তৈরি করতে পারেন? আপনার পছন্দের একটি ডেটাসেট ব্যবহার করে, এই তিনটি চার্ট সরাসরি একটি এক্সেল স্প্রেডশিটে তৈরি করুন। + +## মূল্যায়ন মানদণ্ড + +| চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন | +| ----------------------------------------------------- | ------------------------------------------------ | ---------------------------------------------------- | +| একটি এক্সেল স্প্রেডশিট উপস্থাপন করা হয়েছে যেখানে তিনটি চার্ট রয়েছে | একটি এক্সেল স্প্রেডশিট উপস্থাপন করা হয়েছে যেখানে দুটি চার্ট রয়েছে | একটি এক্সেল স্প্রেডশিট উপস্থাপন করা হয়েছে যেখানে শুধুমাত্র একটি চার্ট রয়েছে | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/12-visualization-relationships/README.md b/translations/bn/3-Data-Visualization/12-visualization-relationships/README.md new file mode 100644 index 00000000..812c3680 --- /dev/null +++ b/translations/bn/3-Data-Visualization/12-visualization-relationships/README.md @@ -0,0 +1,186 @@ + +# সম্পর্কের ভিজ্যুয়ালাইজেশন: মধুর গল্প 🍯 + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|সম্পর্কের ভিজ্যুয়ালাইজেশন - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +আমাদের গবেষণার প্রকৃতি-কেন্দ্রিক দৃষ্টিভঙ্গি অব্যাহত রেখে, আসুন বিভিন্ন ধরনের মধুর মধ্যে সম্পর্ক দেখানোর জন্য আকর্ষণীয় ভিজ্যুয়ালাইজেশন আবিষ্কার করি। এই ডেটাসেটটি [যুক্তরাষ্ট্রের কৃষি বিভাগ](https://www.nass.usda.gov/About_NASS/index.php) থেকে প্রাপ্ত। + +প্রায় ৬০০টি আইটেমের এই ডেটাসেটে বিভিন্ন মার্কিন যুক্তরাষ্ট্রের রাজ্যে মধু উৎপাদনের তথ্য রয়েছে। উদাহরণস্বরূপ, আপনি ১৯৯৮-২০১২ সালের মধ্যে একটি নির্দিষ্ট রাজ্যে প্রতি বছর মধু উৎপাদনের উপনিবেশ সংখ্যা, প্রতি উপনিবেশের উৎপাদন, মোট উৎপাদন, মজুদ, প্রতি পাউন্ডের দাম এবং উৎপাদিত মধুর মূল্য দেখতে পারেন। + +একটি নির্দিষ্ট রাজ্যের বার্ষিক উৎপাদন এবং সেই রাজ্যে মধুর দামের মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করা আকর্ষণীয় হবে। বিকল্পভাবে, আপনি রাজ্যগুলোর প্রতি উপনিবেশের মধু উৎপাদনের মধ্যে সম্পর্কও ভিজ্যুয়ালাইজ করতে পারেন। এই সময়কালটি ২০০৬ সালে প্রথম দেখা গিয়েছিল 'সিসিডি' বা 'কলোনি ধস ব্যাধি' (http://npic.orst.edu/envir/ccd.html) এর মতো একটি ধ্বংসাত্মক ঘটনাকে অন্তর্ভুক্ত করে, তাই এটি অধ্যয়নের জন্য একটি গুরুত্বপূর্ণ ডেটাসেট। 🐝 + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +এই পাঠে, আপনি পূর্বে ব্যবহৃত Seaborn লাইব্রেরি ব্যবহার করতে পারেন, যা ভেরিয়েবলের মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করার জন্য একটি ভালো টুল। বিশেষত, Seaborn-এর `relplot` ফাংশনটি আকর্ষণীয়, যা দ্রুত স্ক্যাটার প্লট এবং লাইন প্লট তৈরি করে '[পরিসংখ্যানগত সম্পর্ক](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)' দেখাতে সাহায্য করে। এটি ডেটা বিজ্ঞানীদের ভেরিয়েবলের মধ্যে সম্পর্ক আরও ভালোভাবে বুঝতে সাহায্য করে। + +## স্ক্যাটারপ্লট + +প্রতি রাজ্যে প্রতি বছর মধুর দাম কীভাবে পরিবর্তিত হয়েছে তা দেখানোর জন্য একটি স্ক্যাটারপ্লট ব্যবহার করুন। Seaborn-এর `relplot` ফাংশনটি রাজ্যের ডেটা গ্রুপ করে এবং উভয় ক্যাটেগরিকাল এবং সংখ্যাসূচক ডেটার জন্য ডেটা পয়েন্ট প্রদর্শন করে। + +আসুন ডেটা এবং Seaborn ইমপোর্ট করার মাধ্যমে শুরু করি: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +আপনি লক্ষ্য করবেন যে মধুর ডেটাসেটে বেশ কিছু আকর্ষণীয় কলাম রয়েছে, যেমন বছর এবং প্রতি পাউন্ডের দাম। আসুন এই ডেটা অন্বেষণ করি, যা মার্কিন যুক্তরাষ্ট্রের রাজ্য অনুযায়ী গ্রুপ করা হয়েছে: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + +প্রতি পাউন্ড মধুর দাম এবং এর উৎপত্তিস্থল রাজ্যের মধ্যে সম্পর্ক দেখানোর জন্য একটি সাধারণ স্ক্যাটারপ্লট তৈরি করুন। `y` অক্ষটি যথেষ্ট লম্বা করুন যাতে সমস্ত রাজ্য প্রদর্শিত হয়: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.bn.png) + +এখন, একই ডেটা একটি মধু রঙের স্কিম দিয়ে দেখান যাতে বছরের পর বছর ধরে দাম কীভাবে পরিবর্তিত হয়েছে তা বোঝা যায়। এটি করতে, একটি 'hue' প্যারামিটার যোগ করুন যা বছরের পর বছর পরিবর্তন দেখায়: + +> ✅ Seaborn-এ [রঙের প্যালেট সম্পর্কে আরও জানুন](https://seaborn.pydata.org/tutorial/color_palettes.html) - একটি সুন্দর রংধনু রঙের স্কিম চেষ্টা করুন! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.bn.png) + +এই রঙের স্কিম পরিবর্তনের মাধ্যমে, আপনি দেখতে পাবেন যে প্রতি পাউন্ড মধুর দামের ক্ষেত্রে বছরের পর বছর একটি শক্তিশালী অগ্রগতি রয়েছে। উদাহরণস্বরূপ, যদি আপনি একটি নির্দিষ্ট রাজ্য (যেমন অ্যারিজোনা) বেছে নেন, তবে আপনি দেখতে পাবেন যে কয়েকটি ব্যতিক্রম ছাড়া বছরের পর বছর দামের বৃদ্ধি একটি প্যাটার্নে পরিণত হয়েছে: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +আরও বিস্তারিত বিশ্লেষণের জন্য, আকার পরিবর্তনের মাধ্যমে রঙের পরিবর্তে ডেটা দেখান। এটি রঙান্ধ ব্যবহারকারীদের জন্য আরও উপযোগী হতে পারে। + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +ডটের আকার ধীরে ধীরে বৃদ্ধি পাচ্ছে তা আপনি দেখতে পাবেন। + +![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.bn.png) + +এটি কি সরবরাহ এবং চাহিদার একটি সাধারণ উদাহরণ? জলবায়ু পরিবর্তন এবং কলোনি ধসের মতো কারণগুলোর কারণে কি প্রতি বছর ক্রমশ কম মধু পাওয়া যাচ্ছে, এবং তাই দাম বাড়ছে? + +চলুন লাইন চার্ট ব্যবহার করে কিছু ভেরিয়েবলের মধ্যে সম্পর্ক আবিষ্কার করি। + +## লাইন চার্ট + +প্রশ্ন: প্রতি পাউন্ড মধুর দামে কি বছরের পর বছর একটি স্পষ্ট বৃদ্ধি দেখা যায়? একটি একক লাইন চার্ট তৈরি করে এটি সহজেই আবিষ্কার করা যায়: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +উত্তর: হ্যাঁ, ২০০৩ সালের আশেপাশে কিছু ব্যতিক্রম সহ: + +![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.bn.png) + +✅ Seaborn একাধিক পরিমাপকে এক্স ভ্যালুতে গড় এবং ৯৫% কনফিডেন্স ইন্টারভাল দেখিয়ে একটি লাইন তৈরি করে। [সূত্র](https://seaborn.pydata.org/tutorial/relational.html)। এই সময়সাপেক্ষ আচরণ `ci=None` যোগ করে নিষ্ক্রিয় করা যায়। + +প্রশ্ন: তাহলে ২০০৩ সালে মধুর সরবরাহে কি কোনো স্পাইক দেখা যায়? বছরের পর বছর মোট উৎপাদন দেখলে কী বোঝা যায়? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.bn.png) + +উত্তর: আসলে না। মোট উৎপাদন দেখলে মনে হয় যে সেই নির্দিষ্ট বছরে এটি বেড়েছে, যদিও সাধারণভাবে এই বছরগুলোতে মধু উৎপাদনের পরিমাণ হ্রাস পাচ্ছে। + +প্রশ্ন: তাহলে ২০০৩ সালের আশেপাশে মধুর দামের স্পাইক কী কারণে হতে পারে? + +এটি আবিষ্কার করতে, একটি ফ্যাসেট গ্রিড ব্যবহার করে দেখুন। + +## ফ্যাসেট গ্রিড + +ফ্যাসেট গ্রিড ডেটাসেটের একটি দিক (আমাদের ক্ষেত্রে, 'বছর') বেছে নেয়। Seaborn তারপর আপনার নির্বাচিত x এবং y কোঅর্ডিনেটের জন্য প্রতিটি ফ্যাসেটের একটি প্লট তৈরি করে। + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +এই ভিজ্যুয়ালাইজেশনে, প্রতি উপনিবেশের উৎপাদন এবং উপনিবেশের সংখ্যা বছরের পর বছর তুলনা করুন: + +![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.bn.png) + +এই ডেটাসেটের জন্য, রাজ্য এবং বছরের ভিত্তিতে উপনিবেশের সংখ্যা এবং তাদের উৎপাদনে বিশেষ কিছু চোখে পড়ে না। + +## ডুয়াল-লাইন প্লট + +দুটি লাইনপ্লট একসঙ্গে সুপারইম্পোজ করে একটি মাল্টিলাইন প্লট তৈরি করুন। + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.bn.png) + +২০০৩ সালের আশেপাশে কিছু চোখে পড়ে না, তবে এটি আমাদের পাঠটি একটি ইতিবাচক নোটে শেষ করতে সাহায্য করে: উপনিবেশের সংখ্যা স্থিতিশীল হচ্ছে, যদিও প্রতি উপনিবেশের উৎপাদন হ্রাস পাচ্ছে। + +গো, মৌমাছি, গো! + +🐝❤️ +## 🚀 চ্যালেঞ্জ + +এই পাঠে, আপনি স্ক্যাটারপ্লট এবং লাইন গ্রিডের অন্যান্য ব্যবহার সম্পর্কে আরও শিখেছেন। নিজেকে চ্যালেঞ্জ করুন এবং একটি ভিন্ন ডেটাসেট ব্যবহার করে একটি ফ্যাসেট গ্রিড তৈরি করুন। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## পুনরায় পর্যালোচনা ও স্ব-অধ্যয়ন + +লাইন প্লট সহজ বা জটিল হতে পারে। Seaborn ডকুমেন্টেশনে [লাইনপ্লট](https://seaborn.pydata.org/generated/seaborn.lineplot.html) সম্পর্কে পড়ুন। + +## অ্যাসাইনমেন্ট + +[মৌচাকে ডুব দিন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/12-visualization-relationships/assignment.md b/translations/bn/3-Data-Visualization/12-visualization-relationships/assignment.md new file mode 100644 index 00000000..13a96427 --- /dev/null +++ b/translations/bn/3-Data-Visualization/12-visualization-relationships/assignment.md @@ -0,0 +1,25 @@ + +# মৌমাছির চাকের গভীরে ডুব দিন + +## নির্দেশনা + +এই পাঠে আপনি মৌমাছি এবং তাদের মধু উৎপাদন সম্পর্কিত একটি ডেটাসেট বিশ্লেষণ শুরু করেছেন, যা এমন একটি সময়কালকে তুলে ধরে যেখানে মৌমাছির কলোনির সংখ্যা সামগ্রিকভাবে হ্রাস পেয়েছে। এই ডেটাসেটটি আরও গভীরভাবে বিশ্লেষণ করুন এবং একটি নোটবুক তৈরি করুন যা রাজ্যভিত্তিক এবং বছরভিত্তিক মৌমাছির জনসংখ্যার স্বাস্থ্য সম্পর্কে একটি গল্প বলতে পারে। এই ডেটাসেট সম্পর্কে কি কোনো আকর্ষণীয় তথ্য আবিষ্কার করতে পারেন? + +## মূল্যায়ন মানদণ্ড + +| চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| একটি নোটবুক উপস্থাপন করা হয়েছে যেখানে অন্তত তিনটি ভিন্ন চার্টের মাধ্যমে ডেটাসেটের বিভিন্ন দিক, রাজ্যভিত্তিক এবং বছরভিত্তিক বিশ্লেষণ করা হয়েছে | নোটবুকে এই উপাদানগুলোর একটি অনুপস্থিত | নোটবুকে এই উপাদানগুলোর দুটি অনুপস্থিত | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/13-meaningful-visualizations/README.md b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/README.md new file mode 100644 index 00000000..137a71d6 --- /dev/null +++ b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/README.md @@ -0,0 +1,182 @@ + +# অর্থবহ ভিজ্যুয়ালাইজেশন তৈরি করা + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| অর্থবহ ভিজ্যুয়ালাইজেশন - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +> "যদি আপনি ডেটাকে যথেষ্ট নির্যাতন করেন, এটি যেকোনো কিছু স্বীকার করবে" -- [রোনাল্ড কোস](https://en.wikiquote.org/wiki/Ronald_Coase) + +একজন ডেটা বিজ্ঞানীর অন্যতম মৌলিক দক্ষতা হলো এমন একটি অর্থবহ ডেটা ভিজ্যুয়ালাইজেশন তৈরি করার ক্ষমতা যা আপনার প্রশ্নের উত্তর দিতে সাহায্য করে। ডেটা ভিজ্যুয়ালাইজ করার আগে, আপনাকে নিশ্চিত করতে হবে যে এটি পরিষ্কার এবং প্রস্তুত করা হয়েছে, যেমনটি আপনি পূর্ববর্তী পাঠে করেছেন। এর পরে, আপনি ডেটা উপস্থাপনের সেরা উপায় নির্ধারণ করতে শুরু করতে পারেন। + +এই পাঠে, আপনি পর্যালোচনা করবেন: + +1. সঠিক চার্ট টাইপ কীভাবে নির্বাচন করবেন +2. প্রতারণামূলক চার্টিং এড়ানোর উপায় +3. রঙের সাথে কাজ করার উপায় +4. পড়ার সুবিধার্থে আপনার চার্ট স্টাইল করার উপায় +5. অ্যানিমেটেড বা 3D চার্টিং সমাধান তৈরি করার উপায় +6. সৃজনশীল ভিজ্যুয়ালাইজেশন তৈরি করার উপায় + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## সঠিক চার্ট টাইপ নির্বাচন করুন + +পূর্ববর্তী পাঠে, আপনি Matplotlib এবং Seaborn ব্যবহার করে বিভিন্ন আকর্ষণীয় ডেটা ভিজ্যুয়ালাইজেশন তৈরি করার চেষ্টা করেছেন। সাধারণত, আপনি এই টেবিলটি ব্যবহার করে [সঠিক ধরনের চার্ট](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) নির্বাচন করতে পারেন যা আপনার প্রশ্নের উত্তর দিতে সাহায্য করবে: + +| আপনার যা প্রয়োজন: | আপনি যা ব্যবহার করবেন: | +| -------------------------- | ------------------------------- | +| সময়ের সাথে ডেটার প্রবণতা দেখান | লাইন | +| বিভাগগুলির তুলনা করুন | বার, পাই | +| মোটের তুলনা করুন | পাই, স্ট্যাকড বার | +| সম্পর্ক দেখান | স্ক্যাটার, লাইন, ফ্যাসেট, ডুয়াল লাইন | +| বিতরণ দেখান | স্ক্যাটার, হিস্টোগ্রাম, বক্স | +| অনুপাত দেখান | পাই, ডোনাট, ওয়াফল | + +> ✅ আপনার ডেটার গঠন অনুসারে, একটি নির্দিষ্ট চার্ট সমর্থন করার জন্য আপনাকে এটি টেক্সট থেকে সংখ্যায় রূপান্তর করতে হতে পারে। + +## প্রতারণা এড়িয়ে চলুন + +যদিও একজন ডেটা বিজ্ঞানী সঠিক ডেটার জন্য সঠিক চার্ট নির্বাচন করতে যত্নবান হতে পারেন, তবুও ডেটা এমনভাবে প্রদর্শন করা যেতে পারে যা একটি পয়েন্ট প্রমাণ করে, প্রায়শই ডেটার বিশ্বাসযোগ্যতাকে ক্ষুণ্ন করে। প্রতারণামূলক চার্ট এবং ইনফোগ্রাফিক্সের অনেক উদাহরণ রয়েছে! + +[![আলবার্তো কায়রো দ্বারা "হাউ চার্টস লাই"](../../../../translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.bn.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "হাউ চার্টস লাই") + +> 🎥 প্রতারণামূলক চার্ট সম্পর্কে একটি কনফারেন্স টক দেখতে উপরের ছবিতে ক্লিক করুন + +এই চার্টটি তারিখের উপর ভিত্তি করে সত্যের বিপরীত দেখানোর জন্য X অক্ষটি উল্টে দিয়েছে: + +![খারাপ চার্ট 1](../../../../translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.bn.png) + +[এই চার্টটি](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) আরও প্রতারণামূলক, কারণ চোখ ডানদিকে আকৃষ্ট হয় এবং মনে হয় যে সময়ের সাথে সাথে বিভিন্ন কাউন্টিতে COVID কেস কমেছে। প্রকৃতপক্ষে, যদি আপনি তারিখগুলির দিকে ঘনিষ্ঠভাবে তাকান, আপনি দেখতে পাবেন যে সেগুলি প্রতারণামূলক নিম্নগামী প্রবণতা দেখানোর জন্য পুনর্বিন্যাস করা হয়েছে। + +![খারাপ চার্ট 2](../../../../translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.bn.jpg) + +এই কুখ্যাত উদাহরণটি প্রতারণার জন্য রঙ এবং একটি উল্টানো Y অক্ষ ব্যবহার করে: বন্দুক-বান্ধব আইন পাস হওয়ার পরে বন্দুক মৃত্যুর সংখ্যা বেড়েছে, এটি দেখানোর পরিবর্তে চোখকে বিপরীতটি ভাবতে বিভ্রান্ত করা হয়েছে: + +![খারাপ চার্ট 3](../../../../translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.bn.jpg) + +এই অদ্ভুত চার্টটি দেখায় যে কীভাবে অনুপাতকে হাস্যকরভাবে প্রভাবিত করা যেতে পারে: + +![খারাপ চার্ট 4](../../../../translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.bn.jpg) + +অতুলনীয় জিনিসগুলির তুলনা করাও আরেকটি ছলনামূলক কৌশল। একটি [দারুণ ওয়েবসাইট](https://tylervigen.com/spurious-correlations) রয়েছে যা 'ভ্রান্ত সম্পর্ক' প্রদর্শন করে, যেমন মেইনে বিবাহবিচ্ছেদের হার এবং মার্জারিনের ব্যবহার। একটি Reddit গ্রুপও ডেটার [খারাপ ব্যবহার](https://www.reddit.com/r/dataisugly/top/?t=all) সংগ্রহ করে। + +এটি বোঝা গুরুত্বপূর্ণ যে প্রতারণামূলক চার্ট দ্বারা চোখ কত সহজে বিভ্রান্ত হতে পারে। এমনকি যদি ডেটা বিজ্ঞানীর উদ্দেশ্য ভালো হয়, একটি খারাপ ধরনের চার্ট নির্বাচন, যেমন খুব বেশি বিভাগ দেখানো একটি পাই চার্ট, প্রতারণামূলক হতে পারে। + +## রঙ + +উপরের 'ফ্লোরিডা বন্দুক সহিংসতা' চার্টে আপনি দেখেছেন যে কীভাবে রঙ চার্টে একটি অতিরিক্ত অর্থের স্তর যোগ করতে পারে, বিশেষত সেগুলি যা Matplotlib এবং Seaborn এর মতো লাইব্রেরি ব্যবহার করে ডিজাইন করা হয়নি, যেগুলিতে বিভিন্ন যাচাইকৃত রঙের লাইব্রেরি এবং প্যালেট রয়েছে। যদি আপনি হাতে একটি চার্ট তৈরি করেন, তবে [রঙ তত্ত্ব](https://colormatters.com/color-and-design/basic-color-theory) সম্পর্কে একটু পড়াশোনা করুন। + +> ✅ চার্ট ডিজাইন করার সময় সচেতন থাকুন যে অ্যাক্সেসিবিলিটি ভিজ্যুয়ালাইজেশনের একটি গুরুত্বপূর্ণ দিক। আপনার কিছু ব্যবহারকারী রঙ অন্ধ হতে পারেন - আপনার চার্ট কি ভিজ্যুয়াল প্রতিবন্ধী ব্যবহারকারীদের জন্য ভালোভাবে প্রদর্শিত হয়? + +আপনার চার্টের জন্য রঙ নির্বাচন করার সময় সতর্ক থাকুন, কারণ রঙ এমন অর্থ প্রকাশ করতে পারে যা আপনি বোঝাতে চান না। উপরের 'উচ্চতা' চার্টে 'গোলাপি মহিলারা' একটি স্পষ্টভাবে 'নারীত্বপূর্ণ' অর্থ প্রকাশ করে যা চার্টটির অদ্ভুততাকে আরও বাড়িয়ে তোলে। + +যদিও [রঙের অর্থ](https://colormatters.com/color-symbolism/the-meanings-of-colors) বিশ্বের বিভিন্ন অংশে ভিন্ন হতে পারে এবং তাদের শেড অনুযায়ী পরিবর্তিত হতে পারে। সাধারণভাবে, রঙের অর্থ অন্তর্ভুক্ত: + +| রঙ | অর্থ | +| ------ | ------------------- | +| লাল | শক্তি | +| নীল | বিশ্বাস, আনুগত্য | +| হলুদ | সুখ, সতর্কতা | +| সবুজ | পরিবেশ, সৌভাগ্য, ঈর্ষা | +| বেগুনি | সুখ | +| কমলা | প্রাণবন্ততা | + +যদি আপনাকে কাস্টম রঙ দিয়ে একটি চার্ট তৈরি করতে বলা হয়, নিশ্চিত করুন যে আপনার চার্টগুলি অ্যাক্সেসযোগ্য এবং আপনি যে অর্থ প্রকাশ করতে চান তার সাথে রঙটি সামঞ্জস্যপূর্ণ। + +## পড়ার সুবিধার্থে আপনার চার্ট স্টাইল করুন + +যদি চার্ট পড়া না যায়, তবে তা অর্থবহ নয়! আপনার ডেটার সাথে ভালোভাবে স্কেল করার জন্য আপনার চার্টের প্রস্থ এবং উচ্চতা স্টাইল করার কথা বিবেচনা করুন। যদি একটি ভেরিয়েবল (যেমন সমস্ত ৫০টি রাজ্য) প্রদর্শন করতে হয়, তবে সম্ভব হলে সেগুলি Y অক্ষের উপর উল্লম্বভাবে দেখান যাতে একটি অনুভূমিক-স্ক্রলিং চার্ট এড়ানো যায়। + +আপনার অক্ষগুলিকে লেবেল করুন, প্রয়োজনে একটি লেজেন্ড প্রদান করুন এবং ডেটার আরও ভালো বোঝার জন্য টুলটিপস অফার করুন। + +যদি আপনার ডেটা X অক্ষের উপর টেক্সট এবং দীর্ঘ হয়, তবে আরও ভালোভাবে পড়ার জন্য টেক্সটটি কোণাকৃতিতে সাজাতে পারেন। [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) 3D প্লটিং অফার করে, যদি আপনার ডেটা এটি সমর্থন করে। `mpl_toolkits.mplot3d` ব্যবহার করে উন্নত ডেটা ভিজ্যুয়ালাইজেশন তৈরি করা যেতে পারে। + +![3D প্লট](../../../../translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.bn.png) + +## অ্যানিমেশন এবং 3D চার্ট প্রদর্শন + +আজকের সেরা ডেটা ভিজ্যুয়ালাইজেশনগুলির মধ্যে কিছু অ্যানিমেটেড। Shirley Wu এর D3 দিয়ে তৈরি অসাধারণ কাজ রয়েছে, যেমন '[ফিল্ম ফ্লাওয়ারস](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', যেখানে প্রতিটি ফুল একটি সিনেমার ভিজ্যুয়ালাইজেশন। গার্ডিয়ানের জন্য আরেকটি উদাহরণ হলো 'বাসড আউট', যা NYC কীভাবে তার গৃহহীন সমস্যার সমাধান করে তা দেখানোর জন্য ভিজ্যুয়ালাইজেশন, Greensock এবং D3 এর সাথে একটি স্ক্রোলিটেলিং নিবন্ধ ফরম্যাটকে একত্রিত করে। + +![বাসিং](../../../../translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.bn.png) + +> "বাসড আউট: আমেরিকা কীভাবে তার গৃহহীনদের সরিয়ে দেয়" [গার্ডিয়ান](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study) থেকে। ভিজ্যুয়ালাইজেশন Nadieh Bremer & Shirley Wu দ্বারা। + +যদিও এই পাঠটি এই শক্তিশালী ভিজ্যুয়ালাইজেশন লাইব্রেরিগুলি শেখানোর জন্য যথেষ্ট নয়, একটি Vue.js অ্যাপে D3 ব্যবহার করে একটি ভিজ্যুয়ালাইজেশন তৈরি করার চেষ্টা করুন যা "ডেঞ্জারাস লিয়াজঁ" বইটিকে একটি অ্যানিমেটেড সামাজিক নেটওয়ার্ক হিসাবে প্রদর্শন করে। + +> "Les Liaisons Dangereuses" একটি এপিস্টোলারি উপন্যাস, বা একটি উপন্যাস যা চিঠির একটি সিরিজ হিসাবে উপস্থাপিত। এটি ১৭৮২ সালে Choderlos de Laclos দ্বারা লেখা হয়েছিল এবং ১৮শ শতাব্দীর শেষের দিকে ফরাসি অভিজাতদের দুই প্রতিদ্বন্দ্বী নায়কের নৈতিকভাবে দেউলিয়া সামাজিক চালচলনের গল্প বলে। উভয়ই শেষ পর্যন্ত তাদের পতনের সম্মুখীন হয়, তবে প্রচুর সামাজিক ক্ষতি না করে নয়। উপন্যাসটি তাদের বৃত্তের বিভিন্ন ব্যক্তির কাছে লেখা চিঠির একটি সিরিজ হিসাবে প্রকাশিত হয়, প্রতিশোধ নেওয়ার জন্য বা কেবল সমস্যা তৈরি করার জন্য। এই চিঠিগুলির একটি ভিজ্যুয়ালাইজেশন তৈরি করুন যাতে গল্পের প্রধান চরিত্রগুলিকে ভিজ্যুয়ালি আবিষ্কার করা যায়। + +আপনি একটি ওয়েব অ্যাপ সম্পন্ন করবেন যা এই সামাজিক নেটওয়ার্কের একটি অ্যানিমেটেড দৃশ্য প্রদর্শন করবে। এটি একটি লাইব্রেরি ব্যবহার করে তৈরি করা হয়েছে যা Vue.js এবং D3 ব্যবহার করে একটি [নেটওয়ার্কের ভিজ্যুয়াল](https://github.com/emiliorizzo/vue-d3-network) তৈরি করে। যখন অ্যাপটি চলছে, আপনি স্ক্রিনে নোডগুলি টেনে ডেটা পুনর্বিন্যাস করতে পারবেন। + +![লিয়াজঁ](../../../../translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.bn.png) + +## প্রকল্প: D3.js ব্যবহার করে একটি নেটওয়ার্ক দেখানোর জন্য একটি চার্ট তৈরি করুন + +> এই পাঠের ফোল্ডারে একটি `solution` ফোল্ডার অন্তর্ভুক্ত রয়েছে যেখানে আপনি সম্পূর্ণ প্রকল্পটি রেফারেন্সের জন্য খুঁজে পেতে পারেন। + +1. স্টার্টার ফোল্ডারের রুটে README.md ফাইলের নির্দেশাবলী অনুসরণ করুন। আপনার মেশিনে NPM এবং Node.js চালু আছে তা নিশ্চিত করুন এবং তারপরে আপনার প্রকল্পের ডিপেন্ডেন্সি ইনস্টল করুন। + +2. `starter/src` ফোল্ডারটি খুলুন। আপনি একটি `assets` ফোল্ডার আবিষ্কার করবেন যেখানে একটি .json ফাইল রয়েছে যা উপন্যাসের সমস্ত চিঠি, নম্বরযুক্ত, 'to' এবং 'from' এনোটেশন সহ। + +3. ভিজ্যুয়ালাইজেশন সক্ষম করতে `components/Nodes.vue` ফাইলের কোড সম্পূর্ণ করুন। `createLinks()` নামে একটি মেথড খুঁজুন এবং নিম্নলিখিত নেস্টেড লুপ যোগ করুন। + +.json অবজেক্টের মাধ্যমে লুপ করুন যাতে চিঠিগুলির 'to' এবং 'from' ডেটা ক্যাপচার করা যায় এবং `links` অবজেক্ট তৈরি করা যায় যাতে ভিজ্যুয়ালাইজেশন লাইব্রেরি এটি ব্যবহার করতে পারে: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +টার্মিনাল থেকে আপনার অ্যাপ চালান (npm run serve) এবং ভিজ্যুয়ালাইজেশন উপভোগ করুন! + +## 🚀 চ্যালেঞ্জ + +ইন্টারনেটে ঘুরে প্রতারণামূলক ভিজ্যুয়ালাইজেশন আবিষ্কার করুন। লেখক কীভাবে ব্যবহারকারীকে বিভ্রান্ত করেন, এবং এটি কি ইচ্ছাকৃত? ভিজ্যুয়ালাইজেশনগুলি সংশোধন করার চেষ্টা করুন যাতে সেগুলি সঠিকভাবে প্রদর্শিত হয়। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +প্রতারণামূলক ডেটা ভিজ্যুয়ালাইজেশন সম্পর্কে পড়ার জন্য এখানে কিছু নিবন্ধ রয়েছে: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +ঐতিহাসিক সম্পদ এবং নিদর্শনগুলির জন্য এই আকর্ষণীয় ভিজ্যুয়ালাইজেশনগুলি দেখুন: + +https://handbook.pubpub.org/ + +অ্যানিমেশন কীভাবে আপনার ভিজ্যুয়ালাইজেশন উন্নত করতে পারে তা নিয়ে এই নিবন্ধটি দেখুন: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## অ্যাসাইনমেন্ট + +[আপনার নিজস্ব কাস্টম ভিজ্যুয়ালাইজেশন তৈরি করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/13-meaningful-visualizations/assignment.md b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/assignment.md new file mode 100644 index 00000000..753f5278 --- /dev/null +++ b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/assignment.md @@ -0,0 +1,25 @@ + +# নিজের কাস্টম ভিজ তৈরি করুন + +## নির্দেশনা + +এই প্রকল্পের কোড নমুনা ব্যবহার করে একটি সামাজিক নেটওয়ার্ক তৈরি করুন এবং আপনার নিজের সামাজিক যোগাযোগের ডেটা মক আপ করুন। আপনি আপনার সামাজিক মিডিয়া ব্যবহারের মানচিত্র তৈরি করতে পারেন বা আপনার পরিবারের সদস্যদের একটি ডায়াগ্রাম তৈরি করতে পারেন। একটি আকর্ষণীয় ওয়েব অ্যাপ তৈরি করুন যা একটি সামাজিক নেটওয়ার্কের অনন্য ভিজ্যুয়ালাইজেশন দেখায়। + +## মূল্যায়ন মানদণ্ড + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | +একটি GitHub রিপোজিটরি উপস্থাপন করা হয়েছে যেখানে কোড সঠিকভাবে কাজ করে (এটি একটি স্ট্যাটিক ওয়েব অ্যাপ হিসেবে ডিপ্লয় করার চেষ্টা করুন) এবং একটি ব্যাখ্যামূলক README রয়েছে যা প্রকল্পটি ব্যাখ্যা করে | রিপোজিটরি সঠিকভাবে কাজ করে না বা ভালোভাবে ডকুমেন্টেড নয় | রিপোজিটরি সঠিকভাবে কাজ করে না এবং ভালোভাবে ডকুমেন্টেড নয় + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/13-meaningful-visualizations/solution/README.md b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/solution/README.md new file mode 100644 index 00000000..4b0e0609 --- /dev/null +++ b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/solution/README.md @@ -0,0 +1,40 @@ + +# বিপজ্জনক সম্পর্ক ডেটা ভিজ্যুয়ালাইজেশন প্রকল্প + +শুরু করার জন্য, নিশ্চিত করুন যে আপনার মেশিনে NPM এবং Node চালু রয়েছে। ডিপেনডেন্সিগুলি ইনস্টল করুন (npm install) এবং তারপর প্রকল্পটি লোকালভাবে চালান (npm run serve): + +## প্রকল্প সেটআপ +``` +npm install +``` + +### ডেভেলপমেন্টের জন্য কম্পাইল এবং হট-রিলোড +``` +npm run serve +``` + +### প্রোডাকশনের জন্য কম্পাইল এবং মিনিফাই +``` +npm run build +``` + +### ফাইল লিন্ট এবং ঠিক করা +``` +npm run lint +``` + +### কনফিগারেশন কাস্টমাইজ করুন +[Configuration Reference](https://cli.vuejs.org/config/) দেখুন। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/13-meaningful-visualizations/starter/README.md b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/starter/README.md new file mode 100644 index 00000000..3a9f7f0d --- /dev/null +++ b/translations/bn/3-Data-Visualization/13-meaningful-visualizations/starter/README.md @@ -0,0 +1,40 @@ + +# বিপজ্জনক সম্পর্ক ডেটা ভিজ্যুয়ালাইজেশন প্রকল্প + +শুরু করার জন্য, নিশ্চিত করুন যে আপনার মেশিনে NPM এবং Node চালু রয়েছে। ডিপেনডেন্সিগুলি ইনস্টল করুন (npm install) এবং তারপর প্রকল্পটি লোকালভাবে চালান (npm run serve): + +## প্রকল্প সেটআপ +``` +npm install +``` + +### ডেভেলপমেন্টের জন্য কম্পাইল এবং হট-রিলোড +``` +npm run serve +``` + +### প্রোডাকশনের জন্য কম্পাইল এবং মিনিফাই +``` +npm run build +``` + +### ফাইল লিন্ট এবং ঠিক করা +``` +npm run lint +``` + +### কনফিগারেশন কাস্টমাইজ করুন +[Configuration Reference](https://cli.vuejs.org/config/) দেখুন। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/09-visualization-quantities/README.md b/translations/bn/3-Data-Visualization/R/09-visualization-quantities/README.md new file mode 100644 index 00000000..5413c958 --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/09-visualization-quantities/README.md @@ -0,0 +1,230 @@ + +# পরিমাণের ভিজ্যুয়ালাইজেশন +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| পরিমাণের ভিজ্যুয়ালাইজেশন - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +এই পাঠে আপনি শিখবেন কীভাবে R প্যাকেজ লাইব্রেরি ব্যবহার করে পরিমাণের ধারণা নিয়ে আকর্ষণীয় ভিজ্যুয়ালাইজেশন তৈরি করা যায়। মিনেসোটা রাজ্যের পাখিদের একটি পরিষ্কার ডেটাসেট ব্যবহার করে, আপনি স্থানীয় বন্যপ্রাণী সম্পর্কে অনেক আকর্ষণীয় তথ্য জানতে পারবেন। +## [পূর্ব-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## ggplot2 দিয়ে উইংসপ্যান পর্যবেক্ষণ করুন +বিভিন্ন ধরনের সাধারণ এবং জটিল প্লট ও চার্ট তৈরি করার জন্য একটি চমৎকার লাইব্রেরি হলো [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html)। সাধারণভাবে, এই লাইব্রেরি ব্যবহার করে ডেটা প্লট করার প্রক্রিয়াটি ডেটাফ্রেমের অংশগুলো চিহ্নিত করা, প্রয়োজনীয় ডেটা রূপান্তর করা, x এবং y অক্ষের মান নির্ধারণ করা, প্লটের ধরন নির্বাচন করা এবং প্লটটি প্রদর্শন করা অন্তর্ভুক্ত করে। + +`ggplot2` হলো গ্রাফিক্স তৈরি করার একটি পদ্ধতি, যা The Grammar of Graphics-এর উপর ভিত্তি করে তৈরি। [Grammar of Graphics](https://en.wikipedia.org/wiki/Ggplot2) হলো ডেটা ভিজ্যুয়ালাইজেশনের একটি সাধারণ কাঠামো, যা গ্রাফগুলোকে স্কেল এবং লেয়ারের মতো অর্থপূর্ণ উপাদানে ভাগ করে। সহজ কথায়, অল্প কোড দিয়ে একক বা বহুবিধ ডেটার প্লট এবং গ্রাফ তৈরি করার সুবিধার কারণে `ggplot2` R-এ ভিজ্যুয়ালাইজেশনের জন্য সবচেয়ে জনপ্রিয় প্যাকেজ। ব্যবহারকারী `ggplot2`-কে জানায় কীভাবে ভেরিয়েবলগুলোকে গ্রাফিকাল বৈশিষ্ট্যে ম্যাপ করতে হবে, কোন গ্রাফিকাল প্রিমিটিভ ব্যবহার করতে হবে, এবং `ggplot2` বাকি কাজটি সম্পন্ন করে। + +> ✅ প্লট = ডেটা + এস্থেটিকস + জিওমেট্রি +> - ডেটা হলো ডেটাসেট +> - এস্থেটিকস নির্দেশ করে কোন ভেরিয়েবলগুলো অধ্যয়ন করা হবে (x এবং y ভেরিয়েবল) +> - জিওমেট্রি হলো প্লটের ধরন (লাইন প্লট, বার প্লট, ইত্যাদি) + +আপনার ডেটা এবং প্লটের মাধ্যমে যে গল্পটি বলতে চান তার উপর ভিত্তি করে সেরা জিওমেট্রি (প্লটের ধরন) নির্বাচন করুন। + +> - প্রবণতা বিশ্লেষণ করতে: লাইন, কলাম +> - মান তুলনা করতে: বার, কলাম, পাই, স্ক্যাটারপ্লট +> - অংশগুলো কীভাবে পুরো সাথে সম্পর্কিত তা দেখাতে: পাই +> - ডেটার বিতরণ দেখাতে: স্ক্যাটারপ্লট, বার +> - মানগুলোর মধ্যে সম্পর্ক দেখাতে: লাইন, স্ক্যাটারপ্লট, বাবল + +✅ আপনি ggplot2-এর জন্য এই বর্ণনামূলক [চিটশিট](https://nyu-cdsc.github.io/learningr/assets/data-visualization-2.1.pdf) দেখতে পারেন। + +## পাখির উইংসপ্যানের মান নিয়ে একটি লাইন প্লট তৈরি করুন + +R কনসোল খুলুন এবং ডেটাসেটটি আমদানি করুন। +> নোট: ডেটাসেটটি এই রিপোজিটরির মূল `/data` ফোল্ডারে সংরক্ষিত। + +ডেটাসেটটি আমদানি করুন এবং ডেটার শীর্ষ (প্রথম ৫টি সারি) পর্যবেক্ষণ করুন। + +```r +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") +head(birds) +``` +ডেটার শীর্ষে টেক্সট এবং সংখ্যার মিশ্রণ রয়েছে: + +| | নাম | বৈজ্ঞানিক নাম | বিভাগ | অর্ডার | পরিবার | গণ | সংরক্ষণ অবস্থা | সর্বনিম্ন দৈর্ঘ্য | সর্বোচ্চ দৈর্ঘ্য | সর্বনিম্ন শরীরের ভর | সর্বোচ্চ শরীরের ভর | সর্বনিম্ন উইংসপ্যান | সর্বোচ্চ উইংসপ্যান | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | ব্ল্যাক-বেলিড হুইসলিং-ডাক | Dendrocygna autumnalis | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | ফুলভাস হুইসলিং-ডাক | Dendrocygna bicolor | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | স্নো গিজ | Anser caerulescens | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | রসের গিজ | Anser rossii | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | গ্রেটার হোয়াইট-ফ্রন্টেড গিজ | Anser albifrons | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +চলুন কিছু সংখ্যাগত ডেটা একটি সাধারণ লাইন প্লট ব্যবহার করে প্লট করি। ধরুন আপনি এই আকর্ষণীয় পাখিদের সর্বোচ্চ উইংসপ্যান দেখতে চান। + +```r +install.packages("ggplot2") +library("ggplot2") +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() +``` +এখানে, আপনি `ggplot2` প্যাকেজটি ইনস্টল করেছেন এবং তারপর `library("ggplot2")` কমান্ড ব্যবহার করে এটি ওয়ার্কস্পেসে আমদানি করেছেন। ggplot-এ কোনো প্লট তৈরি করতে `ggplot()` ফাংশন ব্যবহার করা হয় এবং আপনি ডেটাসেট, x এবং y ভেরিয়েবলগুলোকে অ্যাট্রিবিউট হিসেবে নির্দিষ্ট করেন। এই ক্ষেত্রে, আমরা `geom_line()` ফাংশন ব্যবহার করি কারণ আমরা একটি লাইন প্লট তৈরি করতে চাই। + +![MaxWingspan-lineplot](../../../../../translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.bn.png) + +আপনি প্রথমেই কী লক্ষ্য করেন? অন্তত একটি আউটলাইয়ার রয়েছে - এটি বেশ বড় উইংসপ্যান! ২০০০+ সেন্টিমিটার উইংসপ্যান মানে ২০ মিটারের বেশি - মিনেসোটায় কি প্টেরোড্যাকটিল ঘুরে বেড়াচ্ছে? চলুন তদন্ত করি। + +যদিও আপনি এক্সেলে দ্রুত সাজানোর মাধ্যমে এই আউটলাইয়ারগুলো খুঁজে বের করতে পারেন, তবে প্লটের মধ্য থেকেই ভিজ্যুয়ালাইজেশন প্রক্রিয়া চালিয়ে যান। + +x-অক্ষের লেবেল যোগ করুন যাতে বোঝা যায় কোন ধরনের পাখি নিয়ে আলোচনা করা হচ্ছে: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() + + theme(axis.text.x = element_text(angle = 45, hjust=1))+ + xlab("Birds") + + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") +``` +আমরা `theme`-এ কোণ নির্ধারণ করি এবং `xlab()` এবং `ylab()`-এ x এবং y অক্ষের লেবেল নির্ধারণ করি। `ggtitle()` গ্রাফ/প্লটের একটি নাম দেয়। + +![MaxWingspan-lineplot-improved](../../../../../translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.bn.png) + +লেবেলগুলোকে ৪৫ ডিগ্রি কোণে ঘোরানোর পরেও, পড়ার জন্য খুব বেশি লেবেল রয়েছে। চলুন একটি ভিন্ন কৌশল চেষ্টা করি: শুধুমাত্র আউটলাইয়ারগুলো লেবেল করি এবং লেবেলগুলো চার্টের মধ্যে সেট করি। আপনি একটি স্ক্যাটার চার্ট ব্যবহার করতে পারেন যাতে লেবেলিংয়ের জন্য আরও জায়গা তৈরি হয়: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") + +``` +এখানে কী ঘটছে? আপনি `geom_point()` ফাংশন ব্যবহার করে স্ক্যাটার পয়েন্ট প্লট করেছেন। এর মাধ্যমে, আপনি এমন পাখিদের লেবেল যোগ করেছেন যাদের `MaxWingspan > 500` এবং x অক্ষের লেবেলগুলো লুকিয়েছেন যাতে প্লটটি পরিষ্কার থাকে। + +আপনি কী আবিষ্কার করেন? + +![MaxWingspan-scatterplot](../../../../../translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.bn.png) + +## আপনার ডেটা ফিল্টার করুন + +বাল্ড ঈগল এবং প্রেইরি ফ্যালকন, যদিও সম্ভবত খুব বড় পাখি, ভুলভাবে লেবেল করা হয়েছে বলে মনে হয়, তাদের সর্বোচ্চ উইংসপ্যানের সাথে একটি অতিরিক্ত ০ যোগ করা হয়েছে। ২৫ মিটার উইংসপ্যান সহ একটি বাল্ড ঈগল দেখা অসম্ভব, তবে যদি দেখেন, আমাদের জানাবেন! চলুন এই দুটি আউটলাইয়ার বাদ দিয়ে একটি নতুন ডেটাফ্রেম তৈরি করি: + +```r +birds_filtered <- subset(birds, MaxWingspan < 500) + +ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + ylab("Wingspan (CM)") + + xlab("Birds") + + ggtitle("Max Wingspan in Centimeters") + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +``` +আমরা একটি নতুন ডেটাফ্রেম `birds_filtered` তৈরি করেছি এবং তারপর একটি স্ক্যাটার প্লট তৈরি করেছি। আউটলাইয়ারগুলো ফিল্টার করার মাধ্যমে, আপনার ডেটা এখন আরও সংহত এবং বোধগম্য। + +![MaxWingspan-scatterplot-improved](../../../../../translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.bn.png) + +এখন যেহেতু আমাদের ডেটাসেট উইংসপ্যানের ক্ষেত্রে অন্তত পরিষ্কার, চলুন এই পাখিদের সম্পর্কে আরও কিছু আবিষ্কার করি। + +যদিও লাইন এবং স্ক্যাটার প্লট ডেটার মান এবং তাদের বিতরণ সম্পর্কে তথ্য প্রদর্শন করতে পারে, আমরা এই ডেটাসেটে অন্তর্নিহিত মানগুলো সম্পর্কে চিন্তা করতে চাই। আপনি পরিমাণ সম্পর্কে নিম্নলিখিত প্রশ্নগুলোর উত্তর দিতে ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন: + +> এখানে কতগুলো পাখির বিভাগ রয়েছে এবং তাদের সংখ্যা কত? +> কতগুলো পাখি বিলুপ্ত, বিপন্ন, বিরল বা সাধারণ? +> লিনিয়াসের পরিভাষায় বিভিন্ন গণ এবং অর্ডারের সংখ্যা কত? +## বার চার্ট অন্বেষণ করুন + +যখন ডেটার গ্রুপিং দেখানোর প্রয়োজন হয়, তখন বার চার্ট ব্যবহারিক। চলুন এই ডেটাসেটে বিদ্যমান পাখির বিভাগগুলো অন্বেষণ করি এবং দেখি কোনটি সংখ্যার দিক থেকে সবচেয়ে সাধারণ। +চলুন ফিল্টার করা ডেটার উপর একটি বার চার্ট তৈরি করি। + +```r +install.packages("dplyr") +install.packages("tidyverse") + +library(lubridate) +library(scales) +library(dplyr) +library(ggplot2) +library(tidyverse) + +birds_filtered %>% group_by(Category) %>% + summarise(n=n(), + MinLength = mean(MinLength), + MaxLength = mean(MaxLength), + MinBodyMass = mean(MinBodyMass), + MaxBodyMass = mean(MaxBodyMass), + MinWingspan=mean(MinWingspan), + MaxWingspan=mean(MaxWingspan)) %>% + gather("key", "value", - c(Category, n)) %>% + ggplot(aes(x = Category, y = value, group = key, fill = key)) + + geom_bar(stat = "identity") + + scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) + + xlab("Category")+ggtitle("Birds of Minnesota") + +``` +নিম্নলিখিত স্নিপেটে, আমরা [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) এবং [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) প্যাকেজগুলো ইনস্টল করি যা ডেটা ম্যানিপুলেট এবং গ্রুপ করতে সাহায্য করে যাতে একটি স্ট্যাকড বার চার্ট প্লট করা যায়। প্রথমে, আপনি পাখির `Category` অনুযায়ী ডেটা গ্রুপ করেন এবং তারপর `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan` কলামগুলো সারসংক্ষেপ করেন। তারপর, `ggplot2` প্যাকেজ ব্যবহার করে বার চার্ট প্লট করেন এবং বিভিন্ন বিভাগের জন্য রঙ এবং লেবেল নির্ধারণ করেন। + +![Stacked bar chart](../../../../../translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.bn.png) + +তবে এই বার চার্টটি পড়া কঠিন কারণ এখানে খুব বেশি অ-গ্রুপ করা ডেটা রয়েছে। আপনি শুধুমাত্র সেই ডেটা নির্বাচন করতে পারেন যা আপনি প্লট করতে চান, তাই চলুন পাখির বিভাগ অনুযায়ী দৈর্ঘ্য দেখার চেষ্টা করি। + +আপনার ডেটা শুধুমাত্র পাখির বিভাগ অন্তর্ভুক্ত করতে ফিল্টার করুন। + +যেহেতু অনেক বিভাগ রয়েছে, আপনি এই চার্টটি উল্লম্বভাবে প্রদর্শন করতে পারেন এবং সমস্ত ডেটার জন্য এর উচ্চতা সামঞ্জস্য করতে পারেন: + +```r +birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE) +birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category) +ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip() +``` +প্রথমে আপনি `Category` কলামে অনন্য মানগুলো গণনা করেন এবং তারপর সেগুলোকে একটি নতুন ডেটাফ্রেম `birds_count`-এ সাজান। এই সাজানো ডেটা একই স্তরে ফ্যাক্টর করা হয় যাতে এটি সাজানোভাবে প্লট করা যায়। তারপর, `ggplot2` ব্যবহার করে আপনি ডেটা একটি বার চার্টে প্লট করেন। `coord_flip()` অনুভূমিক বার প্লট করে। + +![category-length](../../../../../translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.bn.png) + +এই বার চার্টটি পাখির প্রতিটি বিভাগের সংখ্যার একটি ভালো দৃশ্য দেখায়। এক নজরে, আপনি দেখতে পারেন যে এই অঞ্চলে সবচেয়ে বেশি সংখ্যক পাখি হাঁস/গিজ/জলপাখি বিভাগে রয়েছে। মিনেসোটা '১০,০০০ হ্রদের ভূমি', তাই এটি আশ্চর্যজনক নয়! + +✅ এই ডেটাসেটে কিছু অন্যান্য গণনা চেষ্টা করুন। আপনাকে কি কিছু অবাক করে? + +## ডেটা তুলনা করা + +আপনি নতুন অক্ষ তৈরি করে গ্রুপ করা ডেটার বিভিন্ন তুলনা চেষ্টা করতে পারেন। পাখির বিভাগ অনুযায়ী MaxLength-এর একটি তুলনা চেষ্টা করুন: + +```r +birds_grouped <- birds_filtered %>% + group_by(Category) %>% + summarise( + MaxLength = max(MaxLength, na.rm = T), + MinLength = max(MinLength, na.rm = T) + ) %>% + arrange(Category) + +ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip() +``` +আমরা `birds_filtered` ডেটাকে `Category` অনুযায়ী গ্রুপ করি এবং তারপর একটি বার গ্রাফ প্লট করি। + +![comparing data](../../../../../translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.bn.png) + +এখানে কিছুই আশ্চর্যজনক নয়: হামিংবার্ডের MaxLength পেলিকান বা গিজের তুলনায় সবচেয়ে কম। যখন ডেটা যৌক্তিক অর্থ তৈরি করে, তখন এটি ভালো! + +আপনি বার চার্টের আরও আকর্ষণীয় ভিজ্যুয়ালাইজেশন তৈরি করতে পারেন ডেটা সুপারইম্পোজ করে। চলুন একটি নির্দিষ্ট পাখির বিভাগে সর্বনিম্ন এবং সর্বোচ্চ দৈর্ঘ্য সুপারইম্পোজ করি: + +```r +ggplot(data=birds_grouped, aes(x=Category)) + + geom_bar(aes(y=MaxLength), stat="identity", position ="identity", fill='blue') + + geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+ + coord_flip() +``` +![super-imposed values](../../../../../translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.bn.png) + +## 🚀 চ্যালেঞ্জ + +এই পাখির ডেটাসেটটি একটি নির্দিষ্ট বাস্তুতন্ত্রের মধ্যে বিভিন্ন ধরনের পাখি সম্পর্কে প্রচুর তথ্য সরবরাহ করে। ইন্টারনেটে অনুসন্ধান করুন এবং দেখুন আপনি কি অন্য পাখি-ভিত্তিক ডেটাসেট খুঁজে পেতে পারেন। এই পাখিদের চার্ট এবং গ্রাফ তৈরি করার অনুশীলন করুন যাতে এমন তথ্য আবিষ্কার করতে পারেন যা আপনি আগে জানতেন না। +## [পাঠ-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +এই প্রথম পাঠটি আপনাকে `ggplot2` ব্যবহার করে পরিমাণের ভিজ্যুয়ালাইজেশন সম্পর্কে কিছু তথ্য দিয়েছে। ডেটাসেট নিয়ে কাজ করার অন্যান্য উপায় সম্পর্কে গবেষণা করুন। [Lattice](https://stat.ethz.ch/R-manual/R-devel/library/lattice/html/Lattice.html) এবং [Plotly](https://github.com/plotly/plotly.R#readme) এর মতো অন্যান্য প্যাকেজ ব্যবহার করে ভিজ্যুয়ালাইজেশন তৈরি করার জন্য ডেটাসেট খুঁজে দেখুন। + +## অ্যাসাইনমেন্ট +[লাইন, স্ক্যাটার এবং বার](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/09-visualization-quantities/assignment.md b/translations/bn/3-Data-Visualization/R/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..b85d0aa5 --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# লাইন, স্ক্যাটার এবং বার + +## নির্দেশনা + +এই পাঠে, আপনি লাইন চার্ট, স্ক্যাটারপ্লট এবং বার চার্ট ব্যবহার করে এই ডেটাসেট সম্পর্কে আকর্ষণীয় তথ্য প্রদর্শন করেছেন। এই অ্যাসাইনমেন্টে, ডেটাসেটটি আরও গভীরভাবে বিশ্লেষণ করুন এবং একটি নির্দিষ্ট প্রজাতির পাখি সম্পর্কে একটি তথ্য আবিষ্কার করুন। উদাহরণস্বরূপ, একটি স্ক্রিপ্ট তৈরি করুন যা স্নো গিজ সম্পর্কে আপনি যে আকর্ষণীয় তথ্য খুঁজে পেয়েছেন তা চিত্রিত করে। উপরে উল্লেখিত তিনটি প্লট ব্যবহার করে আপনার নোটবুকে একটি গল্প বলুন। + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +স্ক্রিপ্টটি ভালো মন্তব্য, শক্তিশালী গল্প বলার ক্ষমতা এবং আকর্ষণীয় গ্রাফ সহ উপস্থাপন করা হয়েছে | স্ক্রিপ্টে এই উপাদানগুলির মধ্যে একটি অনুপস্থিত | স্ক্রিপ্টে এই উপাদানগুলির মধ্যে দুটি অনুপস্থিত + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/10-visualization-distributions/README.md b/translations/bn/3-Data-Visualization/R/10-visualization-distributions/README.md new file mode 100644 index 00000000..70d306bd --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/10-visualization-distributions/README.md @@ -0,0 +1,184 @@ + +# ডিস্ট্রিবিউশন ভিজুয়ালাইজেশন + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| ডিস্ট্রিবিউশন ভিজুয়ালাইজেশন - _স্কেচনোট [@nitya](https://twitter.com/nitya) দ্বারা_ | + +পূর্ববর্তী পাঠে, আপনি মিনেসোটা রাজ্যের পাখিদের একটি ডেটাসেট সম্পর্কে কিছু আকর্ষণীয় তথ্য শিখেছেন। আপনি আউটলায়ার ভিজুয়ালাইজ করে কিছু ভুল ডেটা খুঁজে পেয়েছেন এবং পাখির ক্যাটাগরিগুলোর মধ্যে তাদের সর্বোচ্চ দৈর্ঘ্যের পার্থক্য দেখেছেন। + +## [পূর্ব-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## পাখিদের ডেটাসেট অন্বেষণ করুন + +ডেটা বিশ্লেষণের আরেকটি উপায় হলো এর ডিস্ট্রিবিউশন দেখা, অর্থাৎ ডেটা কীভাবে একটি অক্ষ বরাবর সংগঠিত হয়েছে। উদাহরণস্বরূপ, আপনি হয়তো জানতে চাইবেন মিনেসোটা রাজ্যের পাখিদের সর্বোচ্চ উইংসপ্যান বা সর্বোচ্চ শরীরের ভরের সাধারণ ডিস্ট্রিবিউশন সম্পর্কে। + +এই ডেটাসেটের ডিস্ট্রিবিউশন সম্পর্কে কিছু তথ্য আবিষ্কার করি। আপনার R কনসোলে `ggplot2` এবং ডেটাবেস আমদানি করুন। পূর্ববর্তী বিষয়ে যেমনটি করেছেন, ডেটাবেস থেকে আউটলায়ার সরিয়ে ফেলুন। + +```r +library(ggplot2) + +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") + +birds_filtered <- subset(birds, MaxWingspan < 500) +head(birds_filtered) +``` +| | নাম | বৈজ্ঞানিক নাম | ক্যাটাগরি | অর্ডার | পরিবার | গণ | সংরক্ষণ অবস্থা | সর্বনিম্ন দৈর্ঘ্য | সর্বোচ্চ দৈর্ঘ্য | সর্বনিম্ন শরীরের ভর | সর্বোচ্চ শরীরের ভর | সর্বনিম্ন উইংসপ্যান | সর্বোচ্চ উইংসপ্যান | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | ব্ল্যাক-বেলিড হুইসলিং ডাক | Dendrocygna autumnalis | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | ফুলভাস হুইসলিং ডাক | Dendrocygna bicolor | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | স্নো গিজ | Anser caerulescens | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | রসের গিজ | Anser rossii | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | গ্রেটার হোয়াইট-ফ্রন্টেড গিজ | Anser albifrons | হাঁস/গিজ/জলপাখি | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +সাধারণভাবে, আপনি দ্রুত ডেটা কীভাবে বিতরণ করা হয়েছে তা দেখতে পারেন একটি স্ক্যাটার প্লট ব্যবহার করে, যেমনটি আমরা পূর্ববর্তী পাঠে করেছি: + +```r +ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + + geom_point() + + ggtitle("Max Length per order") + coord_flip() +``` +![অর্ডার অনুযায়ী সর্বোচ্চ দৈর্ঘ্য](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.bn.png) + +এটি পাখির অর্ডার অনুযায়ী শরীরের দৈর্ঘ্যের সাধারণ ডিস্ট্রিবিউশন সম্পর্কে একটি ওভারভিউ দেয়, তবে এটি প্রকৃত ডিস্ট্রিবিউশন প্রদর্শনের জন্য সর্বোত্তম উপায় নয়। এই কাজটি সাধারণত একটি হিস্টোগ্রাম তৈরি করে করা হয়। + +## হিস্টোগ্রামের সাথে কাজ করা + +`ggplot2` ডিস্ট্রিবিউশন ভিজুয়ালাইজ করার জন্য খুব ভালো উপায় প্রদান করে হিস্টোগ্রাম ব্যবহার করে। এই ধরনের চার্ট একটি বার চার্টের মতো যেখানে ডিস্ট্রিবিউশন বারগুলোর উত্থান-পতনের মাধ্যমে দেখা যায়। একটি হিস্টোগ্রাম তৈরি করতে, আপনার প্রয়োজন সংখ্যাসূচক ডেটা। হিস্টোগ্রাম তৈরি করতে, আপনি একটি চার্ট প্লট করতে পারেন যার ধরণ 'hist' হিস্টোগ্রামের জন্য। এই চার্টটি পুরো ডেটাসেটের সংখ্যাসূচক ডেটার পরিসরের জন্য MaxBodyMass এর ডিস্ট্রিবিউশন দেখায়। ডেটার অ্যারের ছোট ছোট অংশে বিভক্ত করে এটি ডেটার মানের ডিস্ট্রিবিউশন প্রদর্শন করতে পারে: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + + geom_histogram(bins=10)+ylab('Frequency') +``` +![পুরো ডেটাসেটের উপর ডিস্ট্রিবিউশন](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.bn.png) + +যেমনটি আপনি দেখতে পাচ্ছেন, এই ডেটাসেটের ৪০০+ পাখির বেশিরভাগই তাদের Max Body Mass এর ক্ষেত্রে ২০০০ এর নিচে পড়ে। ডেটা সম্পর্কে আরও অন্তর্দৃষ্টি অর্জন করতে `bins` প্যারামিটারটি একটি বড় সংখ্যায় পরিবর্তন করুন, যেমন ৩০: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') +``` + +![ডিস্ট্রিবিউশন-৩০bins](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.bn.png) + +এই চার্টটি আরও বিস্তারিতভাবে ডিস্ট্রিবিউশন দেখায়। একটি কম বাঁ দিকে ঝুঁকানো চার্ট তৈরি করা যেতে পারে নিশ্চিত করে যে আপনি শুধুমাত্র একটি নির্দিষ্ট পরিসরের মধ্যে ডেটা নির্বাচন করেছেন: + +আপনার ডেটা ফিল্টার করুন শুধুমাত্র সেই পাখিদের পেতে যাদের শরীরের ভর ৬০ এর নিচে এবং ৩০ `bins` দেখান: + +```r +birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_histogram(bins=30)+ylab('Frequency') +``` + +![ফিল্টার করা হিস্টোগ্রাম](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.bn.png) + +✅ কিছু অন্যান্য ফিল্টার এবং ডেটা পয়েন্ট চেষ্টা করুন। ডেটার সম্পূর্ণ ডিস্ট্রিবিউশন দেখতে, `['MaxBodyMass']` ফিল্টার সরিয়ে লেবেলযুক্ত ডিস্ট্রিবিউশন দেখান। + +হিস্টোগ্রাম কিছু সুন্দর রঙ এবং লেবেলিং উন্নতি করার সুযোগও দেয়: + +দুইটি ডিস্ট্রিবিউশনের মধ্যে সম্পর্ক তুলনা করতে একটি 2D হিস্টোগ্রাম তৈরি করুন। আসুন `MaxBodyMass` বনাম `MaxLength` তুলনা করি। `ggplot2` একটি বিল্ট-ইন উপায় প্রদান করে উজ্জ্বল রঙ ব্যবহার করে কনভারজেন্স দেখানোর জন্য: + +```r +ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + + geom_bin2d() +scale_fill_continuous(type = "viridis") +``` +এখানে একটি প্রত্যাশিত অক্ষ বরাবর এই দুটি উপাদানের মধ্যে একটি প্রত্যাশিত সম্পর্ক দেখা যাচ্ছে, একটি বিশেষভাবে শক্তিশালী কনভারজেন্স পয়েন্ট সহ: + +![2d প্লট](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.bn.png) + +হিস্টোগ্রাম ডিফল্টভাবে সংখ্যাসূচক ডেটার জন্য ভালো কাজ করে। যদি আপনি টেক্সট ডেটা অনুযায়ী ডিস্ট্রিবিউশন দেখতে চান তাহলে কী করবেন? +## টেক্সট ডেটা ব্যবহার করে ডেটাসেটের ডিস্ট্রিবিউশন অন্বেষণ করুন + +এই ডেটাসেটে পাখির ক্যাটাগরি, গণ, প্রজাতি, পরিবার এবং সংরক্ষণ অবস্থার পাশাপাশি ভালো তথ্য অন্তর্ভুক্ত রয়েছে। আসুন এই সংরক্ষণ তথ্যটি অন্বেষণ করি। পাখিদের সংরক্ষণ অবস্থার অনুযায়ী ডিস্ট্রিবিউশন কী? + +> ✅ ডেটাসেটে সংরক্ষণ অবস্থার বর্ণনা করতে কয়েকটি সংক্ষিপ্ত রূপ ব্যবহার করা হয়েছে। এই সংক্ষিপ্ত রূপগুলো [IUCN Red List Categories](https://www.iucnredlist.org/) থেকে এসেছে, একটি সংস্থা যা প্রজাতির অবস্থার তালিকা করে। +> +> - CR: অত্যন্ত বিপন্ন +> - EN: বিপন্ন +> - EX: বিলুপ্ত +> - LC: কম উদ্বেগ +> - NT: প্রায় বিপন্ন +> - VU: ঝুঁকিপূর্ণ + +এগুলো টেক্সট-ভিত্তিক মান, তাই একটি হিস্টোগ্রাম তৈরি করতে আপনাকে একটি রূপান্তর করতে হবে। ফিল্টার করা পাখিদের ডেটাফ্রেম ব্যবহার করে এর সংরক্ষণ অবস্থার সাথে এর সর্বনিম্ন উইংসপ্যান প্রদর্শন করুন। আপনি কী দেখতে পাচ্ছেন? + +```r +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6' + +ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) + + geom_histogram(position = "identity", alpha = 0.4, bins = 20) + + scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern")) +``` + +![উইংসপ্যান এবং সংরক্ষণ সংকলন](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.bn.png) + +সর্বনিম্ন উইংসপ্যান এবং সংরক্ষণ অবস্থার মধ্যে ভালো সম্পর্ক দেখা যাচ্ছে না। এই পদ্ধতি ব্যবহার করে ডেটাসেটের অন্যান্য উপাদান পরীক্ষা করুন। আপনি বিভিন্ন ফিল্টারও চেষ্টা করতে পারেন। কোনো সম্পর্ক খুঁজে পাচ্ছেন কি? + +## ডেনসিটি প্লট + +আপনি হয়তো লক্ষ্য করেছেন যে আমরা এখন পর্যন্ত যে হিস্টোগ্রামগুলো দেখেছি সেগুলো 'স্টেপড' এবং একটি মসৃণ আর্কে প্রবাহিত হয় না। একটি মসৃণ ডেনসিটি চার্ট দেখানোর জন্য, আপনি একটি ডেনসিটি প্লট চেষ্টা করতে পারেন। + +এখন আসুন ডেনসিটি প্লট নিয়ে কাজ করি! + +```r +ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + + geom_density() +``` +![ডেনসিটি প্লট](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.bn.png) + +আপনি দেখতে পাচ্ছেন যে প্লটটি পূর্বের সর্বনিম্ন উইংসপ্যান ডেটার মতোই প্রতিধ্বনিত করছে; এটি শুধু একটু মসৃণ। যদি আপনি দ্বিতীয় চার্টে তৈরি করা সেই খাঁজযুক্ত MaxBodyMass লাইনটি পুনরায় দেখতে চান, আপনি এটি এই পদ্ধতি ব্যবহার করে খুব ভালোভাবে মসৃণ করতে পারেন: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density() +``` +![শরীরের ভরের ডেনসিটি](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.bn.png) + +যদি আপনি একটি মসৃণ, তবে খুব বেশি মসৃণ না হওয়া লাইন চান, তাহলে `adjust` প্যারামিটার সম্পাদনা করুন: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density(adjust = 1/5) +``` +![কম মসৃণ শরীরের ভর](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.bn.png) + +✅ এই ধরনের প্লটের জন্য উপলব্ধ প্যারামিটার সম্পর্কে পড়ুন এবং পরীক্ষা করুন! + +এই ধরনের চার্ট সুন্দরভাবে ব্যাখ্যামূলক ভিজুয়ালাইজেশন প্রদান করে। উদাহরণস্বরূপ, কয়েকটি কোডের মাধ্যমে আপনি পাখির অর্ডার অনুযায়ী সর্বোচ্চ শরীরের ভরের ডেনসিটি দেখাতে পারেন: + +```r +ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + + geom_density(alpha=0.5) +``` +![অর্ডার অনুযায়ী শরীরের ভর](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.bn.png) + +## 🚀 চ্যালেঞ্জ + +হিস্টোগ্রাম একটি সাধারণ স্ক্যাটারপ্লট, বার চার্ট বা লাইন চার্টের চেয়ে বেশি উন্নত ধরনের চার্ট। ইন্টারনেটে অনুসন্ধান করুন এবং হিস্টোগ্রামের ব্যবহারের ভালো উদাহরণ খুঁজুন। সেগুলো কীভাবে ব্যবহার করা হয়, কী প্রদর্শন করে এবং কোন ক্ষেত্র বা অনুসন্ধানের এলাকায় সেগুলো ব্যবহৃত হয় তা দেখুন। + +## [পোস্ট-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +এই পাঠে, আপনি `ggplot2` ব্যবহার করেছেন এবং আরও উন্নত চার্ট দেখানোর কাজ শুরু করেছেন। `geom_density_2d()` সম্পর্কে গবেষণা করুন, যা "এক বা একাধিক মাত্রায় একটি ধারাবাহিক সম্ভাব্যতা ডেনসিটি কার্ভ"। [ডকুমেন্টেশন](https://ggplot2.tidyverse.org/reference/geom_density_2d.html) পড়ুন এবং এটি কীভাবে কাজ করে তা বুঝুন। + +## অ্যাসাইনমেন্ট + +[আপনার দক্ষতা প্রয়োগ করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/10-visualization-distributions/assignment.md b/translations/bn/3-Data-Visualization/R/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..0fac4c3a --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# আপনার দক্ষতা প্রয়োগ করুন + +## নির্দেশাবলী + +এখন পর্যন্ত, আপনি মিনেসোটা পাখি ডেটাসেট নিয়ে কাজ করেছেন পাখির সংখ্যা এবং জনসংখ্যার ঘনত্ব সম্পর্কে তথ্য আবিষ্কার করতে। এই কৌশলগুলোর প্রয়োগ অনুশীলন করতে একটি ভিন্ন ডেটাসেট ব্যবহার করে দেখুন, সম্ভবত [Kaggle](https://www.kaggle.com/) থেকে সংগ্রহ করা। একটি R স্ক্রিপ্ট তৈরি করুন যা এই ডেটাসেট সম্পর্কে একটি গল্প বলে, এবং এটি নিয়ে আলোচনা করার সময় অবশ্যই হিস্টোগ্রাম ব্যবহার করুন। + +## মূল্যায়ন মানদণ্ড + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | +একটি স্ক্রিপ্ট উপস্থাপন করা হয়েছে যা এই ডেটাসেট সম্পর্কে টীকা অন্তর্ভুক্ত করে, এর উৎস উল্লেখ করে, এবং অন্তত ৫টি হিস্টোগ্রাম ব্যবহার করে ডেটা সম্পর্কে তথ্য আবিষ্কার করে। | একটি স্ক্রিপ্ট উপস্থাপন করা হয়েছে যেখানে টীকা অসম্পূর্ণ বা বাগ রয়েছে। | একটি স্ক্রিপ্ট উপস্থাপন করা হয়েছে যেখানে টীকা নেই এবং বাগ রয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/11-visualization-proportions/README.md b/translations/bn/3-Data-Visualization/R/11-visualization-proportions/README.md new file mode 100644 index 00000000..4b443dd7 --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/11-visualization-proportions/README.md @@ -0,0 +1,203 @@ + +# অনুপাতের ভিজ্যুয়ালাইজেশন + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|অনুপাতের ভিজ্যুয়ালাইজেশন - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +এই পাঠে, আপনি প্রকৃতি-কেন্দ্রিক একটি ভিন্ন ডেটাসেট ব্যবহার করে অনুপাতের ভিজ্যুয়ালাইজেশন করবেন, যেমন একটি মাশরুম সম্পর্কিত ডেটাসেটে বিভিন্ন ধরনের ফাঙ্গি কীভাবে উপস্থিত রয়েছে। আসুন এই চমৎকার ফাঙ্গি সম্পর্কে জানি, যা Audubon থেকে সংগৃহীত একটি ডেটাসেট ব্যবহার করে Agaricus এবং Lepiota পরিবারের ২৩ প্রজাতির গিল্ড মাশরুমের তথ্য প্রদান করে। আপনি নিম্নলিখিত মজাদার ভিজ্যুয়ালাইজেশন নিয়ে পরীক্ষা করবেন: + +- পাই চার্ট 🥧 +- ডোনাট চার্ট 🍩 +- ওয়াফল চার্ট 🧇 + +> 💡 Microsoft Research-এর একটি খুবই আকর্ষণীয় প্রকল্প [Charticulator](https://charticulator.com) একটি বিনামূল্যের ড্র্যাগ এবং ড্রপ ইন্টারফেস প্রদান করে ডেটা ভিজ্যুয়ালাইজেশনের জন্য। তাদের একটি টিউটোরিয়ালে তারা এই মাশরুম ডেটাসেটও ব্যবহার করেছে! তাই আপনি ডেটা অন্বেষণ করতে পারেন এবং একই সময়ে লাইব্রেরি শিখতে পারেন: [Charticulator টিউটোরিয়াল](https://charticulator.com/tutorials/tutorial4.html)। + +## [পাঠ-পূর্ব কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## আপনার মাশরুম সম্পর্কে জানুন 🍄 + +মাশরুম খুবই আকর্ষণীয়। আসুন একটি ডেটাসেট আমদানি করে তা অধ্যয়ন করি: + +```r +mushrooms = read.csv('../../data/mushrooms.csv') +head(mushrooms) +``` +একটি টেবিল প্রিন্ট করা হয়েছে যা বিশ্লেষণের জন্য চমৎকার ডেটা প্রদান করে: + + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban +| Edible | Convex |Smooth | Green | No Bruises| None |Free | Crowded | Broad | Black | Tapering | Equal | Smooth | Smooth | White | White | Partial | White | One | Evanescent | Brown | Abundant | Grasses +|Edible | Convex | Scaly | Yellow | Bruises | Almond | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Numerous | Grasses + +প্রথমেই, আপনি লক্ষ্য করবেন যে সমস্ত ডেটা টেক্সট আকারে রয়েছে। এই ডেটাকে চার্টে ব্যবহার করার জন্য আপনাকে এটি রূপান্তর করতে হবে। প্রকৃতপক্ষে, বেশিরভাগ ডেটা একটি অবজেক্ট হিসেবে উপস্থাপিত হয়েছে: + +```r +names(mushrooms) +``` + +আউটপুট হলো: + +```output +[1] "class" "cap.shape" + [3] "cap.surface" "cap.color" + [5] "bruises" "odor" + [7] "gill.attachment" "gill.spacing" + [9] "gill.size" "gill.color" +[11] "stalk.shape" "stalk.root" +[13] "stalk.surface.above.ring" "stalk.surface.below.ring" +[15] "stalk.color.above.ring" "stalk.color.below.ring" +[17] "veil.type" "veil.color" +[19] "ring.number" "ring.type" +[21] "spore.print.color" "population" +[23] "habitat" +``` +এই ডেটা নিন এবং 'class' কলামটিকে একটি ক্যাটাগরিতে রূপান্তর করুন: + +```r +library(dplyr) +grouped=mushrooms %>% + group_by(class) %>% + summarise(count=n()) +``` + + +এখন, যদি আপনি মাশরুমের ডেটা প্রিন্ট করেন, আপনি দেখতে পাবেন এটি বিষাক্ত/খাদ্যযোগ্য শ্রেণী অনুযায়ী ক্যাটাগরিতে বিভক্ত হয়েছে: +```r +View(grouped) +``` + + +| class | count | +| --------- | --------- | +| Edible | 4208 | +| Poisonous| 3916 | + + + +যদি আপনি এই টেবিলে প্রদত্ত ক্রম অনুসরণ করে আপনার শ্রেণী ক্যাটাগরি লেবেল তৈরি করেন, তাহলে আপনি একটি পাই চার্ট তৈরি করতে পারবেন। + +## পাই! + +```r +pie(grouped$count,grouped$class, main="Edible?") +``` +দেখুন, একটি পাই চার্ট যা এই ডেটার অনুপাত দেখাচ্ছে এই দুই শ্রেণীর মাশরুম অনুযায়ী। এখানে লেবেলের ক্রম সঠিকভাবে পাওয়া খুবই গুরুত্বপূর্ণ, তাই নিশ্চিত করুন যে লেবেল অ্যারে তৈরি করার সময় ক্রমটি যাচাই করেছেন! + +![pie chart](../../../../../translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.bn.png) + +## ডোনাট! + +একটি কিছুটা বেশি আকর্ষণীয় পাই চার্ট হলো ডোনাট চার্ট, যা একটি পাই চার্ট যার মাঝখানে একটি গর্ত রয়েছে। আসুন এই পদ্ধতি ব্যবহার করে আমাদের ডেটা দেখি। + +মাশরুমের বিভিন্ন আবাসস্থল দেখুন: + +```r +library(dplyr) +habitat=mushrooms %>% + group_by(habitat) %>% + summarise(count=n()) +View(habitat) +``` +আউটপুট হলো: +| habitat| count | +| --------- | --------- | +| Grasses | 2148 | +| Leaves| 832 | +| Meadows | 292 | +| Paths| 1144 | +| Urban | 368 | +| Waste| 192 | +| Wood| 3148 | + + +এখানে, আপনি আপনার ডেটাকে আবাসস্থল অনুযায়ী গ্রুপ করছেন। এখানে ৭টি তালিকাভুক্ত রয়েছে, তাই আপনার ডোনাট চার্টের জন্য সেগুলোকে লেবেল হিসেবে ব্যবহার করুন: + +```r +library(ggplot2) +library(webr) +PieDonut(habitat, aes(habitat, count=count)) +``` + +![donut chart](../../../../../translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.bn.png) + +এই কোডটি দুটি লাইব্রেরি ব্যবহার করে - ggplot2 এবং webr। webr লাইব্রেরির PieDonut ফাংশন ব্যবহার করে আমরা সহজেই একটি ডোনাট চার্ট তৈরি করতে পারি! + +R-এ শুধুমাত্র ggplot2 লাইব্রেরি ব্যবহার করেও ডোনাট চার্ট তৈরি করা যায়। আপনি এটি সম্পর্কে আরও জানতে পারেন [এখানে](https://www.r-graph-gallery.com/128-ring-or-donut-plot.html) এবং নিজে চেষ্টা করতে পারেন। + +এখন আপনি জানেন কীভাবে আপনার ডেটাকে গ্রুপ করতে হয় এবং তারপর এটি পাই বা ডোনাট হিসেবে প্রদর্শন করতে হয়, আপনি অন্যান্য ধরনের চার্ট অন্বেষণ করতে পারেন। একটি ওয়াফল চার্ট চেষ্টা করুন, যা পরিমাণ অন্বেষণের একটি ভিন্ন উপায়। + +## ওয়াফল! + +একটি 'ওয়াফল' টাইপ চার্ট হলো একটি ২D স্কোয়ারের অ্যারে হিসেবে পরিমাণ ভিজ্যুয়ালাইজ করার একটি ভিন্ন উপায়। এই ডেটাসেটে মাশরুমের ক্যাপ রঙের বিভিন্ন পরিমাণ ভিজ্যুয়ালাইজ করার চেষ্টা করুন। এটি করতে, আপনাকে একটি সহায়ক লাইব্রেরি [waffle](https://cran.r-project.org/web/packages/waffle/waffle.pdf) ইনস্টল করতে হবে এবং এটি ব্যবহার করে আপনার ভিজ্যুয়ালাইজেশন তৈরি করতে হবে: + +```r +install.packages("waffle", repos = "https://cinc.rud.is") +``` + +আপনার ডেটার একটি অংশ নির্বাচন করুন এবং গ্রুপ করুন: + +```r +library(dplyr) +cap_color=mushrooms %>% + group_by(cap.color) %>% + summarise(count=n()) +View(cap_color) +``` + +লেবেল তৈরি করে এবং আপনার ডেটাকে গ্রুপ করে একটি ওয়াফল চার্ট তৈরি করুন: + +```r +library(waffle) +names(cap_color$count) = paste0(cap_color$cap.color) +waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", + "pink", "purple", "red", "grey", + "yellow","white")) +``` + +ওয়াফল চার্ট ব্যবহার করে, আপনি স্পষ্টভাবে এই মাশরুম ডেটাসেটের ক্যাপ রঙের অনুপাত দেখতে পারেন। মজার বিষয় হলো, অনেক সবুজ ক্যাপযুক্ত মাশরুম রয়েছে! + +![waffle chart](../../../../../translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.bn.png) + +এই পাঠে, আপনি অনুপাত ভিজ্যুয়ালাইজ করার তিনটি উপায় শিখেছেন। প্রথমে, আপনাকে আপনার ডেটাকে ক্যাটাগরিতে গ্রুপ করতে হবে এবং তারপর সিদ্ধান্ত নিতে হবে কোনটি ডেটা প্রদর্শনের সেরা উপায় - পাই, ডোনাট, বা ওয়াফল। সবগুলোই মজাদার এবং ব্যবহারকারীকে একটি ডেটাসেটের তাৎক্ষণিক স্ন্যাপশট প্রদান করে। + +## 🚀 চ্যালেঞ্জ + +এই মজাদার চার্টগুলো [Charticulator](https://charticulator.com) এ পুনরায় তৈরি করার চেষ্টা করুন। +## [পাঠ-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +কখন পাই, ডোনাট, বা ওয়াফল চার্ট ব্যবহার করতে হবে তা কখনও কখনও স্পষ্ট নয়। এই বিষয়ে পড়ার জন্য কিছু নিবন্ধ এখানে দেওয়া হলো: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +এই কঠিন সিদ্ধান্ত সম্পর্কে আরও তথ্য পেতে কিছু গবেষণা করুন। + +## অ্যাসাইনমেন্ট + +[Excel-এ চেষ্টা করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/12-visualization-relationships/README.md b/translations/bn/3-Data-Visualization/R/12-visualization-relationships/README.md new file mode 100644 index 00000000..f6828a6a --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/12-visualization-relationships/README.md @@ -0,0 +1,177 @@ + +# সম্পর্কের ভিজ্যুয়ালাইজেশন: মধুর গল্প 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|সম্পর্কের ভিজ্যুয়ালাইজেশন - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +আমাদের গবেষণার প্রকৃতি-কেন্দ্রিক দৃষ্টিভঙ্গি অব্যাহত রেখে, চলুন বিভিন্ন ধরনের মধুর মধ্যে সম্পর্ক দেখানোর জন্য আকর্ষণীয় ভিজ্যুয়ালাইজেশন আবিষ্কার করি। এই ডেটাসেটটি [United States Department of Agriculture](https://www.nass.usda.gov/About_NASS/index.php) থেকে প্রাপ্ত। + +এই ডেটাসেটে প্রায় ৬০০টি আইটেম রয়েছে যা বিভিন্ন মার্কিন যুক্তরাষ্ট্রের রাজ্যে মধু উৎপাদন প্রদর্শন করে। উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট রাজ্যের জন্য ১৯৯৮-২০১২ সময়কালে প্রতি বছর প্রতি রাজ্যের জন্য এক সারি সহ কলোনির সংখ্যা, প্রতি কলোনির উৎপাদন, মোট উৎপাদন, স্টক, প্রতি পাউন্ডের দাম এবং উৎপাদিত মধুর মূল্য দেখতে পারেন। + +একটি নির্দিষ্ট রাজ্যের বার্ষিক উৎপাদন এবং সেই রাজ্যে মধুর দামের মধ্যে সম্পর্ক দেখানো আকর্ষণীয় হবে। বিকল্পভাবে, আপনি রাজ্যগুলির প্রতি কলোনির মধু উৎপাদনের মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করতে পারেন। এই সময়কালটি ২০০৬ সালে প্রথম দেখা 'CCD' বা 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) এর ধ্বংসাত্মক প্রভাবকে অন্তর্ভুক্ত করে, তাই এটি অধ্যয়নের জন্য একটি গুরুত্বপূর্ণ ডেটাসেট। 🐝 + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +এই পাঠে, আপনি ggplot2 ব্যবহার করতে পারেন, যা আপনি আগে ব্যবহার করেছেন, ভেরিয়েবলগুলির মধ্যে সম্পর্ক ভিজ্যুয়ালাইজ করার জন্য একটি ভালো লাইব্রেরি হিসেবে। বিশেষভাবে আকর্ষণীয় হল ggplot2 এর `geom_point` এবং `qplot` ফাংশন যা দ্রুত '[statistical relationships](https://ggplot2.tidyverse.org/)' দেখানোর জন্য স্ক্যাটার প্লট এবং লাইন প্লট তৈরি করতে দেয়, যা ডেটা বিজ্ঞানীদের ভেরিয়েবলগুলির মধ্যে সম্পর্ক আরও ভালোভাবে বুঝতে সাহায্য করে। + +## স্ক্যাটারপ্লট + +স্ক্যাটারপ্লট ব্যবহার করে দেখান কীভাবে প্রতি রাজ্যে মধুর দাম বছর বছর পরিবর্তিত হয়েছে। ggplot2, `ggplot` এবং `geom_point` ব্যবহার করে, রাজ্যের ডেটা গ্রুপ করে এবং উভয় ক্যাটাগরিকাল এবং সংখ্যাগত ডেটার জন্য ডেটা পয়েন্ট প্রদর্শন করে। + +চলুন ডেটা এবং Seaborn আমদানি করে শুরু করি: + +```r +honey=read.csv('../../data/honey.csv') +head(honey) +``` +আপনি লক্ষ্য করবেন যে মধুর ডেটায় বেশ কয়েকটি আকর্ষণীয় কলাম রয়েছে, যার মধ্যে বছর এবং প্রতি পাউন্ডের দাম অন্তর্ভুক্ত। চলুন এই ডেটা অন্বেষণ করি, মার্কিন যুক্তরাষ্ট্রের রাজ্য অনুযায়ী গ্রুপ করে: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | +| FL | 230000 | 98 |22540000 | 4508000 | 0.64 | 14426000 | 1998 | + +প্রতি পাউন্ড মধুর দাম এবং তার মার্কিন যুক্তরাষ্ট্রের উৎপত্তি রাজ্যের মধ্যে সম্পর্ক দেখানোর জন্য একটি সাধারণ স্ক্যাটারপ্লট তৈরি করুন। `y` অক্ষটি যথেষ্ট লম্বা করুন যাতে সমস্ত রাজ্য প্রদর্শিত হয়: + +```r +library(ggplot2) +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(colour = "blue") +``` +![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.bn.png) + +এখন, একই ডেটা একটি মধু রঙের স্কিম দিয়ে দেখান যাতে বছরের পর বছর দাম কীভাবে পরিবর্তিত হয়েছে তা প্রদর্শিত হয়। এটি করতে, 'scale_color_gradientn' প্যারামিটার যোগ করুন যা পরিবর্তন দেখায়: + +> ✅ [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) সম্পর্কে আরও জানুন - একটি সুন্দর রংধনু রঙের স্কিম চেষ্টা করুন! + +```r +ggplot(honey, aes(x = priceperlb, y = state, color=year)) + + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) +``` +![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.bn.png) + +এই রঙের স্কিম পরিবর্তনের মাধ্যমে, আপনি দেখতে পারেন যে প্রতি পাউন্ড মধুর দামের ক্ষেত্রে বছরের পর বছর একটি শক্তিশালী অগ্রগতি রয়েছে। আসলে, যদি আপনি ডেটার একটি নমুনা সেট পরীক্ষা করেন (উদাহরণস্বরূপ, একটি নির্দিষ্ট রাজ্য, অ্যারিজোনা), আপনি দেখতে পাবেন যে বছরের পর বছর দামের বৃদ্ধির একটি প্যাটার্ন রয়েছে, কয়েকটি ব্যতিক্রম সহ: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +আরেকটি উপায় হল রঙের পরিবর্তে আকার ব্যবহার করা। রঙ-অন্ধ ব্যবহারকারীদের জন্য এটি একটি ভালো বিকল্প হতে পারে। আপনার ভিজ্যুয়ালাইজেশন সম্পাদনা করুন যাতে ডটের পরিধি বৃদ্ধির মাধ্যমে দামের বৃদ্ধি দেখানো যায়: + +```r +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(aes(size = year),colour = "blue") + + scale_size_continuous(range = c(0.25, 3)) +``` +আপনি দেখতে পাবেন ডটের আকার ধীরে ধীরে বৃদ্ধি পাচ্ছে। + +![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.bn.png) + +এটি কি সরবরাহ এবং চাহিদার একটি সাধারণ ঘটনা? জলবায়ু পরিবর্তন এবং কলোনি ধ্বংসের মতো কারণগুলির কারণে, প্রতি বছর কেনার জন্য কম মধু পাওয়া যাচ্ছে, এবং তাই দাম বাড়ছে? + +এই ডেটাসেটে কিছু ভেরিয়েবলের মধ্যে সম্পর্ক আবিষ্কার করতে, চলুন কিছু লাইন চার্ট অন্বেষণ করি। + +## লাইন চার্ট + +প্রশ্ন: প্রতি পাউন্ড মধুর দামে বছর বছর কি একটি স্পষ্ট বৃদ্ধি দেখা যায়? আপনি এটি সবচেয়ে সহজে একটি একক লাইন চার্ট তৈরি করে আবিষ্কার করতে পারেন: + +```r +qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") +``` +উত্তর: হ্যাঁ, ২০০৩ সালের আশেপাশে কিছু ব্যতিক্রম সহ: + +![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.bn.png) + +প্রশ্ন: তাহলে, ২০০৩ সালে মধুর সরবরাহে কি কোনো স্পাইক দেখা যায়? যদি আপনি বছর বছর মোট উৎপাদন দেখেন? + +```python +qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") +``` + +![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.bn.png) + +উত্তর: আসলে না। যদি আপনি মোট উৎপাদন দেখেন, এটি সেই নির্দিষ্ট বছরে বৃদ্ধি পেয়েছে বলে মনে হয়, যদিও সাধারণভাবে এই বছরগুলিতে উৎপাদিত মধুর পরিমাণ হ্রাস পাচ্ছে। + +প্রশ্ন: সেই ক্ষেত্রে, ২০০৩ সালের আশেপাশে মধুর দামের স্পাইক কী কারণে হতে পারে? + +এটি আবিষ্কার করতে, আপনি একটি ফ্যাসেট গ্রিড অন্বেষণ করতে পারেন। + +## ফ্যাসেট গ্রিড + +ফ্যাসেট গ্রিড আপনার ডেটাসেটের একটি ফ্যাসেট (আমাদের ক্ষেত্রে, আপনি 'year' বেছে নিতে পারেন যাতে খুব বেশি ফ্যাসেট তৈরি না হয়) গ্রহণ করে। Seaborn তারপর আপনার নির্বাচিত x এবং y কোঅর্ডিনেটের জন্য প্রতিটি ফ্যাসেটের একটি প্লট তৈরি করতে পারে যা তুলনা সহজ করে। এই ধরনের তুলনায় ২০০৩ কি আলাদা করে দাঁড়ায়? + +[ggplot2 এর ডকুমেন্টেশন](https://ggplot2.tidyverse.org/reference/facet_wrap.html) অনুযায়ী `facet_wrap` ব্যবহার করে একটি ফ্যাসেট গ্রিড তৈরি করুন। + +```r +ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + + geom_line() + facet_wrap(vars(year)) +``` +এই ভিজ্যুয়ালাইজেশনে, আপনি প্রতি কলোনির উৎপাদন এবং কলোনির সংখ্যা বছর বছর, রাজ্য রাজ্য পাশাপাশি তুলনা করতে পারেন, যেখানে কলামের জন্য wrap 3 সেট করা হয়েছে: + +![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.bn.png) + +এই ডেটাসেটের জন্য, রাজ্য রাজ্য এবং বছর বছর কলোনির সংখ্যা এবং তাদের উৎপাদনের ক্ষেত্রে কিছুই বিশেষভাবে আলাদা করে দাঁড়ায় না। এই দুটি ভেরিয়েবলের মধ্যে সম্পর্ক খুঁজে বের করার জন্য দেখার অন্য কোনো উপায় কি আছে? + +## ডুয়াল-লাইন প্লট + +R এর `par` এবং `plot` ফাংশন ব্যবহার করে দুটি লাইনপ্লট একটির উপর অন্যটি সুপারইম্পোজ করে একটি মাল্টিলাইন প্লট চেষ্টা করুন। আমরা x অক্ষে বছর প্লট করব এবং দুটি y অক্ষ প্রদর্শন করব। তাই, প্রতি কলোনির উৎপাদন এবং কলোনির সংখ্যা প্রদর্শন করুন, সুপারইম্পোজ করে: + +```r +par(mar = c(5, 4, 4, 4) + 0.3) +plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") +par(new = TRUE) +plot(honey$year, honey$yieldpercol, pch = 17, col = 3, + axes = FALSE, xlab = "", ylab = "",type="l") +axis(side = 4, at = pretty(range(y2))) +mtext("colony yield", side = 4, line = 3) +``` +![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.bn.png) + +যদিও ২০০৩ সালের আশেপাশে চোখে কিছুই ধরা পড়ে না, এটি আমাদের এই পাঠটি একটি সামান্য সুখী নোটে শেষ করার অনুমতি দেয়: যদিও সামগ্রিকভাবে কলোনির সংখ্যা হ্রাস পাচ্ছে, কলোনির সংখ্যা স্থিতিশীল হচ্ছে যদিও তাদের প্রতি কলোনির উৎপাদন হ্রাস পাচ্ছে। + +চলো, মৌমাছি, চলো! + +🐝❤️ +## 🚀 চ্যালেঞ্জ + +এই পাঠে, আপনি স্ক্যাটারপ্লট এবং লাইন গ্রিডের অন্যান্য ব্যবহার সম্পর্কে আরও কিছু শিখেছেন, যার মধ্যে ফ্যাসেট গ্রিড অন্তর্ভুক্ত। নিজেকে চ্যালেঞ্জ করুন একটি ভিন্ন ডেটাসেট ব্যবহার করে একটি ফ্যাসেট গ্রিড তৈরি করতে, সম্ভবত আপনি এই পাঠগুলির আগে যে ডেটাসেট ব্যবহার করেছেন। এগুলি তৈরি করতে কতক্ষণ সময় লাগে এবং এই কৌশলগুলি ব্যবহার করে কতগুলি গ্রিড আঁকতে হবে তা নিয়ে আপনাকে কতটা সতর্ক থাকতে হবে তা লক্ষ্য করুন। +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +লাইন প্লটগুলি সহজ বা বেশ জটিল হতে পারে। [ggplot2 ডকুমেন্টেশন](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together) এ কিছু পড়াশোনা করুন বিভিন্ন উপায়ে আপনি এগুলি তৈরি করতে পারেন। এই পাঠে আপনি যে লাইন চার্ট তৈরি করেছেন তা ডকসে তালিকাভুক্ত অন্যান্য পদ্ধতি দিয়ে উন্নত করার চেষ্টা করুন। +## অ্যাসাইনমেন্ট + +[Dive into the beehive](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/R/13-meaningful-vizualizations/README.md b/translations/bn/3-Data-Visualization/R/13-meaningful-vizualizations/README.md new file mode 100644 index 00000000..0e0e4d40 --- /dev/null +++ b/translations/bn/3-Data-Visualization/R/13-meaningful-vizualizations/README.md @@ -0,0 +1,180 @@ + +# অর্থবহ ভিজ্যুয়ালাইজেশন তৈরি করা + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| অর্থবহ ভিজ্যুয়ালাইজেশন - _স্কেচনোট [@nitya](https://twitter.com/nitya)_ | + +> "আপনি যদি ডেটাকে যথেষ্ট সময় ধরে নির্যাতন করেন, এটি যেকোনো কিছু স্বীকার করবে" -- [রোনাল্ড কোস](https://en.wikiquote.org/wiki/Ronald_Coase) + +একজন ডেটা সায়েন্টিস্টের অন্যতম গুরুত্বপূর্ণ দক্ষতা হলো অর্থবহ ডেটা ভিজ্যুয়ালাইজেশন তৈরি করার ক্ষমতা, যা আপনার প্রশ্নের উত্তর খুঁজতে সাহায্য করে। ডেটা ভিজ্যুয়ালাইজ করার আগে, নিশ্চিত করুন যে এটি পরিষ্কার এবং প্রস্তুত করা হয়েছে, যেমনটি আপনি পূর্ববর্তী পাঠে করেছেন। এরপর, ডেটা কীভাবে সেরা উপস্থাপন করা যায় তা নির্ধারণ করতে পারেন। + +এই পাঠে আপনি শিখবেন: + +1. সঠিক চার্ট টাইপ কীভাবে নির্বাচন করবেন +2. প্রতারণামূলক চার্টিং কীভাবে এড়াবেন +3. রঙের সাথে কীভাবে কাজ করবেন +4. পড়ার সুবিধার্থে চার্ট কীভাবে স্টাইল করবেন +5. অ্যানিমেটেড বা 3D চার্টিং সমাধান কীভাবে তৈরি করবেন +6. সৃজনশীল ভিজ্যুয়ালাইজেশন কীভাবে তৈরি করবেন + +## [পূর্ব-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## সঠিক চার্ট টাইপ নির্বাচন করুন + +পূর্ববর্তী পাঠে, আপনি Matplotlib এবং Seaborn ব্যবহার করে বিভিন্ন ধরণের আকর্ষণীয় ডেটা ভিজ্যুয়ালাইজেশন তৈরি করার অনুশীলন করেছেন। সাধারণত, আপনি এই টেবিলটি ব্যবহার করে [সঠিক ধরণের চার্ট](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) নির্বাচন করতে পারেন: + +| আপনার যা প্রয়োজন: | আপনি যা ব্যবহার করবেন: | +| -------------------------- | ------------------------------- | +| সময়ের সাথে ডেটার প্রবণতা দেখান | লাইন | +| বিভাগগুলোর তুলনা করুন | বার, পাই | +| মোটের তুলনা করুন | পাই, স্ট্যাকড বার | +| সম্পর্ক দেখান | স্ক্যাটার, লাইন, ফ্যাসেট, ডুয়াল লাইন | +| বিতরণ দেখান | স্ক্যাটার, হিস্টোগ্রাম, বক্স | +| অনুপাত দেখান | পাই, ডোনাট, ওয়াফল | + +> ✅ আপনার ডেটার গঠন অনুযায়ী, একটি নির্দিষ্ট চার্ট সমর্থন করার জন্য আপনাকে এটি টেক্সট থেকে সংখ্যায় রূপান্তর করতে হতে পারে। + +## প্রতারণা এড়িয়ে চলুন + +একজন ডেটা সায়েন্টিস্ট সঠিক ডেটার জন্য সঠিক চার্ট নির্বাচন করলেও, ডেটা এমনভাবে প্রদর্শন করা যেতে পারে যা একটি পয়েন্ট প্রমাণ করে, প্রায়শই ডেটার বিশ্বাসযোগ্যতাকে ক্ষুণ্ন করে। প্রতারণামূলক চার্ট এবং ইনফোগ্রাফিক্সের অনেক উদাহরণ রয়েছে! + +[![আলবার্তো কায়রোর "হাউ চার্টস লাই"](../../../../../translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.bn.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 প্রতারণামূলক চার্ট নিয়ে একটি কনফারেন্স টক দেখতে উপরের ছবিতে ক্লিক করুন + +এই চার্টটি তারিখের ভিত্তিতে সত্যের বিপরীত দেখানোর জন্য X অক্ষটি উল্টে দিয়েছে: + +![খারাপ চার্ট 1](../../../../../translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.bn.png) + +[এই চার্টটি](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) আরও প্রতারণামূলক, কারণ চোখ ডানদিকে আকৃষ্ট হয় এবং মনে হয় যে সময়ের সাথে সাথে বিভিন্ন কাউন্টিতে COVID কেস কমেছে। প্রকৃতপক্ষে, তারিখগুলো ঘনিষ্ঠভাবে দেখলে, আপনি দেখতে পাবেন যে সেগুলো পুনর্বিন্যাস করা হয়েছে যাতে একটি প্রতারণামূলক নিম্নগামী প্রবণতা দেখানো যায়। + +![খারাপ চার্ট 2](../../../../../translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.bn.jpg) + +এই কুখ্যাত উদাহরণটি রঙ এবং একটি উল্টানো Y অক্ষ ব্যবহার করে প্রতারণা করে: বন্দুক-বান্ধব আইন পাস হওয়ার পরে বন্দুক মৃত্যুর সংখ্যা বেড়েছে, এটি বোঝানোর পরিবর্তে চোখকে প্রতারিত করে বিপরীতটি ভাবতে বাধ্য করে: + +![খারাপ চার্ট 3](../../../../../translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.bn.jpg) + +এই অদ্ভুত চার্টটি দেখায় যে অনুপাত কীভাবে হাস্যকরভাবে হেরফের করা যায়: + +![খারাপ চার্ট 4](../../../../../translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.bn.jpg) + +অতুলনীয় জিনিসের তুলনা করাও আরেকটি ছলনামূলক কৌশল। একটি [অসাধারণ ওয়েবসাইট](https://tylervigen.com/spurious-correlations) রয়েছে যা 'স্পুরিয়াস করেলেশন' প্রদর্শন করে, যেমন মেইনে ডিভোর্স রেট এবং মার্জারিনের খরচের মধ্যে সম্পর্ক। একটি Reddit গ্রুপও ডেটার [খারাপ ব্যবহারের](https://www.reddit.com/r/dataisugly/top/?t=all) উদাহরণ সংগ্রহ করে। + +এটি বোঝা গুরুত্বপূর্ণ যে প্রতারণামূলক চার্ট দ্বারা চোখ কত সহজে প্রতারিত হতে পারে। এমনকি ডেটা সায়েন্টিস্টের উদ্দেশ্য ভালো হলেও, একটি খারাপ ধরণের চার্ট নির্বাচন, যেমন খুব বেশি ক্যাটাগরি দেখানো একটি পাই চার্ট, প্রতারণামূলক হতে পারে। + +## রঙ + +উপরের 'ফ্লোরিডা বন্দুক সহিংসতা' চার্টে আপনি দেখেছেন যে রঙ কীভাবে চার্টে একটি অতিরিক্ত অর্থের স্তর যোগ করতে পারে, বিশেষত সেগুলো যা ggplot2 এবং RColorBrewer-এর মতো লাইব্রেরি ব্যবহার করে ডিজাইন করা হয়নি। যদি আপনি হাতে একটি চার্ট তৈরি করেন, তবে [রঙ তত্ত্ব](https://colormatters.com/color-and-design/basic-color-theory) সম্পর্কে কিছুটা অধ্যয়ন করুন। + +> ✅ চার্ট ডিজাইন করার সময় সচেতন থাকুন যে অ্যাক্সেসিবিলিটি ভিজ্যুয়ালাইজেশনের একটি গুরুত্বপূর্ণ দিক। আপনার কিছু ব্যবহারকারী হয়তো রঙ অন্ধ হতে পারেন - আপনার চার্ট কি ভিজ্যুয়াল প্রতিবন্ধী ব্যবহারকারীদের জন্য ভালোভাবে প্রদর্শিত হয়? + +চার্টের জন্য রঙ নির্বাচন করার সময় সতর্ক থাকুন, কারণ রঙ এমন অর্থ বহন করতে পারে যা আপনি বোঝাতে চান না। উপরের 'উচ্চতা' চার্টে 'গোলাপি লেডি' একটি স্পষ্ট 'নারীত্ব' অর্থ বহন করে, যা চার্টটির অদ্ভুততাকে আরও বাড়িয়ে তোলে। + +যদিও [রঙের অর্থ](https://colormatters.com/color-symbolism/the-meanings-of-colors) বিভিন্ন অঞ্চলে ভিন্ন হতে পারে এবং তাদের শেড অনুযায়ী পরিবর্তিত হয়। সাধারণভাবে, রঙের অর্থগুলো হলো: + +| রঙ | অর্থ | +| ------- | -------------------- | +| লাল | শক্তি | +| নীল | বিশ্বাস, আনুগত্য | +| হলুদ | সুখ, সতর্কতা | +| সবুজ | প্রকৃতি, সৌভাগ্য, ঈর্ষা | +| বেগুনি | সুখ | +| কমলা | প্রাণবন্ততা | + +যদি আপনাকে কাস্টম রঙ দিয়ে একটি চার্ট তৈরি করতে বলা হয়, নিশ্চিত করুন যে আপনার চার্টগুলো অ্যাক্সেসযোগ্য এবং আপনি যে অর্থ বোঝাতে চান তার সাথে রঙটি সামঞ্জস্যপূর্ণ। + +## পড়ার সুবিধার্থে চার্ট স্টাইল করা + +চার্টগুলো অর্থবহ নয় যদি সেগুলো পড়া সহজ না হয়! আপনার ডেটার সাথে ভালোভাবে স্কেল করার জন্য চার্টের প্রস্থ এবং উচ্চতা স্টাইল করার কথা বিবেচনা করুন। যদি একটি ভেরিয়েবল (যেমন ৫০টি রাজ্য) প্রদর্শন করতে হয়, তবে সেগুলোকে Y অক্ষ বরাবর উল্লম্বভাবে দেখান যাতে একটি অনুভূমিকভাবে স্ক্রল করা চার্ট এড়ানো যায়। + +আপনার অক্ষগুলো লেবেল করুন, প্রয়োজনে একটি লেজেন্ড দিন এবং ডেটার আরও ভালো বোঝার জন্য টুলটিপস অফার করুন। + +যদি আপনার ডেটা X অক্ষে টেক্সট এবং বিস্তারিত হয়, তবে আরও ভালোভাবে পড়ার জন্য টেক্সটটি কোণাকৃতিতে সাজাতে পারেন। [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) 3D প্লটিং অফার করে, যদি আপনার ডেটা এটি সমর্থন করে। এটি ব্যবহার করে উন্নত ডেটা ভিজ্যুয়ালাইজেশন তৈরি করা যায়। + +![3D প্লট](../../../../../translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.bn.png) + +## অ্যানিমেশন এবং 3D চার্ট প্রদর্শন + +আজকের সেরা ডেটা ভিজ্যুয়ালাইজেশনগুলোর মধ্যে কিছু অ্যানিমেটেড। শার্লি উ D3 দিয়ে তৈরি অসাধারণ ভিজ্যুয়ালাইজেশন করেছেন, যেমন '[ফিল্ম ফ্লাওয়ারস](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', যেখানে প্রতিটি ফুল একটি সিনেমার ভিজ্যুয়ালাইজেশন। আরেকটি উদাহরণ হলো 'বাস্ট আউট', যা গ্রিনসক এবং D3-এর সাথে ভিজ্যুয়ালাইজেশন এবং স্ক্রোলিটেলিং আর্টিকেল ফরম্যাটকে একত্রিত করে দেখায় কীভাবে NYC তার গৃহহীন সমস্যার সমাধান করে। + +![বাসিং](../../../../../translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.bn.png) + +> "বাস্ট আউট: আমেরিকা কীভাবে তার গৃহহীন মানুষদের সরিয়ে দেয়" [দ্য গার্ডিয়ান](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study) থেকে। ভিজ্যুয়ালাইজেশন: নাদিয়েহ ব্রেমার এবং শার্লি উ + +যদিও এই পাঠটি এই শক্তিশালী ভিজ্যুয়ালাইজেশন লাইব্রেরিগুলো শেখানোর জন্য যথেষ্ট নয়, D3 ব্যবহার করে Vue.js অ্যাপে একটি ভিজ্যুয়ালাইজেশন তৈরি করার চেষ্টা করুন। + +> "লেস লিয়াজঁ ড্যাঞ্জেরুজ" একটি চিঠির সিরিজ হিসেবে উপস্থাপিত একটি উপন্যাস। এটি ১৭৮২ সালে চোদারলোস দে লাক্লোস লিখেছিলেন। এটি ফরাসি অভিজাত সমাজের দুই প্রতিদ্বন্দ্বী চরিত্রের নৈতিকভাবে দেউলিয়া সামাজিক চালচলনের গল্প বলে। + +আপনি একটি ওয়েব অ্যাপ সম্পন্ন করবেন যা এই সামাজিক নেটওয়ার্কের একটি অ্যানিমেটেড ভিউ প্রদর্শন করবে। এটি একটি লাইব্রেরি ব্যবহার করে তৈরি করা হয়েছে যা Vue.js এবং D3 ব্যবহার করে একটি [নেটওয়ার্কের ভিজ্যুয়াল](https://github.com/emiliorizzo/vue-d3-network) তৈরি করে। + +![লিয়াজঁ](../../../../../translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.bn.png) + +## প্রকল্প: D3.js ব্যবহার করে একটি নেটওয়ার্ক দেখানোর জন্য একটি চার্ট তৈরি করুন + +> এই পাঠের ফোল্ডারে একটি `solution` ফোল্ডার রয়েছে যেখানে আপনি সম্পূর্ণ প্রকল্পটি রেফারেন্সের জন্য পেতে পারেন। + +1. স্টার্টার ফোল্ডারের রুটে README.md ফাইলের নির্দেশাবলী অনুসরণ করুন। নিশ্চিত করুন যে আপনার মেশিনে NPM এবং Node.js চলছে। + +2. `starter/src` ফোল্ডারটি খুলুন। আপনি একটি `assets` ফোল্ডার পাবেন যেখানে একটি .json ফাইল রয়েছে, যাতে চিঠিগুলোর 'to' এবং 'from' এনোটেশন রয়েছে। + +3. `components/Nodes.vue` ফাইলের কোড সম্পূর্ণ করুন যাতে ভিজ্যুয়ালাইজেশন সক্রিয় হয়। `createLinks()` নামক পদ্ধতিটি খুঁজুন এবং নিম্নলিখিত নেস্টেড লুপ যোগ করুন। + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +টার্মিনাল থেকে আপনার অ্যাপ চালান (npm run serve) এবং ভিজ্যুয়ালাইজেশন উপভোগ করুন! + +## 🚀 চ্যালেঞ্জ + +ইন্টারনেটে ঘুরে প্রতারণামূলক ভিজ্যুয়ালাইজেশন খুঁজুন। লেখক কীভাবে ব্যবহারকারীকে প্রতারিত করেছেন এবং এটি কি ইচ্ছাকৃত? ভিজ্যুয়ালাইজেশনগুলো সংশোধন করার চেষ্টা করুন যাতে সেগুলো সঠিকভাবে প্রদর্শিত হয়। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +প্রতারণামূলক ডেটা ভিজ্যুয়ালাইজেশন সম্পর্কে পড়ার জন্য এখানে কিছু নিবন্ধ রয়েছে: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +ঐতিহাসিক সম্পদ এবং নিদর্শনগুলোর জন্য এই আকর্ষণীয় ভিজ্যুয়ালাইজেশনগুলো দেখুন: + +https://handbook.pubpub.org/ + +অ্যানিমেশন কীভাবে আপনার ভিজ্যুয়ালাইজেশন উন্নত করতে পারে তা নিয়ে এই নিবন্ধটি দেখুন: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## অ্যাসাইনমেন্ট + +[আপনার নিজস্ব কাস্টম ভিজ্যুয়ালাইজেশন তৈরি করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/3-Data-Visualization/README.md b/translations/bn/3-Data-Visualization/README.md new file mode 100644 index 00000000..18fab894 --- /dev/null +++ b/translations/bn/3-Data-Visualization/README.md @@ -0,0 +1,42 @@ + +# ভিজুয়ালাইজেশন + +![ল্যাভেন্ডার ফুলে একটি মৌমাছি](../../../translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.bn.jpg) +> ছবি জেনা লি এর তোলা আনস্প্ল্যাশ এ + +ডেটা ভিজুয়ালাইজ করা একজন ডেটা সায়েন্টিস্টের সবচেয়ে গুরুত্বপূর্ণ কাজগুলোর একটি। একটি ছবি হাজার শব্দের সমান, এবং একটি ভিজুয়ালাইজেশন আপনাকে আপনার ডেটার বিভিন্ন আকর্ষণীয় অংশ যেমন স্পাইক, আউটলায়ার, গ্রুপিং, প্রবণতা এবং আরও অনেক কিছু চিহ্নিত করতে সাহায্য করতে পারে, যা আপনার ডেটা যে গল্পটি বলতে চায় তা বুঝতে সাহায্য করে। + +এই পাঁচটি পাঠে, আপনি প্রকৃতি থেকে সংগৃহীত ডেটা অন্বেষণ করবেন এবং বিভিন্ন কৌশল ব্যবহার করে আকর্ষণীয় এবং সুন্দর ভিজুয়ালাইজেশন তৈরি করবেন। + +| বিষয় নম্বর | বিষয় | সংযুক্ত পাঠ | লেখক | +| :-----------: | :--: | :-----------: | :----: | +| ১. | পরিমাণের ভিজুয়ালাইজেশন |
  • [Python](09-visualization-quantities/README.md)
  • [R](../../../3-Data-Visualization/R/09-visualization-quantities)
|
  • [জেন লুপার](https://twitter.com/jenlooper)
  • [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)
  • [জাসলিন সোনধি](https://github.com/jasleen101010)
| +| ২. | বিতরণের ভিজুয়ালাইজেশন |
  • [Python](10-visualization-distributions/README.md)
  • [R](../../../3-Data-Visualization/R/10-visualization-distributions)
|
  • [জেন লুপার](https://twitter.com/jenlooper)
  • [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)
  • [জাসলিন সোনধি](https://github.com/jasleen101010)
| +| ৩. | অনুপাতের ভিজুয়ালাইজেশন |
  • [Python](11-visualization-proportions/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [জেন লুপার](https://twitter.com/jenlooper)
  • [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)
  • [জাসলিন সোনধি](https://github.com/jasleen101010)
| +| ৪. | সম্পর্কের ভিজুয়ালাইজেশন |
  • [Python](12-visualization-relationships/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [জেন লুপার](https://twitter.com/jenlooper)
  • [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)
  • [জাসলিন সোনধি](https://github.com/jasleen101010)
| +| ৫. | অর্থপূর্ণ ভিজুয়ালাইজেশন তৈরি করা |
  • [Python](13-meaningful-visualizations/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [জেন লুপার](https://twitter.com/jenlooper)
  • [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)
  • [জাসলিন সোনধি](https://github.com/jasleen101010)
| + +### কৃতজ্ঞতা + +এই ভিজুয়ালাইজেশন পাঠগুলো 🌸 দিয়ে লিখেছেন [জেন লুপার](https://twitter.com/jenlooper), [জাসলিন সোনধি](https://github.com/jasleen101010) এবং [বিদুষি গুপ্ত](https://github.com/Vidushi-Gupta)। + +🍯 মার্কিন যুক্তরাষ্ট্রের মধু উৎপাদনের ডেটা জেসিকা লি-এর প্রকল্প থেকে [Kaggle](https://www.kaggle.com/jessicali9530/honey-production) থেকে সংগৃহীত। [ডেটা](https://usda.library.cornell.edu/concern/publications/rn301137d) [মার্কিন যুক্তরাষ্ট্রের কৃষি বিভাগ](https://www.nass.usda.gov/About_NASS/index.php) থেকে প্রাপ্ত। + +🍄 মাশরুমের ডেটা [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) থেকে সংগৃহীত, যা হ্যাটারাস ডানটন দ্বারা সংশোধিত। এই ডেটাসেটে ২৩টি প্রজাতির গিল্ড মাশরুমের বর্ণনা রয়েছে, যা Agaricus এবং Lepiota পরিবার থেকে নেওয়া হয়েছে। মাশরুমের তথ্য The Audubon Society Field Guide to North American Mushrooms (1981) থেকে নেওয়া হয়েছে। এই ডেটাসেটটি ১৯৮৭ সালে UCI ML 27-এ দান করা হয়েছিল। + +🦆 মিনেসোটা পাখির ডেটা [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) থেকে সংগৃহীত, যা হান্না কলিন্স দ্বারা [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) থেকে স্ক্র্যাপ করা হয়েছে। + +এই সমস্ত ডেটাসেট [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) হিসাবে লাইসেন্সকৃত। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/14-Introduction/README.md b/translations/bn/4-Data-Science-Lifecycle/14-Introduction/README.md new file mode 100644 index 00000000..3ddbe4de --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/14-Introduction/README.md @@ -0,0 +1,123 @@ + +# ডেটা সায়েন্স লাইফসাইকেলের পরিচিতি + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/14-DataScience-Lifecycle.png)| +|:---:| +| ডেটা সায়েন্স লাইফসাইকেলের পরিচিতি - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +## [পূর্ব-লেকচার কুইজ](https://red-water-0103e7a0f.azurestaticapps.net/quiz/26) + +এ পর্যায়ে আপনি সম্ভবত বুঝতে পেরেছেন যে ডেটা সায়েন্স একটি প্রক্রিয়া। এই প্রক্রিয়াটি ৫টি ধাপে ভাগ করা যায়: + +- ডেটা সংগ্রহ +- প্রক্রিয়াকরণ +- বিশ্লেষণ +- যোগাযোগ +- রক্ষণাবেক্ষণ + +এই পাঠটি লাইফসাইকেলের ৩টি অংশের উপর আলোকপাত করে: ডেটা সংগ্রহ, প্রক্রিয়াকরণ এবং রক্ষণাবেক্ষণ। + +![ডেটা সায়েন্স লাইফসাইকেলের চিত্র](../../../../translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.bn.jpg) +> ছবি [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/) দ্বারা + +## ডেটা সংগ্রহ + +লাইফসাইকেলের প্রথম ধাপটি অত্যন্ত গুরুত্বপূর্ণ কারণ পরবর্তী ধাপগুলো এর উপর নির্ভরশীল। এটি মূলত দুটি ধাপকে একত্রিত করে: ডেটা সংগ্রহ এবং প্রকল্পের উদ্দেশ্য ও সমস্যাগুলো সংজ্ঞায়িত করা। +প্রকল্পের লক্ষ্য সংজ্ঞায়িত করতে সমস্যার বা প্রশ্নের গভীর প্রেক্ষাপটের প্রয়োজন হবে। প্রথমে, আমাদের তাদের চিহ্নিত করতে হবে এবং তাদের সাথে যোগাযোগ করতে হবে যাদের সমস্যার সমাধান প্রয়োজন। এরা হতে পারে ব্যবসার স্টেকহোল্ডার বা প্রকল্পের স্পনসর, যারা প্রকল্পটি থেকে উপকৃত হবে এবং কেন এটি প্রয়োজন তা চিহ্নিত করতে সাহায্য করতে পারে। একটি ভালোভাবে সংজ্ঞায়িত লক্ষ্য পরিমাপযোগ্য এবং পরিমাণগত হওয়া উচিত যাতে একটি গ্রহণযোগ্য ফলাফল নির্ধারণ করা যায়। + +একজন ডেটা সায়েন্টিস্ট যে প্রশ্নগুলো করতে পারেন: +- এই সমস্যাটি আগে সমাধানের চেষ্টা করা হয়েছে কি? কী আবিষ্কৃত হয়েছে? +- উদ্দেশ্য এবং লক্ষ্য কি সংশ্লিষ্ট সকলের দ্বারা বোঝা যাচ্ছে? +- কোন অস্পষ্টতা আছে এবং কীভাবে তা কমানো যায়? +- সীমাবদ্ধতাগুলো কী? +- সম্ভাব্য চূড়ান্ত ফলাফল কেমন হতে পারে? +- কতটুকু সম্পদ (সময়, জনবল, কম্পিউটেশনাল) উপলব্ধ? + +পরবর্তী ধাপটি হলো ডেটা চিহ্নিত করা, সংগ্রহ করা এবং তারপর প্রকল্পের সংজ্ঞায়িত লক্ষ্য অর্জনের জন্য ডেটা অন্বেষণ করা। এই সংগ্রহের ধাপে, ডেটা সায়েন্টিস্টদের ডেটার পরিমাণ এবং গুণমান মূল্যায়ন করতে হবে। এটি নিশ্চিত করতে কিছু ডেটা অন্বেষণ প্রয়োজন যে যা সংগ্রহ করা হয়েছে তা কাঙ্ক্ষিত ফলাফল অর্জনে সহায়ক হবে। + +ডেটা সম্পর্কে একজন ডেটা সায়েন্টিস্ট যে প্রশ্নগুলো করতে পারেন: +- আমার কাছে ইতিমধ্যে কী ডেটা উপলব্ধ? +- এই ডেটার মালিক কে? +- গোপনীয়তার উদ্বেগগুলো কী? +- এই সমস্যার সমাধানের জন্য আমার কাছে যথেষ্ট ডেটা আছে কি? +- এই সমস্যার জন্য ডেটার গুণমান গ্রহণযোগ্য কি? +- যদি আমি এই ডেটার মাধ্যমে অতিরিক্ত তথ্য আবিষ্কার করি, তাহলে কি আমাদের লক্ষ্য পরিবর্তন বা পুনঃসংজ্ঞায়িত করা উচিত? + +## প্রক্রিয়াকরণ + +লাইফসাইকেলের প্রক্রিয়াকরণ ধাপটি ডেটায় প্যাটার্ন আবিষ্কার এবং মডেলিংয়ের উপর আলোকপাত করে। প্রক্রিয়াকরণ ধাপে ব্যবহৃত কিছু কৌশল পরিসংখ্যান পদ্ধতির প্রয়োজন হয় প্যাটার্নগুলো উন্মোচন করতে। সাধারণত, এটি একটি বড় ডেটাসেটের ক্ষেত্রে মানুষের জন্য একটি ক্লান্তিকর কাজ হবে এবং প্রক্রিয়াটি দ্রুত করার জন্য কম্পিউটারের উপর নির্ভর করতে হবে। এই ধাপটি ডেটা সায়েন্স এবং মেশিন লার্নিংয়ের সংযোগস্থলও। প্রথম পাঠে আপনি শিখেছেন, মেশিন লার্নিং হলো ডেটা বোঝার জন্য মডেল তৈরি করার প্রক্রিয়া। মডেল হলো ডেটার ভেরিয়েবলগুলোর মধ্যে সম্পর্কের একটি উপস্থাপনা যা ফলাফল পূর্বাভাসে সাহায্য করে। + +এই ধাপে ব্যবহৃত সাধারণ কৌশলগুলো ML for Beginners কারিকুলামে অন্তর্ভুক্ত করা হয়েছে। আরও জানতে লিঙ্কগুলো অনুসরণ করুন: + +- [Classification](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification): ডেটাকে ক্যাটাগরিতে সংগঠিত করা যাতে এটি আরও দক্ষতার সাথে ব্যবহার করা যায়। +- [Clustering](https://github.com/microsoft/ML-For-Beginners/tree/main/5-Clustering): ডেটাকে একই ধরনের গ্রুপে ভাগ করা। +- [Regression](https://github.com/microsoft/ML-For-Beginners/tree/main/2-Regression): ভেরিয়েবলগুলোর মধ্যে সম্পর্ক নির্ধারণ করে মান পূর্বাভাস বা পূর্বাভাস দেওয়া। + +## রক্ষণাবেক্ষণ + +লাইফসাইকেলের চিত্রে আপনি লক্ষ্য করতে পারেন যে রক্ষণাবেক্ষণ ডেটা সংগ্রহ এবং প্রক্রিয়াকরণের মধ্যে অবস্থান করছে। রক্ষণাবেক্ষণ হলো একটি চলমান প্রক্রিয়া যা প্রকল্পের সময় ডেটা পরিচালনা, সংরক্ষণ এবং সুরক্ষিত করার উপর আলোকপাত করে এবং এটি প্রকল্পের পুরো সময়কাল জুড়ে বিবেচনা করা উচিত। + +### ডেটা সংরক্ষণ + +ডেটা কীভাবে এবং কোথায় সংরক্ষণ করা হবে তা এর সংরক্ষণের খরচ এবং ডেটা কত দ্রুত অ্যাক্সেস করা যাবে তার উপর প্রভাব ফেলতে পারে। এই ধরনের সিদ্ধান্ত সাধারণত শুধুমাত্র একজন ডেটা সায়েন্টিস্ট দ্বারা নেওয়া হয় না, তবে তারা ডেটা কীভাবে সংরক্ষণ করা হয়েছে তার উপর ভিত্তি করে কাজ করার পছন্দ করতে পারেন। + +আধুনিক ডেটা সংরক্ষণ ব্যবস্থার কিছু দিক যা এই পছন্দগুলোকে প্রভাবিত করতে পারে: + +**অন-প্রিমাইজ বনাম অফ-প্রিমাইজ বনাম পাবলিক বা প্রাইভেট ক্লাউড** + +অন-প্রিমাইজ বলতে বোঝায় নিজের সরঞ্জামে ডেটা হোস্টিং এবং পরিচালনা করা, যেমন একটি সার্ভার থাকা যেখানে হার্ড ড্রাইভে ডেটা সংরক্ষণ করা হয়। অন্যদিকে, অফ-প্রিমাইজ এমন সরঞ্জামের উপর নির্ভর করে যা আপনি মালিকানাধীন নন, যেমন একটি ডেটা সেন্টার। পাবলিক ক্লাউড হলো ডেটা সংরক্ষণের একটি জনপ্রিয় পছন্দ যা কীভাবে বা কোথায় ডেটা সংরক্ষণ করা হয়েছে তার কোনো জ্ঞান প্রয়োজন হয় না। পাবলিক বলতে বোঝায় একটি অভিন্ন অন্তর্নিহিত অবকাঠামো যা ক্লাউড ব্যবহারকারী সকলের দ্বারা ভাগ করা হয়। কিছু সংস্থার কঠোর নিরাপত্তা নীতি রয়েছে যা তাদের ডেটা হোস্ট করা সরঞ্জামে সম্পূর্ণ অ্যাক্সেস প্রয়োজন এবং তারা একটি প্রাইভেট ক্লাউড ব্যবহার করবে যা নিজস্ব ক্লাউড পরিষেবা প্রদান করে। আপনি [পরবর্তী পাঠে](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/5-Data-Science-In-Cloud) ক্লাউডে ডেটা সম্পর্কে আরও শিখবেন। + +**কোল্ড বনাম হট ডেটা** + +আপনার মডেল প্রশিক্ষণ করার সময়, আপনার আরও প্রশিক্ষণ ডেটার প্রয়োজন হতে পারে। যদি আপনি আপনার মডেল নিয়ে সন্তুষ্ট হন, আরও ডেটা আসবে যাতে মডেল তার উদ্দেশ্য পূরণ করতে পারে। যেকোনো ক্ষেত্রে, ডেটা সংরক্ষণ এবং অ্যাক্সেস করার খরচ বাড়বে যত বেশি ডেটা জমা হবে। কম ব্যবহৃত ডেটা, যা কোল্ড ডেটা নামে পরিচিত, এবং ঘন ঘন অ্যাক্সেস করা হট ডেটা আলাদা করা একটি সস্তা ডেটা সংরক্ষণ বিকল্প হতে পারে হার্ডওয়্যার বা সফটওয়্যার পরিষেবার মাধ্যমে। যদি কোল্ড ডেটা অ্যাক্সেস করতে হয়, তাহলে এটি হট ডেটার তুলনায় একটু বেশি সময় নিতে পারে। + +### ডেটা পরিচালনা + +ডেটা নিয়ে কাজ করার সময় আপনি আবিষ্কার করতে পারেন যে কিছু ডেটা পরিষ্কার করার প্রয়োজন রয়েছে, যা [ডেটা প্রস্তুতি](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/08-data-preparation) পাঠে আলোচনা করা কৌশলগুলো ব্যবহার করে সঠিক মডেল তৈরি করতে সাহায্য করে। নতুন ডেটা এলে, এটি একই ধরনের অ্যাপ্লিকেশন প্রয়োজন হবে যাতে গুণমানের ধারাবাহিকতা বজায় থাকে। কিছু প্রকল্পে একটি স্বয়ংক্রিয় টুল ব্যবহার করা হবে যা ডেটা পরিষ্কার, একত্রিত এবং সংকুচিত করে চূড়ান্ত অবস্থানে সরানোর আগে। Azure Data Factory এমন একটি টুলের উদাহরণ। + +### ডেটা সুরক্ষা + +ডেটা সুরক্ষার প্রধান লক্ষ্যগুলোর একটি হলো নিশ্চিত করা যে যারা এটি নিয়ে কাজ করছে তারা কী সংগ্রহ করা হচ্ছে এবং এটি কী প্রসঙ্গে ব্যবহার করা হচ্ছে তার উপর নিয়ন্ত্রণে রয়েছে। ডেটা সুরক্ষিত রাখা মানে শুধুমাত্র তাদের অ্যাক্সেস সীমিত করা যারা এটি প্রয়োজন, স্থানীয় আইন এবং নিয়ম মেনে চলা, এবং নৈতিক মান বজায় রাখা, যা [নৈতিকতা পাঠে](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/1-Introduction/02-ethics) আলোচনা করা হয়েছে। + +নিরাপত্তার কথা মাথায় রেখে একটি দল যা করতে পারে: +- নিশ্চিত করা যে সমস্ত ডেটা এনক্রিপ্ট করা হয়েছে +- গ্রাহকদের তাদের ডেটা কীভাবে ব্যবহার করা হচ্ছে সে সম্পর্কে তথ্য প্রদান করা +- প্রকল্প ছেড়ে যাওয়া ব্যক্তিদের ডেটা অ্যাক্সেস সরিয়ে ফেলা +- শুধুমাত্র নির্দিষ্ট প্রকল্প সদস্যদের ডেটা পরিবর্তন করার অনুমতি দেওয়া + +## 🚀 চ্যালেঞ্জ + +ডেটা সায়েন্স লাইফসাইকেলের অনেক সংস্করণ রয়েছে, যেখানে প্রতিটি ধাপের বিভিন্ন নাম এবং ধাপের সংখ্যা থাকতে পারে তবে এই পাঠে উল্লেখিত একই প্রক্রিয়াগুলো অন্তর্ভুক্ত থাকবে। + +[টিম ডেটা সায়েন্স প্রক্রিয়া লাইফসাইকেল](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/lifecycle) এবং [ক্রস-ইন্ডাস্ট্রি স্ট্যান্ডার্ড প্রক্রিয়া ফর ডেটা মাইনিং](https://www.datascience-pm.com/crisp-dm-2/) অন্বেষণ করুন। এই দুটি প্রক্রিয়ার মধ্যে ৩টি মিল এবং পার্থক্য উল্লেখ করুন। + +|টিম ডেটা সায়েন্স প্রক্রিয়া (TDSP)|ক্রস-ইন্ডাস্ট্রি স্ট্যান্ডার্ড প্রক্রিয়া ফর ডেটা মাইনিং (CRISP-DM)| +|--|--| +|![টিম ডেটা সায়েন্স লাইফসাইকেল](../../../../translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.bn.png) | ![ডেটা সায়েন্স প্রক্রিয়া অ্যালায়েন্স ইমেজ](../../../../translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.bn.png) | +| ছবি [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) দ্বারা | ছবি [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) দ্বারা | + +## [পোস্ট-লেকচার কুইজ](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +ডেটা সায়েন্স লাইফসাইকেল প্রয়োগে একাধিক ভূমিকা এবং কাজ জড়িত থাকে, যেখানে কিছু নির্দিষ্ট ধাপের উপর আলোকপাত করে। টিম ডেটা সায়েন্স প্রক্রিয়া কিছু সংস্থান প্রদান করে যা ব্যাখ্যা করে যে কেউ প্রকল্পে কী ধরনের ভূমিকা এবং কাজ করতে পারে। + +* [টিম ডেটা সায়েন্স প্রক্রিয়ার ভূমিকা এবং কাজ](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/roles-tasks) +* [ডেটা সায়েন্স কাজ সম্পাদন: অন্বেষণ, মডেলিং এবং ডিপ্লয়মেন্ট](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/execute-data-science-tasks) + +## অ্যাসাইনমেন্ট + +[একটি ডেটাসেট মূল্যায়ন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/translations/bn/4-Data-Science-Lifecycle/14-Introduction/assignment.md new file mode 100644 index 00000000..31dd40a8 --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -0,0 +1,37 @@ + +# ডেটাসেট মূল্যায়ন + +একজন ক্লায়েন্ট আপনার টিমের কাছে নিউ ইয়র্ক সিটির ট্যাক্সি গ্রাহকদের ঋতুভিত্তিক ব্যয় অভ্যাস তদন্ত করার জন্য সাহায্য চেয়েছেন। + +তারা জানতে চান: **নিউ ইয়র্ক সিটির হলুদ ট্যাক্সি যাত্রীরা শীতকালে নাকি গ্রীষ্মকালে চালকদের বেশি টিপ দেন?** + +আপনার টিম ডেটা সায়েন্স লাইফসাইকেলের [Capturing](Readme.md#Capturing) পর্যায়ে রয়েছে এবং আপনি ডেটাসেট পরিচালনার দায়িত্বে রয়েছেন। আপনাকে একটি নোটবুক এবং [ডেটা](../../../../data/taxi.csv) প্রদান করা হয়েছে যা আপনি অন্বেষণ করতে পারেন। + +এই ডিরেক্টরিতে একটি [নোটবুক](notebook.ipynb) রয়েছে যা পাইথন ব্যবহার করে [NYC Taxi & Limousine Commission](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets) থেকে হলুদ ট্যাক্সি ট্রিপ ডেটা লোড করে। +আপনি ট্যাক্সি ডেটা ফাইলটি টেক্সট এডিটর বা Excel-এর মতো স্প্রেডশিট সফটওয়্যারে খুলতে পারেন। + +## নির্দেশনা + +- মূল্যায়ন করুন যে এই ডেটাসেটের ডেটা ক্লায়েন্টের প্রশ্নের উত্তর দিতে সাহায্য করতে পারে কিনা। +- [NYC Open Data catalog](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93) অন্বেষণ করুন। একটি অতিরিক্ত ডেটাসেট চিহ্নিত করুন যা ক্লায়েন্টের প্রশ্নের উত্তর দিতে সহায়ক হতে পারে। +- ক্লায়েন্টের সমস্যা আরও ভালোভাবে বুঝতে এবং স্পষ্টতা পাওয়ার জন্য ৩টি প্রশ্ন লিখুন। + +ডেটার আরও তথ্যের জন্য [ডেটাসেটের ডিকশনারি](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) এবং [ইউজার গাইড](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) দেখুন। + +## রুব্রিক + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/15-analyzing/README.md b/translations/bn/4-Data-Science-Lifecycle/15-analyzing/README.md new file mode 100644 index 00000000..e26610c8 --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/15-analyzing/README.md @@ -0,0 +1,62 @@ + +# ডেটা সায়েন্স লাইফসাইকেল: বিশ্লেষণ + +|![ স্কেচনোট [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা ](../../sketchnotes/15-Analyzing.png)| +|:---:| +| ডেটা সায়েন্স লাইফসাইকেল: বিশ্লেষণ - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +## প্রাক-লেকচার কুইজ + +## [প্রাক-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/28) + +ডেটা লাইফসাইকেলের বিশ্লেষণ ধাপ নিশ্চিত করে যে ডেটা প্রস্তাবিত প্রশ্নগুলোর উত্তর দিতে পারে বা একটি নির্দিষ্ট সমস্যার সমাধান করতে পারে। এই ধাপটি মডেলটি সঠিকভাবে এই প্রশ্ন এবং সমস্যাগুলো সমাধান করছে কিনা তা নিশ্চিত করতেও মনোযোগ দেয়। এই পাঠটি এক্সপ্লোরেটরি ডেটা অ্যানালাইসিস (EDA)-এর উপর কেন্দ্রীভূত, যা ডেটার বৈশিষ্ট্য এবং সম্পর্ক নির্ধারণের কৌশল এবং মডেলিংয়ের জন্য ডেটা প্রস্তুত করতে ব্যবহৃত হয়। + +আমরা [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1) থেকে একটি উদাহরণ ডেটাসেট ব্যবহার করব, যা দেখাবে কীভাবে এটি পাইথন এবং প্যান্ডাস লাইব্রেরি দিয়ে প্রয়োগ করা যায়। এই ডেটাসেটে ইমেইলে পাওয়া কিছু সাধারণ শব্দের সংখ্যা রয়েছে, এবং এই ইমেইলগুলোর উৎস অজ্ঞাত। এই ডিরেক্টরির [নোটবুক](notebook.ipynb) ব্যবহার করে অনুসরণ করুন। + +## এক্সপ্লোরেটরি ডেটা অ্যানালাইসিস + +লাইফসাইকেলের ক্যাপচার ধাপে ডেটা সংগ্রহ করা হয় এবং সমস্যাগুলো ও প্রশ্নগুলো চিহ্নিত করা হয়, কিন্তু আমরা কীভাবে জানব যে ডেটা চূড়ান্ত ফলাফলকে সমর্থন করতে পারবে? +মনে করুন, একজন ডেটা সায়েন্টিস্ট ডেটা সংগ্রহ করার সময় নিম্নলিখিত প্রশ্নগুলো করতে পারেন: +- এই সমস্যার সমাধানের জন্য আমার কাছে কি যথেষ্ট ডেটা আছে? +- এই সমস্যার জন্য ডেটার গুণমান কি গ্রহণযোগ্য? +- যদি এই ডেটার মাধ্যমে অতিরিক্ত তথ্য আবিষ্কার করি, তাহলে কি আমাদের লক্ষ্যগুলো পরিবর্তন বা পুনঃসংজ্ঞায়িত করা উচিত? + +এক্সপ্লোরেটরি ডেটা অ্যানালাইসিস হলো ডেটাকে জানার প্রক্রিয়া এবং এটি এই প্রশ্নগুলোর উত্তর দিতে সাহায্য করতে পারে, পাশাপাশি ডেটাসেট নিয়ে কাজ করার চ্যালেঞ্জগুলো চিহ্নিত করতে পারে। চলুন, এই লক্ষ্য অর্জনের জন্য ব্যবহৃত কিছু কৌশল নিয়ে আলোচনা করি। + +## ডেটা প্রোফাইলিং, বর্ণনামূলক পরিসংখ্যান, এবং প্যান্ডাস +আমাদের কাছে এই সমস্যার সমাধানের জন্য যথেষ্ট ডেটা আছে কিনা তা কীভাবে মূল্যায়ন করব? ডেটা প্রোফাইলিং ডেটাসেট সম্পর্কে সামগ্রিক তথ্য সংক্ষেপে এবং সংগ্রহ করতে পারে, যা বর্ণনামূলক পরিসংখ্যানের কৌশল ব্যবহার করে। ডেটা প্রোফাইলিং আমাদের উপলব্ধ ডেটা সম্পর্কে ধারণা দেয়, এবং বর্ণনামূলক পরিসংখ্যান আমাদের জানায় কতগুলো জিনিস উপলব্ধ। + +পূর্ববর্তী কয়েকটি পাঠে, আমরা প্যান্ডাস ব্যবহার করে [`describe()` ফাংশন](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html) দিয়ে কিছু বর্ণনামূলক পরিসংখ্যান পেয়েছি। এটি সংখ্যাসূচক ডেটার উপর গণনা, সর্বোচ্চ এবং সর্বনিম্ন মান, গড়, স্ট্যান্ডার্ড ডেভিয়েশন এবং কোয়ান্টাইল প্রদান করে। `describe()` ফাংশনের মতো বর্ণনামূলক পরিসংখ্যান ব্যবহার করে আপনি মূল্যায়ন করতে পারেন আপনার কাছে কতটা ডেটা আছে এবং আরও প্রয়োজন কিনা। + +## স্যাম্পলিং এবং কোয়েরি করা +একটি বড় ডেটাসেটের সবকিছু বিশ্লেষণ করা সময়সাপেক্ষ এবং সাধারণত এটি কম্পিউটারের উপর নির্ভর করে। তবে, স্যাম্পলিং ডেটা বোঝার একটি সহায়ক উপায় এবং এটি ডেটাসেটের বিষয়বস্তু এবং প্রতিনিধিত্ব সম্পর্কে আরও ভালো ধারণা দেয়। একটি স্যাম্পল ব্যবহার করে, আপনি সম্ভাবনা এবং পরিসংখ্যান প্রয়োগ করে ডেটা সম্পর্কে কিছু সাধারণ সিদ্ধান্তে পৌঁছাতে পারেন। যদিও কতটা ডেটা স্যাম্পল করা উচিত তার কোনো নির্ধারিত নিয়ম নেই, তবে মনে রাখা গুরুত্বপূর্ণ যে যত বেশি ডেটা স্যাম্পল করবেন, তত বেশি সুনির্দিষ্ট সাধারণীকরণ করতে পারবেন। + +প্যান্ডাস লাইব্রেরিতে [`sample()` ফাংশন](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html) রয়েছে, যেখানে আপনি কতগুলো র‍্যান্ডম স্যাম্পল পেতে চান তা নির্দিষ্ট করতে পারেন এবং ব্যবহার করতে পারেন। + +ডেটার সাধারণ কোয়েরি করা আপনাকে কিছু সাধারণ প্রশ্ন এবং তত্ত্বের উত্তর দিতে সাহায্য করতে পারে। স্যাম্পলিংয়ের বিপরীতে, কোয়েরি আপনাকে নিয়ন্ত্রণ এবং ডেটার নির্দিষ্ট অংশে ফোকাস করার সুযোগ দেয়, যেগুলো সম্পর্কে আপনার প্রশ্ন রয়েছে। +প্যান্ডাস লাইব্রেরির [`query()` ফাংশন](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html) আপনাকে কলাম নির্বাচন করতে এবং সারি থেকে ডেটা সম্পর্কে সহজ উত্তর পেতে সাহায্য করে। + +## ভিজ্যুয়ালাইজেশনের মাধ্যমে অনুসন্ধান +ডেটা সম্পূর্ণরূপে পরিষ্কার এবং বিশ্লেষণ শেষ হওয়ার জন্য অপেক্ষা করার প্রয়োজন নেই ভিজ্যুয়ালাইজেশন তৈরি করতে। বরং, অনুসন্ধানের সময় ভিজ্যুয়াল উপস্থাপনা থাকা প্যাটার্ন, সম্পর্ক এবং ডেটার সমস্যাগুলো চিহ্নিত করতে সাহায্য করতে পারে। তদ্ব্যতীত, ভিজ্যুয়ালাইজেশন এমন ব্যক্তিদের সাথে যোগাযোগের একটি মাধ্যম প্রদান করে যারা ডেটা পরিচালনার সাথে জড়িত নয় এবং এটি ক্যাপচার ধাপে সমাধান না হওয়া অতিরিক্ত প্রশ্নগুলো শেয়ার এবং পরিষ্কার করার একটি সুযোগ হতে পারে। ভিজ্যুয়াল অনুসন্ধানের জনপ্রিয় উপায়গুলো সম্পর্কে জানতে [ভিজ্যুয়ালাইজেশন অধ্যায়](../../../../../../../../../3-Data-Visualization) দেখুন। + +## অসঙ্গতি চিহ্নিত করার জন্য অনুসন্ধান +এই পাঠের সমস্ত বিষয়বস্তু অনুপস্থিত বা অসঙ্গত মানগুলো চিহ্নিত করতে সাহায্য করতে পারে, তবে প্যান্ডাস কিছু ফাংশন সরবরাহ করে যা এগুলো পরীক্ষা করতে পারে। [isna() বা isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html) অনুপস্থিত মানগুলো পরীক্ষা করতে পারে। ডেটার মধ্যে এই মানগুলো কেন এমন হয়েছে তা অনুসন্ধান করা গুরুত্বপূর্ণ। এটি আপনাকে [সমাধানের জন্য পদক্ষেপ নেওয়ার]( /2-Working-With-Data/08-data-preparation/notebook.ipynb) সিদ্ধান্ত নিতে সাহায্য করতে পারে। + +## [প্রাক-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/27) + +## অ্যাসাইনমেন্ট + +[উত্তরের জন্য অনুসন্ধান](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/15-analyzing/assignment.md b/translations/bn/4-Data-Science-Lifecycle/15-analyzing/assignment.md new file mode 100644 index 00000000..f24ef043 --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/15-analyzing/assignment.md @@ -0,0 +1,36 @@ + +# উত্তর অনুসন্ধান করা + +এটি আগের পাঠের [অ্যাসাইনমেন্টের](../14-Introduction/assignment.md) একটি ধারাবাহিকতা, যেখানে আমরা ডেটাসেটটি সংক্ষেপে দেখেছিলাম। এখন আমরা ডেটাসেটটি আরও গভীরভাবে বিশ্লেষণ করব। + +আবার, ক্লায়েন্ট যে প্রশ্নের উত্তর জানতে চান: **নিউ ইয়র্ক সিটির হলুদ ট্যাক্সি যাত্রীরা কি শীতকালে নাকি গ্রীষ্মকালে চালকদের বেশি টিপ দেন?** + +আপনার দল ডেটা সায়েন্স লাইফসাইকেলের [বিশ্লেষণ](README.md) পর্যায়ে রয়েছে, যেখানে আপনি ডেটাসেটের উপর অনুসন্ধানমূলক ডেটা বিশ্লেষণ (EDA) করার দায়িত্বে রয়েছেন। আপনাকে একটি নোটবুক এবং ডেটাসেট সরবরাহ করা হয়েছে, যেখানে ২০১৯ সালের জানুয়ারি এবং জুলাই মাসের ২০০টি ট্যাক্সি লেনদেনের তথ্য রয়েছে। + +## নির্দেশাবলী + +এই ডিরেক্টরিতে একটি [নোটবুক](assignment.ipynb) এবং [ট্যাক্সি ও লিমুজিন কমিশনের](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets) ডেটা রয়েছে। ডেটা সম্পর্কে আরও তথ্যের জন্য [ডেটাসেটের ডিকশনারি](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) এবং [ইউজার গাইড](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) দেখুন। + +এই পাঠে শেখা কিছু কৌশল ব্যবহার করে নোটবুকে আপনার নিজস্ব EDA করুন (প্রয়োজনে সেল যোগ করুন) এবং নিম্নলিখিত প্রশ্নগুলোর উত্তর দিন: + +- ডেটায় আর কী কী প্রভাব টিপের পরিমাণকে প্রভাবিত করতে পারে? +- ক্লায়েন্টের প্রশ্নের উত্তর দিতে কোন কোন কলাম সম্ভবত প্রয়োজন হবে না? +- এখন পর্যন্ত সরবরাহিত তথ্যের ভিত্তিতে, ডেটা কি মৌসুমী টিপিং আচরণের কোনো প্রমাণ প্রদান করে? + +## মূল্যায়ন মানদণ্ড + +উদাহরণযোগ্য | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/16-communication/README.md b/translations/bn/4-Data-Science-Lifecycle/16-communication/README.md new file mode 100644 index 00000000..b89b5521 --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/16-communication/README.md @@ -0,0 +1,220 @@ + +# ডেটা সায়েন্স লাইফসাইকেল: যোগাযোগ + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/16-Communicating.png)| +|:---:| +| ডেটা সায়েন্স লাইফসাইকেল: যোগাযোগ - _স্কেচনোট [@nitya](https://twitter.com/nitya) দ্বারা_ | + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/30) + +উপরে দেওয়া পূর্ব-লেকচার কুইজ দিয়ে আসন্ন বিষয়বস্তুর উপর আপনার জ্ঞান পরীক্ষা করুন! + +# ভূমিকা + +### যোগাযোগ কী? +এই পাঠটি শুরু করা যাক যোগাযোগের সংজ্ঞা দিয়ে। **যোগাযোগ মানে হলো তথ্য আদান-প্রদান করা।** তথ্য বলতে বোঝায় ধারণা, চিন্তা, অনুভূতি, বার্তা, গোপন সংকেত, ডেটা – যেকোনো কিছু যা একজন **_প্রেরক_** (তথ্য প্রেরণকারী) একজন **_গ্রাহক_** (তথ্য গ্রহণকারী)-কে বোঝাতে চায়। এই পাঠে, আমরা প্রেরকদের "যোগাযোগকারী" এবং গ্রাহকদের "শ্রোতা" বলে উল্লেখ করব। + +### ডেটা যোগাযোগ ও গল্প বলার কৌশল +আমরা জানি যে যোগাযোগের লক্ষ্য হলো তথ্য আদান-প্রদান করা। কিন্তু ডেটা যোগাযোগের ক্ষেত্রে, আপনার লক্ষ্য শুধুমাত্র সংখ্যাগুলি শ্রোতাদের কাছে পৌঁছে দেওয়া নয়। আপনার লক্ষ্য হওয়া উচিত ডেটা দ্বারা প্রভাবিত একটি গল্প বলা – কার্যকর ডেটা যোগাযোগ এবং গল্প বলার কৌশল একে অপরের পরিপূরক। আপনার শ্রোতারা একটি গল্প বেশি মনে রাখবে, একটি সংখ্যা নয়। এই পাঠে আমরা আলোচনা করব কীভাবে গল্প বলার মাধ্যমে আপনার ডেটা আরও কার্যকরভাবে উপস্থাপন করা যায়। + +### যোগাযোগের ধরন +এই পাঠে দুই ধরনের যোগাযোগ নিয়ে আলোচনা করা হবে: একমুখী যোগাযোগ এবং দ্বিমুখী যোগাযোগ। + +**একমুখী যোগাযোগ** ঘটে যখন একজন প্রেরক তথ্য পাঠায়, কিন্তু কোনো প্রতিক্রিয়া বা উত্তর পাওয়া যায় না। আমরা প্রতিদিন একমুখী যোগাযোগের উদাহরণ দেখি – যেমন গণইমেইল, খবরের চ্যানেল থেকে সর্বশেষ খবর পাওয়া, বা টেলিভিশনের বিজ্ঞাপন যেখানে পণ্যের গুণাগুণ তুলে ধরা হয়। এই ক্ষেত্রে প্রেরকের লক্ষ্য তথ্য আদান-প্রদান নয়, কেবল তথ্য পৌঁছে দেওয়া। + +**দ্বিমুখী যোগাযোগ** ঘটে যখন সংশ্লিষ্ট সব পক্ষই প্রেরক এবং গ্রাহক হিসেবে কাজ করে। একজন প্রেরক তথ্য পাঠায় এবং গ্রাহক প্রতিক্রিয়া বা উত্তর প্রদান করে। আমরা সাধারণত যোগাযোগ বলতে যা বুঝি, তা হলো দ্বিমুখী যোগাযোগ – যেমন ব্যক্তিগত কথোপকথন, ফোন কল, সামাজিক যোগাযোগমাধ্যম, বা টেক্সট মেসেজ। + +ডেটা যোগাযোগের ক্ষেত্রে, এমন পরিস্থিতি থাকবে যেখানে আপনি একমুখী যোগাযোগ ব্যবহার করবেন (যেমন একটি সম্মেলনে উপস্থাপনা করা, যেখানে সরাসরি প্রশ্ন করা হবে না) এবং এমন পরিস্থিতি থাকবে যেখানে আপনি দ্বিমুখী যোগাযোগ ব্যবহার করবেন (যেমন কয়েকজন স্টেকহোল্ডারকে বোঝানো বা একটি নতুন প্রকল্পে সময় ও শ্রম বিনিয়োগের জন্য সহকর্মীদের রাজি করানো)। + +# কার্যকর যোগাযোগ + +### একজন যোগাযোগকারী হিসেবে আপনার দায়িত্ব +যোগাযোগ করার সময়, এটি আপনার দায়িত্ব যে আপনার শ্রোতারা সেই তথ্যটি গ্রহণ করছে যা আপনি তাদের বোঝাতে চান। ডেটা যোগাযোগের ক্ষেত্রে, আপনি কেবল সংখ্যাগুলি বোঝাতে চান না, বরং একটি গল্প বলতে চান যা আপনার ডেটা দ্বারা প্রভাবিত। একজন ভালো ডেটা যোগাযোগকারী একজন ভালো গল্পকারও। + +ডেটা দিয়ে কীভাবে গল্প বলা যায়? এর অসংখ্য উপায় রয়েছে – তবে এই পাঠে আমরা ৬টি উপায় নিয়ে আলোচনা করব: +1. আপনার শ্রোতা, মাধ্যম এবং যোগাযোগ পদ্ধতি বুঝুন +2. শেষ লক্ষ্যটি মাথায় রেখে শুরু করুন +3. এটি একটি প্রকৃত গল্পের মতো উপস্থাপন করুন +4. অর্থবহ শব্দ ও বাক্যাংশ ব্যবহার করুন +5. আবেগ ব্যবহার করুন + +প্রতিটি কৌশল নিচে বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে। + +### ১. আপনার শ্রোতা, চ্যানেল এবং যোগাযোগ পদ্ধতি বুঝুন +আপনি পরিবারের সদস্যদের সঙ্গে যেভাবে কথা বলেন, তা হয়তো বন্ধুদের সঙ্গে কথা বলার চেয়ে আলাদা। আপনি সম্ভবত এমন শব্দ ও বাক্যাংশ ব্যবহার করেন যা শ্রোতারা সহজে বুঝতে পারে। ডেটা যোগাযোগের ক্ষেত্রেও একই পদ্ধতি প্রয়োগ করা উচিত। ভাবুন আপনি কার সঙ্গে কথা বলছেন। তাদের লক্ষ্য এবং পরিস্থিতি সম্পর্কে চিন্তা করুন। + +আপনার শ্রোতাদের সাধারণত একটি নির্দিষ্ট শ্রেণিতে ফেলা যায়। _হার্ভার্ড বিজনেস রিভিউ_-এর একটি প্রবন্ধে, “[ডেটা দিয়ে কীভাবে গল্প বলা যায়](http://blogs.hbr.org/2013/04/how-to-tell-a-story-with-data/)” শীর্ষক নিবন্ধে, ডেল এক্সিকিউটিভ স্ট্র্যাটেজিস্ট জিম স্টিকেলেথার শ্রোতাদের পাঁচটি শ্রেণিতে ভাগ করেছেন: + +- **নবীন**: বিষয়টির প্রথম পরিচয়, তবে অত্যন্ত সরলীকরণ চায় না +- **সাধারণ শ্রোতা**: বিষয় সম্পর্কে সচেতন, তবে একটি সার্বিক ধারণা এবং প্রধান বিষয়বস্তু চায় +- **পরিচালনাগত**: বিশদ, কার্যকরী বোঝাপড়া এবং সম্পর্কের জটিলতা বোঝার জন্য বিস্তারিত তথ্য চায় +- **বিশেষজ্ঞ**: আরও গভীর অনুসন্ধান এবং আবিষ্কার চায়, গল্প বলার চেয়ে বিশদ তথ্য পছন্দ করে +- **নির্বাহী**: কেবলমাত্র গুরুত্বপূর্ণ বিষয় এবং সম্ভাব্য সিদ্ধান্ত জানতে চায় + +এই শ্রেণিগুলি আপনার ডেটা উপস্থাপনার পদ্ধতি নির্ধারণে সহায়ক হতে পারে। + +শ্রোতাদের শ্রেণি বোঝার পাশাপাশি, আপনি কোন চ্যানেলের মাধ্যমে তাদের সঙ্গে যোগাযোগ করছেন সেটিও বিবেচনা করা উচিত। মেমো বা ইমেইল লেখার সময় এবং একটি মিটিং বা সম্মেলনে উপস্থাপনার সময় আপনার পদ্ধতি ভিন্ন হওয়া উচিত। + +এছাড়াও, আপনি একমুখী যোগাযোগ ব্যবহার করছেন নাকি দ্বিমুখী, সেটি বোঝা গুরুত্বপূর্ণ। + +যদি আপনার শ্রোতাদের বেশিরভাগই নবীন এবং আপনি একমুখী যোগাযোগ ব্যবহার করছেন, তবে প্রথমে তাদের শিক্ষিত করতে হবে এবং প্রাসঙ্গিক তথ্য দিতে হবে। এরপর তাদের কাছে আপনার ডেটা উপস্থাপন করুন এবং এর অর্থ ও গুরুত্ব ব্যাখ্যা করুন। এই ক্ষেত্রে, স্পষ্টতা নিশ্চিত করা অত্যন্ত গুরুত্বপূর্ণ, কারণ আপনার শ্রোতারা সরাসরি প্রশ্ন করতে পারবে না। + +যদি আপনার শ্রোতাদের বেশিরভাগই পরিচালনাগত এবং আপনি দ্বিমুখী যোগাযোগ ব্যবহার করছেন, তবে হয়তো তাদের শিক্ষিত করার প্রয়োজন হবে না বা খুব বেশি প্রাসঙ্গিক তথ্য দিতে হবে না। আপনি সরাসরি ডেটা এবং এর গুরুত্ব নিয়ে আলোচনা শুরু করতে পারেন। তবে এই ক্ষেত্রে, সময় এবং উপস্থাপনা নিয়ন্ত্রণে রাখা গুরুত্বপূর্ণ। দ্বিমুখী যোগাযোগের সময় (বিশেষত পরিচালনাগত শ্রোতাদের সঙ্গে, যারা "জটিলতা এবং সম্পর্কের বিশদ বোঝার জন্য কার্যকরী তথ্য" চায়) প্রশ্ন উঠতে পারে যা আপনার গল্পের মূল বিষয় থেকে আলোচনা সরিয়ে নিতে পারে। এমন পরিস্থিতিতে, আপনি পদক্ষেপ নিয়ে আলোচনা আবার আপনার গল্পের মূল বিষয়ে ফিরিয়ে আনতে পারেন। + +### ২. শেষ লক্ষ্যটি মাথায় রেখে শুরু করুন +শেষ লক্ষ্যটি মাথায় রেখে শুরু করার অর্থ হলো, যোগাযোগ শুরুর আগে আপনার শ্রোতাদের জন্য কী কী মূল বিষয় তুলে ধরতে চান তা পরিষ্কারভাবে বোঝা। আগে থেকেই আপনার শ্রোতাদের জন্য কী কী বিষয় তুলে ধরতে চান তা ভেবে নেওয়া আপনাকে এমন একটি গল্প তৈরি করতে সাহায্য করবে যা তারা সহজে অনুসরণ করতে পারবে। + +আপনার ডেটা উপস্থাপনের আগে, আপনার মূল বিষয়গুলি লিখে নিন। এরপর, গল্প তৈরির প্রতিটি ধাপে নিজেকে জিজ্ঞাসা করুন, "এটি কি আমার গল্পের সঙ্গে সামঞ্জস্যপূর্ণ?" + +সতর্ক থাকুন – শেষ লক্ষ্যটি মাথায় রেখে শুরু করলেও, কেবল সেই ডেটা উপস্থাপন করবেন না যা আপনার বক্তব্যকে সমর্থন করে। এটি "চেরি-পিকিং" নামে পরিচিত, যেখানে একজন যোগাযোগকারী কেবল সেই ডেটা উপস্থাপন করেন যা তার বক্তব্যকে সমর্থন করে এবং অন্য সব ডেটা উপেক্ষা করেন। + +যদি আপনার সংগ্রহ করা সমস্ত ডেটা আপনার বক্তব্যকে সমর্থন করে, তবে ভালো। কিন্তু যদি এমন ডেটা থাকে যা আপনার বক্তব্যকে সমর্থন করে না, বা এমনকি তার বিপরীত যুক্তি দেয়, তবে সেটিও উপস্থাপন করা উচিত। এমন পরিস্থিতিতে, আপনার শ্রোতাদের কাছে সৎ থাকুন এবং ব্যাখ্যা করুন কেন আপনি আপনার গল্পে অটল রয়েছেন, যদিও সমস্ত ডেটা তা সমর্থন করে না। + +### ৩. এটি একটি প্রকৃত গল্পের মতো উপস্থাপন করুন +একটি ঐতিহ্যবাহী গল্প পাঁচটি ধাপে ঘটে। এগুলি হয়তো আপনি "প্রেক্ষাপট, উত্তেজনা, চূড়ান্ত মুহূর্ত, সমাপ্তি, এবং উপসংহার" নামে শুনেছেন। ডেটা এবং আপনার গল্প উপস্থাপনের সময়, আপনি একই পদ্ধতি অনুসরণ করতে পারেন। + +আপনি প্রেক্ষাপট দিয়ে শুরু করতে পারেন, মঞ্চ প্রস্তুত করুন এবং নিশ্চিত করুন যে আপনার শ্রোতারা একই পৃষ্ঠায় রয়েছে। এরপর উত্তেজনা উপস্থাপন করুন। কেন আপনাকে এই ডেটা সংগ্রহ করতে হয়েছিল? আপনি কী সমস্যার সমাধান খুঁজছিলেন? এরপর চূড়ান্ত মুহূর্ত। ডেটা কী? ডেটা কী বোঝায়? ডেটা আমাদের কী সমাধান বলে? এরপর সমাপ্তি, যেখানে আপনি সমস্যাটি পুনরায় উল্লেখ করতে পারেন এবং প্রস্তাবিত সমাধানগুলি তুলে ধরতে পারেন। সর্বশেষে উপসংহার, যেখানে আপনি আপনার মূল বিষয়গুলি এবং পরবর্তী পদক্ষেপগুলি সংক্ষেপে তুলে ধরতে পারেন। + +### ৪. অর্থবহ শব্দ ও বাক্যাংশ ব্যবহার করুন +যদি আমি বলি, "আমাদের ব্যবহারকারীরা আমাদের প্ল্যাটফর্মে সাইন আপ করতে অনেক সময় নেয়," আপনি কতটা সময় অনুমান করবেন? এক ঘণ্টা? এক সপ্তাহ? এটি বোঝা কঠিন। কিন্তু যদি আমি বলি, "আমাদের ব্যবহারকারীরা গড়ে ৩ মিনিট সময় নেয় সাইন আপ এবং অনবোর্ড করতে," এটি অনেক বেশি স্পষ্ট। + +ডেটা যোগাযোগের সময়, এটি সহজেই ধরে নেওয়া যায় যে আপনার শ্রোতারা আপনার মতোই চিন্তা করছে। কিন্তু এটি সবসময় সত্য নয়। আপনার ডেটা এবং এর অর্থ পরিষ্কারভাবে বোঝানো আপনার দায়িত্ব। যদি আপনার গল্প বা ডেটা পরিষ্কার না হয়, তবে আপনার শ্রোতারা এটি অনুসরণ করতে অসুবিধা অনুভব করবে এবং আপনার মূল বিষয়গুলি বোঝার সম্ভাবনা কমে যাবে। + +আপনার ডেটা আরও পরিষ্কারভাবে উপস্থাপন করতে অর্থবহ শব্দ ও বাক্যাংশ ব্যবহার করুন। নিচে কয়েকটি উদাহরণ দেওয়া হলো: + +- আমরা একটি *অসাধারণ* বছর কাটিয়েছি! + - একজন ব্যক্তি ভাবতে পারেন অসাধারণ মানে ২%-৩% রাজস্ব বৃদ্ধি, আরেকজন ভাবতে পারেন ৫০%-৬০% বৃদ্ধি। +- আমাদের ব্যবহারকারীদের সাফল্যের হার *নাটকীয়ভাবে* বেড়েছে। + - নাটকীয় বৃদ্ধি বলতে কতটা বৃদ্ধি বোঝানো হচ্ছে? +- এই প্রকল্পে *গুরুত্বপূর্ণ* প্রচেষ্টা প্রয়োজন। + - কতটা প্রচেষ্টা গুরুত্বপূর্ণ? + +অস্পষ্ট শব্দগুলি কখনও কখনও উপস্থাপনার ভূমিকা বা সারাংশে ব্যবহার করা যেতে পারে। তবে নিশ্চিত করুন যে আপনার উপস্থাপনার প্রতিটি অংশ আপনার শ্রোতাদের জন্য পরিষ্কার। + +### ৫. আবেগ ব্যবহার করুন +গল্প বলার ক্ষেত্রে আবেগ গুরুত্বপূর্ণ। ডেটা দিয়ে গল্প বলার সময় এটি আরও বেশি গুরুত্বপূর্ণ। ডেটা যোগাযোগের সময়, সবকিছুই আপনার শ্রোতাদের জন্য মূল বিষয়গুলি বোঝানোর উপর কেন্দ্রীভূত। যখন আপনি শ্রোতাদের মধ্যে একটি আবেগ জাগিয়ে তুলতে পারেন, এটি তাদের সহানুভূতিশীল করে তোলে এবং তাদের পদক্ষেপ নিতে আরও অনুপ্রাণিত করে। আবেগ শ্রোতাদের আপনার বার্তা মনে রাখার সম্ভাবনাও বাড়ায়। + +আপনি হয়তো এটি টিভি বিজ্ঞাপনে দেখেছেন। কিছু বিজ্ঞাপন খুবই বিষণ্ণ এবং তাদের শ্রোতাদের সঙ্গে সংযোগ স্থাপন করতে এবং তাদের উপস্থাপিত ডেটাকে আরও গুরুত্বপূর্ণ করে তুলতে দুঃখের আবেগ ব্যবহার করে। আবার কিছু বিজ্ঞাপন খুবই প্রাণবন্ত এবং আনন্দদায়ক, যা তাদের ডেটাকে একটি সুখী অনুভূতির সঙ্গে যুক্ত করে। + +ডেটা যোগাযোগের সময় কীভাবে আবেগ ব্যবহার করবেন? নিচে কয়েকটি উপায় দেওয়া হলো: + +- **প্রত্যক্ষ অভিজ্ঞতা ও ব্যক্তিগত গল্প ব্যবহার করুন** + - ডেটা সংগ্রহের সময়, পরিমাণগত এবং গুণগত উভয় ধরনের ডেটা সংগ্রহ করার চেষ্টা করুন এবং যোগাযোগের সময় উভয় ধরনের ডেটা একত্রিত করুন। যদি আপনার ডেটা প্রধানত পরিমাণগত হয়, তবে ব্যক্তিদের কাছ থেকে গল্প সংগ্রহ করুন যাতে আপনি তাদের অভিজ্ঞতা সম্পর্কে আরও জানতে পারেন। +- **চিত্র ব্যবহার করুন** + - চিত্র শ্রোতাদের একটি পরিস্থিতিতে নিজেদের কল্পনা করতে সাহায্য করে। চিত্র ব্যবহার করলে আপনি শ্রোতাদের সেই আবেগের দিকে ঠেলে দিতে পারেন যা আপনি মনে করেন তাদের আপনার ডেটা সম্পর্কে থাকা উচিত। +- **রঙ ব্যবহার করুন** + - বিভিন্ন রঙ বিভিন্ন আবেগ জাগিয়ে তোলে। জনপ্রিয় রঙ এবং তাদের উদ্রেকিত আবেগ নিচে দেওয়া হলো। তবে মনে রাখবেন, বিভিন্ন সংস্কৃতিতে রঙের ভিন্ন অর্থ থাকতে পারে। + - নীল সাধারণত শান্তি এবং বিশ্বাসের আবেগ জাগায় + - সবুজ সাধারণত প্রকৃতি এবং পরিবেশের সঙ্গে সম্পর্কিত + - লাল সাধারণত আবেগ এবং উত্তেজনা বোঝায় + - হলুদ সাধারণত আশাবাদ এবং সুখ বোঝায় + +# যোগাযোগের কেস স্টাডি +এমারসন একজন মোবাইল অ্যাপের প্রোডাক্ট ম্যানেজার। এমারসন লক্ষ্য করেছেন যে গ্রাহকরা সপ্তাহান্তে ৪২% বেশি অভিযোগ এবং বাগ রিপোর্ট জমা দেন। এমারসন আরও লক্ষ্য করেছেন যে যেসব গ্রাহকের অভিযোগ ৪৮ ঘণ্টার মধ্যে উত্তর পায় না, তারা অ্যাপ স্টোরে ১ বা ২ রেটিং দেওয়ার সম্ভাবনা ৩২% বেশি। + +গবেষণা করার পর, এমারসনের কাছে সমস্যার সমাধানের জন্য কয়েকটি প্রস্তাব রয়েছে। এমারসন ৩ জন কোম্পানি লিডের সঙ্গে ৩০ মিনিটের একটি মিটিং সেটআপ করেন ডেটা এবং প্রস্তাবিত সমাধানগুলি উপস্থাপন করার জন্য। + +এই মিটিংয়ের সময়, এমারসনের লক্ষ্য হলো কোম্পানি লিডদের বোঝানো যে নিচের দুটি সমাধান অ্যাপের রেটিং উন্নত করতে পারে, যা সম্ভবত বেশি রাজস্বে রূপান্তরিত হবে। + +**সমাধান ১.** সপ্তাহান্তে কাজ করার জন্য কাস্টমার সার্ভিস প্রতিনিধিদের নিয়োগ দিন + +**সমাধান ২.** একটি নতুন কাস্টমার সার্ভিস টিকিটিং সিস্টেম কিনুন, যেখানে প্রতিনিধিরা সহজেই চিহ্নিত করতে পারবেন কোন অভিযোগগুলি দীর্ঘ সময় ধরে কিউতে রয়েছে – যাতে তারা সেগুলি দ্রুত সমাধান করতে পারেন। +এমারসন মিটিংয়ে ৫ মিনিট ব্যয় করেন অ্যাপ স্টোরে কম রেটিং থাকার ক্ষতিকর প্রভাব ব্যাখ্যা করতে, ১০ মিনিট গবেষণা প্রক্রিয়া এবং ট্রেন্ডগুলো কীভাবে চিহ্নিত করা হয়েছে তা ব্যাখ্যা করতে, ১০ মিনিট সাম্প্রতিক গ্রাহক অভিযোগগুলো নিয়ে আলোচনা করতে এবং শেষ ৫ মিনিট সম্ভাব্য দুটি সমাধান নিয়ে সংক্ষেপে আলোচনা করতে। + +এই মিটিংয়ে এমারসনের যোগাযোগের পদ্ধতি কি কার্যকর ছিল? + +মিটিং চলাকালীন, একটি কোম্পানির লিড এমারসনের গ্রাহক অভিযোগের ১০ মিনিটের অংশে বেশি মনোযোগ দেন। মিটিংয়ের পরে, এই অভিযোগগুলোই ছিল যা এই টিম লিড মনে রেখেছিলেন। অন্য একটি কোম্পানির লিড মূলত এমারসনের গবেষণা প্রক্রিয়া ব্যাখ্যার দিকে মনোযোগ দেন। তৃতীয় কোম্পানির লিড এমারসনের প্রস্তাবিত সমাধানগুলো মনে রেখেছিলেন, তবে এই সমাধানগুলো কীভাবে বাস্তবায়ন করা যেতে পারে তা নিয়ে নিশ্চিত ছিলেন না। + +উপরের পরিস্থিতিতে, দেখা যায় যে এমারসন যা চেয়েছিলেন টিম লিডদের থেকে গ্রহণ করতে, তার মধ্যে এবং তারা যা গ্রহণ করেছেন তার মধ্যে একটি বড় ফাঁক ছিল। নিচে এমারসন যে পদ্ধতি বিবেচনা করতে পারেন তার একটি বিকল্প দেওয়া হয়েছে। + +এমারসন কীভাবে এই পদ্ধতি উন্নত করতে পারেন? +প্রেক্ষাপট, সংঘাত, চূড়ান্ত মুহূর্ত, সমাপ্তি, উপসংহার +**প্রেক্ষাপট** - এমারসন প্রথম ৫ মিনিট ব্যয় করতে পারেন পুরো পরিস্থিতি পরিচয় করিয়ে দিতে এবং নিশ্চিত করতে যে টিম লিডরা বুঝতে পারছেন সমস্যাগুলো কীভাবে কোম্পানির গুরুত্বপূর্ণ মেট্রিকগুলো, যেমন রাজস্ব, প্রভাবিত করছে। + +এটি এভাবে উপস্থাপন করা যেতে পারে: "বর্তমানে, আমাদের অ্যাপের রেটিং অ্যাপ স্টোরে ২.৫। অ্যাপ স্টোরে রেটিং অ্যাপ স্টোর অপ্টিমাইজেশনের জন্য গুরুত্বপূর্ণ, যা প্রভাবিত করে কতজন ব্যবহারকারী আমাদের অ্যাপটি সার্চে দেখতে পান এবং সম্ভাব্য ব্যবহারকারীদের কাছে আমাদের অ্যাপটি কেমন দেখায়। এবং অবশ্যই, আমাদের ব্যবহারকারীর সংখ্যা সরাসরি রাজস্বের সাথে সম্পর্কিত।" + +**সংঘাত** এরপর এমারসন পরবর্তী ৫ মিনিট বা তার বেশি সময় ব্যয় করতে পারেন সংঘাত নিয়ে আলোচনা করতে। + +এটি এভাবে হতে পারে: “ব্যবহারকারীরা সপ্তাহান্তে ৪২% বেশি অভিযোগ এবং বাগ রিপোর্ট জমা দেন। যেসব গ্রাহক অভিযোগ জমা দেন এবং ৪৮ ঘণ্টার মধ্যে উত্তর পান না, তারা অ্যাপ স্টোরে আমাদের অ্যাপকে ২ এর বেশি রেটিং দেওয়ার সম্ভাবনা ৩২% কম। আমাদের অ্যাপের রেটিং অ্যাপ স্টোরে ৪-এ উন্নীত করলে আমাদের দৃশ্যমানতা ২০-৩০% বৃদ্ধি পাবে, যা আমি অনুমান করি রাজস্ব ১০% বৃদ্ধি করবে।" অবশ্যই, এমারসনকে এই সংখ্যাগুলো ন্যায্যতা দেওয়ার জন্য প্রস্তুত থাকতে হবে। + +**চূড়ান্ত মুহূর্ত** ভিত্তি স্থাপনের পরে, এমারসন চূড়ান্ত মুহূর্তে যেতে পারেন ৫ মিনিট বা তার বেশি সময় ব্যয় করে। + +এমারসন প্রস্তাবিত সমাধানগুলো উপস্থাপন করতে পারেন, ব্যাখ্যা করতে পারেন কীভাবে এই সমাধানগুলো উল্লেখিত সমস্যাগুলো সমাধান করবে, কীভাবে এই সমাধানগুলো বিদ্যমান কর্মপ্রবাহে বাস্তবায়িত হতে পারে, সমাধানগুলোর খরচ কত, সমাধানগুলোর ROI কী হবে, এবং সম্ভবত সমাধানগুলো বাস্তবায়িত হলে সেগুলো দেখতে কেমন হবে তার স্ক্রিনশট বা ওয়্যারফ্রেম দেখাতে পারেন। এমারসন এমন ব্যবহারকারীদের কাছ থেকে সাক্ষ্যও শেয়ার করতে পারেন যারা ৪৮ ঘণ্টার বেশি সময় ধরে তাদের অভিযোগের উত্তর পেয়েছেন, এবং এমনকি কোম্পানির বর্তমান কাস্টমার সার্ভিস প্রতিনিধির কাছ থেকে একটি সাক্ষ্য শেয়ার করতে পারেন যিনি বর্তমান টিকিটিং সিস্টেম সম্পর্কে মন্তব্য করেছেন। + +**সমাপ্তি** এখন এমারসন ৫ মিনিট ব্যয় করতে পারেন কোম্পানির মুখোমুখি হওয়া সমস্যাগুলো পুনরায় উল্লেখ করতে, প্রস্তাবিত সমাধানগুলো পুনরায় পর্যালোচনা করতে এবং কেন এই সমাধানগুলো সঠিক তা পর্যালোচনা করতে। + +**উপসংহার** যেহেতু এটি কয়েকজন স্টেকহোল্ডারের সাথে একটি মিটিং যেখানে দুই-দিকের যোগাযোগ ব্যবহার করা হবে, এমারসন ১০ মিনিট প্রশ্নের জন্য রেখে দিতে পারেন, যাতে মিটিং শেষ হওয়ার আগে টিম লিডদের কাছে যা কিছু বিভ্রান্তিকর ছিল তা পরিষ্কার করা যায়। + +যদি এমারসন পদ্ধতি #২ গ্রহণ করেন, তাহলে এটি অনেক বেশি সম্ভাবনা যে টিম লিডরা মিটিং থেকে এমারসন যা চেয়েছিলেন তা গ্রহণ করবেন – যে অভিযোগ এবং বাগগুলো পরিচালনার পদ্ধতি উন্নত করা যেতে পারে, এবং দুটি সমাধান রয়েছে যা এই উন্নতি ঘটানোর জন্য বাস্তবায়িত হতে পারে। এই পদ্ধতি ডেটা এবং গল্পটি যোগাযোগ করার জন্য এমারসনের জন্য একটি অনেক বেশি কার্যকর পদ্ধতি হবে। + +# উপসংহার +### প্রধান পয়েন্টগুলোর সারসংক্ষেপ +- যোগাযোগ মানে তথ্য আদান-প্রদান করা। +- ডেটা যোগাযোগ করার সময়, আপনার লক্ষ্য শুধুমাত্র আপনার শ্রোতাদের কাছে সংখ্যা পৌঁছে দেওয়া নয়। আপনার লক্ষ্য হওয়া উচিত আপনার ডেটা দ্বারা প্রভাবিত একটি গল্প যোগাযোগ করা। +- যোগাযোগের দুটি ধরণ রয়েছে, একমুখী যোগাযোগ (তথ্য যোগাযোগ করা হয় প্রতিক্রিয়ার উদ্দেশ্য ছাড়াই) এবং দুই-মুখী যোগাযোগ (তথ্য আদান-প্রদান করা হয়)। +- গল্প বলার জন্য ডেটা ব্যবহার করার অনেক কৌশল রয়েছে, আমরা যে ৫টি কৌশল নিয়ে আলোচনা করেছি তা হলো: + - আপনার শ্রোতা, মাধ্যম এবং যোগাযোগ পদ্ধতি বুঝুন + - শেষ লক্ষ্য দিয়ে শুরু করুন + - এটিকে একটি বাস্তব গল্পের মতো উপস্থাপন করুন + - অর্থবহ শব্দ এবং বাক্যাংশ ব্যবহার করুন + - আবেগ ব্যবহার করুন + +### স্ব-অধ্যয়নের জন্য সুপারিশকৃত রিসোর্স +[The Five C's of Storytelling - Articulate Persuasion](http://articulatepersuasion.com/the-five-cs-of-storytelling/) + +[1.4 Your Responsibilities as a Communicator – Business Communication for Success (umn.edu)](https://open.lib.umn.edu/businesscommunication/chapter/1-4-your-responsibilities-as-a-communicator/) + +[How to Tell a Story with Data (hbr.org)](https://hbr.org/2013/04/how-to-tell-a-story-with-data) + +[Two-Way Communication: 4 Tips for a More Engaged Workplace (yourthoughtpartner.com)](https://www.yourthoughtpartner.com/blog/bid/59576/4-steps-to-increase-employee-engagement-through-two-way-communication) + +[6 succinct steps to great data storytelling - BarnRaisers, LLC (barnraisersllc.com)](https://barnraisersllc.com/2021/05/02/6-succinct-steps-to-great-data-storytelling/) + +[How to Tell a Story With Data | Lucidchart Blog](https://www.lucidchart.com/blog/how-to-tell-a-story-with-data) + +[6 Cs of Effective Storytelling on Social Media | Cooler Insights](https://coolerinsights.com/2018/06/effective-storytelling-social-media/) + +[The Importance of Emotions In Presentations | Ethos3 - A Presentation Training and Design Agency](https://ethos3.com/2015/02/the-importance-of-emotions-in-presentations/) + +[Data storytelling: linking emotions and rational decisions (toucantoco.com)](https://www.toucantoco.com/en/blog/data-storytelling-dataviz) + +[Emotional Advertising: How Brands Use Feelings to Get People to Buy (hubspot.com)](https://blog.hubspot.com/marketing/emotions-in-advertising-examples) + +[Choosing Colors for Your Presentation Slides | Think Outside The Slide](https://www.thinkoutsidetheslide.com/choosing-colors-for-your-presentation-slides/) + +[How To Present Data [10 Expert Tips] | ObservePoint](https://resources.observepoint.com/blog/10-tips-for-presenting-data) + +[Microsoft Word - Persuasive Instructions.doc (tpsnva.org)](https://www.tpsnva.org/teach/lq/016/persinstr.pdf) + +[The Power of Story for Your Data (thinkhdi.com)](https://www.thinkhdi.com/library/supportworld/2019/power-story-your-data.aspx) + +[Common Mistakes in Data Presentation (perceptualedge.com)](https://www.perceptualedge.com/articles/ie/data_presentation.pdf) + +[Infographic: Here are 15 Common Data Fallacies to Avoid (visualcapitalist.com)](https://www.visualcapitalist.com/here-are-15-common-data-fallacies-to-avoid/) + +[Cherry Picking: When People Ignore Evidence that They Dislike – Effectiviology](https://effectiviology.com/cherry-picking/#How_to_avoid_cherry_picking) + +[Tell Stories with Data: Communication in Data Science | by Sonali Verghese | Towards Data Science](https://towardsdatascience.com/tell-stories-with-data-communication-in-data-science-5266f7671d7) + +[1. Communicating Data - Communicating Data with Tableau [Book] (oreilly.com)](https://www.oreilly.com/library/view/communicating-data-with/9781449372019/ch01.html) + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/31) + +উপরের পোস্ট-লেকচার কুইজের মাধ্যমে আপনি যা শিখেছেন তা পর্যালোচনা করুন! + +## অ্যাসাইনমেন্ট + +[Market Research](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/16-communication/assignment.md b/translations/bn/4-Data-Science-Lifecycle/16-communication/assignment.md new file mode 100644 index 00000000..b537ed20 --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/16-communication/assignment.md @@ -0,0 +1,26 @@ + +# একটি গল্প বলুন + +## নির্দেশনা + +ডেটা সায়েন্স মূলত গল্প বলার উপর ভিত্তি করে। যেকোনো একটি ডেটাসেট বেছে নিন এবং এটি নিয়ে একটি ছোট প্রবন্ধ লিখুন যেখানে আপনি এর মাধ্যমে একটি গল্প বলতে পারেন। আপনার ডেটাসেট কী প্রকাশ করতে পারে তা আপনি কী আশা করছেন? যদি এর প্রকাশনা সমস্যাজনক হয় তবে আপনি কী করবেন? যদি আপনার ডেটা সহজে তার গোপন তথ্য প্রকাশ না করে তবে কী করবেন? আপনার ডেটাসেট কী কী পরিস্থিতি উপস্থাপন করতে পারে তা ভাবুন এবং সেগুলো লিখে রাখুন। + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | + +একটি এক পৃষ্ঠার প্রবন্ধ .doc ফরম্যাটে উপস্থাপন করা হয়েছে যেখানে ডেটাসেটটি ব্যাখ্যা করা হয়েছে, নথিভুক্ত করা হয়েছে, কৃতিত্ব দেওয়া হয়েছে এবং এর উপর ভিত্তি করে একটি সুসংগঠিত গল্প উপস্থাপন করা হয়েছে যা ডেটা থেকে বিস্তারিত উদাহরণ সহ।| একটি সংক্ষিপ্ত প্রবন্ধ কম বিস্তারিত ফরম্যাটে উপস্থাপন করা হয়েছে | উপরের বিবরণগুলোর মধ্যে কোনো একটি ক্ষেত্রে প্রবন্ধটি অপর্যাপ্ত। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/4-Data-Science-Lifecycle/README.md b/translations/bn/4-Data-Science-Lifecycle/README.md new file mode 100644 index 00000000..8168d1ca --- /dev/null +++ b/translations/bn/4-Data-Science-Lifecycle/README.md @@ -0,0 +1,30 @@ + +# ডেটা সায়েন্স লাইফসাইকেল + +![communication](../../../translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.bn.jpg) +> ছবি Headway এর সৌজন্যে Unsplash এ + +এই পাঠগুলোতে, আপনি ডেটা সায়েন্স লাইফসাইকেলের কিছু দিক অন্বেষণ করবেন, যার মধ্যে ডেটা বিশ্লেষণ এবং যোগাযোগ অন্তর্ভুক্ত। + +### বিষয়বস্তু + +1. [পরিচিতি](14-Introduction/README.md) +2. [বিশ্লেষণ](15-analyzing/README.md) +3. [যোগাযোগ](16-communication/README.md) + +### কৃতজ্ঞতা + +এই পাঠগুলো ❤️ দিয়ে লিখেছেন [জালেন ম্যাকগি](https://twitter.com/JalenMCG) এবং [জ্যাসমিন গ্রিনঅ্যাওয়ে](https://twitter.com/paladique) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/17-Introduction/README.md b/translations/bn/5-Data-Science-In-Cloud/17-Introduction/README.md new file mode 100644 index 00000000..a664d7fc --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/17-Introduction/README.md @@ -0,0 +1,114 @@ + +# ক্লাউডে ডেটা সায়েন্সের পরিচিতি + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| ক্লাউডে ডেটা সায়েন্স: পরিচিতি - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +এই পাঠে, আপনি ক্লাউডের মৌলিক নীতিগুলি শিখবেন, তারপর আপনি দেখবেন কেন ক্লাউড পরিষেবাগুলি ব্যবহার করে আপনার ডেটা সায়েন্স প্রকল্প চালানো আপনার জন্য আকর্ষণীয় হতে পারে এবং আমরা ক্লাউডে চালিত কিছু ডেটা সায়েন্স প্রকল্পের উদাহরণ দেখব। + +## [পূর্ব-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/32) + +## ক্লাউড কী? + +ক্লাউড, বা ক্লাউড কম্পিউটিং, ইন্টারনেটের মাধ্যমে একটি পরিকাঠামোতে হোস্ট করা পে-অ্যাজ-ইউ-গো কম্পিউটিং পরিষেবাগুলির বিস্তৃত পরিসরের সরবরাহ। পরিষেবাগুলির মধ্যে রয়েছে স্টোরেজ, ডেটাবেস, নেটওয়ার্কিং, সফটওয়্যার, অ্যানালিটিক্স এবং বুদ্ধিমান পরিষেবাগুলির মতো সমাধান। + +আমরা সাধারণত পাবলিক, প্রাইভেট এবং হাইব্রিড ক্লাউডকে নিম্নরূপে আলাদা করি: + +* পাবলিক ক্লাউড: একটি পাবলিক ক্লাউড একটি তৃতীয় পক্ষের ক্লাউড পরিষেবা প্রদানকারীর মালিকানাধীন এবং পরিচালিত হয় যা তার কম্পিউটিং সম্পদ ইন্টারনেটের মাধ্যমে জনসাধারণের কাছে সরবরাহ করে। +* প্রাইভেট ক্লাউড: প্রাইভেট ক্লাউড বলতে বোঝায় একটি একক ব্যবসা বা সংস্থার দ্বারা একচেটিয়াভাবে ব্যবহৃত ক্লাউড কম্পিউটিং সম্পদ, যেখানে পরিষেবা এবং পরিকাঠামো একটি প্রাইভেট নেটওয়ার্কে রক্ষণাবেক্ষণ করা হয়। +* হাইব্রিড ক্লাউড: হাইব্রিড ক্লাউড একটি সিস্টেম যা পাবলিক এবং প্রাইভেট ক্লাউডকে একত্রিত করে। ব্যবহারকারীরা একটি অন-প্রিমাইসেস ডেটাসেন্টার বেছে নেন, যখন ডেটা এবং অ্যাপ্লিকেশনগুলি এক বা একাধিক পাবলিক ক্লাউডে চালানোর অনুমতি দেন। + +বেশিরভাগ ক্লাউড কম্পিউটিং পরিষেবা তিনটি বিভাগে পড়ে: ইনফ্রাস্ট্রাকচার অ্যাজ এ সার্ভিস (IaaS), প্ল্যাটফর্ম অ্যাজ এ সার্ভিস (PaaS) এবং সফটওয়্যার অ্যাজ এ সার্ভিস (SaaS)। + +* ইনফ্রাস্ট্রাকচার অ্যাজ এ সার্ভিস (IaaS): ব্যবহারকারীরা সার্ভার এবং ভার্চুয়াল মেশিন (VMs), স্টোরেজ, নেটওয়ার্ক, অপারেটিং সিস্টেমের মতো একটি আইটি পরিকাঠামো ভাড়া নেন। +* প্ল্যাটফর্ম অ্যাজ এ সার্ভিস (PaaS): ব্যবহারকারীরা সফটওয়্যার অ্যাপ্লিকেশনগুলি বিকাশ, পরীক্ষা, সরবরাহ এবং পরিচালনা করার জন্য একটি পরিবেশ ভাড়া নেন। ব্যবহারকারীদের বিকাশের জন্য প্রয়োজনীয় সার্ভার, স্টোরেজ, নেটওয়ার্ক এবং ডেটাবেসের অন্তর্নিহিত পরিকাঠামো সেট আপ বা পরিচালনা করার বিষয়ে চিন্তা করতে হয় না। +* সফটওয়্যার অ্যাজ এ সার্ভিস (SaaS): ব্যবহারকারীরা ইন্টারনেটের মাধ্যমে সফটওয়্যার অ্যাপ্লিকেশনগুলিতে অ্যাক্সেস পান, চাহিদা অনুযায়ী এবং সাধারণত সাবস্ক্রিপশন ভিত্তিতে। ব্যবহারকারীদের সফটওয়্যার অ্যাপ্লিকেশন হোস্টিং এবং পরিচালনা, অন্তর্নিহিত পরিকাঠামো বা রক্ষণাবেক্ষণ, যেমন সফটওয়্যার আপগ্রেড এবং সিকিউরিটি প্যাচিং নিয়ে চিন্তা করতে হয় না। + +ক্লাউডের বৃহত্তম প্রদানকারীদের মধ্যে রয়েছে Amazon Web Services, Google Cloud Platform এবং Microsoft Azure। + +## কেন ডেটা সায়েন্সের জন্য ক্লাউড বেছে নেবেন? + +ডেভেলপার এবং আইটি পেশাদাররা অনেক কারণে ক্লাউডের সাথে কাজ করতে পছন্দ করেন, যার মধ্যে রয়েছে: + +* উদ্ভাবন: আপনি ক্লাউড প্রদানকারীদের দ্বারা তৈরি উদ্ভাবনী পরিষেবাগুলি সরাসরি আপনার অ্যাপ্লিকেশনে সংযুক্ত করে আপনার অ্যাপ্লিকেশনগুলিকে শক্তিশালী করতে পারেন। +* নমনীয়তা: আপনি শুধুমাত্র আপনার প্রয়োজনীয় পরিষেবাগুলির জন্য অর্থ প্রদান করেন এবং পরিষেবাগুলির একটি বিস্তৃত পরিসর থেকে বেছে নিতে পারেন। আপনি সাধারণত পে-অ্যাজ-ইউ-গো ভিত্তিতে অর্থ প্রদান করেন এবং আপনার পরিবর্তিত প্রয়োজন অনুসারে পরিষেবাগুলি মানিয়ে নিতে পারেন। +* বাজেট: হার্ডওয়্যার এবং সফটওয়্যার কেনার, সেট আপ এবং অন-সাইট ডেটাসেন্টার চালানোর জন্য প্রাথমিক বিনিয়োগ করার প্রয়োজন নেই এবং আপনি শুধুমাত্র আপনার ব্যবহারের জন্য অর্থ প্রদান করতে পারেন। +* স্কেলযোগ্যতা: আপনার প্রকল্পের প্রয়োজন অনুসারে আপনার সম্পদ স্কেল করতে পারে, যার অর্থ আপনার অ্যাপ্লিকেশনগুলি আরও বা কম কম্পিউটিং শক্তি, স্টোরেজ এবং ব্যান্ডউইথ ব্যবহার করতে পারে, যেকোনো সময় বাহ্যিক কারণগুলির সাথে মানিয়ে নিতে পারে। +* উৎপাদনশীলতা: আপনি ডেটাসেন্টার পরিচালনার মতো কাজগুলি অন্য কেউ পরিচালনা করতে পারে এমন কাজগুলিতে সময় ব্যয় না করে আপনার ব্যবসায় ফোকাস করতে পারেন। +* নির্ভরযোগ্যতা: ক্লাউড কম্পিউটিং আপনার ডেটা ক্রমাগত ব্যাক আপ করার জন্য বেশ কয়েকটি উপায় অফার করে এবং আপনি আপনার ব্যবসা এবং পরিষেবাগুলি চালিয়ে যাওয়ার জন্য দুর্যোগ পুনরুদ্ধার পরিকল্পনা সেট আপ করতে পারেন, এমনকি সংকটের সময়েও। +* নিরাপত্তা: আপনি নীতিগুলি, প্রযুক্তি এবং নিয়ন্ত্রণগুলি থেকে উপকৃত হতে পারেন যা আপনার প্রকল্পের নিরাপত্তা শক্তিশালী করে। + +এগুলি হল ক্লাউড পরিষেবাগুলি ব্যবহার করার জন্য সবচেয়ে সাধারণ কারণগুলির মধ্যে কিছু। এখন আমরা ক্লাউড কী এবং এর প্রধান সুবিধাগুলি সম্পর্কে আরও ভালভাবে বুঝতে পেরেছি, আসুন ডেটা বিজ্ঞানী এবং ডেটা নিয়ে কাজ করা ডেভেলপারদের কাজগুলি আরও নির্দিষ্টভাবে দেখি এবং ক্লাউড কীভাবে তাদের মুখোমুখি হওয়া বিভিন্ন চ্যালেঞ্জগুলিতে সহায়তা করতে পারে: + +* বড় পরিমাণে ডেটা সংরক্ষণ করা: বড় সার্ভার কেনা, পরিচালনা এবং সুরক্ষিত করার পরিবর্তে, আপনি সরাসরি ক্লাউডে আপনার ডেটা সংরক্ষণ করতে পারেন, যেমন Azure Cosmos DB, Azure SQL Database এবং Azure Data Lake Storage-এর সমাধানগুলির সাথে। +* ডেটা ইন্টিগ্রেশন সম্পাদন করা: ডেটা ইন্টিগ্রেশন ডেটা সায়েন্সের একটি অপরিহার্য অংশ, যা আপনাকে ডেটা সংগ্রহ থেকে পদক্ষেপ নেওয়ার দিকে রূপান্তর করতে দেয়। ক্লাউডে দেওয়া ডেটা ইন্টিগ্রেশন পরিষেবাগুলির সাথে, আপনি বিভিন্ন উৎস থেকে ডেটা সংগ্রহ, রূপান্তর এবং একক ডেটা ওয়্যারহাউসে সংহত করতে পারেন, Data Factory-এর মাধ্যমে। +* ডেটা প্রক্রিয়াকরণ: বিশাল পরিমাণে ডেটা প্রক্রিয়াকরণে প্রচুর কম্পিউটিং শক্তি প্রয়োজন, এবং প্রত্যেকের কাছে সেই কাজের জন্য যথেষ্ট শক্তিশালী মেশিনের অ্যাক্সেস নেই, এজন্য অনেক লোক তাদের সমাধান চালানোর এবং মোতায়েন করার জন্য সরাসরি ক্লাউডের বিশাল কম্পিউটিং শক্তি ব্যবহার করতে পছন্দ করে। +* ডেটা অ্যানালিটিক্স পরিষেবা ব্যবহার করা: ক্লাউড পরিষেবাগুলি যেমন Azure Synapse Analytics, Azure Stream Analytics এবং Azure Databricks আপনাকে আপনার ডেটাকে কার্যকরী অন্তর্দৃষ্টিতে রূপান্তর করতে সাহায্য করে। +* মেশিন লার্নিং এবং ডেটা ইন্টেলিজেন্স পরিষেবা ব্যবহার করা: শুরু থেকে শুরু করার পরিবর্তে, আপনি ক্লাউড প্রদানকারীর দ্বারা দেওয়া মেশিন লার্নিং অ্যালগরিদম ব্যবহার করতে পারেন, যেমন AzureML পরিষেবাগুলির সাথে। আপনি স্পিচ-টু-টেক্সট, টেক্সট-টু-স্পিচ, কম্পিউটার ভিশন এবং আরও অনেক কিছু সহ কগনিটিভ পরিষেবাগুলি ব্যবহার করতে পারেন। + +## ক্লাউডে ডেটা সায়েন্সের উদাহরণ + +চলুন এটি আরও স্পষ্ট করি এবং কয়েকটি পরিস্থিতি দেখি। + +### রিয়েল-টাইম সোশ্যাল মিডিয়া সেন্টিমেন্ট অ্যানালাইসিস +আমরা একটি সাধারণ পরিস্থিতি দিয়ে শুরু করব যা মেশিন লার্নিং শুরু করা লোকেরা প্রায়ই অধ্যয়ন করে: রিয়েল-টাইম সোশ্যাল মিডিয়া সেন্টিমেন্ট অ্যানালাইসিস। + +ধরুন আপনি একটি নিউজ মিডিয়া ওয়েবসাইট চালান এবং আপনি লাইভ ডেটা ব্যবহার করে বুঝতে চান যে আপনার পাঠকরা কী ধরনের বিষয়বস্তুতে আগ্রহী হতে পারেন। এটি জানতে, আপনি একটি প্রোগ্রাম তৈরি করতে পারেন যা টুইটারের প্রকাশনা থেকে প্রাসঙ্গিক বিষয়গুলিতে রিয়েল-টাইম সেন্টিমেন্ট অ্যানালাইসিস সম্পাদন করে। + +আপনার দেখার মূল সূচকগুলি হল নির্দিষ্ট বিষয়গুলিতে (হ্যাশট্যাগ) টুইটগুলির পরিমাণ এবং সেন্টিমেন্ট, যা নির্দিষ্ট বিষয়গুলির চারপাশে সেন্টিমেন্ট অ্যানালাইসিস সম্পাদনকারী অ্যানালিটিক্স টুল ব্যবহার করে প্রতিষ্ঠিত হয়। + +এই প্রকল্পটি তৈরি করতে প্রয়োজনীয় পদক্ষেপগুলি হল: + +* স্ট্রিমিং ইনপুটের জন্য একটি ইভেন্ট হাব তৈরি করুন, যা টুইটার থেকে ডেটা সংগ্রহ করবে। +* একটি টুইটার ক্লায়েন্ট অ্যাপ্লিকেশন কনফিগার এবং শুরু করুন, যা টুইটার স্ট্রিমিং APIs-কে কল করবে। +* একটি স্ট্রিম অ্যানালিটিক্স জব তৈরি করুন। +* জব ইনপুট এবং কোয়েরি নির্দিষ্ট করুন। +* একটি আউটপুট সিঙ্ক তৈরি করুন এবং জব আউটপুট নির্দিষ্ট করুন। +* জব শুরু করুন। + +সম্পূর্ণ প্রক্রিয়া দেখতে, [ডকুমেন্টেশন](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-77958-bethanycheum&ocid=AID30411099) দেখুন। + +### বৈজ্ঞানিক গবেষণাপত্র বিশ্লেষণ +চলুন এই পাঠ্যক্রমের একজন লেখক [দিমিত্রি সশনিকভ](http://soshnikov.com) দ্বারা তৈরি একটি প্রকল্পের আরেকটি উদাহরণ দেখি। + +দিমিত্রি একটি টুল তৈরি করেছেন যা COVID গবেষণাপত্র বিশ্লেষণ করে। এই প্রকল্পটি পর্যালোচনা করে, আপনি দেখতে পাবেন কীভাবে একটি টুল তৈরি করা যায় যা বৈজ্ঞানিক গবেষণাপত্র থেকে জ্ঞান বের করে, অন্তর্দৃষ্টি অর্জন করে এবং গবেষকদের দক্ষতার সাথে বড় গবেষণাপত্রের সংগ্রহগুলি নেভিগেট করতে সাহায্য করে। + +চলুন এই প্রকল্পে ব্যবহৃত বিভিন্ন পদক্ষেপ দেখি: + +* [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) দিয়ে তথ্য বের করা এবং প্রি-প্রসেসিং। +* [Azure ML](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) ব্যবহার করে প্রক্রিয়াকরণকে প্যারালালাইজ করা। +* [Cosmos DB](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) দিয়ে তথ্য সংরক্ষণ এবং কোয়েরি করা। +* Power BI ব্যবহার করে ডেটা অনুসন্ধান এবং ভিজ্যুয়ালাইজেশনের জন্য একটি ইন্টারেক্টিভ ড্যাশবোর্ড তৈরি করা। + +সম্পূর্ণ প্রক্রিয়া দেখতে, [দিমিত্রির ব্লগ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) দেখুন। + +যেমনটি আপনি দেখতে পাচ্ছেন, আমরা ডেটা সায়েন্স সম্পাদনের জন্য বিভিন্ন উপায়ে ক্লাউড পরিষেবাগুলি ব্যবহার করতে পারি। + +## ফুটনোট + +উৎস: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## পোস্ট-পাঠ কুইজ + +[পোস্ট-পাঠ কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/33) + +## অ্যাসাইনমেন্ট + +[বাজার গবেষণা](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদ প্রদানের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/17-Introduction/assignment.md b/translations/bn/5-Data-Science-In-Cloud/17-Introduction/assignment.md new file mode 100644 index 00000000..2abc35e9 --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/17-Introduction/assignment.md @@ -0,0 +1,25 @@ + +# বাজার গবেষণা + +## নির্দেশাবলী + +এই পাঠে আপনি শিখেছেন যে বেশ কয়েকটি গুরুত্বপূর্ণ ক্লাউড প্রদানকারী রয়েছে। কিছু বাজার গবেষণা করুন এবং খুঁজে বের করুন যে প্রতিটি প্রদানকারী ডেটা সায়েন্টিস্টদের জন্য কী অফার করে। এই অফারগুলো কি তুলনাযোগ্য? তিন বা তার বেশি ক্লাউড প্রদানকারীর অফার বর্ণনা করে একটি প্রতিবেদন লিখুন। + +## মূল্যায়ন সূচক + +উদাহরণস্বরূপ | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | --- | +এক পৃষ্ঠার একটি প্রতিবেদন তিনটি ক্লাউড প্রদানকারীর ডেটা সায়েন্স অফার বর্ণনা করে এবং তাদের মধ্যে পার্থক্য তুলে ধরে। | একটি সংক্ষিপ্ত প্রতিবেদন উপস্থাপন করা হয়েছে | একটি প্রতিবেদন উপস্থাপন করা হয়েছে কিন্তু বিশ্লেষণ সম্পূর্ণ হয়নি + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/README.md b/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/README.md new file mode 100644 index 00000000..9d4473c0 --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/README.md @@ -0,0 +1,350 @@ + +# ক্লাউডে ডেটা সায়েন্স: "লো কোড/নো কোড" পদ্ধতি + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/18-DataScience-Cloud.png)| +|:---:| +| ক্লাউডে ডেটা সায়েন্স: লো কোড - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +সূচিপত্র: + +- [ক্লাউডে ডেটা সায়েন্স: "লো কোড/নো কোড" পদ্ধতি](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [পূর্ব-লেকচার কুইজ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [১. ভূমিকা](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [১.১ Azure Machine Learning কী?](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [১.২ হার্ট ফেইলিউর প্রেডিকশন প্রকল্প:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [১.৩ হার্ট ফেইলিউর ডেটাসেট:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২. Azure ML Studio-তে লো কোড/নো কোড মডেল ট্রেনিং](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.১ Azure ML Workspace তৈরি করা](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.২ কম্পিউট রিসোর্স](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.২.১ আপনার কম্পিউট রিসোর্সের জন্য সঠিক অপশন নির্বাচন](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.২.২ কম্পিউট ক্লাস্টার তৈরি করা](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.৩ ডেটাসেট লোড করা](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [২.৪ AutoML দিয়ে লো কোড/নো কোড ট্রেনিং](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [৩. লো কোড/নো কোড মডেল ডিপ্লয়মেন্ট এবং এন্ডপয়েন্ট ব্যবহার](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [৩.১ মডেল ডিপ্লয়মেন্ট](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [৩.২ এন্ডপয়েন্ট ব্যবহার](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [🚀 চ্যালেঞ্জ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [পোস্ট-লেকচার কুইজ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [রিভিউ এবং স্ব-অধ্যয়ন](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [অ্যাসাইনমেন্ট](../../../../5-Data-Science-In-Cloud/18-Low-Code) + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/34) +## ১. ভূমিকা +### ১.১ Azure Machine Learning কী? + +Azure ক্লাউড প্ল্যাটফর্মে ২০০টিরও বেশি পণ্য এবং ক্লাউড পরিষেবা রয়েছে যা আপনাকে নতুন সমাধান তৈরি করতে সহায়তা করে। +ডেটা বিজ্ঞানীরা ডেটা বিশ্লেষণ এবং প্রি-প্রসেসিং, বিভিন্ন মডেল-ট্রেনিং অ্যালগরিদম পরীক্ষা করার জন্য প্রচুর সময় ব্যয় করেন, যাতে সঠিক মডেল তৈরি করা যায়। এই কাজগুলো সময়সাপেক্ষ এবং প্রায়ই ব্যয়বহুল কম্পিউট হার্ডওয়্যারের অকার্যকর ব্যবহার করে। + +[Azure ML](https://docs.microsoft.com/azure/machine-learning/overview-what-is-azure-machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) হলো Azure-এ মেশিন লার্নিং সমাধান তৈরি এবং পরিচালনার জন্য একটি ক্লাউড-ভিত্তিক প্ল্যাটফর্ম। এটি ডেটা প্রস্তুত করা, মডেল ট্রেনিং, প্রেডিক্টিভ সার্ভিস প্রকাশ এবং ব্যবহার পর্যবেক্ষণের জন্য বিস্তৃত বৈশিষ্ট্য এবং সক্ষমতা প্রদান করে। সবচেয়ে গুরুত্বপূর্ণভাবে, এটি মডেল ট্রেনিংয়ের সাথে সম্পর্কিত সময়সাপেক্ষ কাজগুলোকে স্বয়ংক্রিয় করে দক্ষতা বৃদ্ধি করে; এবং এটি ক্লাউড-ভিত্তিক কম্পিউট রিসোর্স ব্যবহার করতে সক্ষম করে, যা বড় ডেটা পরিচালনা করতে কার্যকরভাবে স্কেল করে এবং শুধুমাত্র ব্যবহারের সময় খরচ করে। + +Azure ML ডেভেলপার এবং ডেটা বিজ্ঞানীদের মেশিন লার্নিং ওয়ার্কফ্লো পরিচালনার জন্য প্রয়োজনীয় সমস্ত টুল সরবরাহ করে। এর মধ্যে রয়েছে: + +- **Azure Machine Learning Studio**: এটি একটি ওয়েব পোর্টাল যা মডেল ট্রেনিং, ডিপ্লয়মেন্ট, অটোমেশন, ট্র্যাকিং এবং অ্যাসেট ম্যানেজমেন্টের জন্য লো-কোড এবং নো-কোড অপশন প্রদান করে। এটি Azure Machine Learning SDK-এর সাথে ইন্টিগ্রেটেড। +- **Jupyter Notebooks**: দ্রুত প্রোটোটাইপ এবং মডেল পরীক্ষা করার জন্য। +- **Azure Machine Learning Designer**: ড্র্যাগ-এন্ড-ড্রপ মডিউল ব্যবহার করে পরীক্ষাগুলো তৈরি এবং লো-কোড পরিবেশে পাইপলাইন ডিপ্লয় করার জন্য। +- **Automated machine learning UI (AutoML)**: মেশিন লার্নিং মডেল ডেভেলপমেন্টের পুনরাবৃত্তিমূলক কাজগুলো স্বয়ংক্রিয় করে, উচ্চ স্কেল, দক্ষতা এবং উৎপাদনশীলতার সাথে মডেল তৈরি করতে সহায়তা করে। +- **Data Labelling**: একটি সহায়ক ML টুল যা ডেটা স্বয়ংক্রিয়ভাবে লেবেল করতে পারে। +- **Machine learning extension for Visual Studio Code**: ML প্রকল্প তৈরি এবং পরিচালনার জন্য একটি পূর্ণাঙ্গ ডেভেলপমেন্ট পরিবেশ প্রদান করে। +- **Machine learning CLI**: কমান্ড লাইন থেকে Azure ML রিসোর্স পরিচালনার জন্য কমান্ড সরবরাহ করে। +- **PyTorch, TensorFlow, Scikit-learn** এবং আরও অনেক ওপেন-সোর্স ফ্রেমওয়ার্কের সাথে ইন্টিগ্রেশন। +- **MLflow**: মেশিন লার্নিং পরীক্ষার জীবনচক্র পরিচালনার জন্য একটি ওপেন-সোর্স লাইব্রেরি। **MLFlow Tracking** আপনার ট্রেনিং রান মেট্রিক এবং মডেল আর্টিফ্যাক্ট লগ এবং ট্র্যাক করে। + +### ১.২ হার্ট ফেইলিউর প্রেডিকশন প্রকল্প: + +প্রকল্প তৈরি এবং তৈরি করা দক্ষতা এবং জ্ঞান পরীক্ষা করার সেরা উপায়। এই পাঠে, আমরা Azure ML Studio-তে হার্ট ফেইলিউর আক্রমণের প্রেডিকশন প্রকল্প তৈরি করার দুটি ভিন্ন পদ্ধতি অন্বেষণ করব: লো কোড/নো কোড এবং Azure ML SDK ব্যবহার করে। নিচের স্কিমায় দেখানো হয়েছে: + +![project-schema](../../../../translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.bn.png) + +প্রতিটি পদ্ধতির নিজস্ব সুবিধা এবং অসুবিধা রয়েছে। লো কোড/নো কোড পদ্ধতি শুরু করার জন্য সহজ, কারণ এটি GUI (গ্রাফিকাল ইউজার ইন্টারফেস) ব্যবহার করে এবং কোডের পূর্ব জ্ঞান প্রয়োজন হয় না। এই পদ্ধতি প্রকল্পের কার্যকারিতা দ্রুত পরীক্ষা করতে এবং POC (প্রুফ অফ কনসেপ্ট) তৈরি করতে সহায়তা করে। তবে, প্রকল্প বড় হলে এবং প্রোডাকশন-রেডি করতে হলে GUI ব্যবহার করে রিসোর্স তৈরি করা সম্ভব নয়। তখন প্রোগ্রাম্যাটিকভাবে সবকিছু অটোমেট করতে হবে, যেমন রিসোর্স তৈরি থেকে মডেল ডিপ্লয়মেন্ট পর্যন্ত। এই ক্ষেত্রে Azure ML SDK ব্যবহার করার দক্ষতা গুরুত্বপূর্ণ হয়ে ওঠে। + +| | লো কোড/নো কোড | Azure ML SDK | +|-------------------|------------------|---------------------------| +| কোড দক্ষতা | প্রয়োজন নেই | প্রয়োজন | +| ডেভেলপমেন্ট সময় | দ্রুত এবং সহজ | কোড দক্ষতার উপর নির্ভরশীল | +| প্রোডাকশন-রেডি | না | হ্যাঁ | + +### ১.৩ হার্ট ফেইলিউর ডেটাসেট: + +কার্ডিওভাসকুলার রোগ (CVDs) বিশ্বব্যাপী মৃত্যুর প্রধান কারণ, যা বিশ্বব্যাপী মোট মৃত্যুর ৩১% এর জন্য দায়ী। তামাক ব্যবহার, অস্বাস্থ্যকর খাদ্য এবং স্থূলতা, শারীরিক নিষ্ক্রিয়তা এবং অ্যালকোহলের ক্ষতিকর ব্যবহার ইত্যাদি পরিবেশগত এবং আচরণগত ঝুঁকি ফ্যাক্টরগুলো মডেল অনুমানের বৈশিষ্ট্য হিসেবে ব্যবহার করা যেতে পারে। CVD বিকাশের সম্ভাবনা অনুমান করতে পারা উচ্চ ঝুঁকিপূর্ণ ব্যক্তিদের আক্রমণ প্রতিরোধে অত্যন্ত কার্যকর হতে পারে। + +Kaggle একটি [Heart Failure dataset](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data) প্রকাশ করেছে, যা আমরা এই প্রকল্পে ব্যবহার করব। আপনি এখন ডেটাসেটটি ডাউনলোড করতে পারেন। এটি একটি ট্যাবুলার ডেটাসেট, যেখানে ১৩টি কলাম (১২টি বৈশিষ্ট্য এবং ১টি টার্গেট ভেরিয়েবল) এবং ২৯৯টি সারি রয়েছে। + +| | ভেরিয়েবল নাম | টাইপ | বিবরণ | উদাহরণ | +|----|---------------------------|-----------------|---------------------------------------------------|-------------------| +| ১ | age | সংখ্যাগত | রোগীর বয়স | ২৫ | +| ২ | anaemia | বুলিয়ান | রক্তকণিকা বা হিমোগ্লোবিনের অভাব | ০ বা ১ | +| ৩ | creatinine_phosphokinase | সংখ্যাগত | রক্তে CPK এনজাইমের মাত্রা | ৫৪২ | +| ৪ | diabetes | বুলিয়ান | রোগীর ডায়াবেটিস আছে কিনা | ০ বা ১ | +| ৫ | ejection_fraction | সংখ্যাগত | প্রতিটি সংকোচনে হৃদয় থেকে রক্ত বের হওয়ার শতাংশ | ৪৫ | +| ৬ | high_blood_pressure | বুলিয়ান | রোগীর উচ্চ রক্তচাপ আছে কিনা | ০ বা ১ | +| ৭ | platelets | সংখ্যাগত | রক্তে প্লেটলেটের পরিমাণ | ১৪৯০০০ | +| ৮ | serum_creatinine | সংখ্যাগত | রক্তে সিরাম ক্রিয়েটিনিনের মাত্রা | ০.৫ | +| ৯ | serum_sodium | সংখ্যাগত | রক্তে সিরাম সোডিয়ামের মাত্রা | জুন | +| ১০ | sex | বুলিয়ান | নারী বা পুরুষ | ০ বা ১ | +| ১১ | smoking | বুলিয়ান | রোগী ধূমপান করেন কিনা | ০ বা ১ | +| ১২ | time | সংখ্যাগত | ফলো-আপ সময়কাল (দিন) | ৪ | +|----|---------------------------|-----------------|---------------------------------------------------|-------------------| +| ২১ | DEATH_EVENT [Target] | বুলিয়ান | ফলো-আপ সময়কালে রোগী মারা যান কিনা | ০ বা ১ | + +ডেটাসেটটি পাওয়ার পর, আমরা Azure-এ প্রকল্প শুরু করতে পারি। + +## ২. Azure ML Studio-তে লো কোড/নো কোড মডেল ট্রেনিং +### ২.১ Azure ML Workspace তৈরি করা +Azure ML-এ মডেল ট্রেনিং করতে প্রথমে একটি Azure ML Workspace তৈরি করতে হবে। Workspace হলো Azure Machine Learning-এর শীর্ষ-স্তরের রিসোর্স, যা আপনি যখন Azure Machine Learning ব্যবহার করেন তখন তৈরি করা সমস্ত আর্টিফ্যাক্ট পরিচালনার জন্য একটি কেন্দ্রীয় স্থান প্রদান করে। Workspace ট্রেনিং রানগুলোর ইতিহাস সংরক্ষণ করে, যার মধ্যে লগ, মেট্রিক, আউটপুট এবং আপনার স্ক্রিপ্টের স্ন্যাপশট অন্তর্ভুক্ত থাকে। এই তথ্য ব্যবহার করে আপনি নির্ধারণ করতে পারেন কোন ট্রেনিং রানটি সেরা মডেল তৈরি করেছে। [আরও জানুন](https://docs.microsoft.com/azure/machine-learning/concept-workspace?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +আপনার অপারেটিং সিস্টেমের সাথে সামঞ্জস্যপূর্ণ সর্বাধিক আপডেটেড ব্রাউজার ব্যবহার করার পরামর্শ দেওয়া হয়। নিম্নলিখিত ব্রাউজারগুলো সমর্থিত: + +- Microsoft Edge (নতুন Microsoft Edge, সর্বশেষ সংস্করণ। Microsoft Edge legacy নয়) +- Safari (সর্বশেষ সংস্করণ, শুধুমাত্র Mac) +- Chrome (সর্বশেষ সংস্করণ) +- Firefox (সর্বশেষ সংস্করণ) + +Azure Machine Learning ব্যবহার করতে, আপনার Azure সাবস্ক্রিপশনে একটি Workspace তৈরি করুন। এরপর এই Workspace ব্যবহার করে ডেটা, কম্পিউট রিসোর্স, কোড, মডেল এবং মেশিন লার্নিং ওয়ার্কলোডের সাথে সম্পর্কিত অন্যান্য আর্টিফ্যাক্ট পরিচালনা করতে পারেন। + +> **_নোট:_** আপনার Azure সাবস্ক্রিপশনে যতক্ষণ Azure Machine Learning Workspace থাকবে, ততক্ষণ ডেটা স্টোরেজের জন্য সামান্য পরিমাণ চার্জ করা হবে। তাই আমরা পরামর্শ দিই যে আপনি যখন Workspace ব্যবহার করছেন না তখন এটি মুছে ফেলুন। + +১. [Azure পোর্টাল](https://ms.portal.azure.com/) এ Microsoft ক্রেডেনশিয়াল ব্যবহার করে সাইন ইন করুন। +২. **+Create a resource** নির্বাচন করুন। + + ![workspace-1](../../../../translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.bn.png) + + Machine Learning অনুসন্ধান করুন এবং Machine Learning টাইল নির্বাচন করুন। + + ![workspace-2](../../../../translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.bn.png) + + Create বোতামে ক্লিক করুন। + + ![workspace-3](../../../../translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.bn.png) + + নিচের মতো সেটিংস পূরণ করুন: + - Subscription: আপনার Azure সাবস্ক্রিপশন + - Resource group: একটি রিসোর্স গ্রুপ তৈরি করুন বা নির্বাচন করুন + - Workspace name: আপনার Workspace-এর জন্য একটি ইউনিক নাম দিন + - Region: আপনার নিকটবর্তী ভৌগোলিক অঞ্চল নির্বাচন করুন + - Storage account: Workspace-এর জন্য একটি নতুন স্টোরেজ অ্যাকাউন্ট তৈরি হবে + - Key vault: Workspace-এর জন্য একটি নতুন Key Vault তৈরি হবে + - Application insights: Workspace-এর জন্য একটি নতুন Application Insights রিসোর্স তৈরি হবে + - Container registry: None (প্রথমবার আপনি একটি মডেল কন্টেইনারে ডিপ্লয় করলে এটি স্বয়ংক্রিয়ভাবে তৈরি হবে) + + ![workspace-4](../../../../translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.bn.png) + + - Create + Review-এ ক্লিক করুন এবং তারপর Create বোতামে ক্লিক করুন। +৩. আপনার Workspace তৈরি হওয়ার জন্য অপেক্ষা করুন (এটি কয়েক মিনিট সময় নিতে পারে)। এরপর পোর্টালে এটি যান। আপনি এটি Machine Learning Azure সার্ভিসের মাধ্যমে খুঁজে পেতে পারেন। +৪. আপনার Workspace-এর Overview পেজে, Azure Machine Learning Studio চালু করুন (অথবা একটি নতুন ব্রাউজার ট্যাবে https://ml.azure.com-এ যান), এবং Microsoft অ্যাকাউন্ট ব্যবহার করে Azure Machine Learning Studio-তে সাইন ইন করুন। যদি প্রম্পট করা হয়, তাহলে আপনার Azure ডিরেক্টরি এবং সাবস্ক্রিপশন, এবং আপনার Azure Machine Learning Workspace নির্বাচন করুন। + +![workspace-5](../../../../translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.bn.png) + +৫. Azure Machine Learning Studio-তে, উপরের বাম দিকে ☰ আইকন টগল করুন যাতে ইন্টারফেসের বিভিন্ন পেজ দেখতে পারেন। আপনি এই পেজগুলো ব্যবহার করে আপনার Workspace-এর রিসোর্সগুলো পরিচালনা করতে পারেন। + +![workspace-6](../../../../translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.bn.png) + +আপনি Azure পোর্টাল ব্যবহার করে আপনার Workspace পরিচালনা করতে পারেন, তবে ডেটা বিজ্ঞানী এবং Machine Learning অপারেশন ইঞ্জিনিয়ারদের জন্য Azure Machine Learning Studio একটি আরও ফোকাসড ইউজার ইন্টারফেস প্রদান করে। + +### ২.২ কম্পিউট রিসোর্স + +কম্পিউট রিসোর্স হলো ক্লাউড-ভিত্তিক রিসোর্স, যেখানে আপনি মডেল ট্রেনিং এবং ডেটা এক্সপ্লোরেশন প্রক্রিয়া চালাতে পারেন। চার ধরনের কম্পিউট রিসোর্স তৈরি করা যায়: + +- **Compute Instances**: ডেভেলপমেন্ট ওয়ার্কস্টেশন, যা ডেটা বিজ্ঞানীরা ডেটা এবং মডেলের সাথে কাজ করতে ব্যবহার করতে পারেন। এটি একটি ভার্চুয়াল মেশিন (VM) তৈরি করে এবং একটি নোটবুক ইনস্ট্যান্স চালু করে। এরপর আপনি নোটবুক থেকে একটি কম্পিউট ক্লাস্টার কল করে মডেল ট্রেন করতে পারেন। +- **Compute Clusters**: স্কেলযোগ্য VM ক্লাস্টার, যা পরীক্ষার কোডের অন-ডিমান্ড প্রসেসিংয়ের জন্য ব্যবহৃত হয়। মডেল ট্রেনিংয়ের সময় এটি প্রয়োজন হয়। Compute Clusters বিশেষ GPU বা CPU রিসোর্সও ব্যবহার করতে পারে। +- **Inference Clusters**: ডিপ্লয়মেন্ট টার্গেট, যা আপনার ট্রেন করা মডেল ব্যবহার করে প্রেডিক্টিভ সার্ভিস প্রদান করে। +- **সংযুক্ত কম্পিউট**: বিদ্যমান Azure কম্পিউট রিসোর্সের সাথে সংযোগ স্থাপন করে, যেমন Virtual Machines বা Azure Databricks ক্লাস্টার। + +#### 2.2.1 আপনার কম্পিউট রিসোর্সের জন্য সঠিক বিকল্প নির্বাচন করা + +কম্পিউট রিসোর্স তৈরি করার সময় কিছু গুরুত্বপূর্ণ বিষয় বিবেচনা করতে হয়, এবং এই সিদ্ধান্তগুলো অত্যন্ত গুরুত্বপূর্ণ হতে পারে। + +**আপনার কি CPU নাকি GPU প্রয়োজন?** + +CPU (Central Processing Unit) হলো একটি ইলেকট্রনিক সার্কিট যা কম্পিউটার প্রোগ্রামের নির্দেশাবলী সম্পাদন করে। GPU (Graphics Processing Unit) হলো একটি বিশেষায়িত ইলেকট্রনিক সার্কিট যা গ্রাফিক্স-সম্পর্কিত কোড খুব দ্রুত সম্পাদন করতে পারে। + +CPU এবং GPU আর্কিটেকচারের প্রধান পার্থক্য হলো CPU বিভিন্ন কাজ দ্রুত সম্পাদন করার জন্য ডিজাইন করা হয়েছে (যেমন CPU ক্লক স্পিড দ্বারা পরিমাপ করা হয়), তবে এটি একসঙ্গে অনেক কাজ চালানোর ক্ষেত্রে সীমাবদ্ধ। GPU সমান্তরাল কম্পিউটিংয়ের জন্য ডিজাইন করা হয়েছে এবং তাই এটি ডিপ লার্নিং কাজের জন্য অনেক বেশি কার্যকর। + +| CPU | GPU | +|-----------------------------------------|-----------------------------| +| কম ব্যয়বহুল | বেশি ব্যয়বহুল | +| কম সমান্তরাল ক্ষমতা | বেশি সমান্তরাল ক্ষমতা | +| ডিপ লার্নিং মডেল প্রশিক্ষণে ধীর | ডিপ লার্নিংয়ের জন্য উপযুক্ত | + +**ক্লাস্টারের আকার** + +বড় ক্লাস্টার বেশি ব্যয়বহুল, তবে এটি আরও ভালো প্রতিক্রিয়াশীলতা প্রদান করবে। তাই, যদি আপনার সময় থাকে কিন্তু বাজেট কম থাকে, তাহলে ছোট ক্লাস্টার দিয়ে শুরু করুন। বিপরীতে, যদি আপনার বাজেট থাকে কিন্তু সময় কম থাকে, তাহলে বড় ক্লাস্টার দিয়ে শুরু করুন। + +**VM আকার** + +আপনার সময় এবং বাজেটের সীমাবদ্ধতার উপর নির্ভর করে, আপনি RAM, ডিস্ক, কোর সংখ্যা এবং ক্লক স্পিডের আকার পরিবর্তন করতে পারেন। এই সমস্ত প্যারামিটার বাড়ালে খরচ বাড়বে, তবে পারফরম্যান্স উন্নত হবে। + +**ডেডিকেটেড নাকি লো-প্রায়োরিটি ইনস্ট্যান্স?** + +লো-প্রায়োরিটি ইনস্ট্যান্স মানে এটি বাধাগ্রস্ত হতে পারে: মূলত, Microsoft Azure এই রিসোর্সগুলো অন্য কাজে ব্যবহার করতে পারে, ফলে একটি কাজ বাধাগ্রস্ত হতে পারে। একটি ডেডিকেটেড ইনস্ট্যান্স, বা নন-ইন্টারাপ্টেবল, মানে কাজটি আপনার অনুমতি ছাড়া কখনো বন্ধ হবে না। +এটি আবার সময় বনাম অর্থের একটি বিবেচনা, কারণ লো-প্রায়োরিটি ইনস্ট্যান্স ডেডিকেটেড ইনস্ট্যান্সের তুলনায় কম ব্যয়বহুল। + +#### 2.2.2 একটি কম্পিউট ক্লাস্টার তৈরি করা + +আমরা আগে তৈরি করা [Azure ML ওয়ার্কস্পেসে](https://ml.azure.com/) যান, "Compute" এ ক্লিক করুন এবং আপনি বিভিন্ন কম্পিউট রিসোর্স দেখতে পাবেন (যেমন কম্পিউট ইনস্ট্যান্স, কম্পিউট ক্লাস্টার, ইনফারেন্স ক্লাস্টার এবং সংযুক্ত কম্পিউট)। এই প্রকল্পের জন্য, আমাদের মডেল প্রশিক্ষণের জন্য একটি কম্পিউট ক্লাস্টার প্রয়োজন। Studio-তে, "Compute" মেনুতে যান, তারপর "Compute cluster" ট্যাবে ক্লিক করুন এবং "+ New" বোতামে ক্লিক করে একটি কম্পিউট ক্লাস্টার তৈরি করুন। + +![22](../../../../translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.bn.png) + +1. আপনার বিকল্প নির্বাচন করুন: ডেডিকেটেড বনাম লো-প্রায়োরিটি, CPU বা GPU, VM আকার এবং কোর সংখ্যা (এই প্রকল্পের জন্য ডিফল্ট সেটিংস রাখতে পারেন)। +2. "Next" বোতামে ক্লিক করুন। + +![23](../../../../translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.bn.png) + +3. ক্লাস্টারের জন্য একটি নাম দিন। +4. আপনার বিকল্প নির্বাচন করুন: ন্যূনতম/সর্বাধিক নোড সংখ্যা, স্কেল ডাউন করার আগে নিষ্ক্রিয় সেকেন্ড, SSH অ্যাক্সেস। মনে রাখবেন, যদি ন্যূনতম নোড সংখ্যা 0 হয়, তাহলে ক্লাস্টার নিষ্ক্রিয় থাকলে আপনি অর্থ সাশ্রয় করবেন। সর্বাধিক নোড সংখ্যা যত বেশি হবে, প্রশিক্ষণ তত দ্রুত হবে। সর্বাধিক নোড সংখ্যা 3 সুপারিশ করা হয়। +5. "Create" বোতামে ক্লিক করুন। এই ধাপটি কয়েক মিনিট সময় নিতে পারে। + +![29](../../../../translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.bn.png) + +অসাধারণ! এখন আমাদের একটি কম্পিউট ক্লাস্টার রয়েছে, আমরা Azure ML Studio-তে ডেটা লোড করতে পারি। + +### 2.3 ডেটাসেট লোড করা + +1. আমরা আগে তৈরি করা [Azure ML ওয়ার্কস্পেসে](https://ml.azure.com/) যান, বাম মেনুতে "Datasets" এ ক্লিক করুন এবং "+ Create dataset" বোতামে ক্লিক করে একটি ডেটাসেট তৈরি করুন। "From local files" বিকল্পটি নির্বাচন করুন এবং আমরা আগে ডাউনলোড করা Kaggle ডেটাসেটটি নির্বাচন করুন। + + ![24](../../../../translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.bn.png) + +2. আপনার ডেটাসেটের জন্য একটি নাম, টাইপ এবং বিবরণ দিন। "Next" এ ক্লিক করুন। ফাইল থেকে ডেটা আপলোড করুন। "Next" এ ক্লিক করুন। + + ![25](../../../../translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.bn.png) + +3. স্কিমায়, নিম্নলিখিত বৈশিষ্ট্যগুলির জন্য ডেটা টাইপ Boolean-এ পরিবর্তন করুন: anaemia, diabetes, high blood pressure, sex, smoking, এবং DEATH_EVENT। "Next" এ ক্লিক করুন এবং "Create" এ ক্লিক করুন। + + ![26](../../../../translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.bn.png) + +দারুণ! এখন ডেটাসেট প্রস্তুত এবং কম্পিউট ক্লাস্টার তৈরি হয়েছে, আমরা মডেল প্রশিক্ষণ শুরু করতে পারি! + +### 2.4 লো কোড/নো কোড প্রশিক্ষণ AutoML দিয়ে + +প্রথাগত মেশিন লার্নিং মডেল ডেভেলপমেন্ট সময়সাপেক্ষ, উল্লেখযোগ্য ডোমেইন জ্ঞান এবং একাধিক মডেল তৈরি ও তুলনা করার জন্য প্রচুর সময় প্রয়োজন। +Automated Machine Learning (AutoML) হলো মেশিন লার্নিং মডেল ডেভেলপমেন্টের সময়সাপেক্ষ, পুনরাবৃত্তিমূলক কাজগুলো স্বয়ংক্রিয় করার প্রক্রিয়া। এটি ডেটা বিজ্ঞানী, বিশ্লেষক এবং ডেভেলপারদের উচ্চ স্কেল, দক্ষতা এবং উৎপাদনশীলতার সাথে ML মডেল তৈরি করতে সহায়তা করে, মডেলের গুণমান বজায় রেখে। এটি উৎপাদন-প্রস্তুত ML মডেল তৈরি করার সময় কমিয়ে দেয়, সহজে এবং দক্ষতার সাথে। [আরও জানুন](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +1. আমরা আগে তৈরি করা [Azure ML ওয়ার্কস্পেসে](https://ml.azure.com/) যান, বাম মেনুতে "Automated ML" এ ক্লিক করুন এবং আপনি যে ডেটাসেটটি আপলোড করেছেন তা নির্বাচন করুন। "Next" এ ক্লিক করুন। + + ![27](../../../../translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.bn.png) + +2. একটি নতুন এক্সপেরিমেন্ট নাম, টার্গেট কলাম (DEATH_EVENT) এবং আমরা তৈরি করা কম্পিউট ক্লাস্টারটি প্রবেশ করান। "Next" এ ক্লিক করুন। + + ![28](../../../../translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.bn.png) + +3. "Classification" নির্বাচন করুন এবং "Finish" এ ক্লিক করুন। এই ধাপটি কম্পিউট ক্লাস্টারের আকারের উপর নির্ভর করে ৩০ মিনিট থেকে ১ ঘণ্টা সময় নিতে পারে। + + ![30](../../../../translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.bn.png) + +4. রান সম্পন্ন হলে, "Automated ML" ট্যাবে ক্লিক করুন, আপনার রান নির্বাচন করুন এবং "Best model summary" কার্ডে অ্যালগরিদমে ক্লিক করুন। + + ![31](../../../../translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.bn.png) + +এখানে আপনি AutoML দ্বারা তৈরি করা সেরা মডেলের বিস্তারিত বিবরণ দেখতে পাবেন। "Models" ট্যাবে অন্যান্য মডেলগুলোও অন্বেষণ করতে পারেন। কয়েক মিনিট সময় নিয়ে মডেলগুলো এবং "Explanations (preview)" বোতামে বিশ্লেষণ করুন। একবার আপনি যে মডেলটি ব্যবহার করতে চান তা নির্বাচন করলে (এখানে আমরা AutoML দ্বারা নির্বাচিত সেরা মডেলটি বেছে নেব), আমরা এটি কীভাবে ডিপ্লয় করতে পারি তা দেখব। + +## 3. লো কোড/নো কোড মডেল ডিপ্লয়মেন্ট এবং এন্ডপয়েন্ট ব্যবহার +### 3.1 মডেল ডিপ্লয়মেন্ট + +Automated Machine Learning ইন্টারফেস আপনাকে কয়েকটি ধাপে সেরা মডেলটি একটি ওয়েব সার্ভিস হিসেবে ডিপ্লয় করতে দেয়। ডিপ্লয়মেন্ট হলো মডেলকে একীভূত করা যাতে এটি নতুন ডেটার উপর ভিত্তি করে পূর্বাভাস দিতে পারে এবং সম্ভাব্য সুযোগ চিহ্নিত করতে পারে। এই প্রকল্পের জন্য, ওয়েব সার্ভিসে ডিপ্লয়মেন্ট মানে হলো মেডিকেল অ্যাপ্লিকেশনগুলো মডেলটি ব্যবহার করে তাদের রোগীদের হার্ট অ্যাটাকের ঝুঁকি পূর্বাভাস দিতে পারবে। + +সেরা মডেলের বিবরণে "Deploy" বোতামে ক্লিক করুন। + +![deploy-1](../../../../translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.bn.png) + +15. একটি নাম, বিবরণ, কম্পিউট টাইপ (Azure Container Instance), প্রমাণীকরণ সক্রিয় করুন এবং "Deploy" এ ক্লিক করুন। এই ধাপটি প্রায় ২০ মিনিট সময় নিতে পারে। ডিপ্লয়মেন্ট প্রক্রিয়ায় মডেল নিবন্ধন, রিসোর্স তৈরি এবং ওয়েব সার্ভিসের জন্য কনফিগার করা অন্তর্ভুক্ত। "Deploy status"-এর অধীনে একটি স্ট্যাটাস বার্তা প্রদর্শিত হয়। স্ট্যাটাস পরীক্ষা করতে "Refresh" নির্বাচন করুন। স্ট্যাটাস "Healthy" হলে এটি ডিপ্লয় এবং চালু হয়েছে। + +![deploy-2](../../../../translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.bn.png) + +16. একবার এটি ডিপ্লয় হয়ে গেলে, "Endpoint" ট্যাবে ক্লিক করুন এবং আপনি যে এন্ডপয়েন্টটি ডিপ্লয় করেছেন তাতে ক্লিক করুন। এখানে আপনি এন্ডপয়েন্ট সম্পর্কে সমস্ত বিবরণ খুঁজে পাবেন। + +![deploy-3](../../../../translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.bn.png) + +অসাধারণ! এখন আমাদের একটি মডেল ডিপ্লয় করা হয়েছে, আমরা এন্ডপয়েন্ট ব্যবহার শুরু করতে পারি। + +### 3.2 এন্ডপয়েন্ট ব্যবহার + +"Consume" ট্যাবে ক্লিক করুন। এখানে আপনি REST এন্ডপয়েন্ট এবং কনজাম্পশন অপশনে একটি পাইথন স্ক্রিপ্ট খুঁজে পাবেন। পাইথন কোডটি পড়তে কিছু সময় নিন। + +এই স্ক্রিপ্টটি সরাসরি আপনার লোকাল মেশিন থেকে চালানো যেতে পারে এবং এটি আপনার এন্ডপয়েন্ট ব্যবহার করবে। + +![35](../../../../translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.bn.png) + +এই দুটি লাইনের কোড পরীক্ষা করুন: + +```python +url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score' +api_key = '' # Replace this with the API key for the web service +``` +`url` ভেরিয়েবলটি কনজাম্পশন ট্যাবে পাওয়া REST এন্ডপয়েন্ট এবং `api_key` ভেরিয়েবলটি প্রাথমিক কী (যদি আপনি প্রমাণীকরণ সক্রিয় করে থাকেন)। এইভাবেই স্ক্রিপ্টটি এন্ডপয়েন্ট ব্যবহার করতে পারে। + +18. স্ক্রিপ্ট চালানোর পরে, আপনি নিম্নলিখিত আউটপুট দেখতে পাবেন: + ```python + b'"{\\"result\\": [true]}"' + ``` +এটি বোঝায় যে প্রদত্ত ডেটার জন্য হার্ট ফেলিওরের পূর্বাভাস সত্য। এটি যৌক্তিক কারণ স্ক্রিপ্টে স্বয়ংক্রিয়ভাবে তৈরি করা ডেটা আরও ঘনিষ্ঠভাবে দেখলে দেখা যায়, সবকিছু ডিফল্টভাবে 0 এবং মিথ্যা। আপনি নিম্নলিখিত ইনপুট নমুনা দিয়ে ডেটা পরিবর্তন করতে পারেন: + +```python +data = { + "data": + [ + { + 'age': "0", + 'anaemia': "false", + 'creatinine_phosphokinase': "0", + 'diabetes': "false", + 'ejection_fraction': "0", + 'high_blood_pressure': "false", + 'platelets': "0", + 'serum_creatinine': "0", + 'serum_sodium': "0", + 'sex': "false", + 'smoking': "false", + 'time': "0", + }, + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} +``` +স্ক্রিপ্টটি নিম্নলিখিত আউটপুট প্রদান করবে: + ```python + b'"{\\"result\\": [true, false]}"' + ``` + +অভিনন্দন! আপনি Azure ML-এ মডেল প্রশিক্ষণ এবং ডিপ্লয় করে এটি ব্যবহার করলেন! + +> **_NOTE:_** প্রকল্প শেষ হলে, সমস্ত রিসোর্স মুছে ফেলতে ভুলবেন না। +## 🚀 চ্যালেঞ্জ + +AutoML দ্বারা তৈরি শীর্ষ মডেলগুলোর ব্যাখ্যা এবং বিশদ বিবরণ ঘনিষ্ঠভাবে দেখুন। বোঝার চেষ্টা করুন কেন সেরা মডেলটি অন্যগুলোর চেয়ে ভালো। কোন অ্যালগরিদমগুলো তুলনা করা হয়েছিল? তাদের মধ্যে পার্থক্য কী? কেন এই ক্ষেত্রে সেরা মডেলটি ভালো পারফর্ম করছে? + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/35) + +## পুনরালোচনা ও স্ব-অধ্যয়ন + +এই পাঠে, আপনি ক্লাউডে লো কোড/নো কোড পদ্ধতিতে হার্ট ফেলিওর ঝুঁকি পূর্বাভাসের জন্য একটি মডেল প্রশিক্ষণ, ডিপ্লয় এবং ব্যবহার করতে শিখেছেন। যদি আপনি এখনও না করে থাকেন, AutoML দ্বারা তৈরি শীর্ষ মডেলগুলোর ব্যাখ্যা আরও গভীরভাবে দেখুন এবং বোঝার চেষ্টা করুন কেন সেরা মডেলটি অন্যগুলোর চেয়ে ভালো। + +লো কোড/নো কোড AutoML সম্পর্কে আরও জানতে এই [ডকুমেন্টেশন](https://docs.microsoft.com/azure/machine-learning/tutorial-first-experiment-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) পড়ুন। + +## অ্যাসাইনমেন্ট + +[Azure ML-এ লো কোড/নো কোড ডেটা সায়েন্স প্রকল্প](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/assignment.md b/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/assignment.md new file mode 100644 index 00000000..32596699 --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/18-Low-Code/assignment.md @@ -0,0 +1,25 @@ + +# Azure ML-এ Low code/No code ডেটা সায়েন্স প্রকল্প + +## নির্দেশাবলী + +আমরা দেখেছি কীভাবে Azure ML প্ল্যাটফর্ম ব্যবহার করে Low code/No code পদ্ধতিতে একটি মডেল প্রশিক্ষণ, স্থাপন এবং ব্যবহার করা যায়। এখন এমন কিছু ডেটা খুঁজে বের করুন যা আপনি অন্য একটি মডেল প্রশিক্ষণ, স্থাপন এবং ব্যবহার করার জন্য কাজে লাগাতে পারেন। আপনি [Kaggle](https://kaggle.com) এবং [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) থেকে ডেটাসেট খুঁজে দেখতে পারেন। + +## মূল্যায়ন মানদণ্ড + +| চমৎকার | যথেষ্ট | উন্নতির প্রয়োজন | +|---------|--------|------------------| +|ডেটা আপলোড করার সময়, প্রয়োজনে ফিচারের ধরণ পরিবর্তন করেছেন। প্রয়োজন হলে ডেটা পরিষ্কার করেছেন। AutoML-এর মাধ্যমে একটি ডেটাসেটে প্রশিক্ষণ চালিয়েছেন এবং মডেলের ব্যাখ্যা পরীক্ষা করেছেন। সেরা মডেলটি স্থাপন করেছেন এবং এটি ব্যবহার করতে পেরেছেন। | ডেটা আপলোড করার সময়, প্রয়োজনে ফিচারের ধরণ পরিবর্তন করেছেন। AutoML-এর মাধ্যমে একটি ডেটাসেটে প্রশিক্ষণ চালিয়েছেন, সেরা মডেলটি স্থাপন করেছেন এবং এটি ব্যবহার করতে পেরেছেন। | AutoML দ্বারা প্রশিক্ষিত সেরা মডেলটি স্থাপন করেছেন এবং এটি ব্যবহার করতে পেরেছেন। | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/19-Azure/README.md b/translations/bn/5-Data-Science-In-Cloud/19-Azure/README.md new file mode 100644 index 00000000..4d3220ab --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/19-Azure/README.md @@ -0,0 +1,312 @@ + +# ক্লাউডে ডেটা সায়েন্স: "Azure ML SDK" পদ্ধতি + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/19-DataScience-Cloud.png)| +|:---:| +| ক্লাউডে ডেটা সায়েন্স: Azure ML SDK - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +সূচিপত্র: + +- [ক্লাউডে ডেটা সায়েন্স: "Azure ML SDK" পদ্ধতি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [পূর্ব-লেকচার কুইজ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [১. পরিচিতি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [১.১ Azure ML SDK কী?](../../../../5-Data-Science-In-Cloud/19-Azure) + - [১.২ হার্ট ফেইলিউর প্রেডিকশন প্রকল্প এবং ডেটাসেট পরিচিতি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২. Azure ML SDK দিয়ে একটি মডেল প্রশিক্ষণ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.১ Azure ML ওয়ার্কস্পেস তৈরি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.২ কম্পিউট ইনস্ট্যান্স তৈরি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.৩ ডেটাসেট লোড করা](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.৪ নোটবুক তৈরি](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.৫ মডেল প্রশিক্ষণ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.৫.১ ওয়ার্কস্পেস, এক্সপেরিমেন্ট, কম্পিউট ক্লাস্টার এবং ডেটাসেট সেটআপ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [২.৫.২ AutoML কনফিগারেশন এবং প্রশিক্ষণ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [৩. Azure ML SDK দিয়ে মডেল ডিপ্লয়মেন্ট এবং এন্ডপয়েন্ট ব্যবহার](../../../../5-Data-Science-In-Cloud/19-Azure) + - [৩.১ সেরা মডেল সংরক্ষণ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [৩.২ মডেল ডিপ্লয়মেন্ট](../../../../5-Data-Science-In-Cloud/19-Azure) + - [৩.৩ এন্ডপয়েন্ট ব্যবহার](../../../../5-Data-Science-In-Cloud/19-Azure) + - [🚀 চ্যালেঞ্জ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [পোস্ট-লেকচার কুইজ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [পর্যালোচনা এবং স্ব-অধ্যয়ন](../../../../5-Data-Science-In-Cloud/19-Azure) + - [অ্যাসাইনমেন্ট](../../../../5-Data-Science-In-Cloud/19-Azure) + +## [পূর্ব-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/36) + +## ১. পরিচিতি + +### ১.১ Azure ML SDK কী? + +ডেটা বিজ্ঞানী এবং AI ডেভেলপাররা Azure Machine Learning SDK ব্যবহার করে Azure Machine Learning সার্ভিসের মাধ্যমে মেশিন লার্নিং ওয়ার্কফ্লো তৈরি এবং চালান। আপনি যেকোনো Python পরিবেশে এই সার্ভিসের সাথে ইন্টারঅ্যাক্ট করতে পারেন, যেমন Jupyter Notebooks, Visual Studio Code, বা আপনার পছন্দের Python IDE। + +SDK-এর মূল ক্ষেত্রগুলো অন্তর্ভুক্ত করে: + +- মেশিন লার্নিং এক্সপেরিমেন্টে ব্যবহৃত ডেটাসেটের জীবনচক্র অন্বেষণ, প্রস্তুত এবং পরিচালনা। +- মেশিন লার্নিং এক্সপেরিমেন্টের জন্য ক্লাউড রিসোর্স পরিচালনা, লগিং এবং সংগঠিত করা। +- মডেল প্রশিক্ষণ স্থানীয়ভাবে বা ক্লাউড রিসোর্স ব্যবহার করে, যার মধ্যে GPU-অ্যাক্সিলারেটেড মডেল প্রশিক্ষণ অন্তর্ভুক্ত। +- স্বয়ংক্রিয় মেশিন লার্নিং ব্যবহার করা, যা কনফিগারেশন প্যারামিটার এবং প্রশিক্ষণ ডেটা গ্রহণ করে। এটি অ্যালগরিদম এবং হাইপারপ্যারামিটার সেটিংসের মাধ্যমে স্বয়ংক্রিয়ভাবে পুনরাবৃত্তি করে সেরা মডেল খুঁজে বের করে। +- প্রশিক্ষিত মডেলকে RESTful সার্ভিসে রূপান্তর করতে ওয়েব সার্ভিস ডিপ্লয় করা, যা যেকোনো অ্যাপ্লিকেশনে ব্যবহার করা যায়। + +[Azure Machine Learning SDK সম্পর্কে আরও জানুন](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +[পূর্ববর্তী পাঠে](../18-Low-Code/README.md), আমরা দেখেছি কীভাবে Low code/No code পদ্ধতিতে একটি মডেল প্রশিক্ষণ, ডিপ্লয় এবং ব্যবহার করা যায়। আমরা হার্ট ফেইলিউর ডেটাসেট ব্যবহার করে একটি হার্ট ফেইলিউর প্রেডিকশন মডেল তৈরি করেছি। এই পাঠে, আমরা একই কাজ করব কিন্তু Azure Machine Learning SDK ব্যবহার করে। + +![প্রকল্পের স্কিমা](../../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.bn.png) + +### ১.২ হার্ট ফেইলিউর প্রেডিকশন প্রকল্প এবং ডেটাসেট পরিচিতি + +হার্ট ফেইলিউর প্রেডিকশন প্রকল্প এবং ডেটাসেট পরিচিতির জন্য [এখানে দেখুন](../18-Low-Code/README.md)। + +## ২. Azure ML SDK দিয়ে একটি মডেল প্রশিক্ষণ +### ২.১ Azure ML ওয়ার্কস্পেস তৈরি + +সহজতার জন্য, আমরা একটি জুপিটার নোটবুকে কাজ করব। এর মানে আপনি ইতিমধ্যেই একটি ওয়ার্কস্পেস এবং একটি কম্পিউট ইনস্ট্যান্স তৈরি করেছেন। যদি আপনার ওয়ার্কস্পেস থাকে, আপনি সরাসরি ২.৩ নোটবুক তৈরি বিভাগে যেতে পারেন। + +যদি না থাকে, [পূর্ববর্তী পাঠে](../18-Low-Code/README.md) **২.১ Azure ML ওয়ার্কস্পেস তৈরি** বিভাগে নির্দেশনা অনুসরণ করুন। + +### ২.২ কম্পিউট ইনস্ট্যান্স তৈরি + +[Azure ML ওয়ার্কস্পেস](https://ml.azure.com/) এ যান যা আমরা আগে তৈরি করেছি। কম্পিউট মেনুতে যান এবং আপনি বিভিন্ন কম্পিউট রিসোর্স দেখতে পাবেন। + +![কম্পিউট ইনস্ট্যান্স ১](../../../../translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.bn.png) + +জুপিটার নোটবুক প্রভিশন করার জন্য একটি কম্পিউট ইনস্ট্যান্স তৈরি করুন। +1. + New বোতামে ক্লিক করুন। +2. আপনার কম্পিউট ইনস্ট্যান্সের একটি নাম দিন। +3. আপনার অপশন নির্বাচন করুন: CPU বা GPU, VM সাইজ এবং কোর সংখ্যা। +4. Create বোতামে ক্লিক করুন। + +অভিনন্দন, আপনি একটি কম্পিউট ইনস্ট্যান্স তৈরি করেছেন! আমরা এই কম্পিউট ইনস্ট্যান্সটি [নোটবুক তৈরি](../../../../5-Data-Science-In-Cloud/19-Azure) বিভাগে ব্যবহার করব। + +### ২.৩ ডেটাসেট লোড করা +যদি আপনি এখনও ডেটাসেট আপলোড না করে থাকেন, [পূর্ববর্তী পাঠে](../18-Low-Code/README.md) **২.৩ ডেটাসেট লোড করা** বিভাগটি দেখুন। + +### ২.৪ নোটবুক তৈরি + +> **_NOTE:_** পরবর্তী ধাপের জন্য আপনি নতুন নোটবুক তৈরি করতে পারেন অথবা [আমরা তৈরি করা নোটবুক](notebook.ipynb) আপলোড করতে পারেন। আপলোড করতে, "Notebook" মেনুতে ক্লিক করুন এবং নোটবুকটি আপলোড করুন। + +নোটবুক ডেটা সায়েন্স প্রক্রিয়ার একটি গুরুত্বপূর্ণ অংশ। এগুলো ব্যবহার করে Exploratory Data Analysis (EDA) করা যায়, কম্পিউট ক্লাস্টারে মডেল প্রশিক্ষণ করা যায়, এবং ইনফারেন্স ক্লাস্টারে এন্ডপয়েন্ট ডিপ্লয় করা যায়। + +নোটবুক তৈরি করতে, আমাদের একটি কম্পিউট নোড দরকার যা জুপিটার নোটবুক ইনস্ট্যান্স সরবরাহ করছে। [Azure ML ওয়ার্কস্পেস](https://ml.azure.com/) এ ফিরে যান এবং কম্পিউট ইনস্ট্যান্সে ক্লিক করুন। কম্পিউট ইনস্ট্যান্সের তালিকায় আপনি [আগে তৈরি করা কম্পিউট ইনস্ট্যান্স](../../../../5-Data-Science-In-Cloud/19-Azure) দেখতে পাবেন। + +1. Applications বিভাগে, Jupyter অপশনে ক্লিক করুন। +2. "Yes, I understand" বক্সে টিক দিন এবং Continue বোতামে ক্লিক করুন। +![নোটবুক ১](../../../../translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.bn.png) +3. এটি একটি নতুন ব্রাউজার ট্যাব খুলবে যেখানে আপনার জুপিটার নোটবুক ইনস্ট্যান্স থাকবে। "New" বোতামে ক্লিক করে একটি নোটবুক তৈরি করুন। + +![নোটবুক ২](../../../../translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.bn.png) + +এখন আমাদের একটি নোটবুক আছে, আমরা Azure ML SDK দিয়ে মডেল প্রশিক্ষণ শুরু করতে পারি। + +### ২.৫ মডেল প্রশিক্ষণ + +প্রথমত, যদি আপনার কখনো সন্দেহ হয়, [Azure ML SDK ডকুমেন্টেশন](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) দেখুন। এটি এই পাঠে আমরা যে মডিউলগুলো দেখব তার সমস্ত প্রয়োজনীয় তথ্য ধারণ করে। + +#### ২.৫.১ ওয়ার্কস্পেস, এক্সপেরিমেন্ট, কম্পিউট ক্লাস্টার এবং ডেটাসেট সেটআপ + +আপনাকে নিম্নলিখিত কোড ব্যবহার করে কনফিগারেশন ফাইল থেকে `workspace` লোড করতে হবে: + +```python +from azureml.core import Workspace +ws = Workspace.from_config() +``` + +এটি `Workspace` টাইপের একটি অবজেক্ট রিটার্ন করে যা ওয়ার্কস্পেসকে উপস্থাপন করে। এরপর আপনাকে নিম্নলিখিত কোড ব্যবহার করে একটি `experiment` তৈরি করতে হবে: + +```python +from azureml.core import Experiment +experiment_name = 'aml-experiment' +experiment = Experiment(ws, experiment_name) +``` +ওয়ার্কস্পেস থেকে একটি এক্সপেরিমেন্ট পেতে বা তৈরি করতে, আপনাকে এক্সপেরিমেন্টের নাম ব্যবহার করে এটি অনুরোধ করতে হবে। এক্সপেরিমেন্টের নাম ৩-৩৬ অক্ষরের মধ্যে হতে হবে, একটি অক্ষর বা সংখ্যার মাধ্যমে শুরু করতে হবে এবং শুধুমাত্র অক্ষর, সংখ্যা, আন্ডারস্কোর এবং ড্যাশ থাকতে পারে। যদি ওয়ার্কস্পেসে এক্সপেরিমেন্ট না পাওয়া যায়, একটি নতুন এক্সপেরিমেন্ট তৈরি করা হয়। + +এখন আপনাকে নিম্নলিখিত কোড ব্যবহার করে প্রশিক্ষণের জন্য একটি কম্পিউট ক্লাস্টার তৈরি করতে হবে। মনে রাখবেন, এই ধাপটি কয়েক মিনিট সময় নিতে পারে। + +```python +from azureml.core.compute import AmlCompute + +aml_name = "heart-f-cluster" +try: + aml_compute = AmlCompute(ws, aml_name) + print('Found existing AML compute context.') +except: + print('Creating new AML compute context.') + aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3) + aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config) + aml_compute.wait_for_completion(show_output = True) + +cts = ws.compute_targets +compute_target = cts[aml_name] +``` + +আপনি নিম্নলিখিত পদ্ধতিতে ওয়ার্কস্পেস থেকে ডেটাসেট পেতে পারেন: + +```python +dataset = ws.datasets['heart-failure-records'] +df = dataset.to_pandas_dataframe() +df.describe() +``` +#### ২.৫.২ AutoML কনফিগারেশন এবং প্রশিক্ষণ + +AutoML কনফিগারেশন সেট করতে, [AutoMLConfig ক্লাস](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) ব্যবহার করুন। + +ডকুমেন্টেশনে বর্ণিত হিসাবে, আপনি অনেক প্যারামিটারের সাথে কাজ করতে পারেন। এই প্রকল্পের জন্য, আমরা নিম্নলিখিত প্যারামিটার ব্যবহার করব: + +- `experiment_timeout_minutes`: এক্সপেরিমেন্ট চালানোর জন্য সর্বাধিক সময় (মিনিটে)। +- `max_concurrent_iterations`: এক্সপেরিমেন্টের জন্য অনুমোদিত সর্বাধিক একযোগে প্রশিক্ষণ পুনরাবৃত্তি। +- `primary_metric`: এক্সপেরিমেন্টের স্ট্যাটাস নির্ধারণের জন্য ব্যবহৃত প্রাথমিক মেট্রিক। +- `compute_target`: Automated Machine Learning এক্সপেরিমেন্ট চালানোর জন্য Azure Machine Learning কম্পিউট টার্গেট। +- `task`: চালানোর জন্য টাস্কের ধরন। 'classification', 'regression', বা 'forecasting' হতে পারে। +- `training_data`: এক্সপেরিমেন্টে ব্যবহৃত প্রশিক্ষণ ডেটা। এতে প্রশিক্ষণ বৈশিষ্ট্য এবং একটি লেবেল কলাম থাকতে হবে। +- `label_column_name`: লেবেল কলামের নাম। +- `path`: Azure Machine Learning প্রকল্প ফোল্ডারের সম্পূর্ণ পথ। +- `enable_early_stopping`: স্কোর স্বল্পমেয়াদে উন্নত না হলে প্রাথমিকভাবে বন্ধ করার অনুমতি। +- `featurization`: স্বয়ংক্রিয় বা কাস্টমাইজড ফিচারাইজেশন ব্যবহার করা হবে কিনা। +- `debug_log`: ডিবাগ তথ্য লেখার জন্য লগ ফাইল। + +```python +from azureml.train.automl import AutoMLConfig + +project_folder = './aml-project' + +automl_settings = { + "experiment_timeout_minutes": 20, + "max_concurrent_iterations": 3, + "primary_metric" : 'AUC_weighted' +} + +automl_config = AutoMLConfig(compute_target=compute_target, + task = "classification", + training_data=dataset, + label_column_name="DEATH_EVENT", + path = project_folder, + enable_early_stopping= True, + featurization= 'auto', + debug_log = "automl_errors.log", + **automl_settings + ) +``` +এখন আপনার কনফিগারেশন সেট হয়ে গেছে, আপনি নিম্নলিখিত কোড ব্যবহার করে মডেল প্রশিক্ষণ করতে পারেন। এই ধাপটি আপনার ক্লাস্টার সাইজের উপর নির্ভর করে এক ঘণ্টা পর্যন্ত সময় নিতে পারে। + +```python +remote_run = experiment.submit(automl_config) +``` +আপনি RunDetails উইজেট চালাতে পারেন যা বিভিন্ন এক্সপেরিমেন্ট দেখায়। +```python +from azureml.widgets import RunDetails +RunDetails(remote_run).show() +``` +## ৩. Azure ML SDK দিয়ে মডেল ডিপ্লয়মেন্ট এবং এন্ডপয়েন্ট ব্যবহার + +### ৩.১ সেরা মডেল সংরক্ষণ + +`remote_run` [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) টাইপের একটি অবজেক্ট। এই অবজেক্টে `get_output()` মেথড রয়েছে যা সেরা রান এবং সংশ্লিষ্ট ফিটেড মডেল রিটার্ন করে। + +```python +best_run, fitted_model = remote_run.get_output() +``` +আপনি ফিটেড মডেল প্রিন্ট করে সেরা মডেলের ব্যবহৃত প্যারামিটার দেখতে পারেন এবং [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) মেথড ব্যবহার করে সেরা মডেলের বৈশিষ্ট্য দেখতে পারেন। + +```python +best_run.get_properties() +``` + +এখন [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) মেথড ব্যবহার করে মডেল রেজিস্টার করুন। +```python +model_name = best_run.properties['model_name'] +script_file_name = 'inference/score.py' +best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py') +description = "aml heart failure project sdk" +model = best_run.register_model(model_name = model_name, + model_path = './outputs/', + description = description, + tags = None) +``` +### ৩.২ মডেল ডিপ্লয়মেন্ট + +সেরা মডেল সংরক্ষণ করার পর, আমরা [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109) ক্লাস ব্যবহার করে এটি ডিপ্লয় করতে পারি। InferenceConfig ডিপ্লয়মেন্টের জন্য কাস্টম পরিবেশের কনফিগারেশন সেটিংস উপস্থাপন করে। [AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) ক্লাস Azure Container Instances-এ ওয়েব সার্ভিস এন্ডপয়েন্ট হিসেবে একটি মেশিন লার্নিং মডেল ডিপ্লয় করা উপস্থাপন করে। একটি মডেল, স্ক্রিপ্ট এবং সংশ্লিষ্ট ফাইল থেকে একটি ডিপ্লয়ড সার্ভিস তৈরি করা হয়। ফলস্বরূপ ওয়েব সার্ভিস একটি লোড-ব্যালেন্সড, HTTP এন্ডপয়েন্ট সহ একটি REST API। আপনি এই API-তে ডেটা পাঠাতে পারেন এবং মডেলের দ্বারা রিটার্ন করা প্রেডিকশন পেতে পারেন। + +মডেলটি [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) মেথড ব্যবহার করে ডিপ্লয় করা হয়। + +```python +from azureml.core.model import InferenceConfig, Model +from azureml.core.webservice import AciWebservice + +inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment()) + +aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, + memory_gb = 1, + tags = {'type': "automl-heart-failure-prediction"}, + description = 'Sample service for AutoML Heart Failure Prediction') + +aci_service_name = 'automl-hf-sdk' +aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) +aci_service.wait_for_deployment(True) +print(aci_service.state) +``` +এই ধাপটি কয়েক মিনিট সময় নিতে পারে। + +### ৩.৩ এন্ডপয়েন্ট ব্যবহার + +আপনার এন্ডপয়েন্ট ব্যবহার করতে একটি নমুনা ইনপুট তৈরি করুন: + +```python +data = { + "data": + [ + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} + +test_sample = str.encode(json.dumps(data)) +``` +এরপর আপনি এই ইনপুটটি আপনার মডেলে প্রেডিকশনের জন্য পাঠাতে পারেন: +```python +response = aci_service.run(input_data=test_sample) +response +``` +এটি `'{"result": [false]}'` আউটপুট করবে। এর অর্থ হলো, আমরা যে রোগীর তথ্য এন্ডপয়েন্টে পাঠিয়েছি, সেটি `false` পূর্বাভাস তৈরি করেছে, যা বোঝায় যে এই ব্যক্তির হার্ট অ্যাটাক হওয়ার সম্ভাবনা নেই। + +অভিনন্দন! আপনি Azure ML SDK ব্যবহার করে Azure ML-এ প্রশিক্ষিত এবং ডিপ্লয় করা মডেলটি সফলভাবে ব্যবহার করেছেন! + +> **_NOTE:_** প্রকল্প শেষ করার পর, সমস্ত রিসোর্স মুছে ফেলতে ভুলবেন না। + +## 🚀 চ্যালেঞ্জ + +SDK ব্যবহার করে আরও অনেক কিছু করা সম্ভব, তবে দুর্ভাগ্যবশত আমরা এই পাঠে সবকিছু আলোচনা করতে পারি না। তবে ভালো খবর হলো, SDK ডকুমেন্টেশন কীভাবে দ্রুত পড়তে হয় তা শিখলে আপনি নিজে অনেক দূর এগিয়ে যেতে পারবেন। Azure ML SDK ডকুমেন্টেশনটি দেখুন এবং `Pipeline` ক্লাসটি খুঁজে বের করুন যা আপনাকে পাইপলাইন তৈরি করতে সাহায্য করে। একটি পাইপলাইন হলো ধাপগুলোর একটি সংগ্রহ যা একটি ওয়ার্কফ্লো হিসেবে কার্যকর করা যায়। + +**HINT:** [SDK ডকুমেন্টেশন](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) এ যান এবং সার্চ বারে "Pipeline" এর মতো কীওয়ার্ড টাইপ করুন। সার্চ রেজাল্টে `azureml.pipeline.core.Pipeline` ক্লাসটি পাওয়া উচিত। + +## [পোস্ট-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/37) + +## পর্যালোচনা ও স্ব-অধ্যয়ন + +এই পাঠে, আপনি শিখেছেন কীভাবে Azure ML SDK ব্যবহার করে ক্লাউডে হার্ট ফেইলিউর ঝুঁকি পূর্বাভাসের জন্য একটি মডেল প্রশিক্ষণ, ডিপ্লয় এবং ব্যবহার করতে হয়। Azure ML SDK সম্পর্কে আরও তথ্যের জন্য এই [ডকুমেন্টেশন](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) দেখুন। Azure ML SDK ব্যবহার করে আপনার নিজস্ব মডেল তৈরি করার চেষ্টা করুন। + +## অ্যাসাইনমেন্ট + +[Azure ML SDK ব্যবহার করে ডেটা সায়েন্স প্রকল্প](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/19-Azure/assignment.md b/translations/bn/5-Data-Science-In-Cloud/19-Azure/assignment.md new file mode 100644 index 00000000..287002ac --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/19-Azure/assignment.md @@ -0,0 +1,25 @@ + +# Azure ML SDK ব্যবহার করে ডেটা সায়েন্স প্রকল্প + +## নির্দেশাবলী + +আমরা দেখেছি কীভাবে Azure ML প্ল্যাটফর্ম ব্যবহার করে Azure ML SDK-এর মাধ্যমে একটি মডেল প্রশিক্ষণ, স্থাপন এবং ব্যবহার করা যায়। এখন এমন কিছু ডেটা খুঁজে বের করুন যা আপনি অন্য একটি মডেল প্রশিক্ষণ, স্থাপন এবং ব্যবহার করার জন্য কাজে লাগাতে পারেন। আপনি [Kaggle](https://kaggle.com) এবং [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) থেকে ডেটাসেট খুঁজে দেখতে পারেন। + +## মূল্যায়ন মানদণ্ড + +| চমৎকার | পর্যাপ্ত | উন্নতির প্রয়োজন | +|---------|----------|------------------| +|AutoML কনফিগারেশন করার সময়, আপনি SDK ডকুমেন্টেশন দেখে নিয়েছেন কোন কোন প্যারামিটার ব্যবহার করা যেতে পারে। আপনি Azure ML SDK ব্যবহার করে AutoML-এর মাধ্যমে একটি ডেটাসেটে প্রশিক্ষণ চালিয়েছেন এবং মডেলের ব্যাখ্যা পরীক্ষা করেছেন। আপনি সেরা মডেলটি স্থাপন করেছেন এবং Azure ML SDK ব্যবহার করে এটি ব্যবহার করতে পেরেছেন। | আপনি Azure ML SDK ব্যবহার করে AutoML-এর মাধ্যমে একটি ডেটাসেটে প্রশিক্ষণ চালিয়েছেন এবং মডেলের ব্যাখ্যা পরীক্ষা করেছেন। আপনি সেরা মডেলটি স্থাপন করেছেন এবং Azure ML SDK ব্যবহার করে এটি ব্যবহার করতে পেরেছেন। | আপনি Azure ML SDK ব্যবহার করে AutoML-এর মাধ্যমে একটি ডেটাসেটে প্রশিক্ষণ চালিয়েছেন। আপনি সেরা মডেলটি স্থাপন করেছেন এবং Azure ML SDK ব্যবহার করে এটি ব্যবহার করতে পেরেছেন। | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/5-Data-Science-In-Cloud/README.md b/translations/bn/5-Data-Science-In-Cloud/README.md new file mode 100644 index 00000000..835f8025 --- /dev/null +++ b/translations/bn/5-Data-Science-In-Cloud/README.md @@ -0,0 +1,35 @@ + +# ক্লাউডে ডেটা সায়েন্স + +![cloud-picture](../../../translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.bn.jpg) + +> ছবি: [Jelleke Vanooteghem](https://unsplash.com/@ilumire) [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) থেকে + +বড় ডেটার সাথে ডেটা সায়েন্স করার ক্ষেত্রে ক্লাউড একটি বড় পরিবর্তন আনতে পারে। পরবর্তী তিনটি পাঠে আমরা দেখব ক্লাউড কী এবং এটি কেন খুবই সহায়ক হতে পারে। আমরা একটি হার্ট ফেইলিউর ডেটাসেট বিশ্লেষণ করব এবং একটি মডেল তৈরি করব যা কারো হার্ট ফেইলিউরের সম্ভাবনা মূল্যায়নে সাহায্য করবে। আমরা ক্লাউডের শক্তি ব্যবহার করে মডেলটি প্রশিক্ষণ, ডিপ্লয় এবং দুটি ভিন্ন উপায়ে ব্যবহার করব। একটি উপায় শুধুমাত্র ব্যবহারকারীর ইন্টারফেস ব্যবহার করে "লো কোড/নো কোড" পদ্ধতিতে, অন্যটি Azure Machine Learning Software Developer Kit (Azure ML SDK) ব্যবহার করে। + +![project-schema](../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.bn.png) + +### বিষয়বস্তু + +1. [ডেটা সায়েন্সের জন্য ক্লাউড কেন ব্যবহার করবেন?](17-Introduction/README.md) +2. [ক্লাউডে ডেটা সায়েন্স: "লো কোড/নো কোড" পদ্ধতি](18-Low-Code/README.md) +3. [ক্লাউডে ডেটা সায়েন্স: "Azure ML SDK" পদ্ধতি](19-Azure/README.md) + +### কৃতজ্ঞতা +এই পাঠগুলো ☁️ এবং 💕 দিয়ে লিখেছেন [Maud Levy](https://twitter.com/maudstweets) এবং [Tiffany Souterre](https://twitter.com/TiffanySouterre) + +হার্ট ফেইলিউর প্রেডিকশন প্রকল্পের ডেটা সংগ্রহ করা হয়েছে [ +Larxel](https://www.kaggle.com/andrewmvd) থেকে [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data)। এটি [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) লাইসেন্সের অধীনে রয়েছে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/README.md b/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/README.md new file mode 100644 index 00000000..2e5f1b30 --- /dev/null +++ b/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/README.md @@ -0,0 +1,148 @@ + +# বাস্তব জগতে ডেটা সায়েন্স + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| বাস্তব জগতে ডেটা সায়েন্স - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +আমরা এই শেখার যাত্রার প্রায় শেষ প্রান্তে পৌঁছে গেছি! + +আমরা ডেটা সায়েন্স এবং নৈতিকতার সংজ্ঞা দিয়ে শুরু করেছি, ডেটা বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশনের বিভিন্ন টুল ও কৌশল নিয়ে আলোচনা করেছি, ডেটা সায়েন্স লাইফসাইকেল পর্যালোচনা করেছি এবং ক্লাউড কম্পিউটিং সার্ভিসের মাধ্যমে ডেটা সায়েন্স ওয়ার্কফ্লো স্কেলিং এবং অটোমেশন নিয়ে আলোচনা করেছি। এখন আপনি হয়তো ভাবছেন: _"এই শেখাগুলোকে বাস্তব জীবনের প্রেক্ষাপটে কীভাবে প্রয়োগ করব?"_ + +এই পাঠে, আমরা বিভিন্ন শিল্পে ডেটা সায়েন্সের বাস্তব প্রয়োগ নিয়ে আলোচনা করব এবং গবেষণা, ডিজিটাল মানবিকতা এবং টেকসই উন্নয়নের নির্দিষ্ট উদাহরণগুলোতে গভীরভাবে প্রবেশ করব। আমরা শিক্ষার্থীদের প্রকল্পের সুযোগ নিয়ে আলোচনা করব এবং আপনার শেখার যাত্রা চালিয়ে যাওয়ার জন্য প্রয়োজনীয় কিছু রিসোর্স দিয়ে শেষ করব! + +## প্রি-লেকচার কুইজ + +[প্রি-লেকচার কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/38) + +## ডেটা সায়েন্স + শিল্প + +এআই-এর গণতান্ত্রিকরণের জন্য ধন্যবাদ, এখন ডেভেলপাররা এআই-চালিত সিদ্ধান্ত গ্রহণ এবং ডেটা-চালিত অন্তর্দৃষ্টি ব্যবহারকারীর অভিজ্ঞতা এবং ডেভেলপমেন্ট ওয়ার্কফ্লোতে ডিজাইন এবং সংযুক্ত করা সহজতর করে তুলছেন। এখানে শিল্পে ডেটা সায়েন্সের বাস্তব প্রয়োগের কিছু উদাহরণ দেওয়া হলো: + + * [গুগল ফ্লু ট্রেন্ডস](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) ডেটা সায়েন্স ব্যবহার করে সার্চ টার্মগুলোর সাথে ফ্লু ট্রেন্ডের সম্পর্ক স্থাপন করেছিল। যদিও এই পদ্ধতিতে ত্রুটি ছিল, এটি ডেটা-চালিত স্বাস্থ্যসেবা পূর্বাভাসের সম্ভাবনা (এবং চ্যালেঞ্জ) সম্পর্কে সচেতনতা বৃদ্ধি করেছিল। + + * [ইউপিএস রাউটিং পূর্বাভাস](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - ইউপিএস ডেটা সায়েন্স এবং মেশিন লার্নিং ব্যবহার করে আবহাওয়ার অবস্থা, ট্রাফিক প্যাটার্ন, ডেলিভারি ডেডলাইন এবং আরও অনেক কিছু বিবেচনা করে ডেলিভারির জন্য সর্বোত্তম রুট পূর্বাভাস দেয়। + + * [এনওয়াইসি ট্যাক্সিক্যাব রুট ভিজ্যুয়ালাইজেশন](http://chriswhong.github.io/nyctaxi/) - [ফ্রিডম অফ ইনফরমেশন ল’স](https://chriswhong.com/open-data/foil_nyc_taxi/) ব্যবহার করে সংগৃহীত ডেটা এনওয়াইসি ট্যাক্সিক্যাবের একটি দিনের জীবনকে ভিজ্যুয়ালাইজ করতে সাহায্য করেছে, যা আমাদের ব্যস্ত শহরে তাদের চলাচল, আয় এবং ২৪ ঘণ্টার প্রতিটি ট্রিপের সময়কাল বুঝতে সাহায্য করে। + + * [উবার ডেটা সায়েন্স ওয়ার্কবেঞ্চ](https://eng.uber.com/dsw/) - প্রতিদিন লক্ষ লক্ষ উবার ট্রিপ থেকে সংগৃহীত ডেটা (পিকআপ ও ড্রপঅফ লোকেশন, ট্রিপের সময়কাল, পছন্দের রুট ইত্যাদি) ব্যবহার করে একটি ডেটা অ্যানালিটিক্স টুল তৈরি করে যা প্রাইসিং, নিরাপত্তা, প্রতারণা সনাক্তকরণ এবং নেভিগেশন সিদ্ধান্তে সাহায্য করে। + + * [স্পোর্টস অ্যানালিটিক্স](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - _প্রেডিকটিভ অ্যানালিটিক্স_ (টিম এবং প্লেয়ার বিশ্লেষণ - যেমন [মানিবল](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - এবং ফ্যান ম্যানেজমেন্ট) এবং _ডেটা ভিজ্যুয়ালাইজেশন_ (টিম ও ফ্যান ড্যাশবোর্ড, গেমস ইত্যাদি) নিয়ে কাজ করে, যার প্রয়োগ রয়েছে ট্যালেন্ট স্কাউটিং, স্পোর্টস গ্যাম্বলিং এবং ইনভেন্টরি/ভেন্যু ম্যানেজমেন্টে। + + * [ব্যাংকিংয়ে ডেটা সায়েন্স](https://data-flair.training/blogs/data-science-in-banking/) - ঝুঁকি মডেলিং এবং প্রতারণা সনাক্তকরণ থেকে শুরু করে কাস্টমার সেগমেন্টেশন, রিয়েল-টাইম পূর্বাভাস এবং রিকমেন্ডার সিস্টেম পর্যন্ত ফাইন্যান্স ইন্ডাস্ট্রিতে ডেটা সায়েন্সের মূল্য তুলে ধরে। প্রেডিকটিভ অ্যানালিটিক্স গুরুত্বপূর্ণ মাপকাঠি যেমন [ক্রেডিট স্কোর](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit) চালিত করে। + + * [স্বাস্থ্যসেবায় ডেটা সায়েন্স](https://data-flair.training/blogs/data-science-in-healthcare/) - মেডিকেল ইমেজিং (যেমন এমআরআই, এক্স-রে, সিটি-স্ক্যান), জিনোমিক্স (ডিএনএ সিকোয়েন্সিং), ড্রাগ ডেভেলপমেন্ট (ঝুঁকি মূল্যায়ন, সফলতার পূর্বাভাস), প্রেডিকটিভ অ্যানালিটিক্স (রোগীর যত্ন ও সরবরাহের লজিস্টিকস), রোগ ট্র্যাকিং ও প্রতিরোধ ইত্যাদি প্রয়োগ তুলে ধরে। + +![বাস্তব জগতে ডেটা সায়েন্সের প্রয়োগ](../../../../translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.bn.png) ইমেজ ক্রেডিট: [ডেটা ফ্লেয়ার: ৬টি অসাধারণ ডেটা সায়েন্স প্রয়োগ ](https://data-flair.training/blogs/data-science-applications/) + +চিত্রটি ডেটা সায়েন্স কৌশল প্রয়োগের অন্যান্য ক্ষেত্র এবং উদাহরণ দেখায়। আরও প্রয়োগ সম্পর্কে জানতে চান? নিচের [রিভিউ ও সেলফ স্টাডি](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) সেকশনটি দেখুন। + +## ডেটা সায়েন্স + গবেষণা + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ডেটা সায়েন্স ও গবেষণা - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +যখন বাস্তব প্রয়োগগুলো প্রাথমিকভাবে শিল্পের বৃহৎ পরিসরের ব্যবহার নিয়ে আলোচনা করে, _গবেষণা_ প্রয়োগ এবং প্রকল্পগুলো দুটি দৃষ্টিকোণ থেকে গুরুত্বপূর্ণ হতে পারে: + +* _উদ্ভাবনের সুযোগ_ - উন্নত ধারণার দ্রুত প্রোটোটাইপ তৈরি এবং পরবর্তী প্রজন্মের অ্যাপ্লিকেশনের জন্য ব্যবহারকারীর অভিজ্ঞতা পরীক্ষা করা। +* _প্রয়োগের চ্যালেঞ্জ_ - বাস্তব জীবনের প্রেক্ষাপটে ডেটা সায়েন্স প্রযুক্তির সম্ভাব্য ক্ষতি বা অনিচ্ছাকৃত পরিণতি তদন্ত করা। + +শিক্ষার্থীদের জন্য, এই গবেষণা প্রকল্পগুলো শেখার এবং সহযোগিতার সুযোগ প্রদান করতে পারে যা বিষয়টি সম্পর্কে আপনার বোঝাপড়া উন্নত করতে পারে এবং প্রাসঙ্গিক ক্ষেত্রগুলোতে কাজ করা ব্যক্তিদের বা টিমের সাথে আপনার সচেতনতা এবং সম্পৃক্ততা বৃদ্ধি করতে পারে। তাহলে গবেষণা প্রকল্পগুলো দেখতে কেমন এবং কীভাবে তারা প্রভাব ফেলতে পারে? + +চলুন একটি উদাহরণ দেখি - [এমআইটি জেন্ডার শেডস স্টাডি](http://gendershades.org/overview.html) যা জয় বুয়োলামউইনি (এমআইটি মিডিয়া ল্যাবস) দ্বারা পরিচালিত এবং একটি [স্বাক্ষর গবেষণা পেপার](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) সহ-লিখিত যা টিমনিট গেব্রু (তৎকালীন মাইক্রোসফট রিসার্চ) এর সাথে যৌথভাবে তৈরি করা হয়েছিল। এটি নিম্নলিখিত বিষয়ের উপর কেন্দ্রীভূত ছিল: + + * **কী:** গবেষণা প্রকল্পের উদ্দেশ্য ছিল _লিঙ্গ এবং ত্বকের রঙের ভিত্তিতে স্বয়ংক্রিয় মুখ বিশ্লেষণ অ্যালগরিদম এবং ডেটাসেটগুলোর মধ্যে বিদ্যমান পক্ষপাত মূল্যায়ন করা।_ + * **কেন:** মুখ বিশ্লেষণ আইন প্রয়োগ, বিমানবন্দর নিরাপত্তা, নিয়োগ ব্যবস্থা এবং আরও অনেক ক্ষেত্রে ব্যবহৃত হয় - যেখানে ভুল শ্রেণিবিন্যাস (যেমন পক্ষপাতের কারণে) প্রভাবিত ব্যক্তি বা গোষ্ঠীর জন্য সম্ভাব্য অর্থনৈতিক এবং সামাজিক ক্ষতি সৃষ্টি করতে পারে। পক্ষপাত দূর করা বা কমানো ন্যায্য ব্যবহারের জন্য গুরুত্বপূর্ণ। + * **কীভাবে:** গবেষকরা বুঝতে পেরেছিলেন যে বিদ্যমান বেঞ্চমার্কগুলো প্রধানত হালকা ত্বকের বিষয়গুলোকে ব্যবহার করে এবং একটি নতুন ডেটাসেট (১০০০+ ছবি) তৈরি করেছিলেন যা লিঙ্গ এবং ত্বকের রঙের ভিত্তিতে _আরও ভারসাম্যপূর্ণ_ ছিল। এই ডেটাসেটটি তিনটি লিঙ্গ শ্রেণিবিন্যাস পণ্য (মাইক্রোসফট, আইবিএম এবং ফেস++) এর সঠিকতা মূল্যায়নের জন্য ব্যবহার করা হয়েছিল। + +ফলাফল দেখিয়েছে যে যদিও সামগ্রিক শ্রেণিবিন্যাসের সঠিকতা ভালো ছিল, বিভিন্ন উপগোষ্ঠীর মধ্যে ত্রুটির হার উল্লেখযোগ্য পার্থক্য ছিল - যেখানে **মিসজেন্ডারিং** নারীদের বা গাঢ় ত্বকের ব্যক্তিদের জন্য বেশি ছিল, যা পক্ষপাতের ইঙ্গিত দেয়। + +**মূল ফলাফল:** ডেটা সায়েন্সের জন্য আরও _প্রতিনিধিত্বমূলক ডেটাসেট_ (ভারসাম্যপূর্ণ উপগোষ্ঠী) এবং আরও _অন্তর্ভুক্তিমূলক টিম_ (বিভিন্ন পটভূমি) প্রয়োজন যা এআই সমাধানগুলোতে পক্ষপাত আগেই সনাক্ত এবং দূর করতে পারে। এই ধরনের গবেষণা প্রচেষ্টা অনেক সংস্থাকে তাদের এআই পণ্য এবং প্রক্রিয়াগুলোর ন্যায্যতা উন্নত করতে _দায়িত্বশীল এআই_ এর জন্য নীতিমালা এবং অনুশীলন সংজ্ঞায়িত করতে সহায়তা করেছে। + +**মাইক্রোসফটের প্রাসঙ্গিক গবেষণা প্রচেষ্টা সম্পর্কে জানতে চান?** + +* [মাইক্রোসফট রিসার্চ প্রজেক্ট](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) এআই নিয়ে দেখুন। +* [মাইক্রোসফট রিসার্চ ডেটা সায়েন্স সামার স্কুল](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/) থেকে শিক্ষার্থীদের প্রকল্পগুলো অন্বেষণ করুন। +* [Fairlearn](https://fairlearn.org/) প্রকল্প এবং [দায়িত্বশীল এআই](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) উদ্যোগগুলো দেখুন। + +## ডেটা সায়েন্স + মানবিকতা + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ডেটা সায়েন্স ও ডিজিটাল মানবিকতা - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ডিজিটাল মানবিকতা [সংজ্ঞায়িত করা হয়েছে](https://digitalhumanities.stanford.edu/about-dh-stanford) "কম্পিউটেশনাল পদ্ধতি এবং মানবিক অনুসন্ধানের সমন্বয়ে একটি প্রক্রিয়া এবং পদ্ধতির সংগ্রহ" হিসেবে। [স্ট্যানফোর্ড প্রকল্পগুলো](https://digitalhumanities.stanford.edu/projects) যেমন _"ইতিহাস পুনরায় চালু করা"_ এবং _"কবিতার চিন্তা"_ [ডিজিটাল মানবিকতা এবং ডেটা সায়েন্সের](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science) সংযোগকে চিত্রিত করে - নেটওয়ার্ক বিশ্লেষণ, তথ্য ভিজ্যুয়ালাইজেশন, স্থানিক এবং টেক্সট বিশ্লেষণের মতো কৌশলগুলোকে জোর দিয়ে যা আমাদের ঐতিহাসিক এবং সাহিত্যিক ডেটাসেটগুলো পুনরায় বিশ্লেষণ করতে এবং নতুন অন্তর্দৃষ্টি ও দৃষ্টিভঙ্গি অর্জন করতে সাহায্য করে। + +*এই ক্ষেত্রে একটি প্রকল্প অন্বেষণ এবং প্রসারিত করতে চান?* + +["এমিলি ডিকিনসন এবং মুডের মিটার"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) দেখুন - [জেন লুপার](https://twitter.com/jenlooper) এর একটি চমৎকার উদাহরণ যা প্রশ্ন করে কীভাবে আমরা ডেটা সায়েন্স ব্যবহার করে পরিচিত কবিতাগুলো পুনরায় বিশ্লেষণ করতে পারি এবং নতুন প্রেক্ষাপটে এর অর্থ এবং এর লেখকের অবদান পুনর্মূল্যায়ন করতে পারি। উদাহরণস্বরূপ, _কবিতার টোন বা অনুভূতি বিশ্লেষণ করে আমরা কি অনুমান করতে পারি যে এটি কোন ঋতুতে লেখা হয়েছিল?_ - এবং এটি লেখকের মানসিক অবস্থার উপর প্রাসঙ্গিক সময়কালে কী বলে? + +এই প্রশ্নের উত্তর দিতে, আমরা আমাদের ডেটা সায়েন্স লাইফসাইকেলের ধাপগুলো অনুসরণ করি: + * [`ডেটা সংগ্রহ`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - বিশ্লেষণের জন্য একটি প্রাসঙ্গিক ডেটাসেট সংগ্রহ করা। অপশনগুলোতে একটি এপিআই ব্যবহার করা (যেমন [Poetry DB API](https://poetrydb.org/index.html)) বা ওয়েব পেজ স্ক্র্যাপ করা (যেমন [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) টুল ব্যবহার করে [Scrapy](https://scrapy.org/)। + * [`ডেটা পরিষ্কার করা`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - ব্যাখ্যা করে কীভাবে টেক্সট ফরম্যাট করা, স্যানিটাইজ করা এবং সরলীকৃত করা যায়, যেমন Visual Studio Code এবং Microsoft Excel এর মতো সাধারণ টুল ব্যবহার করে। + * [`ডেটা বিশ্লেষণ`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - ব্যাখ্যা করে কীভাবে আমরা এখন ডেটাসেটটি "নোটবুক" এ আমদানি করতে পারি বিশ্লেষণের জন্য, Python প্যাকেজ (যেমন pandas, numpy এবং matplotlib) ব্যবহার করে ডেটা সংগঠিত এবং ভিজ্যুয়ালাইজ করতে। + * [`অনুভূতি বিশ্লেষণ`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - ব্যাখ্যা করে কীভাবে আমরা Text Analytics এর মতো ক্লাউড সার্ভিসগুলো সংযুক্ত করতে পারি, [Power Automate](https://flow.microsoft.com/en-us/) এর মতো লো-কোড টুল ব্যবহার করে স্বয়ংক্রিয় ডেটা প্রসেসিং ওয়ার্কফ্লো তৈরি করতে। + +এই ওয়ার্কফ্লো ব্যবহার করে, আমরা কবিতার অনুভূতির উপর ঋতুর প্রভাবগুলো বিশ্লেষণ করতে পারি এবং লেখকের উপর আমাদের নিজস্ব দৃষ্টিভঙ্গি তৈরি করতে পারি। নিজে চেষ্টা করুন - তারপর নোটবুকটি প্রসারিত করুন অন্য প্রশ্ন করতে বা ডেটাকে নতুনভাবে ভিজ্যুয়ালাইজ করতে! + +> আপনি [ডিজিটাল মানবিকতা টুলকিট](https://github.com/Digital-Humanities-Toolkit) এর কিছু টুল ব্যবহার করে এই অনুসন্ধানের পথগুলো অনুসরণ করতে পারেন। + +## ডেটা সায়েন্স + টেকসই উন্নয়ন + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ডেটা সায়েন্স ও টেকসই উন্নয়ন - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +[২০৩০ টেকসই উন্নয়নের এজেন্ডা](https://sdgs.un.org/2030agenda) - যা ২০১৫ সালে জাতিসংঘের সকল সদস্য দ্বারা গৃহীত হয়েছিল - ১৭টি লক্ষ্য চিহ্নিত করে, যার মধ্যে একটি হলো **পৃথিবীকে রক্ষা করা** পরিবেশের অবনতি এবং জলবায়ু পরিবর্তনের প্রভাব থেকে। [মাইক্রোসফট টেকসই উন্নয়ন](https://www.microsoft.com/en-us/sustainability) উদ্যোগ এই লক্ষ্যগুলোকে সমর্থন করে এবং প্রযুক্তি সমাধানগুলো ব্যবহার করে আরও টেক +**প্ল্যানেটারি কম্পিউটার প্রকল্প বর্তমানে প্রিভিউ পর্যায়ে রয়েছে (সেপ্টেম্বর ২০২১ অনুযায়ী)** - ডেটা সায়েন্স ব্যবহার করে টেকসই সমাধানে অবদান রাখার জন্য কীভাবে শুরু করবেন তা এখানে দেওয়া হলো। + +* [অ্যাক্সেসের জন্য অনুরোধ করুন](https://planetarycomputer.microsoft.com/account/request) এবং অনুসন্ধান শুরু করুন ও সহকর্মীদের সাথে সংযোগ স্থাপন করুন। +* [ডকুমেন্টেশন অন্বেষণ করুন](https://planetarycomputer.microsoft.com/docs/overview/about) সমর্থিত ডেটাসেট এবং API সম্পর্কে জানার জন্য। +* [Ecosystem Monitoring](https://analytics-lab.org/ecosystemmonitoring/) এর মতো অ্যাপ্লিকেশন অন্বেষণ করুন, যা অ্যাপ্লিকেশন আইডিয়ার জন্য অনুপ্রেরণা দিতে পারে। + +ভাবুন কীভাবে আপনি ডেটা ভিজ্যুয়ালাইজেশন ব্যবহার করে জলবায়ু পরিবর্তন এবং বন উজাড়ের মতো বিষয়গুলিতে অন্তর্দৃষ্টি প্রকাশ বা জোরদার করতে পারেন। অথবা ভাবুন কীভাবে এই অন্তর্দৃষ্টিগুলি নতুন ব্যবহারকারীর অভিজ্ঞতা তৈরি করতে ব্যবহার করা যেতে পারে, যা আরও টেকসই জীবনের জন্য আচরণগত পরিবর্তনকে উৎসাহিত করে। + +## ডেটা সায়েন্স + শিক্ষার্থীরা + +আমরা শিল্প এবং গবেষণায় বাস্তব জীবনের প্রয়োগ নিয়ে আলোচনা করেছি এবং ডিজিটাল মানববিদ্যা এবং টেকসইতার ক্ষেত্রে ডেটা সায়েন্স অ্যাপ্লিকেশনের উদাহরণ অন্বেষণ করেছি। তাহলে ডেটা সায়েন্সের শিক্ষার্থী হিসেবে কীভাবে আপনি আপনার দক্ষতা তৈরি করবেন এবং আপনার দক্ষতা শেয়ার করবেন? + +এখানে ডেটা সায়েন্স শিক্ষার্থীদের প্রকল্পের কিছু উদাহরণ দেওয়া হলো যা আপনাকে অনুপ্রাণিত করতে পারে। + +* [MSR Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) এর GitHub [প্রকল্পগুলি](https://github.com/msr-ds3) যা নিম্নলিখিত বিষয়গুলি অন্বেষণ করে: + - [পুলিশের বল প্রয়োগে জাতিগত পক্ষপাত](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [NYC সাবওয়ে সিস্টেমের নির্ভরযোগ্যতা](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [Digitizing Material Culture: Exploring socio-economic distributions in Sirkap](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc) - [Ornella Altunyan](https://twitter.com/ornelladotcom) এবং Claremont টিমের একটি প্রকল্প, যা [ArcGIS StoryMaps](https://storymaps.arcgis.com/) ব্যবহার করে তৈরি। + +## 🚀 চ্যালেঞ্জ + +ডেটা সায়েন্স প্রকল্পের জন্য এমন প্রবন্ধ খুঁজুন যা শিক্ষার্থীদের জন্য সহজ এবং উপযোগী - যেমন [এই ৫০টি বিষয়](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/), [এই ২১টি প্রকল্প আইডিয়া](https://www.intellspot.com/data-science-project-ideas), অথবা [এই ১৬টি প্রকল্প সোর্স কোড সহ](https://data-flair.training/blogs/data-science-project-ideas/) যা আপনি বিশ্লেষণ এবং পুনর্গঠন করতে পারেন। এবং আপনার শেখার অভিজ্ঞতা নিয়ে ব্লগ করতে ভুলবেন না এবং আমাদের সবার সাথে আপনার অন্তর্দৃষ্টি শেয়ার করুন। + +## লেকচার-পরবর্তী কুইজ + +[লেকচার-পরবর্তী কুইজ](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/39) + +## পর্যালোচনা এবং স্ব-অধ্যয়ন + +আরও ব্যবহারিক ক্ষেত্র অন্বেষণ করতে চান? এখানে কিছু প্রাসঙ্গিক প্রবন্ধ দেওয়া হলো: +* [ডেটা সায়েন্সের ১৭টি প্রয়োগ এবং উদাহরণ](https://builtin.com/data-science/data-science-applications-examples) - জুলাই ২০২১ +* [বাস্তব জীবনে ডেটা সায়েন্সের ১১টি চমকপ্রদ প্রয়োগ](https://myblindbird.com/data-science-applications-real-world/) - মে ২০২১ +* [বাস্তব জীবনে ডেটা সায়েন্স](https://towardsdatascience.com/data-science-in-the-real-world/home) - প্রবন্ধ সংগ্রহ +* ডেটা সায়েন্স: [শিক্ষা](https://data-flair.training/blogs/data-science-in-education/), [কৃষি](https://data-flair.training/blogs/data-science-in-agriculture/), [অর্থনীতি](https://data-flair.training/blogs/data-science-in-finance/), [চলচ্চিত্র](https://data-flair.training/blogs/data-science-at-movies/) এবং আরও অনেক কিছু। + +## অ্যাসাইনমেন্ট + +[একটি প্ল্যানেটারি কম্পিউটার ডেটাসেট অন্বেষণ করুন](assignment.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md b/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md new file mode 100644 index 00000000..7a3ae0e6 --- /dev/null +++ b/translations/bn/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md @@ -0,0 +1,50 @@ + +# একটি প্ল্যানেটারি কম্পিউটার ডেটাসেট অন্বেষণ করুন + +## নির্দেশনা + +এই পাঠে, আমরা বিভিন্ন ডেটা সায়েন্স অ্যাপ্লিকেশন ক্ষেত্র নিয়ে আলোচনা করেছি - গবেষণা, টেকসইতা এবং ডিজিটাল মানবিকতার সাথে সম্পর্কিত উদাহরণগুলিতে গভীরভাবে প্রবেশ করেছি। এই অ্যাসাইনমেন্টে, আপনি এই উদাহরণগুলির মধ্যে একটি আরও বিস্তারিতভাবে অন্বেষণ করবেন এবং ডেটা ভিজ্যুয়ালাইজেশন এবং বিশ্লেষণ সম্পর্কে আপনার শেখাগুলি প্রয়োগ করে টেকসইতা ডেটা সম্পর্কে অন্তর্দৃষ্টি অর্জন করবেন। + +[প্ল্যানেটারি কম্পিউটার](https://planetarycomputer.microsoft.com/) প্রকল্পে ডেটাসেট এবং API রয়েছে যা একটি অ্যাকাউন্টের মাধ্যমে অ্যাক্সেস করা যায় - অ্যাসাইনমেন্টের বোনাস ধাপটি চেষ্টা করতে চাইলে একটি অ্যাকাউন্টের জন্য অনুরোধ করুন। সাইটটি একটি [এক্সপ্লোরার](https://planetarycomputer.microsoft.com/explore) বৈশিষ্ট্যও সরবরাহ করে যা আপনি অ্যাকাউন্ট তৈরি না করেই ব্যবহার করতে পারেন। + +`ধাপসমূহ:` +এক্সপ্লোরার ইন্টারফেস (নীচের স্ক্রিনশটটিতে দেখানো হয়েছে) আপনাকে একটি ডেটাসেট (প্রদত্ত বিকল্পগুলির মধ্যে থেকে), একটি প্রিসেট কোয়েরি (ডেটা ফিল্টার করার জন্য) এবং একটি রেন্ডারিং অপশন (প্রাসঙ্গিক ভিজ্যুয়ালাইজেশন তৈরি করতে) নির্বাচন করতে দেয়। এই অ্যাসাইনমেন্টে, আপনার কাজ হলো: + + 1. [এক্সপ্লোরার ডকুমেন্টেশন](https://planetarycomputer.microsoft.com/docs/overview/explorer/) পড়ুন - বিকল্পগুলি বুঝুন। + 2. ডেটাসেট [ক্যাটালগ](https://planetarycomputer.microsoft.com/catalog) অন্বেষণ করুন - প্রতিটির উদ্দেশ্য শিখুন। + 3. এক্সপ্লোরার ব্যবহার করুন - একটি আগ্রহের ডেটাসেট নির্বাচন করুন, একটি প্রাসঙ্গিক কোয়েরি এবং রেন্ডারিং অপশন নির্বাচন করুন। + +![প্ল্যানেটারি কম্পিউটার এক্সপ্লোরার](../../../../translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.bn.png) + +`আপনার কাজ:` +এখন ব্রাউজারে রেন্ডার করা ভিজ্যুয়ালাইজেশনটি অধ্যয়ন করুন এবং নিম্নলিখিত প্রশ্নগুলির উত্তর দিন: + * ডেটাসেটের কী _বৈশিষ্ট্য_ রয়েছে? + * ভিজ্যুয়ালাইজেশন কী _অন্তর্দৃষ্টি_ বা ফলাফল প্রদান করে? + * প্রকল্পের টেকসইতা লক্ষ্যগুলির জন্য সেই অন্তর্দৃষ্টির কী _প্রভাব_ রয়েছে? + * ভিজ্যুয়ালাইজেশনের কী _সীমাবদ্ধতা_ রয়েছে (অর্থাৎ, আপনি কোন অন্তর্দৃষ্টি পাননি)? + * যদি আপনি কাঁচা ডেটা পেতেন, তাহলে আপনি কী _বিকল্প ভিজ্যুয়ালাইজেশন_ তৈরি করতেন এবং কেন? + +`বোনাস পয়েন্ট:` +একটি অ্যাকাউন্টের জন্য আবেদন করুন - এবং অনুমোদিত হলে লগইন করুন। + * _লঞ্চ হাব_ অপশন ব্যবহার করে কাঁচা ডেটা একটি নোটবুকে খুলুন। + * ইন্টারঅ্যাক্টিভভাবে ডেটা অন্বেষণ করুন এবং আপনি যে বিকল্প ভিজ্যুয়ালাইজেশনগুলি ভাবছিলেন তা বাস্তবায়ন করুন। + * এখন আপনার কাস্টম ভিজ্যুয়ালাইজেশন বিশ্লেষণ করুন - আপনি কি পূর্বে মিস করা অন্তর্দৃষ্টি অর্জন করতে পেরেছেন? + +## মূল্যায়ন + +উৎকৃষ্ট | পর্যাপ্ত | উন্নতির প্রয়োজন +--- | --- | -- | +পাঁচটি মূল প্রশ্নের উত্তর দেওয়া হয়েছে। শিক্ষার্থী স্পষ্টভাবে চিহ্নিত করেছেন যে বর্তমান এবং বিকল্প ভিজ্যুয়ালাইজেশন কীভাবে টেকসইতা লক্ষ্য বা ফলাফলের অন্তর্দৃষ্টি প্রদান করতে পারে।| শিক্ষার্থী কমপক্ষে শীর্ষ ৩টি প্রশ্নের বিস্তারিত উত্তর দিয়েছেন, যা দেখায় যে তারা এক্সপ্লোরার ব্যবহার করে বাস্তব অভিজ্ঞতা অর্জন করেছেন।| শিক্ষার্থী একাধিক প্রশ্নের উত্তর দিতে ব্যর্থ হয়েছেন, অথবা পর্যাপ্ত বিস্তারিত প্রদান করেননি - যা নির্দেশ করে যে প্রকল্পের জন্য কোনো অর্থপূর্ণ প্রচেষ্টা করা হয়নি। | + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/6-Data-Science-In-Wild/README.md b/translations/bn/6-Data-Science-In-Wild/README.md new file mode 100644 index 00000000..68e9c339 --- /dev/null +++ b/translations/bn/6-Data-Science-In-Wild/README.md @@ -0,0 +1,25 @@ + +# বাস্তব জীবনে ডেটা সায়েন্স + +বিভিন্ন শিল্পক্ষেত্রে বাস্তব জীবনে ডেটা সায়েন্সের প্রয়োগ। + +### বিষয়বস্তু + +1. [বাস্তব জীবনে ডেটা সায়েন্স](20-Real-World-Examples/README.md) + +### কৃতজ্ঞতা + +❤️ দিয়ে লিখেছেন [নিত্য নারাসিমহান](https://twitter.com/nitya) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/CODE_OF_CONDUCT.md b/translations/bn/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..d8db8836 --- /dev/null +++ b/translations/bn/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ + +# মাইক্রোসফট ওপেন সোর্স আচরণবিধি + +এই প্রকল্পটি [মাইক্রোসফট ওপেন সোর্স আচরণবিধি](https://opensource.microsoft.com/codeofconduct/) গ্রহণ করেছে। + +সম্পদসমূহ: + +- [মাইক্রোসফট ওপেন সোর্স আচরণবিধি](https://opensource.microsoft.com/codeofconduct/) +- [মাইক্রোসফট আচরণবিধি FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- প্রশ্ন বা উদ্বেগের জন্য [opencode@microsoft.com](mailto:opencode@microsoft.com)-এ যোগাযোগ করুন + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/CONTRIBUTING.md b/translations/bn/CONTRIBUTING.md new file mode 100644 index 00000000..3d11ade7 --- /dev/null +++ b/translations/bn/CONTRIBUTING.md @@ -0,0 +1,21 @@ + +# অবদান রাখা + +এই প্রকল্পে অবদান এবং পরামর্শ স্বাগত। বেশিরভাগ অবদান রাখার জন্য আপনাকে একটি Contributor License Agreement (CLA) এর সাথে সম্মতি জানাতে হবে, যা নিশ্চিত করে যে আপনার কাছে অধিকার রয়েছে এবং আপনি আমাদের আপনার অবদান ব্যবহারের অধিকার প্রদান করছেন। বিস্তারিত জানতে ভিজিট করুন https://cla.microsoft.com। + +যখন আপনি একটি পুল রিকোয়েস্ট জমা দেন, একটি CLA-বট স্বয়ংক্রিয়ভাবে নির্ধারণ করবে যে আপনাকে CLA প্রদান করতে হবে কিনা এবং PR-কে যথাযথভাবে সাজাবে (যেমন, লেবেল, মন্তব্য)। বট দ্বারা প্রদত্ত নির্দেশনা অনুসরণ করুন। আপনাকে এটি শুধুমাত্র একবার করতে হবে আমাদের CLA ব্যবহারকারী সমস্ত রিপোজিটরির জন্য। + +এই প্রকল্পটি [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) গ্রহণ করেছে। আরও তথ্যের জন্য দেখুন [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) অথবা [opencode@microsoft.com](mailto:opencode@microsoft.com) এ যোগাযোগ করুন যদি আপনার অতিরিক্ত প্রশ্ন বা মন্তব্য থাকে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/README.md b/translations/bn/README.md new file mode 100644 index 00000000..2b1ed8d7 --- /dev/null +++ b/translations/bn/README.md @@ -0,0 +1,163 @@ + +# ডেটা সায়েন্সের জন্য শিক্ষার্থীদের পাঠক্রম + +Azure Cloud Advocates টিম Microsoft থেকে ১০ সপ্তাহের একটি পাঠক্রম নিয়ে এসেছে, যেখানে ২০টি পাঠ অন্তর্ভুক্ত। প্রতিটি পাঠে রয়েছে প্রাক-পাঠ এবং পর-পাঠ কুইজ, পাঠ সম্পন্ন করার জন্য লিখিত নির্দেশিকা, একটি সমাধান এবং একটি অ্যাসাইনমেন্ট। প্রকল্প-ভিত্তিক শিক্ষণ পদ্ধতির মাধ্যমে আপনি শিখতে পারবেন, যা নতুন দক্ষতা অর্জনের জন্য একটি প্রমাণিত পদ্ধতি। + +**লেখকদের প্রতি আন্তরিক কৃতজ্ঞতা:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer)। + +**🙏 বিশেষ ধন্যবাদ 🙏 আমাদের [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) লেখক, পর্যালোচক এবং কন্টেন্ট অবদানকারীদের প্রতি,** বিশেষত Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/), [Tauqeer Ahmad](https://www.linkedin.com/in/tauqeerahmad5201/), Yogendrasingh Pawar, [Vidushi Gupta](https://www.linkedin.com/in/vidushi-gupta07/), [Jasleen Sondhi](https://www.linkedin.com/in/jasleen-sondhi/)। + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা স্কেচনোট ](./sketchnotes/00-Title.png)| +|:---:| +| শিক্ষার্থীদের জন্য ডেটা সায়েন্স - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +## ঘোষণা - জেনারেটিভ AI-এর নতুন পাঠক্রম প্রকাশিত হয়েছে! + +আমরা জেনারেটিভ AI নিয়ে ১২টি পাঠের একটি নতুন পাঠক্রম প্রকাশ করেছি। এখানে আপনি শিখতে পারবেন: + +- প্রম্পটিং এবং প্রম্পট ইঞ্জিনিয়ারিং +- টেক্সট এবং ইমেজ অ্যাপ তৈরি +- সার্চ অ্যাপ্লিকেশন + +প্রতিটি পাঠে রয়েছে পাঠ, অ্যাসাইনমেন্ট, জ্ঞান যাচাই এবং চ্যালেঞ্জ। + +এটি দেখুন: + +> https://aka.ms/genai-beginners + +# আপনি কি একজন শিক্ষার্থী? + +নিম্নলিখিত রিসোর্স দিয়ে শুরু করুন: + +- [স্টুডেন্ট হাব পেজ](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum): এখানে আপনি পাবেন শিক্ষার্থীদের জন্য রিসোর্স, স্টুডেন্ট প্যাক এবং এমনকি বিনামূল্যে সার্টিফিকেট ভাউচার পাওয়ার উপায়। এই পেজটি বুকমার্ক করুন এবং নিয়মিত চেক করুন কারণ আমরা প্রতি মাসে অন্তত একবার কন্টেন্ট আপডেট করি। +- [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum): একটি গ্লোবাল স্টুডেন্ট অ্যাম্বাসেডর কমিউনিটিতে যোগ দিন, এটি হতে পারে Microsoft-এ প্রবেশের আপনার পথ। + +# শুরু করা যাক + +> **শিক্ষকগণ**: আমরা এই পাঠক্রম ব্যবহারের জন্য [কিছু পরামর্শ](for-teachers.md) অন্তর্ভুক্ত করেছি। আমাদের [আলোচনা ফোরামে](https://github.com/microsoft/Data-Science-For-Beginners/discussions) আপনার মতামত জানাতে ভুলবেন না! + +> **[শিক্ষার্থীরা](https://aka.ms/student-page)**: এই পাঠক্রমটি নিজের মতো করে ব্যবহার করতে, পুরো রিপোজিটরি ফর্ক করুন এবং নিজে নিজে এক্সারসাইজ সম্পন্ন করুন, প্রাক-পাঠ কুইজ দিয়ে শুরু করুন। তারপর পাঠ পড়ুন এবং বাকি কার্যক্রম সম্পন্ন করুন। পাঠগুলি বুঝে প্রকল্প তৈরি করার চেষ্টা করুন, সমাধান কোড কপি না করে; তবে, সেই কোড প্রতিটি প্রকল্প-ভিত্তিক পাঠের /solutions ফোল্ডারে পাওয়া যাবে। আরেকটি ধারণা হতে পারে বন্ধুদের সাথে একটি স্টাডি গ্রুপ তৈরি করা এবং একসাথে কন্টেন্টটি পড়া। আরও পড়াশোনার জন্য, আমরা [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum) সুপারিশ করি। + +## টিমের সাথে পরিচিত হন + +[![প্রোমো ভিডিও](../../ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "প্রোমো ভিডিও") + +**Gif তৈরি করেছেন** [Mohit Jaisal](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 উপরের ছবিতে ক্লিক করুন প্রকল্প এবং এটি তৈরি করা ব্যক্তিদের সম্পর্কে একটি ভিডিও দেখার জন্য! + +## শিক্ষণ পদ্ধতি + +আমরা এই পাঠক্রম তৈরি করার সময় দুটি শিক্ষণ নীতিকে গুরুত্ব দিয়েছি: এটি প্রকল্প-ভিত্তিক এবং এতে নিয়মিত কুইজ অন্তর্ভুক্ত। এই সিরিজের শেষে, শিক্ষার্থীরা ডেটা সায়েন্সের মৌলিক নীতিগুলি শিখবে, যার মধ্যে রয়েছে নৈতিক ধারণা, ডেটা প্রস্তুতি, ডেটা নিয়ে কাজ করার বিভিন্ন পদ্ধতি, ডেটা ভিজ্যুয়ালাইজেশন, ডেটা বিশ্লেষণ, ডেটা সায়েন্সের বাস্তব জীবনের ব্যবহার এবং আরও অনেক কিছু। + +এছাড়াও, ক্লাসের আগে একটি সহজ কুইজ শিক্ষার্থীর মনোযোগ বিষয়বস্তুর দিকে নিয়ে যায়, এবং ক্লাসের পরে একটি দ্বিতীয় কুইজ বিষয়টি আরও ভালোভাবে মনে রাখতে সাহায্য করে। এই পাঠক্রমটি নমনীয় এবং মজাদারভাবে ডিজাইন করা হয়েছে এবং এটি সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পগুলি ছোট থেকে শুরু হয় এবং ১০ সপ্তাহের চক্রের শেষে ক্রমশ জটিল হয়ে ওঠে। + +> আমাদের [আচরণবিধি](CODE_OF_CONDUCT.md), [অবদান](CONTRIBUTING.md), [অনুবাদ](TRANSLATIONS.md) নির্দেশিকা দেখুন। আমরা আপনার গঠনমূলক মতামতকে স্বাগত জানাই! + +## প্রতিটি পাঠে অন্তর্ভুক্ত: + +- ঐচ্ছিক স্কেচনোট +- ঐচ্ছিক সম্পূরক ভিডিও +- প্রাক-পাঠ উষ্ণতা কুইজ +- লিখিত পাঠ +- প্রকল্প-ভিত্তিক পাঠের জন্য, প্রকল্প তৈরি করার ধাপে ধাপে নির্দেশিকা +- জ্ঞান যাচাই +- একটি চ্যালেঞ্জ +- সম্পূরক পড়াশোনা +- অ্যাসাইনমেন্ট +- পর-পাঠ কুইজ + +> **কুইজ সম্পর্কে একটি নোট**: সমস্ত কুইজ Quiz-App ফোল্ডারে রয়েছে, মোট ৪০টি কুইজ, প্রতিটিতে তিনটি প্রশ্ন। এগুলি পাঠের মধ্যে থেকে লিঙ্ক করা হয়েছে, তবে কুইজ অ্যাপটি স্থানীয়ভাবে চালানো বা Azure-এ ডিপ্লয় করা যেতে পারে; `quiz-app` ফোল্ডারে নির্দেশিকা অনুসরণ করুন। এগুলি ধীরে ধীরে স্থানীয় ভাষায় অনুবাদ করা হচ্ছে। + +## পাঠসমূহ + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) দ্বারা স্কেচনোট ](./sketchnotes/00-Roadmap.png)| +|:---:| +| শিক্ষার্থীদের জন্য ডেটা সায়েন্স: রোডম্যাপ - _[@nitya](https://twitter.com/nitya) দ্বারা স্কেচনোট_ | + +| পাঠ নম্বর | বিষয় | পাঠের গ্রুপিং | শেখার উদ্দেশ্য | লিঙ্ক করা পাঠ | লেখক | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| ০১ | ডেটা সায়েন্সের সংজ্ঞা | [পরিচিতি](1-Introduction/README.md) | ডেটা সায়েন্সের মৌলিক ধারণাগুলি এবং এটি কৃত্রিম বুদ্ধিমত্তা, মেশিন লার্নিং এবং বিগ ডেটার সাথে কীভাবে সম্পর্কিত তা শিখুন। | [পাঠ](1-Introduction/01-defining-data-science/README.md) [ভিডিও](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| ০২ | ডেটা সায়েন্সের নৈতিকতা | [পরিচিতি](1-Introduction/README.md) | ডেটা নৈতিকতার ধারণা, চ্যালেঞ্জ এবং কাঠামো। | [পাঠ](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| ০৩ | ডেটার সংজ্ঞা | [পরিচিতি](1-Introduction/README.md) | ডেটা কীভাবে শ্রেণীবদ্ধ হয় এবং এর সাধারণ উৎসগুলি। | [পাঠ](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| ০৪ | পরিসংখ্যান ও সম্ভাবনার পরিচিতি | [পরিচিতি](1-Introduction/README.md) | ডেটা বোঝার জন্য সম্ভাবনা এবং পরিসংখ্যানের গাণিতিক কৌশল। | [পাঠ](1-Introduction/04-stats-and-probability/README.md) [ভিডিও](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| ০৫ | সম্পর্কযুক্ত ডেটার সাথে কাজ করা | [ডেটার সাথে কাজ করা](2-Working-With-Data/README.md) | সম্পর্কযুক্ত ডেটার পরিচিতি এবং SQL (যা "see-quell" নামে উচ্চারিত হয়) নামে পরিচিত স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ ব্যবহার করে সম্পর্কযুক্ত ডেটা অন্বেষণ এবং বিশ্লেষণের মৌলিক বিষয়। | [পাঠ](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| ০৬ | নন-রিলেশনাল ডেটার সাথে কাজ করা | [ডেটার সাথে কাজ করা](2-Working-With-Data/README.md) | নন-রিলেশনাল ডেটার পরিচিতি, এর বিভিন্ন প্রকার এবং ডকুমেন্ট ডেটাবেস অন্বেষণ এবং বিশ্লেষণের মৌলিক বিষয়। | [পাঠ](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| ০৭ | পাইথনের সাথে কাজ করা | [ডেটার সাথে কাজ করা](2-Working-With-Data/README.md) | পাইথন ব্যবহার করে ডেটা অন্বেষণের মৌলিক বিষয়, যেমন Pandas লাইব্রেরি। পাইথন প্রোগ্রামিংয়ের প্রাথমিক ধারণা সুপারিশ করা হয়। | [পাঠ](2-Working-With-Data/07-python/README.md) [ভিডিও](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | ডেটা প্রস্তুতি | [ডেটার সাথে কাজ করা](2-Working-With-Data/README.md) | ডেটা পরিষ্কার এবং রূপান্তর করার কৌশল নিয়ে আলোচনা, যা অনুপস্থিত, ভুল বা অসম্পূর্ণ ডেটার চ্যালেঞ্জ মোকাবেলা করতে সাহায্য করে। | [পাঠ](2-Working-With-Data/08-data-preparation/README.md) | [জ্যাসমিন](https://www.twitter.com/paladique) | +| 09 | পরিমাণের ভিজ্যুয়ালাইজেশন | [ডেটা ভিজ্যুয়ালাইজেশন](3-Data-Visualization/README.md) | ম্যাটপ্লটলিব ব্যবহার করে পাখির ডেটা 🦆 ভিজ্যুয়ালাইজ করতে শিখুন। | [পাঠ](3-Data-Visualization/09-visualization-quantities/README.md) | [জেন](https://twitter.com/jenlooper) | +| 10 | ডেটার বিতরণ ভিজ্যুয়ালাইজেশন | [ডেটা ভিজ্যুয়ালাইজেশন](3-Data-Visualization/README.md) | একটি নির্দিষ্ট সময়সীমার মধ্যে পর্যবেক্ষণ এবং প্রবণতা ভিজ্যুয়ালাইজ করা। | [পাঠ](3-Data-Visualization/10-visualization-distributions/README.md) | [জেন](https://twitter.com/jenlooper) | +| 11 | অনুপাতের ভিজ্যুয়ালাইজেশন | [ডেটা ভিজ্যুয়ালাইজেশন](3-Data-Visualization/README.md) | পৃথক এবং গোষ্ঠীভুক্ত শতাংশের ভিজ্যুয়ালাইজেশন। | [পাঠ](3-Data-Visualization/11-visualization-proportions/README.md) | [জেন](https://twitter.com/jenlooper) | +| 12 | সম্পর্কের ভিজ্যুয়ালাইজেশন | [ডেটা ভিজ্যুয়ালাইজেশন](3-Data-Visualization/README.md) | ডেটার সেট এবং তাদের ভেরিয়েবলের মধ্যে সংযোগ এবং সম্পর্ক ভিজ্যুয়ালাইজ করা। | [পাঠ](3-Data-Visualization/12-visualization-relationships/README.md) | [জেন](https://twitter.com/jenlooper) | +| 13 | অর্থপূর্ণ ভিজ্যুয়ালাইজেশন | [ডেটা ভিজ্যুয়ালাইজেশন](3-Data-Visualization/README.md) | আপনার ভিজ্যুয়ালাইজেশনকে কার্যকর সমস্যা সমাধান এবং অন্তর্দৃষ্টির জন্য মূল্যবান করার কৌশল এবং নির্দেশিকা। | [পাঠ](3-Data-Visualization/13-meaningful-visualizations/README.md) | [জেন](https://twitter.com/jenlooper) | +| 14 | ডেটা সায়েন্স লাইফসাইকেলের পরিচিতি | [লাইফসাইকেল](4-Data-Science-Lifecycle/README.md) | ডেটা সায়েন্স লাইফসাইকেলের পরিচিতি এবং ডেটা সংগ্রহ ও নিষ্কাশনের প্রথম ধাপ। | [পাঠ](4-Data-Science-Lifecycle/14-Introduction/README.md) | [জ্যাসমিন](https://twitter.com/paladique) | +| 15 | বিশ্লেষণ | [লাইফসাইকেল](4-Data-Science-Lifecycle/README.md) | ডেটা সায়েন্স লাইফসাইকেলের এই ধাপটি ডেটা বিশ্লেষণের কৌশলগুলির উপর কেন্দ্রীভূত। | [পাঠ](4-Data-Science-Lifecycle/15-analyzing/README.md) | [জ্যাসমিন](https://twitter.com/paladique) | +| 16 | যোগাযোগ | [লাইফসাইকেল](4-Data-Science-Lifecycle/README.md) | ডেটা সায়েন্স লাইফসাইকেলের এই ধাপটি ডেটা থেকে অন্তর্দৃষ্টি উপস্থাপন করার উপর কেন্দ্রীভূত, যা সিদ্ধান্ত গ্রহণকারীদের জন্য সহজবোধ্য করে তোলে। | [পাঠ](4-Data-Science-Lifecycle/16-communication/README.md) | [জালেন](https://twitter.com/JalenMcG) | +| 17 | ক্লাউডে ডেটা সায়েন্স | [ক্লাউড ডেটা](5-Data-Science-In-Cloud/README.md) | ক্লাউডে ডেটা সায়েন্স এবং এর সুবিধাগুলি নিয়ে পাঠ। | [পাঠ](5-Data-Science-In-Cloud/17-Introduction/README.md) | [টিফানি](https://twitter.com/TiffanySouterre) এবং [মড](https://twitter.com/maudstweets) | +| 18 | ক্লাউডে ডেটা সায়েন্স | [ক্লাউড ডেটা](5-Data-Science-In-Cloud/README.md) | লো কোড টুল ব্যবহার করে মডেল প্রশিক্ষণ। | [পাঠ](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [টিফানি](https://twitter.com/TiffanySouterre) এবং [মড](https://twitter.com/maudstweets) | +| 19 | ক্লাউডে ডেটা সায়েন্স | [ক্লাউড ডেটা](5-Data-Science-In-Cloud/README.md) | Azure Machine Learning Studio ব্যবহার করে মডেল ডিপ্লয় করা। | [পাঠ](5-Data-Science-In-Cloud/19-Azure/README.md) | [টিফানি](https://twitter.com/TiffanySouterre) এবং [মড](https://twitter.com/maudstweets) | +| 20 | বাস্তব জীবনে ডেটা সায়েন্স | [বাস্তব জীবনে](6-Data-Science-In-Wild/README.md) | বাস্তব জীবনের ডেটা সায়েন্স চালিত প্রকল্প। | [পাঠ](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [নিত্য](https://twitter.com/nitya) | + +## GitHub Codespaces + +এই নমুনাটি Codespace-এ খুলতে নিচের ধাপগুলি অনুসরণ করুন: +1. Code ড্রপ-ডাউন মেনুতে ক্লিক করুন এবং Open with Codespaces অপশনটি নির্বাচন করুন। +2. প্যানেলের নিচে + New codespace নির্বাচন করুন। +আরও তথ্যের জন্য, [GitHub ডকুমেন্টেশন](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace) দেখুন। + +## VSCode Remote - Containers +আপনার স্থানীয় মেশিন এবং VSCode ব্যবহার করে এই রিপোজিটরি একটি কন্টেইনারে খুলতে নিচের ধাপগুলি অনুসরণ করুন: + +1. যদি এটি আপনার প্রথমবার ডেভেলপমেন্ট কন্টেইনার ব্যবহার হয়, নিশ্চিত করুন যে আপনার সিস্টেম প্রয়োজনীয়তা পূরণ করে (যেমন Docker ইনস্টল করা আছে) [শুরু করার ডকুমেন্টেশন](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started) এ। + +এই রিপোজিটরি ব্যবহার করতে, আপনি হয় রিপোজিটরিটি একটি বিচ্ছিন্ন Docker ভলিউমে খুলতে পারেন: + +**নোট**: এটি Remote-Containers: **Clone Repository in Container Volume...** কমান্ড ব্যবহার করে সোর্স কোডটি স্থানীয় ফাইল সিস্টেমের পরিবর্তে একটি Docker ভলিউমে ক্লোন করবে। [ভলিউম](https://docs.docker.com/storage/volumes/) কন্টেইনার ডেটা সংরক্ষণের জন্য পছন্দনীয় পদ্ধতি। + +অথবা স্থানীয়ভাবে ক্লোন করা বা ডাউনলোড করা রিপোজিটরিটি খুলুন: + +- এই রিপোজিটরিটি আপনার স্থানীয় ফাইল সিস্টেমে ক্লোন করুন। +- F1 চাপুন এবং **Remote-Containers: Open Folder in Container...** কমান্ড নির্বাচন করুন। +- এই ফোল্ডারের ক্লোন করা কপি নির্বাচন করুন, কন্টেইনারটি শুরু হওয়ার জন্য অপেক্ষা করুন এবং পরীক্ষা করুন। + +## অফলাইন অ্যাক্সেস + +আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশনটি অফলাইনে চালাতে পারেন। এই রিপোজিটরিটি ফর্ক করুন, [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart) আপনার স্থানীয় মেশিনে, তারপর এই রিপোজিটরির মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট 3000-এ পরিবেশন করা হবে: `localhost:3000`। + +> নোট, নোটবুকগুলি Docsify এর মাধ্যমে রেন্ডার হবে না, তাই যখন আপনাকে একটি নোটবুক চালাতে হবে, এটি আলাদাভাবে VS Code-এ একটি Python kernel চালিয়ে করুন। + +## সাহায্য প্রয়োজন! + +আপনি যদি কারিকুলামের সম্পূর্ণ বা অংশ অনুবাদ করতে চান, আমাদের [অনুবাদ](TRANSLATIONS.md) গাইড অনুসরণ করুন। + +## অন্যান্য কারিকুলাম + +আমাদের টিম অন্যান্য কারিকুলাম তৈরি করে! দেখুন: + +- [শুরু করার জন্য জেনারেটিভ AI](https://aka.ms/genai-beginners) +- [শুরু করার জন্য জেনারেটিভ AI .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) +- [জেনারেটিভ AI জাভাস্ক্রিপ্ট দিয়ে](https://github.com/microsoft/generative-ai-with-javascript) +- [জেনারেটিভ AI জাভা দিয়ে](https://aka.ms/genaijava) +- [শুরু করার জন্য AI](https://aka.ms/ai-beginners) +- [শুরু করার জন্য ডেটা সায়েন্স](https://aka.ms/datascience-beginners) +- [শুরু করার জন্য ML](https://aka.ms/ml-beginners) +- [শুরু করার জন্য সাইবারসিকিউরিটি](https://github.com/microsoft/Security-101) +- [শুরু করার জন্য ওয়েব ডেভেলপমেন্ট](https://aka.ms/webdev-beginners) +- [শুরু করার জন্য IoT](https://aka.ms/iot-beginners) +- [শুরু করার জন্য XR ডেভেলপমেন্ট](https://github.com/microsoft/xr-development-for-beginners) +- [পেয়ারড প্রোগ্রামিংয়ের জন্য GitHub Copilot আয়ত্ত করা](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) +- [C#/.NET ডেভেলপারদের জন্য GitHub Copilot আয়ত্ত করা](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) +- [আপনার নিজস্ব Copilot অ্যাডভেঞ্চার নির্বাচন করুন](https://github.com/microsoft/CopilotAdventures) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/SECURITY.md b/translations/bn/SECURITY.md new file mode 100644 index 00000000..de7ad481 --- /dev/null +++ b/translations/bn/SECURITY.md @@ -0,0 +1,51 @@ + +## নিরাপত্তা + +মাইক্রোসফট আমাদের সফটওয়্যার পণ্য এবং পরিষেবার নিরাপত্তাকে অত্যন্ত গুরুত্ব দেয়, যার মধ্যে রয়েছে আমাদের GitHub সংগঠনগুলোর মাধ্যমে পরিচালিত সমস্ত সোর্স কোড রিপোজিটরি। এই সংগঠনগুলোর মধ্যে রয়েছে [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), এবং [আমাদের GitHub সংগঠনগুলো](https://opensource.microsoft.com/)। + +আপনি যদি মনে করেন যে আপনি মাইক্রোসফটের মালিকানাধীন কোনো রিপোজিটরিতে একটি নিরাপত্তা দুর্বলতা খুঁজে পেয়েছেন যা [মাইক্রোসফটের নিরাপত্তা দুর্বলতার সংজ্ঞা](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) পূরণ করে, তাহলে নিচে বর্ণিত পদ্ধতিতে আমাদের কাছে রিপোর্ট করুন। + +## নিরাপত্তা সমস্যা রিপোর্ট করা + +**অনুগ্রহ করে পাবলিক GitHub ইস্যুর মাধ্যমে নিরাপত্তা দুর্বলতা রিপোর্ট করবেন না।** + +এর পরিবর্তে, মাইক্রোসফট সিকিউরিটি রেসপন্স সেন্টার (MSRC)-এ রিপোর্ট করুন: [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report)। + +যদি আপনি লগ ইন না করে জমা দিতে চান, তাহলে [secure@microsoft.com](mailto:secure@microsoft.com) ইমেইল করুন। সম্ভব হলে, আমাদের PGP কী দিয়ে আপনার বার্তা এনক্রিপ্ট করুন; এটি [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc) থেকে ডাউনলোড করুন। + +আপনি ২৪ ঘণ্টার মধ্যে একটি উত্তর পাবেন। যদি কোনো কারণে আপনি উত্তর না পান, তাহলে নিশ্চিত করতে ইমেইলের মাধ্যমে অনুসরণ করুন যে আমরা আপনার মূল বার্তা পেয়েছি। অতিরিক্ত তথ্য [microsoft.com/msrc](https://www.microsoft.com/msrc) এ পাওয়া যাবে। + +অনুগ্রহ করে নিচে তালিকাভুক্ত তথ্য (যতটা সম্ভব প্রদান করতে পারেন) অন্তর্ভুক্ত করুন যাতে আমরা সম্ভাব্য সমস্যার প্রকৃতি এবং পরিসর আরও ভালোভাবে বুঝতে পারি: + + * সমস্যার ধরন (যেমন বাফার ওভারফ্লো, SQL ইনজেকশন, ক্রস-সাইট স্ক্রিপ্টিং ইত্যাদি) + * সমস্যার প্রকাশের সাথে সম্পর্কিত সোর্স ফাইলের পূর্ণ পথ + * প্রভাবিত সোর্স কোডের অবস্থান (ট্যাগ/ব্রাঞ্চ/কমিট বা সরাসরি URL) + * সমস্যাটি পুনরুত্পাদন করতে প্রয়োজনীয় বিশেষ কনফিগারেশন + * সমস্যাটি পুনরুত্পাদন করার ধাপে ধাপে নির্দেশনা + * প্রুফ-অফ-কনসেপ্ট বা এক্সপ্লয়েট কোড (যদি সম্ভব হয়) + * সমস্যার প্রভাব, যার মধ্যে একজন আক্রমণকারী কীভাবে সমস্যাটি কাজে লাগাতে পারে তা অন্তর্ভুক্ত + +এই তথ্য আমাদের রিপোর্টটি দ্রুত যাচাই করতে সাহায্য করবে। + +যদি আপনি বাগ বাউন্টির জন্য রিপোর্ট করছেন, তাহলে আরও সম্পূর্ণ রিপোর্ট একটি উচ্চতর বাউন্টি পুরস্কারে অবদান রাখতে পারে। আমাদের সক্রিয় প্রোগ্রামগুলোর বিস্তারিত জানার জন্য [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) পৃষ্ঠাটি দেখুন। + +## পছন্দের ভাষা + +আমরা সমস্ত যোগাযোগ ইংরেজিতে করতে পছন্দ করি। + +## নীতি + +মাইক্রোসফট [সমন্বিত দুর্বলতা প্রকাশের নীতি](https://www.microsoft.com/en-us/msrc/cvd) অনুসরণ করে। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/SUPPORT.md b/translations/bn/SUPPORT.md new file mode 100644 index 00000000..2f300016 --- /dev/null +++ b/translations/bn/SUPPORT.md @@ -0,0 +1,24 @@ + +# সহায়তা +## সমস্যা জমা দেওয়া এবং সহায়তা পাওয়ার উপায় + +এই প্রকল্পটি বাগ এবং ফিচার অনুরোধ ট্র্যাক করার জন্য GitHub Issues ব্যবহার করে। নতুন সমস্যা জমা দেওয়ার আগে বিদ্যমান সমস্যাগুলি অনুসন্ধান করুন যাতে ডুপ্লিকেট এড়ানো যায়। নতুন সমস্যার জন্য, আপনার বাগ বা ফিচার অনুরোধ একটি নতুন Issue হিসেবে জমা দিন। + +এই প্রকল্প ব্যবহারের জন্য সহায়তা এবং প্রশ্নের ক্ষেত্রে, একটি Issue জমা দিন। + +## Microsoft সমর্থন নীতি + +এই রেপোজিটরির জন্য সমর্থন শুধুমাত্র উপরে তালিকাভুক্ত সম্পদগুলির মধ্যে সীমাবদ্ধ। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/docs/_sidebar.md b/translations/bn/docs/_sidebar.md new file mode 100644 index 00000000..ffba2bbd --- /dev/null +++ b/translations/bn/docs/_sidebar.md @@ -0,0 +1,40 @@ + +- পরিচিতি + - [ডেটা সায়েন্স সংজ্ঞায়িত করা](../1-Introduction/01-defining-data-science/README.md) + - [ডেটা সায়েন্সের নৈতিকতা](../1-Introduction/02-ethics/README.md) + - [ডেটা সংজ্ঞায়িত করা](../1-Introduction/03-defining-data/README.md) + - [সম্ভাবনা এবং পরিসংখ্যান](../1-Introduction/04-stats-and-probability/README.md) +- ডেটার সাথে কাজ করা + - [রিলেশনাল ডেটাবেস](../2-Working-With-Data/05-relational-databases/README.md) + - [ননরিলেশনাল ডেটাবেস](../2-Working-With-Data/06-non-relational/README.md) + - [পাইথন](../2-Working-With-Data/07-python/README.md) + - [ডেটা প্রস্তুতি](../2-Working-With-Data/08-data-preparation/README.md) +- ডেটা ভিজুয়ালাইজেশন + - [পরিমাণ ভিজুয়ালাইজ করা](../3-Data-Visualization/09-visualization-quantities/README.md) + - [বণ্টন ভিজুয়ালাইজ করা](../3-Data-Visualization/10-visualization-distributions/README.md) + - [অনুপাত ভিজুয়ালাইজ করা](../3-Data-Visualization/11-visualization-proportions/README.md) + - [সম্পর্ক ভিজুয়ালাইজ করা](../3-Data-Visualization/12-visualization-relationships/README.md) + - [অর্থবহ ভিজুয়ালাইজেশন](../3-Data-Visualization/13-meaningful-visualizations/README.md) +- ডেটা সায়েন্সের জীবনচক্র + - [পরিচিতি](../4-Data-Science-Lifecycle/14-Introduction/README.md) + - [বিশ্লেষণ](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [যোগাযোগ](../4-Data-Science-Lifecycle/16-communication/README.md) +- ক্লাউডে ডেটা সায়েন্স + - [পরিচিতি](../5-Data-Science-In-Cloud/17-Introduction/README.md) + - [লো কোড](../5-Data-Science-In-Cloud/18-Low-Code/README.md) + - [অ্যাজুর](../5-Data-Science-In-Cloud/19-Azure/README.md) +- বাস্তব জীবনে ডেটা সায়েন্স + - [বাস্তব জীবনে ডেটা সায়েন্স](../6-Data-Science-In-Wild/README.md) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/for-teachers.md b/translations/bn/for-teachers.md new file mode 100644 index 00000000..e8683ab9 --- /dev/null +++ b/translations/bn/for-teachers.md @@ -0,0 +1,78 @@ + +## শিক্ষকদের জন্য + +আপনি কি আপনার ক্লাসরুমে এই পাঠ্যক্রম ব্যবহার করতে চান? নিশ্চিন্তে ব্যবহার করুন! + +আসলে, আপনি এটি GitHub এর মাধ্যমেই ব্যবহার করতে পারেন GitHub Classroom ব্যবহার করে। + +এটি করতে, এই রিপোজিটরি ফর্ক করুন। প্রতিটি পাঠের জন্য একটি রিপোজিটরি তৈরি করতে হবে, তাই আপনাকে প্রতিটি ফোল্ডার আলাদা রিপোজিটরিতে বের করতে হবে। এভাবে, [GitHub Classroom](https://classroom.github.com/classrooms) প্রতিটি পাঠ আলাদাভাবে নিতে পারবে। + +এই [সম্পূর্ণ নির্দেশনা](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) আপনাকে ক্লাসরুম সেট আপ করার ধারণা দেবে। + +## রিপোজিটরি বর্তমান অবস্থায় ব্যবহার করা + +আপনি যদি এই রিপোজিটরি বর্তমান অবস্থায় ব্যবহার করতে চান, GitHub Classroom ব্যবহার না করে, সেটাও সম্ভব। আপনাকে আপনার শিক্ষার্থীদের সাথে যোগাযোগ করতে হবে কোন পাঠ একসাথে কাজ করতে হবে। + +অনলাইন ফরম্যাটে (Zoom, Teams বা অন্য কিছু) আপনি কুইজের জন্য ব্রেকআউট রুম তৈরি করতে পারেন এবং শিক্ষার্থীদের শেখার জন্য প্রস্তুত করতে সাহায্য করতে পারেন। তারপর শিক্ষার্থীদের কুইজের জন্য আমন্ত্রণ জানান এবং নির্দিষ্ট সময়ে তাদের উত্তর 'ইস্যু' হিসেবে জমা দিতে বলুন। আপনি একই কাজ অ্যাসাইনমেন্টের জন্য করতে পারেন, যদি আপনি চান শিক্ষার্থীরা প্রকাশ্যে সহযোগিতামূলকভাবে কাজ করুক। + +যদি আপনি আরও ব্যক্তিগত ফরম্যাট পছন্দ করেন, শিক্ষার্থীদের বলুন পাঠ্যক্রমটি পাঠ অনুযায়ী তাদের নিজস্ব GitHub রিপোজিটরিতে ফর্ক করতে, যা প্রাইভেট রিপোজিটরি হবে, এবং আপনাকে অ্যাক্সেস দিতে। এরপর তারা কুইজ এবং অ্যাসাইনমেন্ট ব্যক্তিগতভাবে সম্পন্ন করতে পারে এবং আপনার ক্লাসরুম রিপোজিটরিতে ইস্যুর মাধ্যমে জমা দিতে পারে। + +অনলাইন ক্লাসরুম ফরম্যাটে এটি কাজ করার অনেক উপায় আছে। আমাদের জানান কোনটি আপনার জন্য সবচেয়ে ভালো কাজ করে! + +## এই পাঠ্যক্রমে অন্তর্ভুক্ত: + +২০টি পাঠ, ৪০টি কুইজ, এবং ২০টি অ্যাসাইনমেন্ট। ভিজ্যুয়াল শিক্ষার্থীদের জন্য পাঠগুলোর সাথে স্কেচনোটস রয়েছে। অনেক পাঠ Python এবং R উভয় ভাষায় উপলব্ধ এবং Jupyter notebooks ব্যবহার করে VS Code-এ সম্পন্ন করা যায়। এই প্রযুক্তি স্ট্যাক ব্যবহার করে আপনার ক্লাসরুম সেট আপ করার পদ্ধতি সম্পর্কে আরও জানুন: https://code.visualstudio.com/docs/datascience/jupyter-notebooks। + +সব স্কেচনোটস, একটি বড় ফরম্যাটের পোস্টারসহ, [এই ফোল্ডারে](../../sketchnotes) রয়েছে। + +সম্পূর্ণ পাঠ্যক্রম [PDF আকারে](../../pdf/readme.pdf) উপলব্ধ। + +আপনি এই পাঠ্যক্রমকে একটি স্ট্যান্ডঅ্যালোন, অফলাইন-ফ্রেন্ডলি ওয়েবসাইট হিসেবে চালাতে পারেন [Docsify](https://docsify.js.org/#/) ব্যবহার করে। [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart) আপনার লোকাল মেশিনে, তারপর আপনার লোকাল কপির মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট ৩০০০-এ চালু হবে: `localhost:3000`। + +পাঠ্যক্রমের একটি অফলাইন-ফ্রেন্ডলি সংস্করণ একটি স্ট্যান্ডঅ্যালোন ওয়েব পেজ হিসেবে খুলবে: https://localhost:3000 + +পাঠগুলো ৬টি অংশে বিভক্ত: + +- ১: পরিচিতি + - ১: ডেটা সায়েন্সের সংজ্ঞা + - ২: নৈতিকতা + - ৩: ডেটার সংজ্ঞা + - ৪: সম্ভাবনা এবং পরিসংখ্যানের সংক্ষিপ্ত বিবরণ +- ২: ডেটার সাথে কাজ করা + - ৫: রিলেশনাল ডেটাবেস + - ৬: নন-রিলেশনাল ডেটাবেস + - ৭: Python + - ৮: ডেটা প্রস্তুতি +- ৩: ডেটা ভিজ্যুয়ালাইজেশন + - ৯: পরিমাণের ভিজ্যুয়ালাইজেশন + - ১০: বিতরণের ভিজ্যুয়ালাইজেশন + - ১১: অনুপাতের ভিজ্যুয়ালাইজেশন + - ১২: সম্পর্কের ভিজ্যুয়ালাইজেশন + - ১৩: অর্থপূর্ণ ভিজ্যুয়ালাইজেশন +- ৪: ডেটা সায়েন্স লাইফসাইকেল + - ১৪: পরিচিতি + - ১৫: বিশ্লেষণ + - ১৬: যোগাযোগ +- ৫: ক্লাউডে ডেটা সায়েন্স + - ১৭: পরিচিতি + - ১৮: লো-কোড অপশন + - ১৯: Azure +- ৬: বাস্তব জীবনে ডেটা সায়েন্স + - ২০: সংক্ষিপ্ত বিবরণ + +## আমাদের আপনার মতামত দিন! + +আমরা চাই এই পাঠ্যক্রম আপনার এবং আপনার শিক্ষার্থীদের জন্য কার্যকর হোক। আলোচনা বোর্ডে আমাদের মতামত দিন! আপনার শিক্ষার্থীদের জন্য আলোচনা বোর্ডে একটি ক্লাসরুম এলাকা তৈরি করতে পারেন। + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/quiz-app/README.md b/translations/bn/quiz-app/README.md new file mode 100644 index 00000000..73f4a309 --- /dev/null +++ b/translations/bn/quiz-app/README.md @@ -0,0 +1,140 @@ + +# কুইজসমূহ + +এই কুইজগুলো ডেটা সায়েন্স কারিকুলামের প্রাক-লেকচার এবং পোস্ট-লেকচার কুইজ, যা পাওয়া যাবে এখানে: https://aka.ms/datascience-beginners + +## অনুবাদিত কুইজ সেট যোগ করা + +একটি কুইজ অনুবাদ যোগ করতে হলে, `assets/translations` ফোল্ডারে মিলিত কুইজ কাঠামো তৈরি করুন। মূল কুইজগুলো `assets/translations/en` ফোল্ডারে রয়েছে। কুইজগুলো কয়েকটি গ্রুপে বিভক্ত। সঠিক কুইজ সেকশনের সাথে নম্বর মিলিয়ে রাখুন। এই কারিকুলামে মোট ৪০টি কুইজ রয়েছে, যার গণনা ০ থেকে শুরু হয়। + +অনুবাদ সম্পাদনার পর, অনুবাদ ফোল্ডারের `index.js` ফাইলটি সম্পাদনা করুন এবং `en` ফোল্ডারের নিয়ম অনুসরণ করে সমস্ত ফাইল ইমপোর্ট করুন। + +এরপর, `assets/translations` ফোল্ডারের `index.js` ফাইলটি সম্পাদনা করুন এবং নতুন অনুবাদিত ফাইলগুলো ইমপোর্ট করুন। + +তারপর, এই অ্যাপের `App.vue` ফাইলের ড্রপডাউন সম্পাদনা করুন এবং আপনার ভাষা যোগ করুন। আপনার ভাষার ফোল্ডার নামের সাথে স্থানীয়কৃত সংক্ষিপ্ত রূপটি মেলান। + +শেষে, অনুবাদিত পাঠগুলোর কুইজ লিঙ্কগুলো সম্পাদনা করুন (যদি থাকে), যাতে এই লোকালাইজেশনটি একটি কোয়েরি প্যারামিটার হিসেবে অন্তর্ভুক্ত হয়: উদাহরণস্বরূপ `?loc=fr`। + + +## প্রজেক্ট সেটআপ + +``` +npm install +``` + +### ডেভেলপমেন্টের জন্য কম্পাইল এবং হট-রিলোড + +``` +npm run serve +``` + +### প্রোডাকশনের জন্য কম্পাইল এবং মিনিফাই + +``` +npm run build +``` + +### ফাইল লিন্ট এবং ফিক্স + +``` +npm run lint +``` + +### কনফিগারেশন কাস্টমাইজ করুন + +[Configuration Reference](https://cli.vuejs.org/config/) দেখুন। + +ক্রেডিট: এই কুইজ অ্যাপের মূল সংস্করণের জন্য ধন্যবাদ: https://github.com/arpan45/simple-quiz-vue + +## অ্যাজ্যুরে ডিপ্লয় করা + +এখানে একটি ধাপে ধাপে গাইড দেওয়া হলো যা আপনাকে শুরু করতে সাহায্য করবে: + +1. একটি গিটহাব রিপোজিটরি ফর্ক করুন +আপনার স্ট্যাটিক ওয়েব অ্যাপ কোডটি আপনার গিটহাব রিপোজিটরিতে নিশ্চিত করুন। এই রিপোজিটরিটি ফর্ক করুন। + +2. একটি অ্যাজ্যুর স্ট্যাটিক ওয়েব অ্যাপ তৈরি করুন +- একটি [Azure অ্যাকাউন্ট](http://azure.microsoft.com) তৈরি করুন +- [Azure পোর্টাল](https://portal.azure.com) এ যান +- “Create a resource” এ ক্লিক করুন এবং “Static Web App” অনুসন্ধান করুন। +- “Create” এ ক্লিক করুন। + +3. স্ট্যাটিক ওয়েব অ্যাপ কনফিগার করুন +- #### বেসিকস: + - Subscription: আপনার অ্যাজ্যুর সাবস্ক্রিপশন নির্বাচন করুন। + - Resource Group: একটি নতুন রিসোর্স গ্রুপ তৈরি করুন বা বিদ্যমান একটি ব্যবহার করুন। + - Name: আপনার স্ট্যাটিক ওয়েব অ্যাপের জন্য একটি নাম দিন। + - Region: আপনার ব্যবহারকারীদের নিকটবর্তী অঞ্চল নির্বাচন করুন। + +- #### ডিপ্লয়মেন্ট ডিটেইলস: + - Source: “GitHub” নির্বাচন করুন। + - GitHub Account: অ্যাজ্যুরকে আপনার গিটহাব অ্যাকাউন্টে অ্যাক্সেস করার অনুমতি দিন। + - Organization: আপনার গিটহাব অর্গানাইজেশন নির্বাচন করুন। + - Repository: আপনার স্ট্যাটিক ওয়েব অ্যাপের কোড থাকা রিপোজিটরি নির্বাচন করুন। + - Branch: যেই ব্রাঞ্চ থেকে ডিপ্লয় করতে চান তা নির্বাচন করুন। + +- #### বিল্ড ডিটেইলস: + - Build Presets: আপনার অ্যাপ যেই ফ্রেমওয়ার্কে তৈরি (যেমন React, Angular, Vue, ইত্যাদি) তা নির্বাচন করুন। + - App Location: আপনার অ্যাপ কোড থাকা ফোল্ডারটি নির্দিষ্ট করুন (যেমন, / যদি এটি রুটে থাকে)। + - API Location: যদি আপনার একটি API থাকে, তার অবস্থান নির্দিষ্ট করুন (ঐচ্ছিক)। + - Output Location: বিল্ড আউটপুট যেখানে তৈরি হয় সেই ফোল্ডারটি নির্দিষ্ট করুন (যেমন, build বা dist)। + +4. রিভিউ এবং তৈরি করুন +আপনার সেটিংস রিভিউ করুন এবং “Create” এ ক্লিক করুন। অ্যাজ্যুর প্রয়োজনীয় রিসোর্স সেটআপ করবে এবং আপনার রিপোজিটরিতে একটি গিটহাব অ্যাকশনস ওয়ার্কফ্লো তৈরি করবে। + +5. গিটহাব অ্যাকশনস ওয়ার্কফ্লো +অ্যাজ্যুর স্বয়ংক্রিয়ভাবে আপনার রিপোজিটরিতে একটি গিটহাব অ্যাকশনস ওয়ার্কফ্লো ফাইল তৈরি করবে (.github/workflows/azure-static-web-apps-.yml)। এই ওয়ার্কফ্লো বিল্ড এবং ডিপ্লয়মেন্ট প্রক্রিয়া পরিচালনা করবে। + +6. ডিপ্লয়মেন্ট মনিটর করুন +আপনার গিটহাব রিপোজিটরির “Actions” ট্যাবে যান। +আপনি একটি ওয়ার্কফ্লো চলমান দেখতে পাবেন। এই ওয়ার্কফ্লো আপনার স্ট্যাটিক ওয়েব অ্যাপ অ্যাজ্যুরে বিল্ড এবং ডিপ্লয় করবে। +ওয়ার্কফ্লো সম্পন্ন হলে, আপনার অ্যাপটি প্রদত্ত অ্যাজ্যুর URL-এ লাইভ হবে। + +### উদাহরণ ওয়ার্কফ্লো ফাইল + +এখানে একটি গিটহাব অ্যাকশনস ওয়ার্কফ্লো ফাইলের উদাহরণ দেওয়া হলো: +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### অতিরিক্ত রিসোর্স +- [Azure Static Web Apps Documentation](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [GitHub Actions Documentation](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিক অনুবাদের চেষ্টা করি, তবে দয়া করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় লেখা সংস্করণটিকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হয়। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/bn/sketchnotes/README.md b/translations/bn/sketchnotes/README.md new file mode 100644 index 00000000..daaab224 --- /dev/null +++ b/translations/bn/sketchnotes/README.md @@ -0,0 +1,21 @@ + +সমস্ত স্কেচনোট এখানে খুঁজুন! + +## কৃতজ্ঞতা + +নিত্যা নারাসিমহান, শিল্পী + +![রোডম্যাপ স্কেচনোট](../../../translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.bn.png) + +--- + +**অস্বীকৃতি**: +এই নথিটি AI অনুবাদ পরিষেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসম্ভব সঠিক অনুবাদের চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় রচিত সংস্করণটিকেই প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ ব্যবহার করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদ ব্যবহারের ফলে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/mo/1-Introduction/01-defining-data-science/README.md b/translations/mo/1-Introduction/01-defining-data-science/README.md new file mode 100644 index 00000000..2425bc26 --- /dev/null +++ b/translations/mo/1-Introduction/01-defining-data-science/README.md @@ -0,0 +1,124 @@ + +# 定義數據科學 + +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/01-Definitions.png) | +| :----------------------------------------------------------------------------------------------------: | +| 定義數據科學 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +--- + +[![定義數據科學影片](../../../../translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.mo.png)](https://youtu.be/beZ7Mb_oz9I) + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/0) + +## 什麼是數據? +在我們的日常生活中,我們無時無刻不被數據包圍著。你現在正在閱讀的文字就是數據。你手機裡朋友的電話號碼列表是數據,你手錶上顯示的當前時間也是數據。作為人類,我們天生就會處理數據,比如數錢或者給朋友寫信。 + +然而,隨著電腦的誕生,數據變得更加重要。電腦的主要功能是進行計算,但它們需要數據來操作。因此,我們需要了解電腦如何存儲和處理數據。 + +隨著互聯網的出現,電腦作為數據處理設備的角色變得更加重要。仔細想想,我們現在使用電腦更多的是進行數據處理和通信,而不是純粹的計算。當我們給朋友寫電子郵件或在互聯網上搜索信息時,本質上就是在創建、存儲、傳輸和操作數據。 +> 你能記得上一次真正用電腦進行計算是什麼時候嗎? + +## 什麼是數據科學? + +根據 [維基百科](https://en.wikipedia.org/wiki/Data_science),**數據科學**被定義為*一個使用科學方法從結構化和非結構化數據中提取知識和洞察力,並將這些知識和可操作的洞察力應用於廣泛應用領域的科學領域*。 + +這一定義突出了數據科學的以下重要方面: + +* 數據科學的主要目的是從數據中**提取知識**,換句話說,就是**理解**數據,發現隱藏的關係並建立**模型**。 +* 數據科學使用**科學方法**,例如概率和統計。事實上,當*數據科學*這個術語首次出現時,有些人認為數據科學只是統計學的一個新潮名稱。然而,現在已經很明顯這個領域要廣泛得多。 +* 獲得的知識應用於產生一些**可操作的洞察力**,即可以應用於實際商業情境的實用洞察。 +* 我們應該能夠處理**結構化**和**非結構化**數據。我們稍後會在課程中討論不同類型的數據。 +* **應用領域**是一個重要概念,數據科學家通常需要對問題領域(例如金融、醫學、營銷等)有一定程度的專業知識。 + +> 數據科學的另一個重要方面是研究如何使用計算機收集、存儲和操作數據。雖然統計學為我們提供了數學基礎,數據科學則將數學概念應用於實際從數據中獲取洞察。 + +根據 [Jim Gray](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist)) 的觀點,數據科學可以被視為一種獨立的科學範式: +* **經驗科學**,主要依賴觀察和實驗結果 +* **理論科學**,從現有的科學知識中產生新概念 +* **計算科學**,基於計算實驗發現新原則 +* **數據驅動科學**,基於發現數據中的關係和模式 + +## 相關領域 + +由於數據無處不在,數據科學本身也是一個廣泛的領域,涉及許多其他學科。 + +## 數據的類型 + +正如我們之前提到的,數據無處不在。我們只需要以正確的方式捕捉它!區分**結構化**和**非結構化**數據是很有用的。前者通常以某種結構化的形式表示,通常是表格或多個表格,而後者則是一堆文件的集合。有時我們還會提到**半結構化**數據,它們具有某種結構,但可能差異很大。 + +| 結構化數據 | 半結構化數據 | 非結構化數據 | +| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- | ------------------------------------- | +| 包含人員及其電話號碼的列表 | 包含鏈接的維基百科頁面 | 《大英百科全書》的文本 | +| 過去 20 年內每分鐘建築物內所有房間的溫度 | 以 JSON 格式存儲的科學論文集合,包含作者、發表日期和摘要 | 包含公司文件的文件共享 | +| 記錄進入建築物的所有人的年齡和性別數據 | 網頁 | 監控攝像頭的原始視頻流 | + +## 數據的來源 + +數據的來源有很多,無法一一列舉!然而,我們可以提到一些典型的數據來源: + +* **結構化數據** + - **物聯網**(IoT),包括來自不同傳感器(如溫度或壓力傳感器)的數據,提供了許多有用的數據。例如,如果辦公樓配備了物聯網傳感器,我們可以自動控制供暖和照明以降低成本。 + - **調查問卷**,例如在購買後或訪問網站後要求用戶完成的問卷。 + - **行為分析**,例如幫助我們了解用戶在網站上的瀏覽深度,以及離開網站的典型原因。 +* **非結構化數據** + - **文本**可以是豐富的洞察來源,例如整體**情感分數**,或提取關鍵詞和語義含義。 + - **圖像**或**視頻**。監控攝像頭的視頻可以用來估算道路上的交通情況,並通知人們潛在的交通擁堵。 + - 網絡服務器的**日誌**可以用來了解我們網站上最常被訪問的頁面以及訪問時長。 +* **半結構化數據** + - **社交網絡**圖譜可以提供有關用戶個性和信息傳播潛在效果的數據。 + - 當我們擁有一堆派對照片時,我們可以通過構建人們互相拍照的圖譜來提取**群體動態**數據。 + +通過了解不同的數據來源,你可以思考數據科學技術可以應用於哪些場景,以更好地了解情況並改進業務流程。 + +## 數據的應用 + +在數據科學中,我們專注於數據旅程的以下步驟: + +當然,根據實際數據的情況,有些步驟可能會缺失(例如,當我們已經擁有數據庫中的數據,或者不需要模型訓練時),或者某些步驟可能會重複多次(例如數據處理)。 + +## 數字化與數字化轉型 + +在過去十年中,許多企業開始意識到數據在商業決策中的重要性。要將數據科學原則應用於企業運營,首先需要收集一些數據,即將業務流程轉化為數字形式,這被稱為**數字化**。將數據科學技術應用於這些數據以指導決策,可能會帶來生產力的顯著提升(甚至是業務轉型),這被稱為**數字化轉型**。 + +讓我們考慮一個例子。假設我們有一門數據科學課程(比如這門課程),我們在線上向學生提供,並希望利用數據科學來改進它。我們該怎麼做? + +我們可以從問「什麼可以數字化?」開始。最簡單的方法是測量每位學生完成每個模塊所需的時間,並通過在每個模塊結束時進行選擇題測試來測量獲得的知識。通過計算所有學生的平均完成時間,我們可以找出哪些模塊對學生來說最困難,並著手簡化它們。 +你可能會認為這種方法並不理想,因為模組的長度可能各不相同。或許更公平的做法是將時間除以模組的長度(以字元數計算),然後比較這些值。 +當我們開始分析多選測試的結果時,可以嘗試找出學生難以理解的概念,並利用這些資訊改進內容。為了達到這個目的,我們需要設計測試,使每個問題都能對應到某個特定概念或知識塊。 + +如果我們想進一步深入分析,可以將每個模組所花的時間與學生的年齡類別進行對比。我們可能會發現某些年齡類別的學生完成模組所需時間過長,或者在完成之前就中途退出。這些資訊可以幫助我們為模組提供年齡建議,並減少因錯誤期望而導致的不滿。 + +## 🚀 挑戰 + +在這個挑戰中,我們將嘗試透過分析文本來找出與資料科學領域相關的概念。我們會選取一篇關於資料科學的維基百科文章,下載並處理文本,然後建立一個像這樣的文字雲: + +![資料科學文字雲](../../../../translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.mo.png) + +請訪問 [`notebook.ipynb`](../../../../../../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') 閱讀程式碼。您也可以執行程式碼,並即時查看它如何進行所有的資料轉換。 + +> 如果您不知道如何在 Jupyter Notebook 中執行程式碼,可以參考 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/1) + +## 作業 + +* **任務 1**:修改上述程式碼,找出與 **大數據** 和 **機器學習** 領域相關的概念 +* **任務 2**:[思考資料科學場景](assignment.md) + +## 致謝 + +這節課由 [Dmitry Soshnikov](http://soshnikov.com) 用 ♥️ 編寫。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/01-defining-data-science/assignment.md b/translations/mo/1-Introduction/01-defining-data-science/assignment.md new file mode 100644 index 00000000..54e70326 --- /dev/null +++ b/translations/mo/1-Introduction/01-defining-data-science/assignment.md @@ -0,0 +1,46 @@ + +# 作業:資料科學情境 + +在這份作業中,我們希望你思考一些現實生活中的流程或問題,涵蓋不同的問題領域,並探討如何利用資料科學流程來改進它。請思考以下問題: + +1. 你可以收集哪些資料? +1. 你會如何收集這些資料? +1. 你會如何儲存這些資料?資料的規模可能有多大? +1. 從這些資料中你可能獲得哪些洞察?基於這些資料,我們可以做出哪些決策? + +試著思考三個不同的問題或流程,並針對每個問題領域描述上述的每個要點。 + +以下是一些問題領域和問題,幫助你開始思考: + +1. 如何利用資料來改善學校中兒童的教育流程? +1. 如何利用資料在疫情期間控制疫苗接種? +1. 如何利用資料確保自己在工作中保持高效? + +## 指示 + +填寫以下表格(如果需要,可以替換建議的問題領域為你自己的領域): + +| 問題領域 | 問題 | 收集哪些資料 | 如何儲存資料 | 我們可以做出的洞察/決策 | +|----------|------|--------------|--------------|--------------------------| +| 教育 | | | | | +| 疫苗接種 | | | | | +| 生產力 | | | | | + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +能夠為所有問題領域識別合理的資料來源、儲存方式以及可能的決策/洞察 | 解決方案的某些方面未詳細說明,未討論資料儲存,至少描述了兩個問題領域 | 僅描述部分資料解決方案,僅考慮了一個問題領域。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/01-defining-data-science/solution/assignment.md b/translations/mo/1-Introduction/01-defining-data-science/solution/assignment.md new file mode 100644 index 00000000..27696e9e --- /dev/null +++ b/translations/mo/1-Introduction/01-defining-data-science/solution/assignment.md @@ -0,0 +1,48 @@ + +# 作業:數據科學情境 + +在這份作業中,我們希望你思考一些真實生活中的流程或問題,並探討如何使用數據科學流程來改進它。請思考以下問題: + +1. 你可以收集哪些數據? +1. 你會如何收集這些數據? +1. 你會如何存儲這些數據?這些數據的規模可能有多大? +1. 你可能從這些數據中獲得哪些洞察?基於這些數據,我們可以做出哪些決策? + +試著思考三個不同的問題或流程,並針對每個問題領域描述上述的每個要點。 + +以下是一些問題領域和問題,幫助你開始思考: + +1. 如何使用數據來改善學校中兒童的教育流程? +1. 如何使用數據來控制疫情期間的疫苗接種? +1. 如何使用數據來確保自己在工作中保持高效? + +## 指導 + +填寫以下表格(如果需要,可以替換建議的問題領域為你自己的問題領域): + +| 問題領域 | 問題 | 收集哪些數據 | 如何存儲數據 | 我們可以做出的洞察/決策 | +|----------|------|--------------|--------------|--------------------------| +| 教育 | 在大學中,通常課堂出席率較低,我們假設出席課堂的學生在考試中表現更好。我們希望刺激出席率並測試這一假設。 | 我們可以通過教室內的安全攝像頭拍攝的照片,或追蹤學生手機的藍牙/無線網絡地址來記錄出席情況。考試數據已經存儲在大學的數據庫中。 | 如果我們追蹤安全攝像頭的照片——我們需要存儲一些(5-10張)課堂期間拍攝的照片(非結構化數據),然後使用人工智能識別學生的面部(將數據轉換為結構化形式)。 | 我們可以計算每位學生的平均出席率,並查看是否與考試成績有任何相關性。我們會在[概率與統計](../../04-stats-and-probability/README.md)部分中進一步討論相關性。為了刺激學生出席率,我們可以在學校門戶網站上發布每週出席率排名,並在出席率最高的學生中抽獎。 | +| 疫苗接種 | | | | | +| 生產力 | | | | | + +> *我們僅提供一個答案作為示例,以便你了解此作業的期望。* + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +能夠為所有問題領域識別合理的數據來源、存儲方式以及可能的決策/洞察 | 解決方案的某些方面未詳細說明,未討論數據存儲,至少描述了兩個問題領域 | 僅描述部分數據解決方案,僅考慮了一個問題領域。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/02-ethics/README.md b/translations/mo/1-Introduction/02-ethics/README.md new file mode 100644 index 00000000..a1b01633 --- /dev/null +++ b/translations/mo/1-Introduction/02-ethics/README.md @@ -0,0 +1,268 @@ + +# 資料倫理簡介 + +|![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/02-Ethics.png)| +|:---:| +| 資料科學倫理 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +--- + +我們都是生活在數據化世界中的資料公民。 + +市場趨勢顯示,到2022年,三分之一的大型組織將通過線上[市場和交易所](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/)買賣數據。作為**應用程式開發者**,我們將更容易且更便宜地將數據驅動的洞察力和算法驅動的自動化整合到日常用戶體驗中。但隨著人工智慧(AI)的普及,我們也需要了解這些算法在大規模應用時可能帶來的[武器化](https://www.youtube.com/watch?v=TQHs8SA1qpk)危害。 + +趨勢還顯示,到2025年,我們將創造並消耗超過[180澤字節](https://www.statista.com/statistics/871513/worldwide-data-created/)的數據。作為**資料科學家**,這讓我們能夠前所未有地接觸到個人數據。這意味著我們可以建立用戶的行為檔案,並以某種方式影響決策,從而創造一種[自由選擇的假象](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice),同時可能將用戶推向我們偏好的結果。這也引發了關於數據隱私和用戶保護的更廣泛問題。 + +資料倫理現在是資料科學與工程的_必要防護措施_,幫助我們減少數據驅動行動可能帶來的潛在危害和意外後果。[Gartner AI 技術成熟度曲線](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/)將數字倫理、負責任的AI和AI治理列為推動AI_民主化_和_工業化_這兩大趨勢的關鍵驅動因素。 + +![Gartner 2020年的AI技術成熟度曲線](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +在這節課中,我們將探索資料倫理這個迷人的領域——從核心概念和挑戰,到案例研究和應用AI概念(如治理),幫助在處理數據和AI的團隊和組織中建立倫理文化。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/2) 🎯 + +## 基本定義 + +讓我們先了解一些基本術語。 + +「倫理」一詞來自[希臘語 "ethikos"](https://en.wikipedia.org/wiki/Ethics)(及其詞根 "ethos"),意為_品格或道德本質_。 + +**倫理**是指在社會中規範我們行為的共同價值觀和道德原則。倫理並非基於法律,而是基於廣泛接受的「對與錯」的標準。然而,倫理考量可以影響企業治理舉措和政府法規,從而創造更多遵從的激勵措施。 + +**資料倫理**是一個[新的倫理分支](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1),研究和評估與_數據、算法及相關實踐_相關的道德問題。在這裡,**「數據」**側重於生成、記錄、管理、處理、傳播、共享和使用的行為,**「算法」**側重於AI、代理、機器學習和機器人,**「實踐」**則側重於負責任的創新、編程、駭客行為和倫理守則等主題。 + +**應用倫理**是[道德考量的實際應用](https://en.wikipedia.org/wiki/Applied_ethics)。它是積極調查_現實世界行動、產品和流程_中的倫理問題,並採取糾正措施以確保這些行為與我們定義的倫理價值保持一致的過程。 + +**倫理文化**是關於[將應用倫理_操作化_](https://hbr.org/2019/05/how-to-design-an-ethical-organization),以確保我們的倫理原則和實踐在整個組織中以一致且可擴展的方式被採用。成功的倫理文化會定義全組織的倫理原則,提供有意義的遵從激勵,並通過鼓勵和放大組織各層級的期望行為來強化倫理規範。 + +## 倫理概念 + +在本節中,我們將討論**共同價值觀**(原則)和**倫理挑戰**(問題)等資料倫理概念,並通過**案例研究**幫助您在現實世界的背景中理解這些概念。 + +### 1. 倫理原則 + +每個資料倫理策略都始於定義_倫理原則_——描述可接受行為並指導我們在數據和AI項目中的合規行動的「共同價值觀」。您可以在個人或團隊層面定義這些原則。然而,大多數大型組織會在公司層面定義這些原則,並在所有團隊中一致執行,通常以_倫理AI_使命聲明或框架的形式呈現。 + +**範例:** 微軟的[負責任AI](https://www.microsoft.com/en-us/ai/responsible-ai)使命聲明寫道:_「我們致力於推動以將人放在首位的倫理原則為基礎的AI發展」_,並在以下框架中確定了6個倫理原則: + +![微軟的負責任AI框架](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +讓我們簡要探討這些原則。_透明性_和_問責性_是其他原則的基石,因此我們從這裡開始: + +* [**問責性**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6)使從業者對其數據和AI操作以及對這些倫理原則的遵守負責。 +* [**透明性**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6)確保數據和AI行動對用戶是_可理解的_(可解釋的),解釋決策背後的原因和內容。 +* [**公平性**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6)——確保AI對_所有人_公平對待,解決數據和系統中的任何系統性或隱性社會技術偏見。 +* [**可靠性與安全性**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6)——確保AI行為與定義的價值觀_一致_,最大限度地減少潛在危害或意外後果。 +* [**隱私與安全**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6)——關注數據來源的理解,並為用戶提供_數據隱私及相關保護_。 +* [**包容性**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6)——有意設計AI解決方案,適應_廣泛的人類需求_和能力。 + +> 🚨 想一想您的資料倫理使命聲明可能是什麼。探索其他組織的倫理AI框架——這裡有來自[IBM](https://www.ibm.com/cloud/learn/ai-ethics)、[Google](https://ai.google/principles)和[Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/)的範例。它們有哪些共同的價值觀?這些原則如何與它們所處的AI產品或行業相關? + +### 2. 倫理挑戰 + +一旦我們定義了倫理原則,下一步就是評估我們的數據和AI行動是否與這些共同價值觀一致。考慮您的行動可以分為兩類:_數據收集_和_算法設計_。 + +在數據收集方面,行動可能涉及**個人數據**或可識別的個人信息(PII),這些信息可以識別特定的活人個體。這包括[多樣的非個人數據項目](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en),這些數據_集合起來_可以識別一個人。倫理挑戰可能涉及_數據隱私_、_數據所有權_以及相關主題,如_知情同意_和_用戶的知識產權_。 + +在算法設計方面,行動將涉及收集和管理**數據集**,然後使用它們來訓練和部署**數據模型**,以在現實世界的背景中預測結果或自動化決策。倫理挑戰可能來自_數據集偏見_、_數據質量_問題、_不公平性_和算法中的_誤導性_,包括一些系統性問題。 + +在這兩種情況下,倫理挑戰突出了我們的行動可能與共同價值觀發生衝突的領域。為了檢測、減輕、最小化或消除這些問題,我們需要針對我們的行動提出道德上的「是/否」問題,然後根據需要採取糾正措施。讓我們來看看一些倫理挑戰及其引發的道德問題: + +#### 2.1 數據所有權 + +數據收集通常涉及可識別數據主體的個人數據。[數據所有權](https://permission.io/blog/data-ownership)關注與數據創建、處理和傳播相關的_控制權_和[用戶權利](https://permission.io/blog/data-ownership)。 + +需要提出的道德問題包括: + * 誰擁有數據?(用戶還是組織) + * 數據主體擁有哪些權利?(例如:訪問、刪除、可攜性) + * 組織擁有哪些權利?(例如:糾正惡意用戶評論) + +#### 2.2 知情同意 + +[知情同意](https://legaldictionary.net/informed-consent/)指用戶在充分了解相關事實(包括目的、潛在風險和替代方案)的情況下,同意某項行動(如數據收集)。 + +需要探討的問題包括: + * 用戶(數據主體)是否同意數據的收集和使用? + * 用戶是否了解數據收集的目的? + * 用戶是否了解參與可能帶來的潛在風險? + +#### 2.3 知識產權 + +[知識產權](https://en.wikipedia.org/wiki/Intellectual_property)指由人類創造的無形產物,可能對個人或企業具有_經濟價值_。 + +需要探討的問題包括: + * 收集的數據是否對用戶或企業具有經濟價值? + * **用戶**是否擁有這裡的知識產權? + * **組織**是否擁有這裡的知識產權? + * 如果這些權利存在,我們如何保護它們? + +#### 2.4 數據隱私 + +[數據隱私](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/)或信息隱私指保護用戶隱私和身份,特別是與可識別個人信息相關的保護。 + +需要探討的問題包括: + * 用戶的(個人)數據是否安全,防止駭客攻擊和洩露? + * 用戶的數據是否僅限於授權用戶和上下文訪問? + * 在數據共享或傳播時,用戶的匿名性是否得到保護? + * 用戶是否可以從匿名數據集中被重新識別? + +#### 2.5 被遺忘權 + +[被遺忘權](https://en.wikipedia.org/wiki/Right_to_be_forgotten)或[刪除權](https://www.gdpreu.org/right-to-be-forgotten/)為用戶提供額外的個人數據保護。具體來說,它賦予用戶在特定情況下請求刪除或移除個人數據的權利,允許他們在網上獲得一個新的開始,而不會因過去的行為受到影響。 + +需要探討的問題包括: + * 系統是否允許數據主體請求刪除? + * 用戶撤回同意是否應觸發自動刪除? + * 數據是否在未經同意或非法手段下收集? + * 我們是否符合政府對數據隱私的法規? + +#### 2.6 數據集偏見 + +數據集或[收集偏見](http://researcharticles.com/index.php/bias-in-data-collection-in-research/)指為算法開發選擇了一個_非代表性_的數據子集,可能導致對不同群體的結果不公平。偏見類型包括選擇或抽樣偏見、志願者偏見和工具偏見。 + +需要探討的問題包括: + * 我們是否招募了一個具有代表性的數據主體集合? + * 我們是否測試了收集或管理的數據集中的各種偏見? + * 我們是否可以減輕或消除發現的偏見? + +#### 2.7 數據質量 + +[數據質量](https://lakefs.io/data-quality-testing/)檢查用於開發算法的數據集的有效性,確保特徵和記錄符合我們AI目的所需的準確性和一致性要求。 + +需要探討的問題包括: + * 我們是否捕獲了適合我們用例的有效_特徵_? + * 數據是否在不同數據來源中_一致_地捕獲? + * 數據集是否_完整_,涵蓋多樣條件或場景? + * 捕獲的信息是否_準確_地反映了現實? + +#### 2.8 算法公平性 +[演算法公平性](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) 是檢查演算法設計是否系統性地對特定數據主體的子群體造成歧視,進而導致在資源分配(_allocation_,如資源被拒絕或扣留)和服務質量(_quality of service_,如 AI 對某些子群體的準確性不如其他群體)方面的[潛在傷害](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml)。 + +需要探討的問題包括: + * 我們是否評估了模型在不同子群體和條件下的準確性? + * 我們是否仔細檢查了系統可能帶來的傷害(例如,刻板印象)? + * 我們是否可以修正數據或重新訓練模型以減輕已識別的傷害? + +探索像 [AI 公平性檢查清單](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) 這樣的資源以了解更多。 + +#### 2.9 錯誤呈現 + +[數據錯誤呈現](https://www.sciencedirect.com/topics/computer-science/misrepresentation) 是指我們是否以欺騙的方式傳達來自誠實報告數據的洞見,以支持某種期望的敘述。 + +需要探討的問題包括: + * 我們是否報告了不完整或不準確的數據? + * 我們是否以誤導結論的方式可視化數據? + * 我們是否使用選擇性的統計技術來操縱結果? + * 是否存在可能提供不同結論的替代解釋? + +#### 2.10 自由選擇 + +[自由選擇的假象](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) 發生在系統的「選擇架構」使用決策演算法來引導人們選擇某種偏好的結果,同時表面上給予他們選擇和控制的權利。這些[黑暗模式](https://www.darkpatterns.org/)可能對用戶造成社會和經濟上的傷害。由於用戶的決策會影響行為檔案,這些行動可能會驅動未來的選擇,進一步放大或延續這些傷害的影響。 + +需要探討的問題包括: + * 用戶是否理解做出該選擇的影響? + * 用戶是否了解(替代)選擇及其各自的優缺點? + * 用戶是否可以在之後撤銷自動化或受影響的選擇? + +### 3. 案例研究 + +將這些倫理挑戰放在現實世界的背景中,幫助我們了解當忽視這些倫理問題時,對個人和社會可能造成的潛在傷害和後果。 + +以下是一些例子: + +| 倫理挑戰 | 案例研究 | +|--- |--- | +| **知情同意** | 1972 年 - [塔斯基吉梅毒研究](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - 參與研究的非裔美國男性被承諾提供免費醫療服務,但研究人員欺騙他們,未告知診斷或治療的可用性。許多受試者因此死亡,伴侶或子女也受到影響;該研究持續了 40 年。 | +| **數據隱私** | 2007 年 - [Netflix 數據獎](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) 向研究人員提供了 _10M 來自 50K 客戶的匿名電影評分_,以改進推薦演算法。然而,研究人員能夠將匿名數據與外部數據集(如 IMDb 評論)中的個人身份數據相關聯,實際上「去匿名化」了一些 Netflix 訂閱者。| +| **收集偏差** | 2013 年 - 波士頓市[開發了 Street Bump](https://www.boston.gov/transportation/street-bump),一款讓市民報告坑洞的應用程式,幫助城市獲取更好的道路數據以解決問題。然而,[低收入群體的人們較少擁有汽車和手機](https://hbr.org/2013/04/the-hidden-biases-in-big-data),使得他們的道路問題在該應用程式中不可見。開發者與學者合作解決公平性問題,如數位鴻溝和公平訪問。 | +| **演算法公平性** | 2018 年 - MIT [Gender Shades 研究](http://gendershades.org/overview.html) 評估了性別分類 AI 產品的準確性,揭示了對女性和有色人種準確性不足的問題。一個 [2019 年 Apple Card](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) 似乎給女性提供的信用額度低於男性。這兩個例子都說明了演算法偏差導致的社會經濟傷害問題。| +| **數據錯誤呈現** | 2020 年 - [喬治亞州公共衛生部發布的 COVID-19 圖表](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) 似乎通過非時間順序的 x 軸排序誤導公民關於確診病例趨勢的理解。這說明了通過可視化技巧進行的錯誤呈現。 | +| **自由選擇的假象** | 2020 年 - 學習應用程式 [ABCmouse 支付 1000 萬美元解決 FTC 投訴](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/),家長被困於無法取消的訂閱中。這說明了選擇架構中的黑暗模式,導致用戶被引導做出可能有害的選擇。 | +| **數據隱私與用戶權利** | 2021 年 - Facebook [數據洩露](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) 暴露了 5.3 億用戶的數據,導致向 FTC 支付 50 億美元的和解金。然而,它拒絕通知用戶洩露事件,違反了用戶關於數據透明性和訪問的權利。 | + +想探索更多案例研究?查看以下資源: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - 涵蓋多個行業的倫理困境。 +* [數據科學倫理課程](https://www.coursera.org/learn/data-science-ethics#syllabus) - 探討標誌性案例研究。 +* [問題出在哪裡](https://deon.drivendata.org/examples/) - Deon 清單中的示例。 + +> 🚨 想想你見過的案例研究——你是否曾經歷過或受到類似倫理挑戰的影響?你能想到至少一個其他案例來說明我們在本節中討論的倫理挑戰嗎? + +## 應用倫理 + +我們已經討論了倫理概念、挑戰以及現實世界中的案例研究。但我們如何開始在項目中_應用_倫理原則和實踐?我們又如何_實現_這些實踐以改進治理?讓我們來探索一些現實世界的解決方案: + +### 1. 專業守則 + +專業守則為組織提供了一種選擇,通過「激勵」成員支持其倫理原則和使命聲明。守則是專業行為的_道德指導方針_,幫助員工或成員做出符合組織原則的決策。它的效力取決於成員的自願遵守;然而,許多組織提供額外的獎勵和懲罰來激勵成員遵守。 + +示例包括: + + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) 倫理守則 + * [數據科學協會](http://datascienceassn.org/code-of-conduct.html) 行為守則(2013 年創建) + * [ACM 倫理與專業行為守則](https://www.acm.org/code-of-ethics)(自 1993 年起) + +> 🚨 你是否屬於某個專業工程或數據科學組織?探索他們的網站,看看是否定義了專業倫理守則。這些守則說明了哪些倫理原則?他們如何「激勵」成員遵守守則? + +### 2. 倫理清單 + +雖然專業守則定義了從業者所需的_倫理行為_,但它們在執行方面[存在已知的局限性](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md),特別是在大規模項目中。因此,許多數據科學專家[提倡使用清單](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md),這些清單可以將原則與實踐**聯繫起來**,以更具決定性和可操作的方式。 + +清單將問題轉化為「是/否」任務,可以被操作化,並作為標準產品發布工作流程的一部分進行跟蹤。 + +示例包括: + * [Deon](https://deon.drivendata.org/) - 一個通用數據倫理清單,由[行業建議](https://deon.drivendata.org/#checklist-citations)創建,並提供命令行工具以便於整合。 + * [隱私審核清單](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - 從法律和社會曝光的角度提供信息處理實踐的一般指導。 + * [AI 公平性清單](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - 由 AI 從業者創建,用於支持公平性檢查的採用和整合到 AI 開發週期中。 + * [數據與 AI 倫理的 22 個問題](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - 更開放的框架,結構化用於設計、實施和組織背景下倫理問題的初步探索。 + +### 3. 倫理法規 + +倫理是關於定義共同價值觀並_自願_做正確的事情。**合規**是指在有法律規定的情況下_遵守法律_。**治理**則廣泛涵蓋了組織運營以執行倫理原則並遵守既定法律的所有方式。 + +如今,治理在組織內有兩種形式。首先,它是關於定義**倫理 AI** 原則並建立實踐,以在組織內的所有 AI 相關項目中實現採用。其次,它是關於遵守其運營地區的所有政府規定的**數據保護法規**。 + +數據保護和隱私法規的示例: + + * `1974`,[美國隱私法案](https://www.justice.gov/opcl/privacy-act-1974) - 規範_聯邦政府_對個人信息的收集、使用和披露。 + * `1996`,[美國健康保險攜帶與責任法案 (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - 保護個人健康數據。 + * `1998`,[美國兒童在線隱私保護法案 (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - 保護 13 歲以下兒童的數據隱私。 + * `2018`,[通用數據保護條例 (GDPR)](https://gdpr-info.eu/) - 提供用戶權利、數據保護和隱私。 + * `2018`,[加州消費者隱私法案 (CCPA)](https://www.oag.ca.gov/privacy/ccpa) - 賦予消費者更多對其(個人)數據的_權利_。 + * `2021`,中國[個人信息保護法](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) 剛剛通過,創造了全球最強的在線數據隱私法規之一。 + +> 🚨 歐盟定義的 GDPR(通用數據保護條例)仍然是當今最具影響力的數據隱私法規之一。你知道它還定義了[8 項用戶權利](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr)來保護公民的數字隱私和個人數據嗎?了解這些權利是什麼以及它們為什麼重要。 + +### 4. 倫理文化 + +需要注意的是,_合規_(做到足以滿足「法律條文」)與解決[系統性問題](https://www.coursera.org/learn/data-science-ethics/home/week/4)(如僵化、信息不對稱和分配不公平)之間仍然存在無形的差距,而這些問題可能加速 AI 的武器化。 + +後者需要[協作方式來定義倫理文化](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f),以在行業內建立情感聯繫和一致的共同價值觀。這需要在組織內建立更多[正式化的數據倫理文化](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/)——允許_任何人_ [拉動安燈繩](https://en.wikipedia.org/wiki/Andon_(manufacturing))(在過程早期提出倫理問題),並將_倫理評估_(例如,在招聘中)作為 AI 項目團隊組建的核心標準。 + +--- +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/3) 🎯 +## 回顧與自學 + +課程和書籍有助於理解核心倫理概念和挑戰,而案例研究和工具則有助於在現實世界中應用倫理實踐。以下是一些入門資源: + +* [機器學習初學者](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - 來自 Microsoft 的公平性課程。 +* [負責任 AI 的原則](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - Microsoft Learn 提供的免費學習路徑。 +* [倫理與數據科學](https://resources.oreilly.com/examples/0636920203964) - O'Reilly 電子書 (M. Loukides, H. Mason 等人著) +* [數據科學倫理](https://www.coursera.org/learn/data-science-ethics#syllabus) - 密西根大學提供的線上課程。 +* [倫理解密](https://ethicsunwrapped.utexas.edu/case-studies) - 德州大學的案例研究。 + +# 作業 + +[撰寫一篇數據倫理案例研究](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/02-ethics/assignment.md b/translations/mo/1-Introduction/02-ethics/assignment.md new file mode 100644 index 00000000..992d8146 --- /dev/null +++ b/translations/mo/1-Introduction/02-ethics/assignment.md @@ -0,0 +1,35 @@ + +## 撰寫一份數據倫理案例研究 + +## 指導說明 + +你已經學習了各種[數據倫理挑戰](README.md#2-ethics-challenges),並且看過一些反映現實世界中數據倫理挑戰的[案例研究](README.md#3-case-studies)範例。 + +在這次作業中,你將撰寫一份自己的案例研究,反映你自身經歷或你熟悉的相關現實情境中的數據倫理挑戰。只需按照以下步驟進行: + +1. `選擇一個數據倫理挑戰`。參考[課程範例](README.md#2-ethics-challenges)或在線上探索一些範例,例如[Deon 清單](https://deon.drivendata.org/examples/)來獲取靈感。 + +2. `描述一個現實世界的例子`。思考你聽說過的情境(新聞頭條、研究報告等)或你經歷過的情境(當地社區),其中發生了這個特定挑戰。思考與該挑戰相關的數據倫理問題——並討論由於這個問題而產生的潛在危害或意外後果。加分項:思考可以在此處應用的潛在解決方案或流程,以幫助消除或減輕該挑戰的不利影響。 + +3. `提供相關資源清單`。分享一個或多個資源(例如文章鏈接、個人博客文章或圖片、在線研究報告等),以證明這是一個真實世界的事件。加分項:分享能展示該事件潛在危害與後果的資源,或突出防止其再次發生的積極措施。 + + + +## 評分標準 + +卓越 | 合格 | 需改進 +--- | --- | -- | +識別出一個或多個數據倫理挑戰。

案例研究清楚地描述了一個反映該挑戰的現實世界事件,並突出了其造成的不良後果或危害。

至少有一個鏈接資源證明該事件的發生。 | 識別出一個數據倫理挑戰。

至少簡要討論了一個相關的危害或後果。

然而,討論有限或缺乏證明其真實發生的證據。 | 識別出一個數據挑戰。

然而,描述或資源未能充分反映該挑戰或證明其真實發生。 | + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/03-defining-data/README.md b/translations/mo/1-Introduction/03-defining-data/README.md new file mode 100644 index 00000000..cff8b49e --- /dev/null +++ b/translations/mo/1-Introduction/03-defining-data/README.md @@ -0,0 +1,85 @@ + +# 定義資料 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|定義資料 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +資料是用來進行探索和支持明智決策的事實、資訊、觀察和測量。一個資料點是資料集中的單一單位,而資料集則是由多個資料點組成的集合。資料集可能有不同的格式和結構,通常取決於其來源或資料的產生地。例如,一家公司的月度收益可能存放在電子表格中,而智慧手錶的每小時心率資料可能是 [JSON](https://stackoverflow.com/a/383699) 格式。資料科學家通常需要處理資料集中不同類型的資料。 + +本課程重點在於根據資料的特性和來源來識別和分類資料。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/4) + +## 資料的描述方式 + +### 原始資料 +原始資料是從其來源直接獲得的初始狀態,尚未被分析或整理。為了理解資料集中的內容,必須將其整理成一種人類和技術都能理解的格式。資料集的結構描述了其組織方式,可以分為結構化、非結構化和半結構化。這些結構類型會因來源而異,但最終都屬於這三類之一。 + +### 定量資料 +定量資料是資料集中的數值觀察,通常可以進行分析、測量並用於數學運算。一些定量資料的例子包括:一個國家的人口、一個人的身高或一家公司季度收益。通過進一步分析,定量資料可以用來發現空氣品質指數(AQI)的季節性趨勢或估算典型工作日的高峰交通概率。 + +### 定性資料 +定性資料,也稱為分類資料,是無法像定量資料那樣客觀測量的資料。它通常是各種主觀格式的資料,用來捕捉某物的品質,例如產品或流程。有時,定性資料是數字形式,但通常不會用於數學運算,例如電話號碼或時間戳。一些定性資料的例子包括:影片評論、汽車的品牌和型號或你最親密朋友的最喜歡的顏色。定性資料可以用來了解消費者最喜歡哪些產品,或識別求職申請表中的熱門關鍵字。 + +### 結構化資料 +結構化資料是以行和列的形式組織的資料,其中每一行都有相同的一組列。列代表特定類型的值,並用名稱描述該值的含義,而行則包含實際的值。列通常會有一組特定的規則或限制,以確保值準確地代表該列。例如,想像一個客戶的電子表格,其中每一行都必須有一個電話號碼,且電話號碼不能包含字母字符。可能會對電話號碼列施加規則,確保它永遠不會空白且僅包含數字。 + +結構化資料的一個優勢是它可以以某種方式組織,使其能與其他結構化資料建立關聯。然而,由於資料被設計成特定的組織方式,改變其整體結構可能需要付出大量努力。例如,向客戶電子表格添加一個不能空白的電子郵件列,意味著需要找到方法將這些值添加到資料集中現有的客戶行。 + +結構化資料的例子:電子表格、關聯式資料庫、電話號碼、銀行對帳單 + +### 非結構化資料 +非結構化資料通常無法分類為行或列,且不包含格式或規則。由於非結構化資料對結構的限制較少,與結構化資料相比,添加新資訊更容易。如果一個每兩分鐘捕捉一次氣壓資料的感測器收到更新,現在可以測量和記錄溫度,則不需要更改現有的非結構化資料。然而,這可能使分析或調查此類資料的過程更耗時。例如,一位科學家希望從感測器的資料中找到上個月的平均溫度,但發現感測器在某些記錄中使用了 "e" 表示故障,而不是典型的數字,這意味著資料不完整。 + +非結構化資料的例子:文字檔案、文字訊息、影片檔案 + +### 半結構化資料 +半結構化資料具有結構化和非結構化資料的特徵。它通常不符合行和列的格式,但以某種被認為是結構化的方式組織,並可能遵循固定的格式或規則。結構會因來源而異,例如從明確定義的層次結構到更靈活的方式,允許輕鬆整合新資訊。中繼資料是幫助決定資料如何組織和存儲的指標,並根據資料類型有不同的名稱。一些常見的中繼資料名稱包括標籤、元素、實體和屬性。例如,一封典型的電子郵件訊息會有主題、正文和一組收件人,並可以根據發送者或發送時間進行組織。 + +半結構化資料的例子:HTML、CSV 檔案、JavaScript Object Notation (JSON) + +## 資料的來源 + +資料來源是資料生成的初始位置,或其 "存放地",並會根據資料的收集方式和時間而有所不同。由使用者生成的資料被稱為原始資料,而次級資料則來自為一般用途收集資料的來源。例如,一群科學家在雨林中收集觀察資料被視為原始資料,而如果他們決定與其他科學家分享,對使用者而言則被視為次級資料。 + +資料庫是常見的來源,依賴資料庫管理系統來托管和維護資料,使用者可以使用稱為查詢的命令來探索資料。作為資料來源的檔案可以是音訊、影像和影片檔案,也可以是像 Excel 這樣的電子表格。網路來源是托管資料的常見位置,資料庫和檔案都可以在其中找到。應用程式介面(API)允許程式設計師通過網路創建與外部使用者共享資料的方法,而網頁爬取則是從網頁中提取資料的過程。[處理資料的課程](../../../../../../../../../2-Working-With-Data) 將重點介紹如何使用各種資料來源。 + +## 結論 + +在本課程中,我們學到了: + +- 資料的定義 +- 資料的描述方式 +- 資料的分類和歸類方式 +- 資料的來源 + +## 🚀 挑戰 + +Kaggle 是一個非常好的開放資料集來源。使用 [資料集搜尋工具](https://www.kaggle.com/datasets) 找到一些有趣的資料集,並根據以下標準分類 3-5 個資料集: + +- 資料是定量還是定性? +- 資料是結構化、非結構化還是半結構化? + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/5) + +## 回顧與自學 + +- Microsoft Learn 單元 [分類你的資料](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) 詳細介紹了結構化、半結構化和非結構化資料。 + +## 作業 + +[分類資料集](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/03-defining-data/assignment.md b/translations/mo/1-Introduction/03-defining-data/assignment.md new file mode 100644 index 00000000..d208dd05 --- /dev/null +++ b/translations/mo/1-Introduction/03-defining-data/assignment.md @@ -0,0 +1,79 @@ + +# 資料集分類 + +## 指導說明 + +按照此作業中的提示,識別並分類資料,並為每種資料類型選擇一個分類: + +**結構類型**:結構化、半結構化或非結構化 + +**數值類型**:定性或定量 + +**來源類型**:原始或次級 + +1. 一家公司被收購,現在有了一家母公司。資料科學家從母公司收到了一份包含客戶電話號碼的電子表格。 + +結構類型: + +數值類型: + +來源類型: + +--- + +2. 一款智慧手錶正在收集佩戴者的心率數據,原始數據以 JSON 格式儲存。 + +結構類型: + +數值類型: + +來源類型: + +--- + +3. 一份關於員工士氣的職場調查,資料以 CSV 檔案形式儲存。 + +結構類型: + +數值類型: + +來源類型: + +--- + +4. 天體物理學家正在訪問由太空探測器收集的星系資料庫。該資料包含每個星系中的行星數量。 + +結構類型: + +數值類型: + +來源類型: + +--- + +5. 一款個人理財應用程式使用 API 連接用戶的金融帳戶,以計算其淨資產。用戶可以看到所有交易,格式為行和列,類似於電子表格。 + +結構類型: + +數值類型: + +來源類型: + +## 評分標準 + +卓越 | 合格 | 需改進 +--- | --- | --- | +正確識別所有結構、數值和來源類型 | 正確識別 3 種結構、數值和來源類型 | 正確識別 2 種或更少的結構、數值和來源類型 | + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/04-stats-and-probability/README.md b/translations/mo/1-Introduction/04-stats-and-probability/README.md new file mode 100644 index 00000000..0e546a91 --- /dev/null +++ b/translations/mo/1-Introduction/04-stats-and-probability/README.md @@ -0,0 +1,277 @@ + +# 統計學與機率的簡介 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| 統計學與機率 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +統計學與機率理論是數學中兩個高度相關的領域,對於數據科學非常重要。雖然在沒有深入數學知識的情況下也可以處理數據,但了解一些基本概念仍然是有益的。在這裡,我們將提供一個簡短的介紹,幫助你入門。 + +[![Intro Video](../../../../translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.mo.png)](https://youtu.be/Z5Zy85g4Yjw) + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/6) + +## 機率與隨機變數 + +**機率** 是介於 0 和 1 之間的一個數字,用來表示某個 **事件** 發生的可能性。它被定義為正面結果(導致事件發生的結果)的數量,除以所有可能結果的總數,前提是所有結果的可能性相等。例如,當我們擲骰子時,得到偶數的機率是 3/6 = 0.5。 + +當我們談論事件時,我們使用 **隨機變數**。例如,表示擲骰子時得到的數字的隨機變數,其值範圍是 1 到 6。1 到 6 的集合被稱為 **樣本空間**。我們可以討論隨機變數取某個值的機率,例如 P(X=3)=1/6。 + +上述例子中的隨機變數被稱為 **離散型**,因為它有一個可數的樣本空間,也就是說可以列舉出單獨的值。有些情況下,樣本空間是一個實數範圍,或者是整個實數集合。這樣的變數被稱為 **連續型**。一個很好的例子是公車到達的時間。 + +## 機率分佈 + +對於離散型隨機變數,我們可以用一個函數 P(X) 來描述每個事件的機率。對於樣本空間 *S* 中的每個值 *s*,它會給出一個介於 0 和 1 之間的數字,並且所有事件的 P(X=s) 值的總和為 1。 + +最著名的離散分佈是 **均勻分佈**,其中樣本空間有 N 個元素,每個元素的機率相等,為 1/N。 + +描述連續型變數的機率分佈則更困難,這些變數的值來自某個區間 [a,b] 或整個實數集合 ℝ。以公車到達時間為例,事實上,公車在某個精確時間 *t* 到達的機率是 0! + +> 現在你知道了機率為 0 的事件是會發生的,而且非常頻繁!至少每次公車到達時都是如此! + +我們只能討論變數落在某個值區間內的機率,例如 P(t1≤X2)。在這種情況下,機率分佈由 **機率密度函數** p(x) 描述,其公式如下: + +![P(t_1\le X1, x2, ..., xn。我們可以用傳統方式定義序列的 **平均值**(或 **算術平均值**),公式為 (x1+x2+xn)/n。當樣本數量增加(即 n→∞),我們將得到分佈的平均值(也稱為 **期望值**)。我們用 **E**(x) 表示期望值。 + +> 可以證明,對於任何離散分佈,其值為 {x1, x2, ..., xN},對應的機率為 p1, p2, ..., pN,期望值為 E(X)=x1p1+x2p2+...+xNpN。 + +為了衡量數值的分散程度,我們可以計算方差 σ2 = ∑(xi - μ)2/n,其中 μ 是序列的平均值。σ 被稱為 **標準差**,而 σ2 被稱為 **方差**。 + +## 眾數、中位數與四分位數 + +有時候,平均值並不能充分代表數據的「典型」值。例如,當有一些極端值完全超出範圍時,它們可能會影響平均值。另一個很好的指標是 **中位數**,即一個值,使得一半的數據點低於它,另一半高於它。 + +為了幫助我們理解數據的分佈,討論 **四分位數** 是有幫助的: + +* 第一四分位數(Q1):25% 的數據低於該值 +* 第三四分位數(Q3):75% 的數據低於該值 + +我們可以用一個叫做 **盒形圖** 的圖表來表示中位數與四分位數之間的關係: + + + +在這裡,我們還計算了 **四分位距** IQR=Q3-Q1,以及所謂的 **離群值**——位於 [Q1-1.5*IQR,Q3+1.5*IQR] 範圍之外的值。 + +對於包含少量可能值的有限分佈,一個好的「典型」值是出現最頻繁的值,稱為 **眾數**。它通常應用於分類數據,例如顏色。考慮以下情況:有兩組人,一組強烈偏好紅色,另一組偏好藍色。如果我們用數字編碼顏色,最喜歡的顏色的平均值可能會落在橙色或綠色範圍,這並不能反映任何一組的實際偏好。然而,眾數可能是其中一種顏色,或者是兩種顏色(如果投票人數相等,在這種情況下我們稱樣本為 **多眾數**)。 + +## 真實世界數據 + +當我們分析真實世界的數據時,它們通常不是隨機變數,因為我們並未進行未知結果的實驗。例如,考慮一組棒球隊員及其身體數據,如身高、體重和年齡。這些數字並不完全是隨機的,但我們仍然可以應用相同的數學概念。例如,一組人的體重可以被視為某個隨機變數的值序列。以下是來自 [美國職業棒球大聯盟](http://mlb.mlb.com/index.jsp) 的棒球隊員的體重序列,取自 [這個數據集](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights)(為方便起見,僅顯示前 20 個值): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **注意**:要查看使用此數據集的示例,請參考 [配套筆記本](notebook.ipynb)。本課程中還有許多挑戰,你可以通過向該筆記本添加一些代碼來完成它們。如果你不確定如何操作數據,請不要擔心——我們稍後會回到使用 Python 處理數據的部分。如果你不知道如何在 Jupyter Notebook 中運行代碼,請參考 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 + +以下是顯示我們數據的平均值、中位數和四分位數的盒形圖: + +![Weight Box Plot](../../../../translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.mo.png) + +由於我們的數據包含不同球員 **角色** 的信息,我們也可以按角色繪製盒形圖——這可以幫助我們了解參數值在不同角色之間的差異。這次我們將考慮身高: + +![Box plot by role](../../../../translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.mo.png) + +這個圖表表明,平均而言,一壘手的身高高於二壘手的身高。在本課程的後面,我們將學習如何更正式地檢驗這一假設,以及如何證明我們的數據在統計上具有顯著性。 + +> 在處理真實世界數據時,我們假設所有數據點都是從某個機率分佈中抽取的樣本。這一假設使我們能夠應用機器學習技術並構建有效的預測模型。 + +為了查看我們數據的分佈,我們可以繪製一個叫做 **直方圖** 的圖表。X 軸包含不同的體重區間(即 **分箱**),Y 軸顯示隨機變數樣本落入某個區間的次數。 + +![Histogram of real world data](../../../../translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.mo.png) + +從這個直方圖中可以看出,所有值都集中在某個平均體重附近,距離平均體重越遠,該值出現的次數越少。也就是說,棒球隊員的體重非常接近平均體重的可能性很高。體重的方差顯示了體重與平均值可能的差異程度。 + +> 如果我們取其他人的體重,而不是棒球聯盟的球員,分佈可能會有所不同。然而,分佈的形狀會保持相同,但平均值和方差會改變。因此,如果我們在棒球隊員上訓練模型,當應用於大學學生時可能會得出錯誤的結果,因為底層分佈不同。 + +## 正態分佈 + +我們上面看到的體重分佈非常典型,許多來自真實世界的測量值遵循相同類型的分佈,但具有不同的平均值和方差。這種分佈被稱為 **正態分佈**,在統計學中具有非常重要的作用。 + +使用正態分佈是生成潛在棒球隊員隨機體重的正確方法。一旦我們知道平均體重 `mean` 和標準差 `std`,我們可以用以下方式生成 1000 個體重樣本: + +```python +samples = np.random.normal(mean,std,1000) +``` + +如果我們繪製生成樣本的直方圖,我們會看到與上面類似的圖像。如果我們增加樣本數量和分箱數量,我們可以生成更接近理想的正態分佈圖像: + +![Normal Distribution with mean=0 and std.dev=1](../../../../translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.mo.png) + +*平均值=0,標準差=1 的正態分佈* + +## 信賴區間 + +當我們談論棒球隊員的體重時,我們假設存在某個 **隨機變數 W**,它對應於所有棒球隊員體重的理想機率分佈(即 **母體**)。我們的體重序列對應於所有棒球隊員的一個子集,稱為 **樣本**。一個有趣的問題是,我們能否知道 W 的分佈參數,即母體的平均值和方差? + +最簡單的答案是計算樣本的平均值和方差。然而,可能出現的情況是,我們的隨機樣本並不能準確代表完整的母體。因此,討論 **信賴區間** 是有意義的。 +> **信賴區間** 是根據我們的樣本來估計母體真實平均值的一種方法,其準確性在某一特定的概率(或稱為 **信心水準**)內。 +假設我們有一個樣本 X1, ..., Xn 來自我們的分佈。每次從分佈中抽取樣本時,我們都會得到不同的平均值 μ。因此,μ 可以被視為一個隨機變數。一個具有置信度 p 的 **置信區間** 是一對值 (Lp,Rp),使得 **P**(Lp≤μ≤Rp) = p,也就是說測得的平均值落在該區間內的概率等於 p。 + +詳細討論如何計算這些置信區間超出了我們的簡短介紹範圍。更多細節可以參考 [維基百科](https://en.wikipedia.org/wiki/Confidence_interval)。簡而言之,我們定義了計算出的樣本平均值相對於母體真實平均值的分佈,這被稱為 **學生分佈**。 + +> **有趣的事實**:學生分佈的名稱來自數學家 William Sealy Gosset,他以筆名 "Student" 發表了他的論文。他在健力士啤酒廠工作,根據其中一個版本,他的雇主不希望公眾知道他們使用統計測試來判斷原材料的質量。 + +如果我們想以置信度 p 估計母體的平均值 μ,我們需要取學生分佈 A 的 *(1-p)/2 百分位數*,這可以從表中查得,或者使用統計軟件(例如 Python、R 等)的內建函數計算。然後 μ 的區間可以表示為 X±A*D/√n,其中 X 是樣本的平均值,D 是標準差。 + +> **注意**:我們也省略了與學生分佈相關的重要概念 [自由度](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)) 的討論。您可以參考更完整的統計學書籍以更深入地理解這個概念。 + +在 [附帶的筆記本](notebook.ipynb) 中提供了一個計算體重和身高置信區間的例子。 + +| p | 體重平均值 | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +注意,置信概率越高,置信區間越寬。 + +## 假設檢定 + +在我們的棒球球員數據集中,有不同的球員角色,可以總結如下(查看 [附帶的筆記本](notebook.ipynb) 以了解如何計算此表): + +| 角色 | 身高 | 體重 | 數量 | +|------|--------|--------|-------| +| 捕手 | 72.723684 | 204.328947 | 76 | +| 指定打擊 | 74.222222 | 220.888889 | 18 | +| 一壘手 | 74.000000 | 213.109091 | 55 | +| 外野手 | 73.010309 | 199.113402 | 194 | +| 救援投手 | 74.374603 | 203.517460 | 315 | +| 二壘手 | 71.362069 | 184.344828 | 58 | +| 游擊手 | 71.903846 | 182.923077 | 52 | +| 先發投手 | 74.719457 | 205.163636 | 221 | +| 三壘手 | 73.044444 | 200.955556 | 45 | + +我們可以注意到,一壘手的平均身高比二壘手高。因此,我們可能會得出結論:**一壘手比二壘手高**。 + +> 這個陳述被稱為 **假設**,因為我們不知道這個事實是否真的成立。 + +然而,是否可以得出這個結論並不總是顯而易見的。從上面的討論中我們知道,每個平均值都有一個相關的置信區間,因此這種差異可能僅僅是統計誤差。我們需要更正式的方法來檢驗我們的假設。 + +讓我們分別計算一壘手和二壘手的身高置信區間: + +| 置信度 | 一壘手 | 二壘手 | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +我們可以看到,在任何置信度下,這些區間都不重疊。這證明了我們的假設,即一壘手比二壘手高。 + +更正式地說,我們正在解決的問題是檢查 **兩個概率分佈是否相同**,或者至少是否具有相同的參數。根據分佈的不同,我們需要使用不同的檢驗方法。如果我們知道分佈是正態分佈,我們可以應用 **[學生 t 檢驗](https://en.wikipedia.org/wiki/Student%27s_t-test)**。 + +在學生 t 檢驗中,我們計算所謂的 **t 值**,它表示平均值之間的差異,並考慮到方差。已證明 t 值遵循 **學生分佈**,這使我們能夠獲得給定置信度 **p** 的閾值(這可以計算或在數值表中查得)。然後我們將 t 值與該閾值進行比較,以批准或拒絕假設。 + +在 Python 中,我們可以使用 **SciPy** 套件,其中包括 `ttest_ind` 函數(以及許多其他有用的統計函數!)。它為我們計算 t 值,並且還反向查找置信度 p 值,因此我們只需查看置信度即可得出結論。 + +例如,我們比較一壘手和二壘手的身高,得到以下結果: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +在我們的情況下,p 值非常低,這意味著有強有力的證據支持一壘手更高。 + +此外,我們可能希望檢驗其他類型的假設,例如: +* 證明某個樣本遵循某種分佈。在我們的情況下,我們假設身高是正態分佈的,但這需要正式的統計驗證。 +* 證明樣本的平均值與某個預定值相符 +* 比較多個樣本的平均值(例如,不同年齡組的幸福水平差異) + +## 大數法則與中心極限定理 + +正態分佈如此重要的原因之一是所謂的 **中心極限定理**。假設我們有一個大型樣本,由獨立的 N 個值 X1, ..., XN 組成,這些值來自任何具有平均值 μ 和方差 σ2 的分佈。那麼,當 N 足夠大時(換句話說,當 N→∞),平均值 ΣiXi 將呈正態分佈,平均值為 μ,方差為 σ2/N。 + +> 中心極限定理的另一種解釋是,無論分佈如何,當您計算任何隨機變數值的和的平均值時,最終都會得到正態分佈。 + +根據中心極限定理,當 N→∞ 時,樣本平均值等於 μ 的概率變為 1。這被稱為 **大數法則**。 + +## 協方差與相關性 + +數據科學的一項工作是尋找數據之間的關係。我們說兩個序列 **相關**,當它們在同一時間表現出相似的行為,即它們同時上升/下降,或者一個序列上升時另一個序列下降,反之亦然。換句話說,兩個序列之間似乎存在某種關係。 + +> 相關性並不一定表示兩個序列之間存在因果關係;有時兩個變量可能依賴於某個外部原因,或者兩個序列的相關性可能純屬偶然。然而,強數學相關性是兩個變量某種程度上相互關聯的良好指標。 + +數學上,顯示兩個隨機變數之間關係的主要概念是 **協方差**,其計算公式為:Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]。我們計算兩個變數偏離其平均值的偏差,然後計算這些偏差的乘積。如果兩個變數一起偏離,乘積將始終為正值,並累加為正協方差。如果兩個變數不同步偏離(即一個低於平均值而另一個高於平均值),我們將始終得到負數,並累加為負協方差。如果偏差不相關,它們將累加為大約零。 + +協方差的絕對值並不能告訴我們相關性有多大,因為它取決於實際值的大小。為了標準化,我們可以將協方差除以兩個變數的標準差,得到 **相關性**。相關性的好處是它始終在 [-1,1] 範圍內,其中 1 表示值之間的強正相關,-1 表示強負相關,0 表示完全無相關(變數是獨立的)。 + +**例子**:我們可以計算棒球球員的體重和身高之間的相關性: +```python +print(np.corrcoef(weights,heights)) +``` +結果,我們得到如下的 **相關矩陣**: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> 相關矩陣 C 可以為任意數量的輸入序列 S1, ..., Sn 計算。Cij 的值是 Si 和 Sj 之間的相關性,對角元素始終為 1(這也是 Si 的自相關性)。 + +在我們的例子中,值 0.53 表明體重和身高之間存在一定的相關性。我們還可以繪製一個值對另一個值的散點圖,以直觀地查看關係: + +![體重與身高之間的關係](../../../../translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.mo.png) + +> 更多相關性和協方差的例子可以在 [附帶的筆記本](notebook.ipynb) 中找到。 + +## 結論 + +在本節中,我們學習了: + +* 數據的基本統計屬性,例如平均值、方差、眾數和四分位數 +* 隨機變數的不同分佈,包括正態分佈 +* 如何找到不同屬性之間的相關性 +* 如何使用數學和統計的嚴謹工具來證明一些假設 +* 如何根據數據樣本計算隨機變數的置信區間 + +雖然這絕不是概率和統計學中所有主題的完整列表,但應該足以讓您在本課程中有一個良好的開始。 + +## 🚀 挑戰 + +使用筆記本中的示例代碼來測試其他假設: +1. 一壘手比二壘手年齡更大 +2. 一壘手比三壘手更高 +3. 游擊手比二壘手更高 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/7) + +## 回顧與自學 + +概率和統計是一個非常廣泛的主題,值得開設自己的課程。如果您有興趣深入理論,可以繼續閱讀以下書籍: + +1. [Carlos Fernandez-Granda](https://cims.nyu.edu/~cfgranda/) 紐約大學的講義 [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf)(在線提供) +1. [Peter and Andrew Bruce. Practical Statistics for Data Scientists.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[R 示例代碼](https://github.com/andrewgbruce/statistics-for-data-scientists)]。 +1. [James D. Miller. Statistics for Data Science](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[R 示例代碼](https://github.com/PacktPublishing/Statistics-for-Data-Science)] + +## 作業 + +[小型糖尿病研究](assignment.md) + +## 致謝 + +本課程由 [Dmitry Soshnikov](http://soshnikov.com) 用 ♥️ 編寫。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/04-stats-and-probability/assignment.md b/translations/mo/1-Introduction/04-stats-and-probability/assignment.md new file mode 100644 index 00000000..ae5687b0 --- /dev/null +++ b/translations/mo/1-Introduction/04-stats-and-probability/assignment.md @@ -0,0 +1,40 @@ + +# 小型糖尿病研究 + +在這次作業中,我們將使用一個來自[這裡](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html)的小型糖尿病患者數據集。 + +| | 年齡 (AGE) | 性別 (SEX) | 身體質量指數 (BMI) | 血壓 (BP) | S1 | S2 | S3 | S4 | S5 | S6 | Y(疾病進展) | +|---|-----------|-----------|------------------|----------|----|----|----|----|----|----|--------------| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2| 38.0| 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2| 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6| 41.0| 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ... | ...| ...| ...| ...| ...| ...| ... | + +## 指導說明 + +* 在 jupyter notebook 環境中打開 [assignment notebook](assignment.ipynb) +* 完成 notebook 中列出的所有任務,包括: + * [ ] 計算所有值的平均值和方差 + * [ ] 根據性別繪製 BMI、BP 和 Y 的箱型圖 + * [ ] 分析年齡、性別、BMI 和 Y 變數的分佈情況 + * [ ] 測試不同變數與疾病進展(Y)之間的相關性 + * [ ] 檢驗糖尿病進展程度在男性和女性之間是否存在差異的假設 + +## 評分標準 + +優秀 | 合格 | 需要改進 +--- | --- | -- | +所有要求的任務均已完成,並附有圖表說明和解釋 | 大部分任務已完成,但缺少圖表或獲得數值的解釋或結論 | 僅完成基本任務,例如計算平均值/方差和基本圖表,未從數據中得出結論 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/1-Introduction/README.md b/translations/mo/1-Introduction/README.md new file mode 100644 index 00000000..ee32de57 --- /dev/null +++ b/translations/mo/1-Introduction/README.md @@ -0,0 +1,31 @@ + +# 資料科學簡介 + +![數據運作](../../../translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.mo.jpg) +> 照片由 Stephen Dawson 提供,來源於 Unsplash + +在這些課程中,您將了解資料科學的定義,並學習作為資料科學家必須考慮的倫理問題。此外,您還會學習資料的定義,並簡單了解統計學和機率,這些是資料科學的核心學術領域。 + +### 主題 + +1. [資料科學的定義](01-defining-data-science/README.md) +2. [資料科學倫理](02-ethics/README.md) +3. [資料的定義](03-defining-data/README.md) +4. [統計與機率入門](04-stats-and-probability/README.md) + +### 致謝 + +這些課程由 [Nitya Narasimhan](https://twitter.com/nitya) 和 [Dmitry Soshnikov](https://twitter.com/shwars) 用 ❤️ 編寫。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/05-relational-databases/README.md b/translations/mo/2-Working-With-Data/05-relational-databases/README.md new file mode 100644 index 00000000..19b0fcbc --- /dev/null +++ b/translations/mo/2-Working-With-Data/05-relational-databases/README.md @@ -0,0 +1,195 @@ + +# 使用資料:關聯式資料庫 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/05-RelationalData.png)| +|:---:| +| 使用資料:關聯式資料庫 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +你可能曾經使用過電子表格來存儲資訊。電子表格由一組列和欄組成,其中列包含資訊(或資料),而欄描述這些資訊(有時稱為元資料)。關聯式資料庫基於這種表格的核心原則,允許你將資訊分散到多個表格中。這使得你可以處理更複雜的資料,避免重複,並在探索資料時擁有更大的靈活性。讓我們來探討關聯式資料庫的概念。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/8) + +## 一切從表格開始 + +關聯式資料庫的核心是表格。就像電子表格一樣,表格是一組欄和列的集合。列包含我們希望處理的資料或資訊,例如城市名稱或降雨量。欄則描述它們存儲的資料。 + +讓我們開始探索,建立一個表格來存儲城市的資訊。我們可以從城市名稱和國家開始。你可以將這些資訊存儲在如下表格中: + +| 城市 | 國家 | +| -------- | ------------- | +| 東京 | 日本 | +| 亞特蘭大 | 美國 | +| 奧克蘭 | 紐西蘭 | + +注意,**城市**、**國家**和**人口**這些欄名描述了存儲的資料,而每一列包含一個城市的資訊。 + +## 單一表格方法的缺點 + +上述表格可能對你來說相當熟悉。現在讓我們開始向這個初步的資料庫添加一些額外的資料——年度降雨量(以毫米為單位)。我們將專注於2018年、2019年和2020年。如果我們為東京添加這些資料,可能會像這樣: + +| 城市 | 國家 | 年份 | 降雨量 | +| ----- | ------- | ---- | ------ | +| 東京 | 日本 | 2020 | 1690 | +| 東京 | 日本 | 2019 | 1874 | +| 東京 | 日本 | 2018 | 1445 | + +你注意到我們的表格有什麼問題嗎?你可能會注意到我們重複了城市名稱和國家多次。這可能會佔用相當多的存儲空間,而且多次複製是完全不必要的。畢竟,東京的名稱只有一個。 + +好吧,讓我們嘗試另一種方法。讓我們為每一年添加新的欄: + +| 城市 | 國家 | 2018 | 2019 | 2020 | +| -------- | ------------- | ---- | ---- | ---- | +| 東京 | 日本 | 1445 | 1874 | 1690 | +| 亞特蘭大 | 美國 | 1779 | 1111 | 1683 | +| 奧克蘭 | 紐西蘭 | 1386 | 942 | 1176 | + +雖然這避免了列的重複,但也帶來了其他挑戰。我們需要在每次有新年份時修改表格的結構。此外,隨著資料的增長,將年份作為欄會使檢索和計算值變得更加困難。 + +這就是為什麼我們需要多個表格和關係。通過拆分資料,我們可以避免重複,並在處理資料時擁有更大的靈活性。 + +## 關係的概念 + +讓我們回到資料,並決定如何拆分它們。我們知道我們希望存儲城市的名稱和國家,因此這可能最適合存儲在一個表格中。 + +| 城市 | 國家 | +| -------- | ------------- | +| 東京 | 日本 | +| 亞特蘭大 | 美國 | +| 奧克蘭 | 紐西蘭 | + +但在建立下一個表格之前,我們需要弄清楚如何引用每個城市。我們需要某種形式的識別碼、ID或(在技術資料庫術語中)主鍵。主鍵是一個用於識別表格中特定列的值。雖然這可以基於某個值本身(例如,我們可以使用城市名稱),但它幾乎應該始終是一個數字或其他識別碼。我們不希望ID發生變化,因為這會破壞關係。在大多數情況下,主鍵或ID通常是一個自動生成的數字。 + +> ✅ 主鍵通常縮寫為PK + +### 城市表 + +| city_id | 城市 | 國家 | +| ------- | -------- | ------------- | +| 1 | 東京 | 日本 | +| 2 | 亞特蘭大 | 美國 | +| 3 | 奧克蘭 | 紐西蘭 | + +> ✅ 在本課程中,你會注意到我們交替使用“id”和“主鍵”這些術語。這些概念也適用於DataFrames,你稍後會探索。DataFrames不使用“主鍵”這一術語,但你會注意到它們的行為非常相似。 + +建立城市表後,讓我們存儲降雨量。與其重複城市的完整資訊,我們可以使用ID。我們還應確保新建立的表格有一個*id*欄,因為所有表格都應有一個ID或主鍵。 + +### 降雨量表 + +| rainfall_id | city_id | 年份 | 降雨量 | +| ----------- | ------- | ---- | ------ | +| 1 | 1 | 2018 | 1445 | +| 2 | 1 | 2019 | 1874 | +| 3 | 1 | 2020 | 1690 | +| 4 | 2 | 2018 | 1779 | +| 5 | 2 | 2019 | 1111 | +| 6 | 2 | 2020 | 1683 | +| 7 | 3 | 2018 | 1386 | +| 8 | 3 | 2019 | 942 | +| 9 | 3 | 2020 | 1176 | + +注意新建立的**降雨量表**中的**city_id**欄。這個欄包含的值引用了**城市表**中的ID。在技術關聯資料術語中,這被稱為**外鍵**;它是另一個表格中的主鍵。你可以簡單地將其視為一個引用或指針。**city_id** 1引用了東京。 + +> [!NOTE] 外鍵通常縮寫為FK + +## 資料檢索 + +將資料分成兩個表格後,你可能會想知道如何檢索它們。如果我們使用像MySQL、SQL Server或Oracle這樣的關聯式資料庫,我們可以使用一種名為結構化查詢語言(SQL)的語言。SQL(有時讀作sequel)是一種標準語言,用於在關聯式資料庫中檢索和修改資料。 + +要檢索資料,你可以使用指令`SELECT`。其核心是,你**選擇**想要查看的欄,**從**它們所在的表格中檢索。如果你只想顯示城市的名稱,可以使用以下指令: + +```sql +SELECT city +FROM cities; + +-- Output: +-- Tokyo +-- Atlanta +-- Auckland +``` + +`SELECT`是列出欄的地方,`FROM`是列出表格的地方。 + +> [NOTE] SQL語法不區分大小寫,這意味著`select`和`SELECT`是相同的。然而,根據你使用的資料庫類型,欄和表格可能區分大小寫。因此,最佳做法是始終將程式設計中的所有內容視為區分大小寫。在撰寫SQL查詢時,常見的慣例是將關鍵字全部用大寫字母表示。 + +上述查詢將顯示所有城市。假設我們只想顯示紐西蘭的城市。我們需要某種形式的篩選器。SQL的關鍵字是`WHERE`,即“某些條件為真”。 + +```sql +SELECT city +FROM cities +WHERE country = 'New Zealand'; + +-- Output: +-- Auckland +``` + +## 資料連結 + +到目前為止,我們只從單一表格中檢索資料。現在我們希望將**城市表**和**降雨量表**中的資料結合起來。這可以通過*連結*它們來完成。你將有效地在兩個表格之間建立一個接合點,並匹配每個表格中的欄值。 + +在我們的例子中,我們將匹配**降雨量表**中的**city_id**欄與**城市表**中的**city_id**欄。這將把降雨量值與其相應的城市匹配起來。我們將執行一種稱為*內部連結*的操作,這意味著如果某些列未與另一個表格中的任何內容匹配,它們將不會顯示。在我們的例子中,每個城市都有降雨量,因此所有資料都會顯示。 + +讓我們檢索2019年的所有城市降雨量。 + +我們將分步進行。第一步是通過指明接合點的欄——如前所述的**city_id**——來連結資料。 + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +``` + +我們已經指明了我們想要的兩個欄,以及我們希望通過**city_id**連結表格的事實。現在我們可以添加`WHERE`語句來篩選出僅2019年的資料。 + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +WHERE rainfall.year = 2019 + +-- Output + +-- city | amount +-- -------- | ------ +-- Tokyo | 1874 +-- Atlanta | 1111 +-- Auckland | 942 +``` + +## 總結 + +關聯式資料庫的核心是將資訊分成多個表格,然後將它們重新結合以進行顯示和分析。這提供了高度的靈活性來進行計算或其他方式操作資料。你已經了解了關聯式資料庫的核心概念,以及如何在兩個表格之間進行連結。 + +## 🚀 挑戰 + +網路上有許多關聯式資料庫可供使用。你可以使用上述學到的技能來探索這些資料。 + +## 課後測驗 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/9) + +## 回顧與自學 + +[Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum)上有許多資源可供你繼續探索SQL和關聯式資料庫的概念 + +- [描述關聯資料的概念](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) +- [開始使用Transact-SQL進行查詢](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum)(Transact-SQL是SQL的一個版本) +- [Microsoft Learn上的SQL內容](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) + +## 作業 + +[作業標題](assignment.md) + +--- + +**免責聲明**: +本文檔已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵信息,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/05-relational-databases/assignment.md b/translations/mo/2-Working-With-Data/05-relational-databases/assignment.md new file mode 100644 index 00000000..bfe07f22 --- /dev/null +++ b/translations/mo/2-Working-With-Data/05-relational-databases/assignment.md @@ -0,0 +1,73 @@ + +# 顯示機場數據 + +您已獲得一個基於 [SQLite](https://sqlite.org/index.html) 的 [資料庫](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db),其中包含有關機場的資訊。以下顯示了資料庫的結構。您將使用 [SQLite 擴展](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) 在 [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) 中顯示不同城市的機場資訊。 + +## 指導步驟 + +要開始這項作業,您需要完成幾個步驟。您需要安裝一些工具並下載範例資料庫。 + +### 設置您的系統 + +您可以使用 Visual Studio Code 和 SQLite 擴展來與資料庫互動。 + +1. 前往 [code.visualstudio.com](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum),按照指示安裝 Visual Studio Code +1. 按照 Marketplace 頁面的指示安裝 [SQLite 擴展](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) + +### 下載並打開資料庫 + +接下來,您需要下載並打開資料庫。 + +1. 從 [GitHub 下載資料庫檔案](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db),並將其保存到一個目錄中 +1. 打開 Visual Studio Code +1. 在 SQLite 擴展中打開資料庫,按下 **Ctl-Shift-P**(或在 Mac 上按 **Cmd-Shift-P**),然後輸入 `SQLite: Open database` +1. 選擇 **Choose database from file**,並打開您之前下載的 **airports.db** 檔案 +1. 打開資料庫後(螢幕上不會顯示更新),通過按下 **Ctl-Shift-P**(或在 Mac 上按 **Cmd-Shift-P**),輸入 `SQLite: New query` 來創建一個新的查詢窗口 + +打開後,新的查詢窗口可用於對資料庫執行 SQL 語句。您可以使用指令 **Ctl-Shift-Q**(或在 Mac 上按 **Cmd-Shift-Q**)來執行資料庫查詢。 + +> [!NOTE] 有關 SQLite 擴展的更多資訊,您可以參考 [文檔](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) + +## 資料庫結構 + +資料庫的結構是其表格的設計和架構。**airports** 資料庫有兩個表格,`cities` 包含英國和愛爾蘭的城市列表,`airports` 包含所有機場的列表。由於某些城市可能有多個機場,因此創建了兩個表格來存儲資訊。在此練習中,您將使用連接來顯示不同城市的資訊。 + +| Cities | +| ---------------- | +| id (PK, integer) | +| city (text) | +| country (text) | + +| Airports | +| -------------------------------- | +| id (PK, integer) | +| name (text) | +| code (text) | +| city_id (FK to id in **Cities**) | + +## 作業 + +創建查詢以返回以下資訊: + +1. `Cities` 表中的所有城市名稱 +1. `Cities` 表中所有位於愛爾蘭的城市 +1. 所有機場名稱及其所在城市和國家 +1. 所有位於英國倫敦的機場 + +## 評分標準 + +| 優秀 | 合格 | 需要改進 | +| --------- | --------- | --------- | + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/06-non-relational/README.md b/translations/mo/2-Working-With-Data/06-non-relational/README.md new file mode 100644 index 00000000..eb8bdd63 --- /dev/null +++ b/translations/mo/2-Working-With-Data/06-non-relational/README.md @@ -0,0 +1,158 @@ + +# 使用數據:非關聯式數據 + +|![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的草圖筆記 ](../../sketchnotes/06-NoSQL.png)| +|:---:| +|使用 NoSQL 數據 - _草圖筆記由 [@nitya](https://twitter.com/nitya) 繪製_ | + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/10) + +數據並不限於關聯式數據庫。本課程專注於非關聯式數據,並將涵蓋試算表和 NoSQL 的基礎知識。 + +## 試算表 + +試算表是一種流行的數據存儲和探索方式,因為它的設置和使用起來相對簡單。在本課程中,您將學習試算表的基本組成部分,以及公式和函數。示例將以 Microsoft Excel 為例,但大多數部分和主題在其他試算表軟件中名稱和步驟相似。 + +![一個空的 Microsoft Excel 工作簿,包含兩個工作表](../../../../translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.mo.png) + +試算表是一個文件,可以在計算機、設備或基於雲的文件系統中訪問。軟件本身可能是基於瀏覽器的,也可能是需要安裝在計算機上的應用程序,或者下載為應用程式。在 Excel 中,這些文件被定義為 **工作簿**,本課程將使用這一術語。 + +一個工作簿包含一個或多個 **工作表**,每個工作表通過標籤進行標記。在工作表中有稱為 **儲存格** 的矩形,這些儲存格包含實際數據。儲存格是行和列的交叉點,其中列用字母標記,行用數字標記。一些試算表會在前幾行中包含標題,用於描述儲存格中的數據。 + +了解了 Excel 工作簿的這些基本元素後,我們將使用來自 [Microsoft 模板](https://templates.office.com/) 的一個關於庫存的示例,來進一步了解試算表的其他部分。 + +### 管理庫存 + +名為 "InventoryExample" 的試算表文件是一個格式化的庫存項目試算表,包含三個工作表,標籤分別為 "Inventory List"、"Inventory Pick List" 和 "Bin Lookup"。在 Inventory List 工作表中,第 4 行是標題行,描述了標題列中每個儲存格的值。 + +![Microsoft Excel 中庫存清單示例中的公式高亮顯示](../../../../translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.mo.png) + +有時,一個儲存格的值依賴於其他儲存格的值來生成。在 Inventory List 試算表中,我們記錄了庫存中每個項目的成本,但如果我們需要知道整個庫存的總價值該怎麼辦?[**公式**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) 用於對儲存格數據執行操作,在此示例中用於計算庫存的成本。該試算表在 Inventory Value 列中使用了一個公式,通過將 QTY 標題下的數量與 COST 標題下的成本相乘來計算每個項目的價值。雙擊或高亮顯示一個儲存格即可查看公式。您會注意到,公式以等號開頭,後面是計算或操作。 + +![Microsoft Excel 中庫存清單示例中的函數高亮顯示](../../../../translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.mo.png) + +我們還可以使用另一個公式將所有 Inventory Value 的值相加,從而獲得其總價值。雖然可以通過逐一相加每個儲存格來計算總和,但這樣做會非常繁瑣。Excel 提供了 [**函數**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89),即預定義的公式,用於對儲存格值進行計算。函數需要參數,即執行這些計算所需的值。如果函數需要多個參數,則需要按特定順序列出,否則函數可能無法正確計算值。在此示例中,我們使用了 SUM 函數,並使用 Inventory Value 的值作為參數來生成總和,該總和列於第 3 行,第 B 列(也稱為 B3)。 + +## NoSQL + +NoSQL 是一個總稱,涵蓋了存儲非關聯式數據的不同方式,可以解釋為 "非 SQL"、"非關聯式" 或 "不僅僅是 SQL"。這類數據庫系統可以分為四種類型。 + +![一個鍵值數據存儲的圖形表示,顯示 4 個唯一的數字鍵與 4 個不同的值相關聯](../../../../translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.mo.png) +> 來源:[Michał Białecki Blog](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) + +[鍵值](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) 數據庫將唯一鍵(作為唯一標識符)與值配對。這些配對使用 [哈希表](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) 和適當的哈希函數進行存儲。 + +![一個圖形數據存儲的圖形表示,顯示人、興趣和地點之間的關係](../../../../translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.mo.png) +> 來源:[Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) + +[圖形](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) 數據庫描述數據中的關係,並以節點和邊的集合表示。節點代表實體,即現實世界中存在的事物,例如學生或銀行對賬單。邊則表示兩個實體之間的關係。每個節點和邊都有屬性,提供有關節點和邊的附加信息。 + +![一個列式數據存儲的圖形表示,顯示一個客戶數據庫,包含兩個列族,分別為 Identity 和 Contact Info](../../../../translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.mo.png) + +[列式](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) 數據存儲將數據組織為列和行,類似於關聯式數據結構,但每列被劃分為稱為列族的組,其中一列下的所有數據是相關的,可以作為一個單元檢索和更改。 + +### 使用 Azure Cosmos DB 的文檔數據存儲 + +[文檔](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) 數據存儲基於鍵值數據存儲的概念,由一系列字段和對象組成。本節將通過 Cosmos DB 模擬器探索文檔數據庫。 + +Cosmos DB 數據庫符合 "不僅僅是 SQL" 的定義,其中 Cosmos DB 的文檔數據庫依賴於 SQL 來查詢數據。[上一課](../05-relational-databases/README.md) 涵蓋了 SQL 的基礎知識,我們可以在這裡將一些相同的查詢應用於文檔數據庫。我們將使用 Cosmos DB 模擬器,該模擬器允許我們在計算機上本地創建和探索文檔數據庫。更多有關模擬器的信息請參閱[此處](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21)。 + +文檔是字段和對象值的集合,其中字段描述對象值的含義。以下是一個文檔示例。 + +```json +{ + "firstname": "Eva", + "age": 44, + "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", + "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", + "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", + "_attachments": "attachments/", + "_ts": 1630544034 +} +``` + +此文檔中的關鍵字段包括:`firstname`、`id` 和 `age`。其餘帶下劃線的字段是由 Cosmos DB 自動生成的。 + +#### 使用 Cosmos DB 模擬器探索數據 + +您可以[在此處下載並安裝 Windows 版模擬器](https://aka.ms/cosmosdb-emulator)。有關如何在 macOS 和 Linux 上運行模擬器的選項,請參閱[此文檔](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos)。 + +模擬器會啟動一個瀏覽器窗口,其中的 Explorer 視圖允許您探索文檔。 + +![Cosmos DB 模擬器的 Explorer 視圖](../../../../translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.mo.png) + +如果您正在跟隨操作,點擊 "Start with Sample" 以生成一個名為 SampleDB 的示例數據庫。如果您點擊 SampleDB 左側的箭頭展開,您會發現一個名為 `Persons` 的容器。容器包含一系列項目,即容器內的文檔。您可以探索 `Items` 下的四個單獨文檔。 + +![在 Cosmos DB 模擬器中探索示例數據](../../../../translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.mo.png) + +#### 使用 Cosmos DB 模擬器查詢文檔數據 + +我們還可以通過點擊 "New SQL Query" 按鈕(左側第二個按鈕)來查詢示例數據。 + +`SELECT * FROM c` 將返回容器中的所有文檔。我們可以添加一個 where 子句,查找年齡小於 40 的人。 + +`SELECT * FROM c where c.age < 40` + +![在 Cosmos DB 模擬器中運行 SELECT 查詢以查找 age 字段值小於 40 的文檔](../../../../translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.mo.png) + +查詢返回了兩個文檔,注意每個文檔的 age 值都小於 40。 + +#### JSON 與文檔 + +如果您熟悉 JavaScript Object Notation (JSON),您會發現文檔看起來與 JSON 類似。本目錄中有一個 `PersonsData.json` 文件,您可以將其上傳到模擬器中的 Persons 容器,方法是使用 `Upload Item` 按鈕。 + +在大多數情況下,返回 JSON 數據的 API 可以直接將數據傳輸並存儲到文檔數據庫中。以下是另一個文檔示例,它表示從 Microsoft Twitter 帳戶檢索的推文,這些推文是通過 Twitter API 獲取後插入到 Cosmos DB 中的。 + +```json +{ + "created_at": "2021-08-31T19:03:01.000Z", + "id": "1432780985872142341", + "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", + "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", + "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", + "_attachments": "attachments/", + "_ts": 1630537000 +``` + +此文檔中的關鍵字段包括:`created_at`、`id` 和 `text`。 + +## 🚀 挑戰 + +目錄中有一個 `TwitterData.json` 文件,您可以將其上傳到 SampleDB 數據庫。建議您將其添加到一個單獨的容器中。操作步驟如下: + +1. 點擊右上角的 "New Container" 按鈕 +1. 選擇現有數據庫(SampleDB),為容器創建一個容器 ID +1. 將分區鍵設置為 `/id` +1. 點擊 OK(可以忽略此視圖中的其他信息,因為這是一個小型數據集,運行在您的本地機器上) +1. 打開新容器,使用 `Upload Item` 按鈕上傳 Twitter Data 文件 + +嘗試運行一些 SELECT 查詢,查找 text 字段中包含 Microsoft 的文檔。提示:嘗試使用 [LIKE 關鍵字](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character)。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/11) + +## 回顧與自學 + +- 該試算表中還添加了一些本課未涵蓋的格式和功能。如果您有興趣了解更多,Microsoft 提供了 [大量的 Excel 文檔和視頻](https://support.microsoft.com/excel)。 + +- 此架構文檔詳細介紹了不同類型非關聯式數據的特性:[非關聯式數據與 NoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data)。 + +- Cosmos DB 是一個基於雲的非關聯式數據庫,也可以存儲本課中提到的不同 NoSQL 類型。了解更多請參閱此 [Cosmos DB Microsoft Learn 模組](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/)。 + +## 作業 + +[Soda Profits](assignment.md) + +--- + +**免責聲明**: +本文檔已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵信息,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/06-non-relational/assignment.md b/translations/mo/2-Working-With-Data/06-non-relational/assignment.md new file mode 100644 index 00000000..69c45468 --- /dev/null +++ b/translations/mo/2-Working-With-Data/06-non-relational/assignment.md @@ -0,0 +1,33 @@ + +# 蘇打水利潤 + +## 說明 + +[Coca Cola Co 試算表](../../../../2-Working-With-Data/06-non-relational/CocaColaCo.xlsx)缺少一些計算。您的任務是: + +1. 計算 2015、2016、2017 和 2018 財年的毛利 + - 毛利 = 營業收入淨額 - 銷售成本 +1. 計算所有毛利的平均值。嘗試使用函數完成此操作。 + - 平均值 = 毛利總和除以財年數量 (10) + - [AVERAGE 函數](https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) 的文件 +1. 這是一個 Excel 文件,但應該可以在任何試算表平台上編輯 + +[數據來源感謝 Yiyi Wang](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | --- | + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用本翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/07-python/README.md b/translations/mo/2-Working-With-Data/07-python/README.md new file mode 100644 index 00000000..a53ecc8c --- /dev/null +++ b/translations/mo/2-Working-With-Data/07-python/README.md @@ -0,0 +1,290 @@ + +# 使用數據:Python 和 Pandas 庫 + +| ![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../sketchnotes/07-WorkWithPython.png) | +| :-------------------------------------------------------------------------------------------------------: | +| 使用 Python - _由 [@nitya](https://twitter.com/nitya) 繪製的速記筆記_ | + +[![介紹影片](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.mo.png)](https://youtu.be/dZjWOGbsN4Y) + +雖然資料庫提供了非常高效的方式來存儲數據並使用查詢語言進行查詢,但最靈活的數據處理方式是編寫自己的程式來操作數據。在許多情況下,使用資料庫查詢可能更有效。然而,在某些需要更複雜數據處理的情況下,使用 SQL 可能不容易完成。 + +數據處理可以用任何程式語言編寫,但有些語言在處理數據方面更高效。數據科學家通常偏好以下幾種語言: + +* **[Python](https://www.python.org/)**:一種通用程式語言,因其簡單性常被認為是初學者的最佳選擇。Python 擁有許多額外的庫,可以幫助解決許多實際問題,例如從 ZIP 壓縮檔中提取數據或將圖片轉換為灰度。除了數據科學,Python 也常用於網頁開發。 +* **[R](https://www.r-project.org/)**:一個傳統工具箱,專為統計數據處理而設計。它擁有大量的庫(CRAN),使其成為數據處理的良好選擇。然而,R 不是通用程式語言,通常僅限於數據科學領域使用。 +* **[Julia](https://julialang.org/)**:另一種專為數據科學設計的語言。它旨在提供比 Python 更好的性能,是科學實驗的理想工具。 + +在本課程中,我們將重點使用 Python 進行簡單的數據處理。我們假設您已對該語言有基本的熟悉。如果您想深入了解 Python,可以參考以下資源: + +* [用海龜圖形和分形趣味學習 Python](https://github.com/shwars/pycourse) - 基於 GitHub 的 Python 程式快速入門課程 +* [開始學習 Python 的第一步](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) - [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) 上的學習路徑 + +數據可以有多種形式。在本課程中,我們將探討三種數據形式:**表格數據**、**文本**和**圖片**。 + +我們將專注於一些數據處理的例子,而不是全面介紹所有相關的庫。這樣可以讓您了解主要概念,並在需要時知道如何尋找解決方案。 + +> **最有用的建議**:當您需要對數據執行某些操作但不知道如何進行時,嘗試在網路上搜索。[Stackoverflow](https://stackoverflow.com/) 通常包含許多針對常見任務的 Python 代碼範例。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/12) + +## 表格數據和數據框架 + +當我們討論關係型資料庫時,您已經接觸過表格數據。當您擁有大量數據並且它包含在許多不同的關聯表中時,使用 SQL 來處理它是非常合理的。然而,在許多情況下,我們擁有一個數據表,並需要對該數據進行一些**理解**或**洞察**,例如分佈情況、值之間的相關性等。在數據科學中,經常需要對原始數據進行一些轉換,然後進行可視化。這兩個步驟都可以輕鬆地使用 Python 完成。 + +以下是 Python 中處理表格數據最有用的兩個庫: +* **[Pandas](https://pandas.pydata.org/)**:允許您操作所謂的**數據框架**(Dataframes),類似於關係型表格。您可以擁有命名的列,並對行、列以及整個數據框架進行各種操作。 +* **[Numpy](https://numpy.org/)**:是一個用於處理**張量**(Tensors),即多維**陣列**的庫。陣列的值具有相同的基礎類型,並且比數據框架更簡單,但它提供了更多的數學運算,並且開銷更少。 + +此外,還有幾個您應該了解的庫: +* **[Matplotlib](https://matplotlib.org/)**:用於數據可視化和繪製圖表的庫 +* **[SciPy](https://www.scipy.org/)**:包含一些額外科學函數的庫。我們在討論概率和統計時已經接觸過該庫 + +以下是您通常在 Python 程式開頭用於導入這些庫的代碼: +```python +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from scipy import ... # you need to specify exact sub-packages that you need +``` + +Pandas 的核心概念圍繞幾個基本概念。 + +### Series + +**Series** 是一系列值,類似於列表或 numpy 陣列。主要區別在於 Series 還具有**索引**,當我們對 Series 進行操作(例如相加)時,索引會被考慮在內。索引可以像整數行號一樣簡單(當從列表或陣列創建 Series 時,默認使用此索引),也可以具有複雜結構,例如日期區間。 + +> **注意**:在附帶的筆記本 [`notebook.ipynb`](notebook.ipynb) 中有一些 Pandas 的入門代碼。我們在此僅列出部分示例,您可以查看完整的筆記本。 + +舉個例子:我們想分析冰淇淋店的銷售情況。讓我們生成一段時間內的銷售數據(每天售出的商品數量): +```python +start_date = "Jan 1, 2020" +end_date = "Mar 31, 2020" +idx = pd.date_range(start_date,end_date) +print(f"Length of index is {len(idx)}") +items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) +items_sold.plot() +``` +![時間序列圖](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.mo.png) + +假設每週我們都會舉辦一次朋友聚會,並額外購買 10 盒冰淇淋。我們可以創建另一個以週為索引的 Series 來展示這一點: +```python +additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) +``` +當我們將兩個 Series 相加時,我們得到總數: +```python +total_items = items_sold.add(additional_items,fill_value=0) +total_items.plot() +``` +![時間序列圖](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.mo.png) + +> **注意**:我們並未使用簡單的語法 `total_items+additional_items`。如果使用該語法,結果 Series 中會有許多 `NaN`(*非數值*)值。這是因為在 `additional_items` Series 的某些索引點上存在缺失值,而將 `NaN` 與任何值相加都會得到 `NaN`。因此,我們需要在相加時指定 `fill_value` 參數。 + +對於時間序列,我們還可以使用不同的時間間隔進行**重採樣**。例如,假設我們想計算每月的平均銷售量,可以使用以下代碼: +```python +monthly = total_items.resample("1M").mean() +ax = monthly.plot(kind='bar') +``` +![每月時間序列平均值](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.mo.png) + +### DataFrame + +DataFrame 本質上是具有相同索引的多個 Series 的集合。我們可以將幾個 Series 組合成一個 DataFrame: +```python +a = pd.Series(range(1,10)) +b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) +df = pd.DataFrame([a,b]) +``` +這將創建如下的水平表格: +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| 1 | I | like | to | use | Python | and | Pandas | very | much | + +我們還可以使用 Series 作為列,並使用字典指定列名: +```python +df = pd.DataFrame({ 'A' : a, 'B' : b }) +``` +這將生成如下表格: + +| | A | B | +| --- | --- | ------ | +| 0 | 1 | I | +| 1 | 2 | like | +| 2 | 3 | to | +| 3 | 4 | use | +| 4 | 5 | Python | +| 5 | 6 | and | +| 6 | 7 | Pandas | +| 7 | 8 | very | +| 8 | 9 | much | + +**注意**:我們也可以通過轉置前面的表格來獲得此表格佈局,例如: +```python +df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) +``` +其中 `.T` 表示轉置 DataFrame 的操作,即交換行和列,而 `rename` 操作允許我們重命名列以匹配前面的示例。 + +以下是一些我們可以對 DataFrame 執行的重要操作: + +**列選擇**。我們可以通過 `df['A']` 選擇單個列,此操作返回一個 Series。我們也可以通過 `df[['B','A']]` 選擇列的子集到另一個 DataFrame,此操作返回另一個 DataFrame。 + +**篩選**符合條件的行。例如,要僅保留列 `A` 大於 5 的行,我們可以寫 `df[df['A']>5]`。 + +> **注意**:篩選的工作方式如下。表達式 `df['A']<5` 返回一個布林 Series,指示原始 Series `df['A']` 中每個元素的表達式是否為 `True` 或 `False`。當布林 Series 用作索引時,它返回 DataFrame 中的行子集。因此,不能使用任意的 Python 布林表達式,例如,寫 `df[df['A']>5 and df['A']<7]` 是錯誤的。相反,您應使用布林 Series 的特殊 `&` 操作,寫 `df[(df['A']>5) & (df['A']<7)]`(*括號在此處很重要*)。 + +**創建新的可計算列**。我們可以通過直觀的表達式輕鬆為 DataFrame 創建新的可計算列: +```python +df['DivA'] = df['A']-df['A'].mean() +``` +此示例計算列 A 與其平均值的偏差。實際上,我們是在計算一個 Series,然後將該 Series 分配給左側,創建另一列。因此,我們不能使用與 Series 不兼容的操作,例如,以下代碼是錯誤的: +```python +# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" +df['LenB'] = len(df['B']) # <- Wrong result +``` +後一個示例雖然語法正確,但結果錯誤,因為它將 Series `B` 的長度分配給列中的所有值,而不是分配給每個元素的長度。 + +如果需要計算此類複雜表達式,可以使用 `apply` 函數。上述示例可以寫成: +```python +df['LenB'] = df['B'].apply(lambda x : len(x)) +# or +df['LenB'] = df['B'].apply(len) +``` + +執行上述操作後,我們將得到以下 DataFrame: + +| | A | B | DivA | LenB | +| --- | --- | ------ | ---- | ---- | +| 0 | 1 | I | -4.0 | 1 | +| 1 | 2 | like | -3.0 | 4 | +| 2 | 3 | to | -2.0 | 2 | +| 3 | 4 | use | -1.0 | 3 | +| 4 | 5 | Python | 0.0 | 6 | +| 5 | 6 | and | 1.0 | 3 | +| 6 | 7 | Pandas | 2.0 | 6 | +| 7 | 8 | very | 3.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | + +**基於行號選擇行**可以使用 `iloc` 結構。例如,要選擇 DataFrame 的前 5 行: +```python +df.iloc[:5] +``` + +**分組**通常用於獲得類似於 Excel 中*樞紐表*的結果。假設我們想計算列 `A` 的平均值,按 `LenB` 的不同值分組。我們可以按 `LenB` 分組 DataFrame,然後調用 `mean`: +```python +df.groupby(by='LenB').mean() +``` +如果需要計算分組的平均值和元素數量,可以使用更複雜的 `aggregate` 函數: +```python +df.groupby(by='LenB') \ + .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ + .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) +``` +這將生成以下表格: + +| LenB | Count | Mean | +| ---- | ----- | -------- | +| 1 | 1 | 1.000000 | +| 2 | 1 | 3.000000 | +| 3 | 2 | 5.000000 | +| 4 | 3 | 6.333333 | +| 6 | 2 | 6.000000 | + +### 獲取數據 +我們已經看到如何輕鬆地從 Python 物件構建 Series 和 DataFrame。然而,數據通常以文字檔案或 Excel 表格的形式出現。幸運的是,Pandas 提供了一種簡單的方法來從磁碟載入數據。例如,讀取 CSV 檔案就像這樣簡單: +```python +df = pd.read_csv('file.csv') +``` +我們將在「挑戰」部分看到更多載入數據的範例,包括從外部網站獲取數據。 + +### 列印與繪圖 + +資料科學家經常需要探索數據,因此能夠視覺化數據非常重要。當 DataFrame 很大時,我們通常只想確保我們的操作正確無誤,這可以透過列印出前幾行來完成。這可以使用 `df.head()` 方法來實現。如果你在 Jupyter Notebook 中執行,它會以漂亮的表格形式顯示 DataFrame。 + +我們也已經看過使用 `plot` 函數來視覺化某些欄位的用法。雖然 `plot` 對於許多任務非常有用,並且透過 `kind=` 參數支持多種圖表類型,但你也可以使用原生的 `matplotlib` 函式庫來繪製更複雜的圖表。我們會在單獨的課程中詳細介紹數據視覺化。 + +這個概述涵蓋了 Pandas 的一些重要概念,但這個函式庫非常豐富,幾乎沒有你無法完成的事情!現在,讓我們運用這些知識來解決具體的問題。 + +## 🚀 挑戰 1:分析 COVID 傳播 + +我們將專注於的第一個問題是模擬 COVID-19 的流行病傳播。為此,我們將使用由 [約翰霍普金斯大學](https://jhu.edu/) 的 [系統科學與工程中心](https://systems.jhu.edu/) (CSSE) 提供的不同國家感染人數數據。數據集可在 [這個 GitHub 儲存庫](https://github.com/CSSEGISandData/COVID-19) 中找到。 + +由於我們想展示如何處理數據,我們邀請你打開 [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) 並從頭到尾閱讀。你也可以執行程式碼單元,並完成我們在最後為你設置的一些挑戰。 + +![COVID 傳播](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.mo.png) + +> 如果你不知道如何在 Jupyter Notebook 中執行程式碼,請參考 [這篇文章](https://soshnikov.com/education/how-to-execute-notebooks-from-github/)。 + +## 處理非結構化數據 + +雖然數據通常以表格形式出現,但在某些情況下,我們需要處理非結構化數據,例如文字或圖片。在這種情況下,為了應用我們之前看到的數據處理技術,我們需要以某種方式**提取**結構化數據。以下是一些範例: + +* 從文字中提取關鍵字,並查看這些關鍵字出現的頻率 +* 使用神經網路提取圖片中物件的相關資訊 +* 獲取視頻鏡頭中人物的情感資訊 + +## 🚀 挑戰 2:分析 COVID 相關論文 + +在這個挑戰中,我們將繼續探討 COVID 疫情的主題,並專注於處理相關的科學論文。有一個 [CORD-19 數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge),其中包含超過 7000 篇(撰寫本文時)關於 COVID 的論文,並附有元數據和摘要(其中約一半還提供全文)。 + +使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) 認知服務分析該數據集的完整範例已在 [這篇部落格文章](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) 中描述。我們將討論此分析的簡化版本。 + +> **注意**:我們並未在此儲存庫中提供數據集的副本。你可能需要先從 [Kaggle 的這個數據集](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 下載 [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) 檔案(可能需要註冊)。你也可以從 [這裡](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) 無需註冊下載數據集,但它將包含所有全文以及元數據檔案。 + +打開 [`notebook-papers.ipynb`](notebook-papers.ipynb) 並從頭到尾閱讀。你也可以執行程式碼單元,並完成我們在最後為你設置的一些挑戰。 + +![COVID 醫療處理](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.mo.png) + +## 處理影像數據 + +近年來,已經開發出非常強大的 AI 模型,能夠理解影像內容。有許多任務可以使用預訓練的神經網路或雲端服務來解決。一些範例包括: + +* **影像分類**,可以幫助你將影像分類到預定義的類別中。你可以使用像 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務輕鬆訓練自己的影像分類器。 +* **物件檢測**,用於檢測影像中的不同物件。像 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 這樣的服務可以檢測許多常見物件,你也可以訓練 [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) 模型來檢測一些特定的目標物件。 +* **人臉檢測**,包括年齡、性別和情感檢測。這可以透過 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 完成。 + +所有這些雲端服務都可以透過 [Python SDK](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) 調用,因此可以輕鬆整合到你的數據探索工作流程中。 + +以下是一些探索影像數據來源的範例: +* 在部落格文章 [如何在無需編碼的情況下學習資料科學](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) 中,我們探索 Instagram 照片,試圖了解什麼樣的照片能獲得更多的讚。我們首先使用 [Computer Vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) 提取盡可能多的圖片資訊,然後使用 [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) 建立可解釋的模型。 +* 在 [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) 中,我們使用 [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) 提取活動照片中人物的情感,試圖了解什麼讓人們感到快樂。 + +## 結論 + +無論你擁有的是結構化還是非結構化數據,使用 Python 都可以完成與數據處理和理解相關的所有步驟。這可能是最靈活的數據處理方式,這也是為什麼大多數資料科學家將 Python 作為主要工具的原因。如果你對資料科學之旅充滿熱情,深入學習 Python 是一個明智的選擇! + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/13) + +## 複習與自學 + +**書籍** +* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) + +**線上資源** +* 官方 [10 分鐘學 Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) 教程 +* [Pandas 視覺化文檔](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) + +**學習 Python** +* [用 Turtle Graphics 和分形圖形趣味學習 Python](https://github.com/shwars/pycourse) +* [從零開始學 Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) 的學習路徑,位於 [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +## 作業 + +[對上述挑戰進行更詳細的數據研究](assignment.md) + +## 致謝 + +這節課由 [Dmitry Soshnikov](http://soshnikov.com) 用 ♥️ 編寫。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/07-python/assignment.md b/translations/mo/2-Working-With-Data/07-python/assignment.md new file mode 100644 index 00000000..6b166d6f --- /dev/null +++ b/translations/mo/2-Working-With-Data/07-python/assignment.md @@ -0,0 +1,37 @@ + +# 使用 Python 進行數據處理的作業 + +在這份作業中,我們將要求您詳細說明我們在挑戰中開始開發的代碼。作業分為兩部分: + +## COVID-19 傳播模型 + + - [ ] 在一個圖中繪製 5-6 個不同國家的 *R* 圖表進行比較,或者使用多個並排的圖表。 + - [ ] 查看死亡人數和康復人數與感染病例數之間的關聯。 + - [ ] 通過視覺上比較感染率和死亡率,並尋找一些異常情況,找出典型疾病持續的時間。您可能需要查看不同國家的數據來得出結論。 + - [ ] 計算致死率以及其隨時間的變化。*您可能需要考慮疾病持續的天數,將一個時間序列進行偏移後再進行計算。* + +## COVID-19 論文分析 + +- [ ] 建立不同藥物的共現矩陣,並查看哪些藥物經常一起出現(即在同一摘要中提到)。您可以修改用於建立藥物和診斷共現矩陣的代碼。 +- [ ] 使用熱圖可視化此矩陣。 +- [ ] 作為額外目標,使用 [chord diagram](https://en.wikipedia.org/wiki/Chord_diagram) 可視化藥物的共現情況。[此庫](https://pypi.org/project/chord/) 可能有助於您繪製 chord diagram。 +- [ ] 作為另一個額外目標,使用正則表達式提取不同藥物的劑量(例如 **400mg** 在 *每天服用 400mg 氯喹* 中),並建立一個數據框,顯示不同藥物的不同劑量。**注意**:考慮與藥物名稱在文本中接近的數值。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +所有任務均完成,並進行圖形化展示和解釋,包括至少完成一個額外目標 | 完成超過 5 項任務,但未嘗試額外目標,或結果不清晰 | 完成少於 5 項(但超過 3 項)任務,且可視化未能有效展示重點 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/08-data-preparation/README.md b/translations/mo/2-Working-With-Data/08-data-preparation/README.md new file mode 100644 index 00000000..7128ed22 --- /dev/null +++ b/translations/mo/2-Working-With-Data/08-data-preparation/README.md @@ -0,0 +1,342 @@ + +# 處理數據:數據準備 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](../../sketchnotes/08-DataPreparation.png)| +|:---:| +|數據準備 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/14) + +根據數據來源的不同,原始數據可能包含一些不一致性,這會對分析和建模帶來挑戰。換句話說,這些數據可以被歸類為「髒數據」,需要進行清理。本課程重點介紹清理和轉換數據的技術,以處理缺失、不準確或不完整的數據。本課程涵蓋的主題將使用 Python 和 Pandas 庫,並在本目錄中的[筆記本中展示](notebook.ipynb)。 + +## 清理數據的重要性 + +- **便於使用和重用**:當數據被正確地組織和標準化後,搜索、使用和與他人共享數據會變得更加容易。 + +- **一致性**:數據科學通常需要處理多個數據集,這些數據集來自不同的來源,需要合併在一起。確保每個單獨的數據集具有共同的標準化,能確保在合併為一個數據集時,數據仍然有用。 + +- **模型準確性**:清理過的數據能提高依賴於這些數據的模型的準確性。 + +## 常見的清理目標和策略 + +- **探索數據集**:數據探索(在[後續課程](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/4-Data-Science-Lifecycle/15-analyzing)中會介紹)可以幫助你發現需要清理的數據。通過可視化觀察數據集中的值,可以設置對其餘數據的期望,或者提供可以解決的問題的想法。探索可以包括基本查詢、可視化和抽樣。 + +- **格式化**:根據來源的不同,數據在呈現方式上可能存在不一致性。這可能會導致在搜索和表示值時出現問題,數據雖然在數據集中可見,但在可視化或查詢結果中未正確表示。常見的格式化問題包括解決空白、日期和數據類型。解決格式問題通常由使用數據的人來決定。例如,不同國家對日期和數字的表示標準可能不同。 + +- **重複數據**:多次出現的數據可能會產生不準確的結果,通常應該刪除。這在合併兩個或多個數據集時很常見。然而,有些情況下,合併數據集中的重複數據可能包含額外的信息,需要保留。 + +- **缺失數據**:缺失數據可能導致不準確以及結果偏差或不可靠。有時可以通過重新加載數據、使用計算和代碼(如 Python)填充缺失值,或者簡單地刪除缺失值及其相關數據來解決。數據缺失的原因有很多,解決缺失值的行動取決於數據缺失的方式和原因。 + +## 探索 DataFrame 信息 +> **學習目標**:在本小節結束時,你應該能夠熟練地查找存儲在 pandas DataFrame 中的數據的一般信息。 + +當你將數據加載到 pandas 中後,數據很可能會以 DataFrame 的形式存在(參考之前的[課程](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/07-python#dataframe)以獲取詳細概述)。然而,如果你的 DataFrame 中的數據集有 60,000 行和 400 列,你該如何開始了解你正在處理的內容?幸運的是,[pandas](https://pandas.pydata.org/) 提供了一些方便的工具,可以快速查看 DataFrame 的整體信息以及前幾行和後幾行。 + +為了探索這些功能,我們將導入 Python 的 scikit-learn 庫並使用一個經典的數據集:**Iris 數據集**。 + +```python +import pandas as pd +from sklearn.datasets import load_iris + +iris = load_iris() +iris_df = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) +``` +| |sepal length (cm)|sepal width (cm)|petal length (cm)|petal width (cm)| +|----------------------------------------|-----------------|----------------|-----------------|----------------| +|0 |5.1 |3.5 |1.4 |0.2 | +|1 |4.9 |3.0 |1.4 |0.2 | +|2 |4.7 |3.2 |1.3 |0.2 | +|3 |4.6 |3.1 |1.5 |0.2 | +|4 |5.0 |3.6 |1.4 |0.2 | + +- **DataFrame.info**:首先,`info()` 方法用於打印 `DataFrame` 中內容的摘要。我們來看看這個數據集的情況: +```python +iris_df.info() +``` +``` +RangeIndex: 150 entries, 0 to 149 +Data columns (total 4 columns): + # Column Non-Null Count Dtype +--- ------ -------------- ----- + 0 sepal length (cm) 150 non-null float64 + 1 sepal width (cm) 150 non-null float64 + 2 petal length (cm) 150 non-null float64 + 3 petal width (cm) 150 non-null float64 +dtypes: float64(4) +memory usage: 4.8 KB +``` +從中我們知道,*Iris* 數據集有 150 條記錄,分佈在四列中,沒有空值。所有數據都存儲為 64 位浮點數。 + +- **DataFrame.head()**:接下來,為了檢查 `DataFrame` 的實際內容,我們使用 `head()` 方法。讓我們看看 `iris_df` 的前幾行: +```python +iris_df.head() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +0 5.1 3.5 1.4 0.2 +1 4.9 3.0 1.4 0.2 +2 4.7 3.2 1.3 0.2 +3 4.6 3.1 1.5 0.2 +4 5.0 3.6 1.4 0.2 +``` +- **DataFrame.tail()**:相反,為了檢查 `DataFrame` 的最後幾行,我們使用 `tail()` 方法: +```python +iris_df.tail() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +145 6.7 3.0 5.2 2.3 +146 6.3 2.5 5.0 1.9 +147 6.5 3.0 5.2 2.0 +148 6.2 3.4 5.4 2.3 +149 5.9 3.0 5.1 1.8 +``` +> **重點**:僅僅通過查看 DataFrame 的元數據或其中的前幾個和後幾個值,你就可以立即了解你正在處理的數據的大小、形狀和內容。 + +## 處理缺失數據 +> **學習目標**:在本小節結束時,你應該知道如何替換或刪除 DataFrame 中的空值。 + +大多數時候,你想要使用(或不得不使用)的數據集中都會有缺失值。如何處理缺失數據涉及一些微妙的權衡,這可能會影響你的最終分析和現實世界的結果。 + +Pandas 以兩種方式處理缺失值。第一種方式你在之前的部分中已經見過:`NaN`,即非數值(Not a Number)。這實際上是一個特殊值,是 IEEE 浮點數規範的一部分,僅用於表示缺失的浮點值。 + +對於浮點數以外的缺失值,pandas 使用 Python 的 `None` 對象。雖然你可能會覺得遇到兩種不同的值來表示基本相同的含義有些混亂,但這種設計選擇有其合理的編程原因,實際上,這種方式使 pandas 能夠在大多數情況下提供良好的折衷解決方案。儘管如此,`None` 和 `NaN` 都有一些限制,你需要注意它們在使用上的差異。 + +在[筆記本](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/4-Data-Science-Lifecycle/15-analyzing/notebook.ipynb)中了解更多關於 `NaN` 和 `None` 的內容! + +- **檢測空值**:在 `pandas` 中,`isnull()` 和 `notnull()` 方法是檢測空數據的主要方法。這兩個方法都返回布爾掩碼。我們將使用 `numpy` 來處理 `NaN` 值: +```python +import numpy as np + +example1 = pd.Series([0, np.nan, '', None]) +example1.isnull() +``` +``` +0 False +1 True +2 False +3 True +dtype: bool +``` +仔細觀察輸出。是否有任何結果讓你感到驚訝?雖然 `0` 是一個算術上的空值,但它仍然是一個有效的整數,pandas 將其視為這樣。`''` 更微妙一些。雖然我們在第一部分中使用它來表示空字符串值,但它仍然是一個字符串對象,而不是 pandas 所認為的空值表示。 + +現在,讓我們反過來以更實際的方式使用這些方法。你可以直接將布爾掩碼用作 `Series` 或 `DataFrame` 的索引,這在處理孤立的缺失(或存在)值時非常有用。 + +> **重點**:`isnull()` 和 `notnull()` 方法在 `DataFrame` 中產生類似的結果:它們顯示結果及其索引,這對於處理數據時非常有幫助。 + +- **刪除空值**:除了識別缺失值外,pandas 還提供了一種方便的方法來從 `Series` 和 `DataFrame` 中刪除空值。(特別是在大型數據集中,通常建議直接刪除缺失值,而不是以其他方式處理它們。)讓我們回到 `example1` 來看看這一點: +```python +example1 = example1.dropna() +example1 +``` +``` +0 0 +2 +dtype: object +``` +注意,這應該與你的 `example3[example3.notnull()]` 輸出類似。不同之處在於,`dropna` 刪除了 `Series` `example1` 中的缺失值,而不是僅僅基於掩碼值進行索引。 + +由於 `DataFrame` 是二維的,它提供了更多刪除數據的選項。 + +```python +example2 = pd.DataFrame([[1, np.nan, 7], + [2, 5, 8], + [np.nan, 6, 9]]) +example2 +``` +| | 0 | 1 | 2 | +|------|---|---|---| +|0 |1.0|NaN|7 | +|1 |2.0|5.0|8 | +|2 |NaN|6.0|9 | + +(你是否注意到 pandas 將兩列數據轉換為浮點數以容納 `NaN`?) + +你無法從 `DataFrame` 中刪除單個值,因此必須刪除整行或整列。根據你的需求,你可能需要刪除其中之一,pandas 為此提供了選擇。由於在數據科學中,列通常表示變量,行表示觀測值,因此你更可能刪除數據行;`dropna()` 的默認設置是刪除包含任何空值的所有行: + +```python +example2.dropna() +``` +``` + 0 1 2 +1 2.0 5.0 8 +``` +如果需要,你也可以刪除列中的 NA 值。使用 `axis=1` 即可: +```python +example2.dropna(axis='columns') +``` +``` + 2 +0 7 +1 8 +2 9 +``` +注意,這可能會刪除你可能想保留的大量數據,特別是在較小的數據集中。如果你只想刪除包含多個甚至所有空值的行或列該怎麼辦?你可以在 `dropna` 中使用 `how` 和 `thresh` 參數來指定這些設置。 + +默認情況下,`how='any'`(如果你想自己檢查或查看該方法的其他參數,可以在代碼單元中運行 `example4.dropna?`)。你也可以選擇指定 `how='all'`,以便僅刪除包含所有空值的行或列。讓我們擴展我們的示例 `DataFrame` 來看看這一點。 + +```python +example2[3] = np.nan +example2 +``` +| |0 |1 |2 |3 | +|------|---|---|---|---| +|0 |1.0|NaN|7 |NaN| +|1 |2.0|5.0|8 |NaN| +|2 |NaN|6.0|9 |NaN| + +`thresh` 參數為你提供了更細粒度的控制:你可以設置行或列需要具有的*非空值*數量,以便保留: +```python +example2.dropna(axis='rows', thresh=3) +``` +``` + 0 1 2 3 +1 2.0 5.0 8 NaN +``` +在這裡,第一行和最後一行被刪除,因為它們僅包含兩個非空值。 + +- **填充空值**:根據你的數據集,有時用有效值填充空值比刪除它們更有意義。你可以使用 `isnull` 就地完成此操作,但如果你有很多值需要填充,這可能會很繁瑣。由於這是數據科學中的一項常見任務,pandas 提供了 `fillna`,它返回一個副本,其中的缺失值被替換為你選擇的值。讓我們創建另一個示例 `Series`,看看這在實踐中的運作方式。 +```python +example3 = pd.Series([1, np.nan, 2, None, 3], index=list('abcde')) +example3 +``` +``` +a 1.0 +b NaN +c 2.0 +d NaN +e 3.0 +dtype: float64 +``` +你可以用單個值(例如 `0`)填充所有空條目: +```python +example3.fillna(0) +``` +``` +a 1.0 +b 0.0 +c 2.0 +d 0.0 +e 3.0 +dtype: float64 +``` +你可以**向前填充**空值,即使用最後一個有效值填充空值: +```python +example3.fillna(method='ffill') +``` +``` +a 1.0 +b 1.0 +c 2.0 +d 2.0 +e 3.0 +dtype: float64 +``` +你也可以**向後填充**,即將下一個有效值向後傳播以填充空值: +```python +example3.fillna(method='bfill') +``` +``` +a 1.0 +b 2.0 +c 2.0 +d 3.0 +e 3.0 +dtype: float64 +``` +正如你可能猜到的,這對於 `DataFrame` 也適用,但你還可以指定沿著哪個 `axis` 填充空值。再次使用之前的 `example2`: +```python +example2.fillna(method='ffill', axis=1) +``` +``` + 0 1 2 3 +0 1.0 1.0 7.0 7.0 +1 2.0 5.0 8.0 8.0 +2 NaN 6.0 9.0 9.0 +``` +注意,當前一個值不可用於向前填充時,空值仍然保留。 +> **重點提示:** 在處理數據集中缺失值時,有多種方法可以選擇。具體採用哪種策略(刪除、替換,甚至是如何替換)應該根據數據的特性來決定。隨著你處理和分析更多數據集,你將逐漸培養出更好的判斷力來應對缺失值。 + +## 刪除重複數據 + +> **學習目標:** 在本小節結束時,你應該能夠熟練地識別並刪除 `DataFrame` 中的重複值。 + +除了缺失數據外,你在真實世界的數據集中還會經常遇到重複數據。幸運的是,`pandas` 提供了一種簡單的方法來檢測和刪除重複條目。 + +- **識別重複值:`duplicated`**:你可以使用 pandas 中的 `duplicated` 方法輕鬆地找到重複值。該方法返回一個布林掩碼,指示 `DataFrame` 中某條目是否是之前條目的重複。我們來創建另一個示例 `DataFrame`,看看它是如何運作的。 +```python +example4 = pd.DataFrame({'letters': ['A','B'] * 2 + ['B'], + 'numbers': [1, 2, 1, 3, 3]}) +example4 +``` +| |letters|numbers| +|------|-------|-------| +|0 |A |1 | +|1 |B |2 | +|2 |A |1 | +|3 |B |3 | +|4 |B |3 | + +```python +example4.duplicated() +``` +``` +0 False +1 False +2 True +3 False +4 True +dtype: bool +``` +- **刪除重複值:`drop_duplicates`**:該方法返回一個副本,其中所有 `duplicated` 值為 `False` 的數據被保留: +```python +example4.drop_duplicates() +``` +``` + letters numbers +0 A 1 +1 B 2 +3 B 3 +``` +`duplicated` 和 `drop_duplicates` 默認會考慮所有列,但你可以指定它們僅檢查 `DataFrame` 中的某些列: +```python +example4.drop_duplicates(['letters']) +``` +``` +letters numbers +0 A 1 +1 B 2 +``` + +> **重點提示:** 刪除重複數據是幾乎每個數據科學項目中的重要步驟。重複數據可能會改變你的分析結果,導致不準確的結論! + +## 🚀 挑戰 + +所有討論過的材料都已作為 [Jupyter Notebook](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/2-Working-With-Data/08-data-preparation/notebook.ipynb) 提供。此外,每個部分之後還有練習題,試著完成它們吧! + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/15) + +## 回顧與自學 + +有許多方法可以探索和準備你的數據進行分析和建模,而清理數據是一個需要「親自動手」的關鍵步驟。試試 Kaggle 上的這些挑戰,探索本課未涵蓋的技術。 + +- [數據清理挑戰:解析日期](https://www.kaggle.com/rtatman/data-cleaning-challenge-parsing-dates/) + +- [數據清理挑戰:數據縮放與標準化](https://www.kaggle.com/rtatman/data-cleaning-challenge-scale-and-normalize-data) + +## 作業 + +[評估表單中的數據](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/08-data-preparation/assignment.md b/translations/mo/2-Working-With-Data/08-data-preparation/assignment.md new file mode 100644 index 00000000..1ed593f5 --- /dev/null +++ b/translations/mo/2-Working-With-Data/08-data-preparation/assignment.md @@ -0,0 +1,28 @@ + +# 評估表單數據 + +一位客戶正在測試一個[小型表單](../../../../2-Working-With-Data/08-data-preparation/index.html),以收集一些關於其客戶群的基本數據。他們將測試結果帶給你,希望你能驗證所收集的數據。你可以在瀏覽器中打開 `index.html` 頁面查看表單。 + +你已獲得一份[包含表單記錄的 csv 數據集](../../../../data/form.csv),其中包括表單的輸入內容以及一些基本的可視化圖表。客戶指出某些可視化圖表看起來不正確,但他們不確定如何解決這些問題。你可以在[作業筆記本](assignment.ipynb)中進行探索。 + +## 指導 + +使用本課程中的技術提出建議,幫助表單收集準確且一致的信息。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | --- | + +--- + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/2-Working-With-Data/README.md b/translations/mo/2-Working-With-Data/README.md new file mode 100644 index 00000000..a71cd58f --- /dev/null +++ b/translations/mo/2-Working-With-Data/README.md @@ -0,0 +1,31 @@ + +# 資料處理 + +![data love](../../../translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.mo.jpg) +> 照片由 Alexander Sinn 提供,來自 Unsplash + +在這些課程中,您將學習一些管理、操作和應用資料的方法。您將了解關聯式和非關聯式資料庫,以及資料如何存儲於其中。您還會學習使用 Python 管理資料的基礎知識,並探索使用 Python 管理和挖掘資料的多種方式。 + +### 主題 + +1. [關聯式資料庫](05-relational-databases/README.md) +2. [非關聯式資料庫](06-non-relational/README.md) +3. [使用 Python](07-python/README.md) +4. [準備資料](08-data-preparation/README.md) + +### 致謝 + +這些課程由 [Christopher Harrison](https://twitter.com/geektrainer)、[Dmitry Soshnikov](https://twitter.com/shwars) 和 [Jasmine Greenaway](https://twitter.com/paladique) 用 ❤️ 編寫。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/09-visualization-quantities/README.md b/translations/mo/3-Data-Visualization/09-visualization-quantities/README.md new file mode 100644 index 00000000..556bc82e --- /dev/null +++ b/translations/mo/3-Data-Visualization/09-visualization-quantities/README.md @@ -0,0 +1,222 @@ + +# 視覺化數量 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| 視覺化數量 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +在這節課中,你將探索如何使用眾多可用的 Python 庫之一,學習如何圍繞數量的概念創建有趣的視覺化。使用一個關於明尼蘇達州鳥類的清理過的數據集,你可以了解許多關於當地野生動物的有趣事實。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## 使用 Matplotlib 觀察翼展 + +一個非常出色的庫是 [Matplotlib](https://matplotlib.org/stable/index.html),它可以用來創建各種簡單或複雜的圖表和圖形。一般來說,使用這些庫繪製數據的過程包括:識別你想要處理的數據框部分,對數據進行必要的轉換,分配 x 和 y 軸的值,決定要顯示的圖表類型,然後顯示圖表。Matplotlib 提供了多種視覺化選擇,但在這節課中,我們將專注於最適合視覺化數量的圖表類型:折線圖、散點圖和柱狀圖。 + +> ✅ 根據數據結構和你想要講述的故事選擇最佳圖表。 +> - 分析時間趨勢:折線圖 +> - 比較數值:柱狀圖、條形圖、餅圖、散點圖 +> - 展示部分與整體的關係:餅圖 +> - 展示數據分佈:散點圖、柱狀圖 +> - 展示趨勢:折線圖、條形圖 +> - 展示數值之間的關係:折線圖、散點圖、氣泡圖 + +如果你有一個數據集並需要了解某個項目的數量,第一步通常是檢查其值。 + +✅ 這裡有一些非常好的 Matplotlib '速查表':[點擊查看](https://matplotlib.org/cheatsheets/cheatsheets.pdf)。 + +## 建立鳥類翼展數值的折線圖 + +打開本課文件夾根目錄中的 `notebook.ipynb` 文件並添加一個單元格。 + +> 注意:數據存儲在本倉庫根目錄的 `/data` 文件夾中。 + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +這些數據是文本和數字的混合: + +| | 名稱 | 學名 | 類別 | 目 | 科 | 屬 | 保育狀態 | 最小長度 | 最大長度 | 最小體重 | 最大體重 | 最小翼展 | 最大翼展 | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | 黑腹樹鴨 | Dendrocygna autumnalis | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | 棕樹鴨 | Dendrocygna bicolor | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | 雪鵝 | Anser caerulescens | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | 羅斯鵝 | Anser rossii | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | 大白額雁 | Anser albifrons | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +讓我們開始使用基本折線圖繪製一些數字數據。假設你想查看這些有趣鳥類的最大翼展。 + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![最大翼展](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.mo.png) + +你立即注意到什麼?似乎至少有一個異常值——這是一個相當大的翼展!2300 公分的翼展等於 23 米——明尼蘇達州有翼龍在飛翔嗎?讓我們調查一下。 + +雖然你可以在 Excel 中快速排序找到這些異常值(可能是錯誤),但繼續從圖表中進行視覺化分析。 + +在 x 軸上添加標籤以顯示涉及的鳥類類型: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![帶標籤的翼展](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.mo.png) + +即使將標籤旋轉設置為 45 度,仍然太多以至於無法閱讀。讓我們嘗試另一種策略:僅標記那些異常值並在圖表內設置標籤。你可以使用散點圖來為標籤留出更多空間: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +這裡發生了什麼?你使用 `tick_params` 隱藏底部標籤,然後對你的鳥類數據集進行迴圈。通過使用 `bo` 繪製帶有小圓形藍點的圖表,你檢查了任何最大翼展超過 500 的鳥類,並在點旁邊顯示其標籤。你在 y 軸上稍微偏移標籤 (`y * (1 - 0.05)`) 並使用鳥類名稱作為標籤。 + +你發現了什麼? + +![異常值](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.mo.png) + +## 篩選數據 + +禿鷹和草原隼,雖然可能是非常大的鳥類,但似乎被錯誤標記了,其最大翼展多加了一個 `0`。不太可能遇到翼展 25 米的禿鷹,但如果真的遇到,請告訴我們!讓我們創建一個新的數據框,去掉這兩個異常值: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +通過篩選掉異常值,你的數據現在更加一致且易於理解。 + +![翼展散點圖](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.mo.png) + +現在我們至少在翼展方面有一個更乾淨的數據集,讓我們進一步探索這些鳥類。 + +雖然折線圖和散點圖可以顯示數據值及其分佈的信息,但我們想要思考這個數據集中固有的數值。你可以創建視覺化來回答以下關於數量的問題: + +> 有多少類別的鳥類?它們的數量是多少? +> 有多少鳥類是滅絕、瀕危、稀有或常見的? +> 根據林奈分類法,有多少屬和目? + +## 探索柱狀圖 + +當你需要展示數據分組時,柱狀圖非常實用。讓我們探索這個數據集中存在的鳥類類別,看看哪一類最常見。 + +在 notebook 文件中,創建一個基本柱狀圖。 + +✅ 注意,你可以篩選掉上一節中識別的兩個異常鳥類,編輯它們翼展中的錯誤,或者保留它們,因為這些練習不依賴於翼展值。 + +如果你想創建柱狀圖,可以選擇你想要關注的數據。柱狀圖可以從原始數據創建: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![完整數據柱狀圖](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.mo.png) + +然而,這個柱狀圖因為數據未分組而難以閱讀。你需要選擇你想要繪製的數據,所以讓我們看看基於鳥類類別的長度。 + +篩選數據以僅包含鳥類的類別。 + +✅ 注意,你使用 Pandas 管理數據,然後讓 Matplotlib 繪製圖表。 + +由於類別很多,你可以垂直顯示此圖表並調整其高度以容納所有數據: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![類別和長度](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.mo.png) + +這個柱狀圖很好地展示了每個類別中鳥類的數量。一眼就能看出,這個地區最多的鳥類是鴨/鵝/水禽類別。明尼蘇達州是“萬湖之地”,所以這並不令人驚訝! + +✅ 試試這個數據集中的其他計數。有什麼讓你感到驚訝嗎? + +## 比較數據 + +你可以通過創建新軸嘗試不同的分組數據比較。試試基於類別的鳥類最大長度比較: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![比較數據](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.mo.png) + +這裡沒有什麼令人驚訝的:相比鵜鶘或鵝,蜂鳥的最大長度最小。當數據符合邏輯時,這是件好事! + +你可以通過疊加數據創建更有趣的柱狀圖視覺化。讓我們疊加最小和最大長度在給定鳥類類別上: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +在這個圖表中,你可以看到每個鳥類類別的最小長度和最大長度範圍。你可以安全地說,根據這些數據,鳥越大,其長度範圍越大。真是有趣! + +![疊加數值](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.mo.png) + +## 🚀 挑戰 + +這個鳥類數據集提供了關於特定生態系統中不同類型鳥類的大量信息。上網搜索,看看你是否能找到其他與鳥類相關的數據集。練習圍繞這些鳥類構建圖表和圖形,發現你之前未曾意識到的事實。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## 回顧與自學 + +這第一節課提供了一些關於如何使用 Matplotlib 視覺化數量的信息。研究其他方法來處理數據集進行視覺化。[Plotly](https://github.com/plotly/plotly.py) 是我們不會在這些課程中涵蓋的一個工具,看看它能提供什麼。 + +## 作業 + +[折線圖、散點圖和柱狀圖](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/09-visualization-quantities/assignment.md b/translations/mo/3-Data-Visualization/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..b6584d7e --- /dev/null +++ b/translations/mo/3-Data-Visualization/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# 折線圖、散點圖與長條圖 + +## 說明 + +在這節課中,你學習了如何使用折線圖、散點圖和長條圖來展示這個數據集中的有趣事實。在這次作業中,深入挖掘數據集,發現關於某種特定鳥類的事實。例如,創建一個筆記本,視覺化展示你能找到的所有關於雪雁的有趣數據。使用上述三種圖表,在你的筆記本中講述一個故事。 + +## 評分標準 + +優秀 | 合格 | 需要改進 +--- | --- | -- | +筆記本包含良好的註解、完整的故事敘述以及吸引人的圖表 | 筆記本缺少其中一個要素 | 筆記本缺少其中兩個要素 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/10-visualization-distributions/README.md b/translations/mo/3-Data-Visualization/10-visualization-distributions/README.md new file mode 100644 index 00000000..0c95f0aa --- /dev/null +++ b/translations/mo/3-Data-Visualization/10-visualization-distributions/README.md @@ -0,0 +1,218 @@ + +# 視覺化分佈 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| 視覺化分佈 - _手繪筆記由 [@nitya](https://twitter.com/nitya) 繪製_ | + +在上一課中,你學到了關於明尼蘇達州鳥類數據集的一些有趣事實。通過視覺化異常值,你發現了一些錯誤的數據,並觀察了不同鳥類分類在最大長度上的差異。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## 探索鳥類數據集 + +另一種深入了解數據的方法是觀察其分佈,也就是數據如何沿著某個軸排列。例如,你可能想了解這個數據集中鳥類的最大翼展或最大體重的整體分佈情況。 + +讓我們來發現一些關於這個數據集中分佈的事實。在本課文件夾根目錄中的 _notebook.ipynb_ 文件中,導入 Pandas、Matplotlib 和你的數據: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +| | 名稱 | 學名 | 分類 | 目 | 科 | 屬 | 保育狀態 | 最小長度 | 最大長度 | 最小體重 | 最大體重 | 最小翼展 | 最大翼展 | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | 黑腹樹鴨 | Dendrocygna autumnalis | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | 棕樹鴨 | Dendrocygna bicolor | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | 雪雁 | Anser caerulescens | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | 羅氏雁 | Anser rossii | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | 大白額雁 | Anser albifrons | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +通常,你可以通過使用散點圖快速查看數據的分佈方式,就像我們在上一課中所做的那樣: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +![每個目最大長度](../../../../translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.mo.png) + +這提供了每個鳥類目體長分佈的概覽,但這並不是顯示真實分佈的最佳方式。這個任務通常通過創建直方圖來完成。 + +## 使用直方圖 + +Matplotlib 提供了非常好的方法來使用直方圖視覺化數據分佈。這種類型的圖表類似於條形圖,通過條形的升降可以看到分佈情況。要構建直方圖,你需要數值數據。構建直方圖時,可以將圖表的類型定義為 'hist'。以下圖表顯示了整個數據集中最大體重的分佈。通過將數據數組分成更小的區間(bins),它可以顯示數據值的分佈: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![整個數據集的分佈](../../../../translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.mo.png) + +如你所見,這個數據集中大多數的 400 多種鳥類的最大體重都在 2000 以下。通過將 `bins` 參數設置為更高的數字(例如 30),可以獲得更多的數據洞察: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![使用更大 bins 參數的分佈](../../../../translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.mo.png) + +這張圖表顯示了更細緻的分佈。通過僅選擇給定範圍內的數據,可以創建一個不那麼偏向左側的圖表: + +篩選數據以僅獲取體重低於 60 的鳥類,並顯示 40 個 `bins`: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![篩選後的直方圖](../../../../translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.mo.png) + +✅ 試試其他篩選條件和數據點。若要查看數據的完整分佈,移除 `['MaxBodyMass']` 篩選條件以顯示帶標籤的分佈。 + +直方圖還提供了一些不錯的顏色和標籤增強功能可以嘗試: + +創建一個 2D 直方圖來比較兩個分佈之間的關係。我們來比較 `MaxBodyMass` 和 `MaxLength`。Matplotlib 提供了一種內建方式,通過更亮的顏色顯示匯聚點: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +可以看到,這兩個元素之間沿著預期軸線存在預期的相關性,並且有一個特別強的匯聚點: + +![2D 圖表](../../../../translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.mo.png) + +直方圖對於數值數據默認效果很好。如果你需要根據文本數據查看分佈該怎麼辦? + +## 使用文本數據探索數據集的分佈 + +這個數據集還包括關於鳥類分類、屬、種、科以及保育狀態的良好信息。讓我們深入了解這些保育信息。鳥類根據其保育狀態的分佈是什麼樣的? + +> ✅ 在數據集中,使用了一些縮寫來描述保育狀態。這些縮寫來自 [IUCN 紅色名錄分類](https://www.iucnredlist.org/),該組織記錄了物種的狀態。 +> +> - CR: 極危 +> - EN: 瀕危 +> - EX: 滅絕 +> - LC: 無危 +> - NT: 近危 +> - VU: 易危 + +這些是基於文本的值,因此你需要進行轉換以創建直方圖。使用篩選後的 Birds 數據框,顯示其保育狀態與最小翼展。你看到了什麼? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Min Wingspan') +plt.legend(); +``` + +![翼展與保育狀態的對比](../../../../translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.mo.png) + +最小翼展與保育狀態之間似乎沒有明顯的相關性。使用這種方法測試數據集的其他元素。你也可以嘗試不同的篩選條件。你發現了任何相關性嗎? + +## 密度圖 + +你可能已經注意到,我們目前看到的直方圖是“階梯式”的,並沒有平滑地呈現弧線。若要顯示更平滑的密度圖,你可以嘗試使用密度圖。 + +為了使用密度圖,請熟悉一個新的繪圖庫 [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html)。 + +加載 Seaborn,嘗試一個基本的密度圖: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![密度圖](../../../../translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.mo.png) + +你可以看到,這個圖表與之前的最小翼展數據圖表相呼應,只是更平滑了一些。根據 Seaborn 的文檔,“相較於直方圖,KDE 可以生成一個更簡潔且更易於解讀的圖表,特別是在繪製多個分佈時。但如果底層分佈有界或不平滑,它可能會引入失真。與直方圖一樣,圖表的質量也取決於良好平滑參數的選擇。” [來源](https://seaborn.pydata.org/generated/seaborn.kdeplot.html)。換句話說,異常值仍然會影響圖表的表現。 + +如果你想重新檢視第二張圖中那條鋸齒狀的 MaxBodyMass 線,可以通過這種方法將其平滑化: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![平滑的體重線](../../../../translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.mo.png) + +如果你想要一條平滑但不過於平滑的線,可以調整 `bw_adjust` 參數: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![較少平滑的體重線](../../../../translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.mo.png) + +✅ 閱讀此類圖表可用的參數並進行實驗! + +這種類型的圖表提供了非常直觀的視覺化效果。例如,只需幾行代碼,你就可以顯示每個鳥類目最大體重的密度: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![每個目體重密度](../../../../translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.mo.png) + +你還可以在一張圖表中映射多個變量的密度。測試鳥類的 MaxLength 和 MinLength 與其保育狀態的關係: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![多重密度圖,重疊顯示](../../../../translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.mo.png) + +或許值得研究一下,根據鳥類長度的“易危”群體是否具有某種意義。 + +## 🚀 挑戰 + +直方圖是一種比基本散點圖、條形圖或折線圖更為複雜的圖表類型。上網搜索一些直方圖的優秀應用範例。它們是如何使用的?展示了什麼?通常在哪些領域或研究方向中使用? + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## 回顧與自學 + +在本課中,你使用了 Matplotlib,並開始使用 Seaborn 來繪製更為複雜的圖表。研究 Seaborn 中的 `kdeplot`,這是一種“在一個或多個維度上顯示連續概率密度曲線”的方法。閱讀 [文檔](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) 以了解其工作原理。 + +## 作業 + +[應用你的技能](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解釋概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/10-visualization-distributions/assignment.md b/translations/mo/3-Data-Visualization/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..34381b24 --- /dev/null +++ b/translations/mo/3-Data-Visualization/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# 運用你的技能 + +## 指示 + +到目前為止,你已經使用了明尼蘇達州鳥類數據集來探索有關鳥類數量和人口密度的信息。嘗試使用不同的數據集來練習這些技術,或許可以從 [Kaggle](https://www.kaggle.com/) 獲取數據。建立一個筆記本,講述這個數據集的故事,並確保在討論時使用直方圖。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +提供了一個包含有關此數據集的註解(包括其來源)的筆記本,並使用至少5個直方圖來探索數據的事實。 | 提供了一個筆記本,但註解不完整或存在錯誤。 | 提供了一個筆記本,但沒有註解且包含錯誤。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/11-visualization-proportions/README.md b/translations/mo/3-Data-Visualization/11-visualization-proportions/README.md new file mode 100644 index 00000000..3d509e8f --- /dev/null +++ b/translations/mo/3-Data-Visualization/11-visualization-proportions/README.md @@ -0,0 +1,204 @@ + +# 視覺化比例 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|視覺化比例 - _速記筆記由 [@nitya](https://twitter.com/nitya) 繪製_ | + +在這節課中,你將使用一個以自然為主題的不同數據集來視覺化比例,例如在關於蘑菇的數據集中有多少不同種類的真菌。我們將使用來自 Audubon 的數據集,該數據集列出了 Agaricus 和 Lepiota 家族中 23 種有鰓蘑菇的詳細信息。你將嘗試一些有趣的視覺化方式,例如: + +- 圓餅圖 🥧 +- 甜甜圈圖 🍩 +- 華夫圖 🧇 + +> 💡 微軟研究院的一個非常有趣的項目 [Charticulator](https://charticulator.com) 提供了一個免費的拖放界面來進行數據視覺化。在他們的一個教程中也使用了這個蘑菇數據集!因此,你可以同時探索數據並學習這個工具庫:[Charticulator 教程](https://charticulator.com/tutorials/tutorial4.html)。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## 認識你的蘑菇 🍄 + +蘑菇非常有趣。讓我們導入一個數據集來研究它們: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +一個表格被打印出來,包含一些很棒的分析數據: + +| 類別 | 菌蓋形狀 | 菌蓋表面 | 菌蓋顏色 | 是否有瘀傷 | 氣味 | 鰓附著方式 | 鰓間距 | 鰓大小 | 鰓顏色 | 菌柄形狀 | 菌柄根部 | 菌柄表面(環上方) | 菌柄表面(環下方) | 菌柄顏色(環上方) | 菌柄顏色(環下方) | 菌幕類型 | 菌幕顏色 | 環數量 | 環類型 | 孢子印顏色 | 分布情況 | 棲息地 | +| --------- | --------- | --------- | --------- | --------- | ------- | ----------- | ----------- | --------- | --------- | --------- | --------- | ------------------------ | ------------------------ | ------------------------ | ------------------------ | --------- | --------- | ----------- | --------- | ----------------- | --------- | ------- | +| 有毒 | 凸形 | 光滑 | 棕色 | 有瘀傷 | 刺鼻 | 自由 | 緊密 | 狹窄 | 黑色 | 擴大 | 等長 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 黑色 | 分散 | 城市 | +| 可食用 | 凸形 | 光滑 | 黃色 | 有瘀傷 | 杏仁 | 自由 | 緊密 | 寬廣 | 黑色 | 擴大 | 棍狀 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 棕色 | 數量多 | 草地 | +| 可食用 | 鐘形 | 光滑 | 白色 | 有瘀傷 | 茴香 | 自由 | 緊密 | 寬廣 | 棕色 | 擴大 | 棍狀 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 棕色 | 數量多 | 草地 | +| 有毒 | 凸形 | 鱗片狀 | 白色 | 有瘀傷 | 刺鼻 | 自由 | 緊密 | 狹窄 | 棕色 | 擴大 | 等長 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 黑色 | 分散 | 城市 | + +你會立刻注意到所有的數據都是文本格式。你需要將這些數據轉換為可以用於圖表的格式。事實上,大部分數據是以對象形式表示的: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +輸出結果為: + +```output +Index(['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'], + dtype='object') +``` +將這些數據中的「類別」列轉換為分類: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` + +```python +edibleclass=mushrooms.groupby(['class']).count() +edibleclass +``` + +現在,如果你打印出蘑菇數據,你會看到它已經根據有毒/可食用類別分組: + +| | 菌蓋形狀 | 菌蓋表面 | 菌蓋顏色 | 是否有瘀傷 | 氣味 | 鰓附著方式 | 鰓間距 | 鰓大小 | 鰓顏色 | 菌柄形狀 | ... | 菌柄表面(環下方) | 菌柄顏色(環上方) | 菌柄顏色(環下方) | 菌幕類型 | 菌幕顏色 | 環數量 | 環類型 | 孢子印顏色 | 分布情況 | 棲息地 | +| --------- | --------- | --------- | --------- | --------- | ---- | ----------- | ----------- | --------- | --------- | --------- | --- | ------------------------ | ------------------------ | ------------------------ | --------- | --------- | ----------- | --------- | ----------------- | --------- | ------- | +| 類別 | | | | | | | | | | | | | | | | | | | | | | +| 可食用 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| 有毒 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +如果你按照這個表格中呈現的順序來創建類別標籤,你就可以製作一個圓餅圖: + +## 圓餅圖! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +完成了,一個圓餅圖展示了根據這兩個蘑菇類別的數據比例。在這裡,正確的標籤順序非常重要,因此請務必確認標籤數組的構建順序! + +![圓餅圖](../../../../translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.mo.png) + +## 甜甜圈圖! + +一個更具視覺吸引力的圓餅圖是甜甜圈圖,它是一個中間有洞的圓餅圖。讓我們用這種方法來查看數據。 + +看看蘑菇生長的各種棲息地: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +在這裡,你將數據按棲息地分組。共有 7 種棲息地,因此使用它們作為甜甜圈圖的標籤: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![甜甜圈圖](../../../../translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.mo.png) + +這段代碼繪製了一個圖表和一個中心圓,然後將該中心圓添加到圖表中。通過更改 `0.40` 的值來調整中心圓的寬度。 + +甜甜圈圖可以通過多種方式進行調整以更改標籤。特別是標籤可以被突出顯示以提高可讀性。了解更多信息請參考[文檔](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut)。 + +現在你已經知道如何分組數據並將其顯示為圓餅圖或甜甜圈圖,你可以探索其他類型的圖表。試試華夫圖,這是一種不同的方式來探索數量。 + +## 華夫圖! + +「華夫」類型的圖表是一種以 2D 方格陣列視覺化數量的方式。試著視覺化這個數據集中蘑菇菌蓋顏色的不同數量。為此,你需要安裝一個名為 [PyWaffle](https://pypi.org/project/pywaffle/) 的輔助庫並使用 Matplotlib: + +```python +pip install pywaffle +``` + +選擇一段數據進行分組: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +通過創建標籤並分組數據來製作華夫圖: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +使用華夫圖,你可以清楚地看到這個蘑菇數據集中菌蓋顏色的比例。有趣的是,有許多綠色菌蓋的蘑菇! + +![華夫圖](../../../../translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.mo.png) + +✅ PyWaffle 支持在圖表中使用任何 [Font Awesome](https://fontawesome.com/) 提供的圖標。嘗試進行一些實驗,用圖標代替方格來創建更有趣的華夫圖。 + +在這節課中,你學到了三種視覺化比例的方法。首先,你需要將數據分組到分類中,然後決定哪種方式最適合展示數據——圓餅圖、甜甜圈圖或華夫圖。這些方法都很有趣,並能讓用戶快速了解數據集。 + +## 🚀 挑戰 + +嘗試在 [Charticulator](https://charticulator.com) 中重現這些有趣的圖表。 +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## 回顧與自學 + +有時候,什麼時候使用圓餅圖、甜甜圈圖或華夫圖並不明顯。以下是一些相關文章: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +進行一些研究以找到更多關於這個選擇的相關信息。 + +## 作業 + +[在 Excel 中試試看](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/11-visualization-proportions/assignment.md b/translations/mo/3-Data-Visualization/11-visualization-proportions/assignment.md new file mode 100644 index 00000000..08bf1b6f --- /dev/null +++ b/translations/mo/3-Data-Visualization/11-visualization-proportions/assignment.md @@ -0,0 +1,25 @@ + +# 在 Excel 中試試看 + +## 說明 + +你知道嗎?你可以在 Excel 中製作甜甜圈圖、圓餅圖和華夫餅圖!使用你選擇的數據集,直接在 Excel 試算表中創建這三種類型的圖表。 + +## 評分標準 + +| 優秀表現 | 合格表現 | 需要改進 | +| --------------------------------------------------- | --------------------------------------------- | -------------------------------------------------- | +| 提交的 Excel 試算表包含所有三種類型的圖表 | 提交的 Excel 試算表包含兩種類型的圖表 | 提交的 Excel 試算表僅包含一種類型的圖表 | + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/12-visualization-relationships/README.md b/translations/mo/3-Data-Visualization/12-visualization-relationships/README.md new file mode 100644 index 00000000..5b936871 --- /dev/null +++ b/translations/mo/3-Data-Visualization/12-visualization-relationships/README.md @@ -0,0 +1,188 @@ + +# 視覺化關係:蜂蜜的故事 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|視覺化關係 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +延續我們研究的自然主題,讓我們探索一些有趣的視覺化方式,來展示不同種類蜂蜜之間的關係。這些數據集來自[美國農業部](https://www.nass.usda.gov/About_NASS/index.php)。 + +這個包含約600項的數據集展示了美國多個州的蜂蜜生產情況。例如,您可以查看每個州在1998年至2012年間的蜂群數量、每群產量、總生產量、庫存、每磅價格以及蜂蜜的生產價值,每年每州一行數據。 + +我們可以視覺化某州每年的生產量與該州蜂蜜價格之間的關係。或者,您可以視覺化各州每群蜂蜜產量之間的關係。這段時間涵蓋了2006年首次出現的毀滅性“蜂群崩潰症候群(CCD)”(http://npic.orst.edu/envir/ccd.html),因此這是一個值得研究的數據集。🐝 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +在本課中,您可以使用之前使用過的 Seaborn 庫,這是一個很好的工具來視覺化變數之間的關係。特別有趣的是 Seaborn 的 `relplot` 函數,它可以快速生成散點圖和折線圖,視覺化[統計關係](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships),幫助數據科學家更好地理解變數之間的關聯。 + +## 散點圖 + +使用散點圖展示蜂蜜價格如何隨年份在各州演變。Seaborn 的 `relplot` 可以方便地將州的數據分組,並顯示分類和數值數據的數據點。 + +首先,導入數據和 Seaborn: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +您會注意到蜂蜜數據中有幾個有趣的列,包括年份和每磅價格。讓我們按美國州分組來探索這些數據: + +| 州 | 蜂群數量 | 每群產量 | 總生產量 | 庫存 | 每磅價格 | 生產價值 | 年份 | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + +創建一個基本的散點圖,展示蜂蜜每磅價格與其來源州之間的關係。讓 `y` 軸足夠高以顯示所有州: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.mo.png) + +接下來,使用蜂蜜色調展示價格如何隨年份演變。您可以通過添加 'hue' 參數來顯示年份的變化: + +> ✅ 了解更多關於 [Seaborn 中可用的色彩調色板](https://seaborn.pydata.org/tutorial/color_palettes.html) - 試試美麗的彩虹色調! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.mo.png) + +通過這種色彩方案的改變,您可以明顯看到蜂蜜每磅價格在多年來的強烈增長趨勢。事實上,如果您查看數據中的樣本集(例如選擇一個州,亞利桑那州),您可以看到價格逐年上漲的模式,僅有少數例外: + +| 州 | 蜂群數量 | 每群產量 | 總生產量 | 庫存 | 每磅價格 | 生產價值 | 年份 | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +另一種視覺化這種進展的方法是使用大小而不是顏色。對於色盲用戶,這可能是一個更好的選擇。編輯您的視覺化,通過點的圓周大小來展示價格的增長: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +您可以看到點的大小逐漸增大。 + +![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.mo.png) + +這是否是一個簡單的供需問題?由於氣候變化和蜂群崩潰等因素,是否每年可供購買的蜂蜜減少,導致價格上漲? + +為了探索這個數據集中一些變數之間的相關性,讓我們來看看一些折線圖。 + +## 折線圖 + +問題:蜂蜜每磅價格是否每年都有明顯上漲?您可以通過創建一個單一折線圖來最容易地發現這一點: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +答案:是的,但在2003年左右有一些例外: + +![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.mo.png) + +✅ 由於 Seaborn 將數據聚合到一條線上,它通過繪製均值和均值周圍的95%置信區間來顯示“每個 x 值的多個測量值”。[來源](https://seaborn.pydata.org/tutorial/relational.html)。這種耗時的行為可以通過添加 `ci=None` 禁用。 + +問題:那麼,在2003年,我們是否也能看到蜂蜜供應的激增?如果您查看每年的總生產量呢? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.mo.png) + +答案:並不完全。如果您查看總生產量,實際上在那一年似乎有所增加,儘管總體而言,蜂蜜的生產量在這些年中呈下降趨勢。 + +問題:在這種情況下,2003年蜂蜜價格的激增可能是什麼原因? + +為了探索這一點,您可以使用 Facet Grid。 + +## Facet Grids + +Facet Grid 可以選擇數據集的一個方面(在我們的例子中,您可以選擇“年份”,以避免生成過多的 Facet)。Seaborn 可以為您選擇的 x 和 y 坐標生成每個 Facet 的圖表,方便比較。2003年是否在這種比較中脫穎而出? + +通過繼續使用 `relplot` 創建 Facet Grid,這是 [Seaborn 文檔](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid)推薦的方法。 + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +在這個視覺化中,您可以比較每群產量和蜂群數量隨年份的變化,並將列的包裹設置為3: + +![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.mo.png) + +對於這個數據集,關於蜂群數量及其產量,年份和州之間並沒有特別突出的地方。是否有其他方式可以找到這兩個變數之間的相關性? + +## 雙折線圖 + +嘗試使用多折線圖,通過將兩個折線圖疊加在一起,使用 Seaborn 的 'despine' 移除其上方和右側的邊框,並使用 `ax.twinx` [源自 Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html)。Twins 允許圖表共享 x 軸並顯示兩個 y 軸。因此,顯示每群產量和蜂群數量的疊加圖: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.mo.png) + +雖然在2003年沒有明顯的異常,但這讓我們可以以一個稍微樂觀的結論結束這節課:儘管蜂群數量總體上在下降,但蜂群數量正在穩定,即使每群的產量在減少。 + +加油,蜜蜂們! + +🐝❤️ +## 🚀 挑戰 + +在本課中,您學到了更多關於散點圖和折線網格的其他用途,包括 Facet Grid。挑戰自己使用不同的數據集創建 Facet Grid,也許是您之前使用過的數據集。注意它們的生成時間以及如何小心選擇需要繪製的網格數量。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## 回顧與自學 + +折線圖可以很簡單,也可以非常複雜。閱讀 [Seaborn 文檔](https://seaborn.pydata.org/generated/seaborn.lineplot.html) 中關於構建折線圖的各種方法。嘗試使用文檔中列出的其他方法來增強您在本課中構建的折線圖。 + +## 作業 + +[深入蜂巢](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/12-visualization-relationships/assignment.md b/translations/mo/3-Data-Visualization/12-visualization-relationships/assignment.md new file mode 100644 index 00000000..20764db1 --- /dev/null +++ b/translations/mo/3-Data-Visualization/12-visualization-relationships/assignment.md @@ -0,0 +1,25 @@ + +# 探索蜂巢 + +## 說明 + +在這節課中,你開始研究一組有關蜜蜂及其蜂蜜產量的數據,這些數據涵蓋了一段時間,而這段時間內蜂群數量整體上有所減少。深入挖掘這組數據,建立一個筆記本,講述蜂群健康狀況的故事,按州和年份進行分析。你是否在這組數據中發現了什麼有趣的內容? + +## 評分標準 + +| 優秀 | 合格 | 需要改進 | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | --------------------------------------- | +| 提供了一個筆記本,包含至少三個不同的圖表,註解展示數據集的各個方面,按州和年份進行分析 | 筆記本缺少其中一個要素 | 筆記本缺少其中兩個要素 | + +--- + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/13-meaningful-visualizations/README.md b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/README.md new file mode 100644 index 00000000..153174d9 --- /dev/null +++ b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/README.md @@ -0,0 +1,182 @@ + +# 製作有意義的視覺化圖表 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| 有意義的視覺化圖表 - _由 [@nitya](https://twitter.com/nitya) 繪製的速記筆記_ | + +> 「如果你折磨數據足夠久,它會承認任何事情」-- [Ronald Coase](https://en.wikiquote.org/wiki/Ronald_Coase) + +作為一名數據科學家,基本技能之一就是能夠創建有意義的數據視覺化,幫助回答你可能提出的問題。在進行數據視覺化之前,你需要確保數據已經像之前課程中所教的那樣進行清理和準備。之後,你就可以開始決定如何最佳地呈現數據。 + +在本課程中,你將學習: + +1. 如何選擇合適的圖表類型 +2. 如何避免誤導性的圖表 +3. 如何使用顏色 +4. 如何設計圖表以提高可讀性 +5. 如何構建動畫或3D圖表解決方案 +6. 如何創建創意視覺化 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## 選擇合適的圖表類型 + +在之前的課程中,你已經嘗試使用 Matplotlib 和 Seaborn 創建各種有趣的數據視覺化。通常,你可以使用以下表格選擇[合適的圖表類型](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/)來回答你的問題: + +| 你的需求是: | 你應該使用: | +| -------------------------- | --------------------------- | +| 展示隨時間的數據趨勢 | 折線圖 | +| 比較不同類別 | 柱狀圖、餅圖 | +| 比較總量 | 餅圖、堆疊柱狀圖 | +| 展示關係 | 散點圖、折線圖、分面圖、雙折線圖 | +| 展示分佈 | 散點圖、直方圖、箱型圖 | +| 展示比例 | 餅圖、甜甜圈圖、華夫圖 | + +> ✅ 根據數據的組成,你可能需要將其從文本轉換為數字,以支持某些圖表。 + +## 避免誤導 + +即使數據科學家謹慎選擇了合適的圖表類型,數據仍然可能以某種方式被展示來支持某種觀點,往往以犧牲數據本身為代價。有許多誤導性圖表和信息圖的例子! + +[![Alberto Cairo 的《How Charts Lie》](../../../../translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.mo.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 點擊上方圖片觀看有關誤導性圖表的會議演講 + +這張圖表反轉了 X 軸,根據日期顯示了與事實相反的內容: + +![糟糕的圖表 1](../../../../translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.mo.png) + +[這張圖表](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) 更具誤導性,因為視覺上吸引人注意的是右側,讓人得出隨時間推移各縣的 COVID 病例數下降的結論。事實上,如果仔細查看日期,你會發現日期被重新排列以製造這種誤導性的下降趨勢。 + +![糟糕的圖表 2](../../../../translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.mo.jpg) + +這個臭名昭著的例子使用顏色和翻轉的 Y 軸來誤導:原本應該得出槍支友好立法通過後槍支死亡率激增的結論,卻讓人誤以為情況正好相反: + +![糟糕的圖表 3](../../../../translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.mo.jpg) + +這張奇怪的圖表展示了比例如何被操控,效果令人捧腹: + +![糟糕的圖表 4](../../../../translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.mo.jpg) + +比較不可比的事物是另一種不正當的手段。有一個[精彩的網站](https://tylervigen.com/spurious-correlations)專門展示「虛假的相關性」,例如顯示緬因州的離婚率與人造奶油的消耗量之間的「事實」相關性。一個 Reddit 群組也收集了[糟糕的數據使用](https://www.reddit.com/r/dataisugly/top/?t=all)。 + +了解眼睛如何容易被誤導性圖表欺騙是很重要的。即使數據科學家的意圖是好的,選擇糟糕的圖表類型(例如顯示過多類別的餅圖)也可能具有誤導性。 + +## 顏色 + +你在上面「佛羅里達槍支暴力」的圖表中看到,顏色可以為圖表提供額外的意義,尤其是那些未使用 Matplotlib 和 Seaborn 等庫設計的圖表,這些庫自帶各種經過驗證的顏色庫和調色板。如果你手動製作圖表,可以稍微研究一下[顏色理論](https://colormatters.com/color-and-design/basic-color-theory)。 + +> ✅ 在設計圖表時,請注意可訪問性是視覺化的重要方面。一些用戶可能是色盲——你的圖表是否能很好地為視覺障礙者顯示? + +選擇圖表顏色時要小心,因為顏色可能傳達你未曾預料的含義。上面「身高」圖表中的「粉紅女士」傳達了一種明顯的「女性化」含義,這增加了圖表本身的怪異感。 + +雖然[顏色的含義](https://colormatters.com/color-symbolism/the-meanings-of-colors)可能因地區而異,並且根據其色調而改變,但一般來說,顏色的含義包括: + +| 顏色 | 含義 | +| ------ | ------------------- | +| 紅色 | 力量 | +| 藍色 | 信任、忠誠 | +| 黃色 | 快樂、警告 | +| 綠色 | 生態、幸運、嫉妒 | +| 紫色 | 快樂 | +| 橙色 | 活力 | + +如果你需要使用自定義顏色構建圖表,請確保你的圖表既可訪問,又能與你想要傳達的含義一致。 + +## 設計圖表以提高可讀性 + +如果圖表不可讀,它就沒有意義!花點時間考慮調整圖表的寬度和高度,使其能很好地與數據匹配。如果需要顯示一個變量(例如所有50個州),請盡量垂直顯示在 Y 軸上,以避免水平滾動的圖表。 + +標記你的軸,必要時提供圖例,並提供工具提示以更好地理解數據。 + +如果你的數據在 X 軸上是文本且冗長,可以將文本角度調整以提高可讀性。[Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) 提供了 3D 繪圖功能,如果你的數據支持它。使用 `mpl_toolkits.mplot3d` 可以生成更高級的數據視覺化。 + +![3D 圖表](../../../../translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.mo.png) + +## 動畫和3D圖表顯示 + +如今一些最好的數據視覺化是動畫的。Shirley Wu 使用 D3 創作了令人驚嘆的作品,例如「[電影之花](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)」,每朵花都是一部電影的視覺化。另一個例子是《衛報》的「Bussed Out」,這是一個結合 Greensock 和 D3 的視覺化和滾動敘事文章格式的互動體驗,展示了紐約市如何通過將無家可歸者送出城市來處理其無家可歸問題。 + +![Bussed Out](../../../../translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.mo.png) + +> 「Bussed Out: How America Moves its Homeless」來自[《衛報》](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study)。視覺化由 Nadieh Bremer 和 Shirley Wu 創作 + +雖然本課程不足以深入教授這些強大的視覺化庫,但你可以嘗試在 Vue.js 應用中使用 D3,展示一本書《危險關係》的動畫社交網絡視覺化。 + +> 《危險關係》是一部書信體小說,即以一系列信件形式呈現的小說。由 Choderlos de Laclos 於1782年撰寫,講述了18世紀晚期法國貴族中兩位主角 Vicomte de Valmont 和 Marquise de Merteuil 的惡毒、道德敗壞的社交操縱。他們最終都遭遇了悲劇,但在此之前造成了巨大的社會損害。小說以寫給圈內各人的信件形式展開,策劃復仇或僅僅是製造麻煩。創建這些信件的視覺化,探索敘事中的主要角色。 + +你將完成一個網頁應用,顯示這個社交網絡的動畫視圖。它使用了一個庫來創建[網絡視覺化](https://github.com/emiliorizzo/vue-d3-network),基於 Vue.js 和 D3。當應用運行時,你可以在屏幕上拖動節點來重新排列數據。 + +![危險關係](../../../../translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.mo.png) + +## 項目:使用 D3.js 構建一個展示網絡的圖表 + +> 本課程文件夾包含一個 `solution` 文件夾,你可以在其中找到完成的項目供參考。 + +1. 按照起始文件夾根目錄中的 README.md 文件中的指示操作。在安裝項目依賴項之前,確保你的機器上已運行 NPM 和 Node.js。 + +2. 打開 `starter/src` 文件夾。你會發現一個 `assets` 文件夾,其中有一個 .json 文件,包含小說中的所有信件,編號,並帶有「to」和「from」註釋。 + +3. 完成 `components/Nodes.vue` 中的代碼以啟用視覺化。找到名為 `createLinks()` 的方法,並添加以下嵌套循環。 + +循環遍歷 .json 對象以捕獲信件的「to」和「from」數據,並構建 `links` 對象,以便視覺化庫可以使用: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +從終端運行你的應用(npm run serve),享受視覺化效果! + +## 🚀 挑戰 + +在互聯網上探索誤導性視覺化。作者如何欺騙用戶?這是故意的嗎?嘗試修正這些視覺化,展示它們應該如何呈現。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## 回顧與自學 + +以下是一些有關誤導性數據視覺化的文章: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +看看這些有趣的歷史資產和文物視覺化: + +https://handbook.pubpub.org/ + +閱讀這篇文章,了解動畫如何增強你的視覺化: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## 作業 + +[創建你自己的自定義視覺化](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/13-meaningful-visualizations/assignment.md b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/assignment.md new file mode 100644 index 00000000..0970cbf7 --- /dev/null +++ b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/assignment.md @@ -0,0 +1,25 @@ + +# 建立你自己的自定義視覺化 + +## 指導說明 + +使用此專案中的程式碼範例來建立一個社交網絡,模擬你自己的社交互動數據。你可以繪製你的社交媒體使用情況,或者製作一個家庭成員的圖表。創建一個有趣的網頁應用程式,展示一個獨特的社交網絡視覺化。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +提供一個 GitHub 儲存庫,其中的程式碼能正常運行(嘗試將其部署為靜態網頁應用程式),並附有註解清晰的 README 說明專案 | 儲存庫無法正常運行或文檔不完善 | 儲存庫無法正常運行且文檔不完善 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/13-meaningful-visualizations/solution/README.md b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/solution/README.md new file mode 100644 index 00000000..83beb041 --- /dev/null +++ b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/solution/README.md @@ -0,0 +1,40 @@ + +# 危險關係數據可視化項目 + +開始之前,請確保您的機器上已安裝並運行 NPM 和 Node。安裝依賴項(npm install),然後在本地運行項目(npm run serve): + +## 項目設置 +``` +npm install +``` + +### 編譯並熱重載以進行開發 +``` +npm run serve +``` + +### 編譯並壓縮以進行生產環境 +``` +npm run build +``` + +### 檢查並修復文件 +``` +npm run lint +``` + +### 自定義配置 +請參閱 [配置參考](https://cli.vuejs.org/config/)。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/13-meaningful-visualizations/starter/README.md b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/starter/README.md new file mode 100644 index 00000000..24e89d47 --- /dev/null +++ b/translations/mo/3-Data-Visualization/13-meaningful-visualizations/starter/README.md @@ -0,0 +1,40 @@ + +# 危險關係數據可視化項目 + +要開始使用,請確保您的機器上已安裝 NPM 和 Node。安裝依賴項(npm install),然後在本地運行項目(npm run serve): + +## 項目設置 +``` +npm install +``` + +### 編譯並熱重載以進行開發 +``` +npm run serve +``` + +### 編譯並壓縮以進行生產環境 +``` +npm run build +``` + +### 檢查並修復文件 +``` +npm run lint +``` + +### 自定義配置 +請參閱 [配置參考](https://cli.vuejs.org/config/)。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/09-visualization-quantities/README.md b/translations/mo/3-Data-Visualization/R/09-visualization-quantities/README.md new file mode 100644 index 00000000..d5227608 --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/09-visualization-quantities/README.md @@ -0,0 +1,234 @@ + +# 視覺化數量 +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| 視覺化數量 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +在本課程中,您將探索如何使用一些 R 套件庫來學習如何圍繞數量概念創建有趣的視覺化。使用一個關於明尼蘇達州鳥類的清理過的數據集,您可以了解許多有趣的本地野生動物資訊。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## 使用 ggplot2 觀察翼展 +一個非常出色的庫是 [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html),它可以用來創建各種簡單或複雜的圖表。一般來說,使用這些庫繪製數據的過程包括:識別您想要針對的數據框部分,對數據進行必要的轉換,分配其 x 和 y 軸值,決定要顯示的圖表類型,然後顯示圖表。 + +`ggplot2` 是一個基於圖形語法(Grammar of Graphics)聲明式創建圖形的系統。[圖形語法](https://en.wikipedia.org/wiki/Ggplot2) 是一種數據視覺化的通用方案,它將圖表分解為語義組件,例如比例和層次。換句話說,`ggplot2` 使得用少量代碼創建單變量或多變量數據的圖表和圖形變得非常容易,因此成為 R 中最受歡迎的視覺化套件。使用者告訴 `ggplot2` 如何將變數映射到美學屬性,使用哪些圖形元素,然後 `ggplot2` 負責其餘部分。 + +> ✅ 圖表 = 數據 + 美學 + 幾何 +> - 數據指的是數據集 +> - 美學表示要研究的變數(x 和 y 變數) +> - 幾何指的是圖表類型(折線圖、柱狀圖等) + +根據您的數據和想要通過圖表講述的故事,選擇最佳的幾何(圖表類型)。 + +> - 分析趨勢:折線圖、柱狀圖 +> - 比較數值:條形圖、柱狀圖、餅圖、散點圖 +> - 顯示部分與整體的關係:餅圖 +> - 顯示數據分佈:散點圖、柱狀圖 +> - 顯示數值之間的關係:折線圖、散點圖、氣泡圖 + +✅ 您也可以查看這份描述性的 [ggplot2 速查表](https://nyu-cdsc.github.io/learningr/assets/data-visualization-2.1.pdf)。 + +## 建立鳥類翼展值的折線圖 + +打開 R 控制台並導入數據集。 +> 注意:數據集存儲在此 repo 的 `/data` 文件夾中。 + +讓我們導入數據集並觀察數據的前五行。 + +```r +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") +head(birds) +``` +數據的前五行包含文本和數字的混合: + +| | 名稱 | 學名 | 類別 | 目 | 科 | 屬 | 保育狀態 | 最小長度 | 最大長度 | 最小體重 | 最大體重 | 最小翼展 | 最大翼展 | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | 黑腹樹鴨 | Dendrocygna autumnalis | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | 棕樹鴨 | Dendrocygna bicolor | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | 雪鵝 | Anser caerulescens | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | 羅斯鵝 | Anser rossii | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | 大白額雁 | Anser albifrons | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 雁屬 | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +讓我們從繪製一些數字數據的基本折線圖開始。假設您想查看這些有趣鳥類的最大翼展。 + +```r +install.packages("ggplot2") +library("ggplot2") +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() +``` +在這裡,您安裝了 `ggplot2` 套件,然後使用 `library("ggplot2")` 命令將其導入工作區。要在 ggplot 中繪製任何圖表,使用 `ggplot()` 函數並指定數據集、x 和 y 變數作為屬性。在此情況下,我們使用 `geom_line()` 函數,因為我們的目標是繪製折線圖。 + +![MaxWingspan-lineplot](../../../../../translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.mo.png) + +您立即注意到什麼?似乎至少有一個異常值——那是一個相當大的翼展!2000+ 公分的翼展超過了 20 公尺——明尼蘇達州有翼龍在飛嗎?讓我們調查一下。 + +雖然您可以在 Excel 中快速排序以找到這些可能是錯誤的異常值,但請繼續從圖表內部進行視覺化處理。 + +為 x 軸添加標籤以顯示涉及哪些鳥類: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() + + theme(axis.text.x = element_text(angle = 45, hjust=1))+ + xlab("Birds") + + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") +``` +我們在 `theme` 中指定了角度,並在 `xlab()` 和 `ylab()` 中分別指定了 x 和 y 軸標籤。`ggtitle()` 為圖表/圖形命名。 + +![MaxWingspan-lineplot-improved](../../../../../translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.mo.png) + +即使將標籤的旋轉設置為 45 度,仍然有太多標籤難以閱讀。讓我們嘗試另一種策略:僅標記那些異常值並在圖表內設置標籤。您可以使用散點圖來為標籤留出更多空間: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") + +``` +這裡發生了什麼?您使用了 `geom_point()` 函數來繪製散點。通過這個,您為 `MaxWingspan > 500` 的鳥類添加了標籤,並隱藏了 x 軸上的標籤以減少圖表的混亂。 + +您發現了什麼? + +![MaxWingspan-scatterplot](../../../../../translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.mo.png) + +## 篩選數據 + +禿鷹和草原隼,雖然可能是非常大的鳥類,但似乎被錯誤標記了,其最大翼展多加了一個 0。遇到翼展 25 公尺的禿鷹的可能性不大,但如果真的遇到,請告訴我們!讓我們創建一個新的數據框,去掉這兩個異常值: + +```r +birds_filtered <- subset(birds, MaxWingspan < 500) + +ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + ylab("Wingspan (CM)") + + xlab("Birds") + + ggtitle("Max Wingspan in Centimeters") + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +``` +我們創建了一個新的數據框 `birds_filtered`,然後繪製了一個散點圖。通過篩選掉異常值,您的數據現在更加一致且易於理解。 + +![MaxWingspan-scatterplot-improved](../../../../../translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.mo.png) + +現在我們至少在翼展方面有了一個更乾淨的數據集,讓我們進一步探索這些鳥類。 + +雖然折線圖和散點圖可以顯示數據值及其分佈的資訊,但我們想要思考這個數據集中固有的數值。您可以創建視覺化來回答以下關於數量的問題: + +> 有多少類別的鳥類?它們的數量是多少? +> 有多少鳥類是滅絕、瀕危、稀有或常見的? +> 根據林奈分類法,有多少屬和目? + +## 探索條形圖 + +當您需要顯示數據分組時,條形圖非常實用。讓我們探索這個數據集中存在的鳥類類別,看看哪一類最常見。 + +讓我們在篩選後的數據上創建一個條形圖。 + +```r +install.packages("dplyr") +install.packages("tidyverse") + +library(lubridate) +library(scales) +library(dplyr) +library(ggplot2) +library(tidyverse) + +birds_filtered %>% group_by(Category) %>% + summarise(n=n(), + MinLength = mean(MinLength), + MaxLength = mean(MaxLength), + MinBodyMass = mean(MinBodyMass), + MaxBodyMass = mean(MaxBodyMass), + MinWingspan=mean(MinWingspan), + MaxWingspan=mean(MaxWingspan)) %>% + gather("key", "value", - c(Category, n)) %>% + ggplot(aes(x = Category, y = value, group = key, fill = key)) + + geom_bar(stat = "identity") + + scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) + + xlab("Category")+ggtitle("Birds of Minnesota") + +``` +在以下代碼片段中,我們安裝了 [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) 和 [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) 套件,以幫助操作和分組數據以繪製堆疊條形圖。首先,您按鳥類的 `Category` 分組數據,然後總結 `MinLength`、`MaxLength`、`MinBodyMass`、`MaxBodyMass`、`MinWingspan`、`MaxWingspan` 列。接著,使用 `ggplot2` 套件繪製條形圖並指定不同類別的顏色和標籤。 + +![Stacked bar chart](../../../../../translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.mo.png) + +然而,這個條形圖因為有太多未分組的數據而難以閱讀。您需要選擇僅想要繪製的數據,因此讓我們看看基於鳥類類別的鳥類長度。 + +篩選您的數據以僅包含鳥類的類別。 + +由於有許多類別,您可以垂直顯示此圖表並調整其高度以容納所有數據: + +```r +birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE) +birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category) +ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip() +``` +您首先計算 `Category` 列中的唯一值,然後將它們排序到新的數據框 `birds_count` 中。這些排序後的數據在相同層次中進行分級,以便按排序方式繪製。使用 `ggplot2`,您接著繪製條形圖。`coord_flip()` 則繪製水平條形圖。 + +![category-length](../../../../../translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.mo.png) + +這個條形圖很好地展示了每個類別中鳥類的數量。一眼就能看出,在這個地區最多的鳥類是鴨/鵝/水禽類別。明尼蘇達州是“萬湖之地”,所以這並不令人驚訝! + +✅ 嘗試對此數據集進行其他計數。是否有任何結果令您驚訝? + +## 比較數據 + +您可以通過創建新的軸嘗試不同的分組數據比較。嘗試比較基於鳥類類別的最大長度: + +```r +birds_grouped <- birds_filtered %>% + group_by(Category) %>% + summarise( + MaxLength = max(MaxLength, na.rm = T), + MinLength = max(MinLength, na.rm = T) + ) %>% + arrange(Category) + +ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip() +``` +我們按 `Category` 分組 `birds_filtered` 數據,然後繪製條形圖。 + +![comparing data](../../../../../translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.mo.png) + +這裡沒有什麼令人驚訝的:蜂鳥的最大長度比鵜鶘或鵝要小得多。當數據符合邏輯時,這是件好事! + +您可以通過疊加數據創建更有趣的條形圖視覺化。讓我們在給定的鳥類類別上疊加最小和最大長度: + +```r +ggplot(data=birds_grouped, aes(x=Category)) + + geom_bar(aes(y=MaxLength), stat="identity", position ="identity", fill='blue') + + geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+ + coord_flip() +``` +![super-imposed values](../../../../../translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.mo.png) + +## 🚀 挑戰 + +這個鳥類數據集提供了關於特定生態系統中不同類型鳥類的大量資訊。在網上搜索,看看您是否能找到其他與鳥類相關的數據集。練習圍繞這些鳥類構建圖表和圖形,發現您之前未曾意識到的事實。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## 回顧與自學 + +這第一課提供了一些關於如何使用 `ggplot2` 視覺化數量的資訊。進一步研究其他方法來處理數據集進行視覺化。研究並尋找可以使用其他套件(如 [Lattice](https://stat.ethz.ch/R-manual/R-devel/library/lattice/html/Lattice.html) 和 [Plotly](https://github.com/plotly/plotly.R#readme))進行視覺化的數據集。 + +## 作業 +[折線圖、散點圖和條形圖](assignment.md) + +--- + +**免責聲明**: +本文檔已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵信息,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/09-visualization-quantities/assignment.md b/translations/mo/3-Data-Visualization/R/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..64654c2b --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# 折線圖、散點圖與長條圖 + +## 課程指引 + +在本課程中,你學習了如何使用折線圖、散點圖和長條圖來展示這個數據集中的有趣事實。在這次作業中,深入探索數據集,發掘關於某種鳥類的有趣事實。例如,撰寫一個腳本,視覺化所有你能找到的關於雪雁的有趣數據。使用上述三種圖表,在你的筆記本中講述一個故事。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | --- | +腳本具有良好的註解、完整的故事敘述以及吸引人的圖表 | 腳本缺少其中一個元素 | 腳本缺少其中兩個元素 + +--- + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始語言的文件應被視為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/10-visualization-distributions/README.md b/translations/mo/3-Data-Visualization/R/10-visualization-distributions/README.md new file mode 100644 index 00000000..9a4278ab --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/10-visualization-distributions/README.md @@ -0,0 +1,183 @@ + +# 視覺化分佈 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| 視覺化分佈 - _速記筆記由 [@nitya](https://twitter.com/nitya) 繪製_ | + +在上一課中,你學習了一些關於明尼蘇達州鳥類數據集的有趣事實。你通過視覺化異常值發現了一些錯誤的數據,並通過最大長度比較了不同鳥類類別的差異。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## 探索鳥類數據集 + +另一種深入了解數據的方法是查看其分佈,即數據如何沿著某個軸排列。例如,你可能想了解這個數據集中鳥類的最大翼展或最大體重的一般分佈。 + +讓我們來探索這個數據集中分佈的一些事實。在你的 R 控制台中,導入 `ggplot2` 和數據庫。像上一個主題中一樣,從數據庫中移除異常值。 + +```r +library(ggplot2) + +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") + +birds_filtered <- subset(birds, MaxWingspan < 500) +head(birds_filtered) +``` +| | 名稱 | 學名 | 類別 | 目 | 科 | 屬 | 保育狀態 | 最小長度 | 最大長度 | 最小體重 | 最大體重 | 最小翼展 | 最大翼展 | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | 黑腹樹鴨 | Dendrocygna autumnalis | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | 棕樹鴨 | Dendrocygna bicolor | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 樹鴨屬 | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | 雪鵝 | Anser caerulescens | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 鵝屬 | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | 羅斯鵝 | Anser rossii | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 鵝屬 | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | 大白額鵝 | Anser albifrons | 鴨/鵝/水禽 | 雁形目 | 鴨科 | 鵝屬 | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +通常,你可以通過使用散點圖快速查看數據的分佈,就像我們在上一課中所做的那樣: + +```r +ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + + geom_point() + + ggtitle("Max Length per order") + coord_flip() +``` +![每目最大長度](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.mo.png) + +這提供了每個鳥類目的一般身體長度分佈概況,但這並不是顯示真實分佈的最佳方式。通常使用直方圖來完成這項任務。 +## 使用直方圖 + +`ggplot2` 提供了非常好的方法來使用直方圖視覺化數據分佈。這種圖表類似於柱狀圖,分佈可以通過柱狀的升降來觀察。要構建直方圖,你需要數值型數據。要構建直方圖,你可以繪製一個圖表,將類型定義為 'hist' 以表示直方圖。此圖表顯示了整個數據集的最大體重分佈。通過將數據陣列分成較小的區間,它可以顯示數據值的分佈: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + + geom_histogram(bins=10)+ylab('Frequency') +``` +![整個數據集的分佈](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.mo.png) + +如你所見,這個數據集中的 400 多種鳥類大多數最大體重都低於 2000。通過將 `bins` 參數更改為更高的數字,例如 30,可以獲得更多的洞察: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') +``` + +![30個區間的分佈](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.mo.png) + +此圖表以更細緻的方式顯示了分佈。通過確保僅選擇特定範圍內的數據,可以創建一個不那麼偏向左側的圖表: + +篩選你的數據,僅獲取體重低於 60 的鳥類,並顯示 30 個 `bins`: + +```r +birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_histogram(bins=30)+ylab('Frequency') +``` + +![篩選後的直方圖](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.mo.png) + +✅ 嘗試其他篩選條件和數據點。要查看數據的完整分佈,移除 `['MaxBodyMass']` 篩選器以顯示標籤分佈。 + +直方圖還提供了一些不錯的顏色和標籤增強功能可以嘗試: + +創建一個 2D 直方圖來比較兩個分佈之間的關係。讓我們比較 `MaxBodyMass` 和 `MaxLength`。`ggplot2` 提供了一種內建方式來通過更亮的顏色顯示收斂: + +```r +ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + + geom_bin2d() +scale_fill_continuous(type = "viridis") +``` +沿著預期的軸,這兩個元素之間似乎存在預期的相關性,其中有一個特別強的收斂點: + +![2D 圖表](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.mo.png) + +直方圖默認適用於數值型數據。如果你需要查看基於文本數據的分佈該怎麼辦? +## 使用文本數據探索數據集的分佈 + +此數據集還包括關於鳥類類別及其屬、種、科以及保育狀態的良好信息。讓我們深入了解這些保育信息。鳥類根據其保育狀態的分佈是什麼樣的? + +> ✅ 在數據集中,使用了幾個縮寫來描述保育狀態。這些縮寫來自 [IUCN 紅色名錄分類](https://www.iucnredlist.org/),該組織記錄了物種的狀態。 +> +> - CR: 極危 +> - EN: 瀕危 +> - EX: 滅絕 +> - LC: 無危 +> - NT: 近危 +> - VU: 易危 + +這些是基於文本的值,因此你需要進行轉換以創建直方圖。使用篩選後的鳥類數據框,顯示其保育狀態及其最小翼展。你看到了什麼? + +```r +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6' + +ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) + + geom_histogram(position = "identity", alpha = 0.4, bins = 20) + + scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern")) +``` + +![翼展與保育狀態的對比](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.mo.png) + +最小翼展和保育狀態之間似乎沒有良好的相關性。使用此方法測試數據集的其他元素。你可以嘗試不同的篩選條件。你是否發現了任何相關性? + +## 密度圖 + +你可能已經注意到,我們到目前為止看到的直方圖是“階梯式”的,並沒有平滑地呈弧形。要顯示更平滑的密度圖,可以嘗試使用密度圖。 + +現在讓我們來使用密度圖! + +```r +ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + + geom_density() +``` +![密度圖](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.mo.png) + +你可以看到該圖表反映了之前的最小翼展數據;它只是稍微平滑了一些。如果你想重新訪問第二個圖表中那條鋸齒狀的最大體重線,可以通過使用此方法非常好地將其平滑化: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density() +``` +![體重密度](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.mo.png) + +如果你想要一條平滑但不過於平滑的線,可以編輯 `adjust` 參數: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density(adjust = 1/5) +``` +![較不平滑的體重密度](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.mo.png) + +✅ 閱讀此類圖表可用的參數並進行實驗! + +這種類型的圖表提供了非常具有解釋性的視覺化效果。例如,通過幾行代碼,你可以顯示每個鳥類目最大體重的密度: + +```r +ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + + geom_density(alpha=0.5) +``` +![每目體重密度](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.mo.png) + +## 🚀 挑戰 + +直方圖是一種比基本散點圖、柱狀圖或折線圖更為複雜的圖表類型。上網搜索直方圖的良好使用案例。它們如何使用,它們展示了什麼,以及它們通常在哪些領域或研究領域中使用? + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## 回顧與自學 + +在本課中,你使用了 `ggplot2` 並開始展示更為複雜的圖表。研究一下 `geom_density_2d()`,這是一種“在一個或多個維度上的連續概率密度曲線”。閱讀 [文檔](https://ggplot2.tidyverse.org/reference/geom_density_2d.html) 以了解其工作原理。 + +## 作業 + +[應用你的技能](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/10-visualization-distributions/assignment.md b/translations/mo/3-Data-Visualization/R/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..2cc4f11d --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# 運用你的技能 + +## 指示 + +到目前為止,你已經使用了明尼蘇達州鳥類數據集來探索有關鳥類數量和人口密度的信息。嘗試使用不同的數據集來練習這些技術,或許可以從 [Kaggle](https://www.kaggle.com/) 獲取數據。撰寫一個 R 腳本來講述這個數據集的故事,並確保在討論時使用直方圖。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | +提供了一個腳本,包含有關此數據集的註解,包括其來源,並使用至少 5 個直方圖來探索數據的事實。 | 提供了一個腳本,但註解不完整或存在錯誤。 | 提供了一個腳本,但沒有註解且包含錯誤。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/11-visualization-proportions/README.md b/translations/mo/3-Data-Visualization/R/11-visualization-proportions/README.md new file mode 100644 index 00000000..599788a7 --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/11-visualization-proportions/README.md @@ -0,0 +1,200 @@ + +# 視覺化比例 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|視覺化比例 - _速記筆記由 [@nitya](https://twitter.com/nitya) 繪製_ | + +在這節課中,你將使用一個以自然為主題的數據集來視覺化比例,例如在一個關於蘑菇的數據集中有多少不同種類的真菌。我們將使用一個來自 Audubon 的數據集,該數據集列出了 Agaricus 和 Lepiota 家族中 23 種有鰓蘑菇的詳細信息。你將嘗試一些有趣的視覺化方式,例如: + +- 圓餅圖 🥧 +- 甜甜圈圖 🍩 +- 華夫圖 🧇 + +> 💡 微軟研究院的一個非常有趣的項目 [Charticulator](https://charticulator.com) 提供了一個免費的拖放界面,用於數據視覺化。在他們的一個教程中,他們也使用了這個蘑菇數據集!因此,你可以同時探索數據並學習這個工具庫:[Charticulator 教程](https://charticulator.com/tutorials/tutorial4.html)。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## 認識你的蘑菇 🍄 + +蘑菇非常有趣。讓我們導入一個數據集來研究它們: + +```r +mushrooms = read.csv('../../data/mushrooms.csv') +head(mushrooms) +``` +一個表格顯示了一些非常適合分析的數據: + +| 類別 | 帽型 | 帽表面 | 帽顏色 | 是否有瘀傷 | 氣味 | 鰓附著方式 | 鰓間距 | 鰓大小 | 鰓顏色 | 柄型 | 柄根 | 環上柄表面 | 環下柄表面 | 環上柄顏色 | 環下柄顏色 | 幔型 | 幔顏色 | 環數量 | 環型 | 孢子印顏色 | 分布 | 棲息地 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| 有毒 | 凸形 | 光滑 | 棕色 | 有瘀傷 | 刺鼻 | 自由 | 緊密 | 狹窄 | 黑色 | 擴大 | 等長 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 黑色 | 分散 | 城市 | +| 可食用 | 凸形 | 光滑 | 黃色 | 有瘀傷 | 杏仁 | 自由 | 緊密 | 寬廣 | 黑色 | 擴大 | 棒狀 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 棕色 | 多數 | 草地 | +| 可食用 | 鐘形 | 光滑 | 白色 | 有瘀傷 | 茴香 | 自由 | 緊密 | 寬廣 | 棕色 | 擴大 | 棒狀 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 棕色 | 多數 | 草原 | +| 有毒 | 凸形 | 鱗片狀 | 白色 | 有瘀傷 | 刺鼻 | 自由 | 緊密 | 狹窄 | 棕色 | 擴大 | 等長 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 黑色 | 分散 | 城市 | +| 可食用 | 凸形 | 光滑 | 綠色 | 無瘀傷 | 無氣味 | 自由 | 擁擠 | 寬廣 | 黑色 | 錐形 | 等長 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 消失 | 棕色 | 豐富 | 草地 | +| 可食用 | 凸形 | 鱗片狀 | 黃色 | 有瘀傷 | 杏仁 | 自由 | 緊密 | 寬廣 | 棕色 | 擴大 | 棒狀 | 光滑 | 光滑 | 白色 | 白色 | 部分 | 白色 | 一個 | 垂懸 | 黑色 | 多數 | 草地 | + +你會立刻注意到所有的數據都是文本形式。你需要將這些數據轉換為可以用於圖表的格式。事實上,大部分數據是以對象形式表示的: + +```r +names(mushrooms) +``` + +輸出為: + +```output +[1] "class" "cap.shape" + [3] "cap.surface" "cap.color" + [5] "bruises" "odor" + [7] "gill.attachment" "gill.spacing" + [9] "gill.size" "gill.color" +[11] "stalk.shape" "stalk.root" +[13] "stalk.surface.above.ring" "stalk.surface.below.ring" +[15] "stalk.color.above.ring" "stalk.color.below.ring" +[17] "veil.type" "veil.color" +[19] "ring.number" "ring.type" +[21] "spore.print.color" "population" +[23] "habitat" +``` +將這些數據中的「類別」列轉換為分類: + +```r +library(dplyr) +grouped=mushrooms %>% + group_by(class) %>% + summarise(count=n()) +``` + +現在,如果你打印出蘑菇數據,你會看到它已經根據有毒/可食用類別分組: + +```r +View(grouped) +``` + +| 類別 | 數量 | +| --------- | --------- | +| 可食用 | 4208 | +| 有毒 | 3916 | + +如果你按照這個表格中呈現的順序來創建類別標籤,你就可以製作一個圓餅圖。 + +## 圓餅圖! + +```r +pie(grouped$count,grouped$class, main="Edible?") +``` +完成了,一個圓餅圖展示了根據這兩類蘑菇的數據比例。正確排列標籤的順序非常重要,尤其是在這裡,因此請務必確認標籤數組的構建順序! + +![圓餅圖](../../../../../translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.mo.png) + +## 甜甜圈圖! + +一種更具視覺吸引力的圓餅圖是甜甜圈圖,它是在圓餅圖中間挖了一個洞。讓我們用這種方法來查看數據。 + +看看蘑菇生長的各種棲息地: + +```r +library(dplyr) +habitat=mushrooms %>% + group_by(habitat) %>% + summarise(count=n()) +View(habitat) +``` +輸出為: + +| 棲息地 | 數量 | +| --------- | --------- | +| 草地 | 2148 | +| 樹葉 | 832 | +| 草原 | 292 | +| 小徑 | 1144 | +| 城市 | 368 | +| 廢棄地 | 192 | +| 樹木 | 3148 | + +在這裡,你將數據按棲息地分組。共有 7 種棲息地,因此使用它們作為甜甜圈圖的標籤: + +```r +library(ggplot2) +library(webr) +PieDonut(habitat, aes(habitat, count=count)) +``` + +![甜甜圈圖](../../../../../translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.mo.png) + +這段代碼使用了兩個庫——ggplot2 和 webr。使用 webr 庫的 PieDonut 函數,我們可以輕鬆創建甜甜圈圖! + +在 R 中僅使用 ggplot2 庫也可以製作甜甜圈圖。你可以在[這裡](https://www.r-graph-gallery.com/128-ring-or-donut-plot.html)了解更多並自己嘗試。 + +現在你已經知道如何分組數據並將其顯示為圓餅圖或甜甜圈圖,你可以探索其他類型的圖表。試試華夫圖,這是一種不同的方式來探索數量。 + +## 華夫圖! + +華夫圖是一種以 2D 方格陣列視覺化數量的方式。試著視覺化這個數據集中蘑菇帽顏色的不同數量。為此,你需要安裝一個名為 [waffle](https://cran.r-project.org/web/packages/waffle/waffle.pdf) 的輔助庫,並使用它來生成你的視覺化: + +```r +install.packages("waffle", repos = "https://cinc.rud.is") +``` + +選擇一段數據進行分組: + +```r +library(dplyr) +cap_color=mushrooms %>% + group_by(cap.color) %>% + summarise(count=n()) +View(cap_color) +``` + +通過創建標籤並分組數據來製作華夫圖: + +```r +library(waffle) +names(cap_color$count) = paste0(cap_color$cap.color) +waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", + "pink", "purple", "red", "grey", + "yellow","white")) +``` + +使用華夫圖,你可以清楚地看到這個蘑菇數據集中帽顏色的比例。有趣的是,有許多綠色帽子的蘑菇! + +![華夫圖](../../../../../translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.mo.png) + +在這節課中,你學到了三種視覺化比例的方法。首先,你需要將數據分組到分類中,然後決定哪種方式最適合展示數據——圓餅圖、甜甜圈圖或華夫圖。這些方法都很有趣,並能讓用戶快速了解數據集。 + +## 🚀 挑戰 + +試著在 [Charticulator](https://charticulator.com) 中重現這些有趣的圖表。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## 回顧與自學 + +有時候,什麼時候使用圓餅圖、甜甜圈圖或華夫圖並不明顯。以下是一些相關文章供你閱讀: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +進行一些研究,找到更多關於這個選擇的資訊。 + +## 作業 + +[在 Excel 中嘗試](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/12-visualization-relationships/README.md b/translations/mo/3-Data-Visualization/R/12-visualization-relationships/README.md new file mode 100644 index 00000000..f882d25d --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/12-visualization-relationships/README.md @@ -0,0 +1,179 @@ + +# 視覺化關係:蜂蜜的故事 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|視覺化關係 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +延續我們研究的自然主題,讓我們探索一些有趣的視覺化方式,來展示不同種類蜂蜜之間的關係。這些數據集來自[美國農業部](https://www.nass.usda.gov/About_NASS/index.php)。 + +這個包含約600項的數據集展示了美國各州的蜂蜜生產情況。例如,您可以查看每個州在1998年至2012年間的蜂群數量、每群產量、總產量、庫存、每磅價格以及蜂蜜的生產價值,每年每州一行數據。 + +我們可以視覺化某州每年的生產量與該州蜂蜜價格之間的關係。或者,您可以視覺化各州每群蜂蜜產量之間的關係。這段時間涵蓋了2006年首次出現的毀滅性“蜂群崩潰症”(CCD,Colony Collapse Disorder)(http://npic.orst.edu/envir/ccd.html),因此這是一個值得研究的數據集。🐝 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +在本課中,您可以使用 ggplot2,這是一個您之前使用過的優秀庫,用於視覺化變量之間的關係。特別有趣的是使用 ggplot2 的 `geom_point` 和 `qplot` 函數,這些函數可以快速生成散點圖和折線圖,幫助數據科學家更好地理解變量之間的關係。[統計關係](https://ggplot2.tidyverse.org/)的視覺化是非常有價值的。 + +## 散點圖 + +使用散點圖展示蜂蜜價格如何隨年份在各州演變。ggplot2 的 `ggplot` 和 `geom_point` 可以方便地將州數據分組,並顯示分類和數值數據的數據點。 + +讓我們先導入數據和 Seaborn: + +```r +honey=read.csv('../../data/honey.csv') +head(honey) +``` +您會注意到蜂蜜數據中有幾個有趣的列,包括年份和每磅價格。讓我們按美國各州分組來探索這些數據: + +| 州 | 蜂群數量 | 每群產量 | 總產量 | 庫存 | 每磅價格 | 生產價值 | 年份 | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | +| FL | 230000 | 98 |22540000 | 4508000 | 0.64 | 14426000 | 1998 | + +創建一個基本散點圖,展示蜂蜜每磅價格與其來源州之間的關係。讓 `y` 軸足夠高以顯示所有州: + +```r +library(ggplot2) +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(colour = "blue") +``` +![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.mo.png) + +現在,使用蜂蜜色彩方案展示價格如何隨年份演變。您可以通過添加 'scale_color_gradientn' 參數來展示年份的變化: + +> ✅ 了解更多關於 [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) 的信息 - 試試美麗的彩虹色方案! + +```r +ggplot(honey, aes(x = priceperlb, y = state, color=year)) + + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) +``` +![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.mo.png) + +通過這種色彩方案的改變,您可以明顯看到蜂蜜每磅價格在多年來的強烈增長趨勢。事實上,如果您查看數據中的樣本集(例如選擇亞利桑那州),您可以看到價格逐年上漲的模式,僅有少數例外: + +| 州 | 蜂群數量 | 每群產量 | 總產量 | 庫存 | 每磅價格 | 生產價值 | 年份 | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +另一種視覺化這種進展的方法是使用大小而非顏色。對於色盲用戶,這可能是一個更好的選擇。編輯您的視覺化,通過點的圓周大小來展示價格的增長: + +```r +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(aes(size = year),colour = "blue") + + scale_size_continuous(range = c(0.25, 3)) +``` +您可以看到點的大小逐漸增大。 + +![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.mo.png) + +這是否是一個簡單的供需問題?由於氣候變化和蜂群崩潰等因素,是否每年可供購買的蜂蜜減少,導致價格上漲? + +為了探索數據集中某些變量之間的相關性,讓我們來看看一些折線圖。 + +## 折線圖 + +問題:蜂蜜每磅價格是否隨年份逐年明顯上升?您可以通過創建一個單一折線圖來最容易地發現這一點: + +```r +qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") +``` +答案:是的,但在2003年左右有一些例外: + +![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.mo.png) + +問題:那麼在2003年,我們是否也能看到蜂蜜供應的激增?如果您查看總產量逐年變化呢? + +```python +qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") +``` + +![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.mo.png) + +答案:並不完全。如果您查看總產量,實際上在那一年似乎有所增加,儘管總體而言蜂蜜的生產量在這些年中呈下降趨勢。 + +問題:在這種情況下,2003年蜂蜜價格的激增可能是什麼原因? + +為了探索這一點,您可以使用分面網格。 + +## 分面網格 + +分面網格可以選擇數據集的一個方面(在我們的例子中,您可以選擇“年份”,以避免生成過多的分面)。Seaborn 可以為您選擇的 x 和 y 坐標生成每個分面的圖表,方便比較。2003年是否在這種比較中顯得突出? + +使用 `facet_wrap` 創建分面網格,這是 [ggplot2 文檔](https://ggplot2.tidyverse.org/reference/facet_wrap.html)推薦的方法。 + +```r +ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + + geom_line() + facet_wrap(vars(year)) +``` +在此視覺化中,您可以比較每群產量和蜂群數量逐年變化,並將列數設置為3: + +![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.mo.png) + +對於此數據集,逐年和逐州比較蜂群數量和每群產量,並未顯示出特別突出的情況。是否有其他方式來尋找這兩個變量之間的相關性? + +## 雙折線圖 + +嘗試使用 R 的 `par` 和 `plot` 函數,通過疊加兩個折線圖來創建多折線圖。我們將在 x 軸上繪製年份,並顯示兩個 y 軸。展示每群產量和蜂群數量的變化: + +```r +par(mar = c(5, 4, 4, 4) + 0.3) +plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") +par(new = TRUE) +plot(honey$year, honey$yieldpercol, pch = 17, col = 3, + axes = FALSE, xlab = "", ylab = "",type="l") +axis(side = 4, at = pretty(range(y2))) +mtext("colony yield", side = 4, line = 3) +``` +![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.mo.png) + +雖然在2003年並未有明顯的異常,但這讓我們可以以一個稍微樂觀的結論結束本課:儘管蜂群數量總體上在下降,但蜂群數量正在穩定,即使每群產量在減少。 + +加油,蜜蜂們! + +🐝❤️ +## 🚀 挑戰 + +在本課中,您學到了更多關於散點圖和折線網格的其他用途,包括分面網格。挑戰自己使用不同的數據集(可能是您之前使用過的數據集)來創建分面網格。注意創建所需的時間,以及如何謹慎選擇需要繪製的網格數量。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## 回顧與自學 + +折線圖可以是簡單的,也可以是非常複雜的。閱讀 [ggplot2 文檔](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together),了解構建折線圖的各種方法。嘗試使用文檔中列出的其他方法來增強您在本課中構建的折線圖。 + +## 作業 + +[深入蜂巢](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/R/13-meaningful-vizualizations/README.md b/translations/mo/3-Data-Visualization/R/13-meaningful-vizualizations/README.md new file mode 100644 index 00000000..21ce9a25 --- /dev/null +++ b/translations/mo/3-Data-Visualization/R/13-meaningful-vizualizations/README.md @@ -0,0 +1,182 @@ + +# 製作有意義的視覺化圖表 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| 有意義的視覺化圖表 - _由 [@nitya](https://twitter.com/nitya) 繪製的速記筆記_ | + +> 「如果你對數據施加足夠的壓力,它會承認任何事情」-- [Ronald Coase](https://en.wikiquote.org/wiki/Ronald_Coase) + +作為一名數據科學家,基本技能之一就是能夠創建有意義的數據視覺化,幫助回答你可能提出的問題。在進行數據視覺化之前,你需要確保數據已經像之前課程中所教的那樣進行清理和準備。之後,你就可以開始決定如何最好地呈現數據。 + +在本課程中,你將學習: + +1. 如何選擇合適的圖表類型 +2. 如何避免誤導性的圖表 +3. 如何使用顏色 +4. 如何設計圖表以提高可讀性 +5. 如何構建動畫或3D圖表解決方案 +6. 如何創建創意視覺化 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## 選擇合適的圖表類型 + +在之前的課程中,你已經嘗試使用 Matplotlib 和 Seaborn 創建各種有趣的數據視覺化。通常,你可以根據這張表格選擇[合適的圖表類型](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/)來回答你的問題: + +| 你的需求是: | 你應該使用: | +| -------------------------- | ------------------------------- | +| 展示隨時間變化的數據趨勢 | 折線圖 | +| 比較不同類別 | 柱狀圖、餅圖 | +| 比較總量 | 餅圖、堆疊柱狀圖 | +| 展示關係 | 散點圖、折線圖、分面圖、雙折線圖 | +| 展示分佈 | 散點圖、直方圖、箱型圖 | +| 展示比例 | 餅圖、甜甜圈圖、華夫圖 | + +> ✅ 根據數據的組成,你可能需要將其從文本轉換為數字,以支持某些圖表類型。 + +## 避免誤導 + +即使數據科學家謹慎選擇了合適的圖表類型,數據仍然可能以某種方式被展示來支持某種觀點,往往以犧牲數據本身為代價。有許多誤導性圖表和信息圖的例子! + +[![Alberto Cairo 的《How Charts Lie》](../../../../../translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.mo.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 點擊上方圖片觀看有關誤導性圖表的會議演講 + +這張圖表反轉了 X 軸,根據日期顯示了與事實相反的內容: + +![糟糕的圖表 1](../../../../../translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.mo.png) + +[這張圖表](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) 更具誤導性,因為人們的目光會被吸引到右側,得出隨時間推移各縣的 COVID 病例數下降的結論。事實上,如果仔細查看日期,你會發現日期被重新排列以製造出誤導性的下降趨勢。 + +![糟糕的圖表 2](../../../../../translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.mo.jpg) + +這個臭名昭著的例子使用顏色和翻轉的 Y 軸來誤導:原本應該得出槍支友好立法通過後槍支死亡率激增的結論,事實上卻讓人誤以為情況正好相反: + +![糟糕的圖表 3](../../../../../translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.mo.jpg) + +這張奇怪的圖表展示了比例如何被操控,效果令人捧腹: + +![糟糕的圖表 4](../../../../../translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.mo.jpg) + +比較不可比的事物是另一種不正當的手段。有一個[精彩的網站](https://tylervigen.com/spurious-correlations)專門展示「虛假的相關性」,例如緬因州的離婚率與人造奶油的消耗量之間的「事實」相關性。一個 Reddit 群組也收集了[糟糕的數據使用](https://www.reddit.com/r/dataisugly/top/?t=all)。 + +了解眼睛如何容易被誤導性圖表欺騙是很重要的。即使數據科學家的意圖是好的,選擇不合適的圖表類型(例如顯示過多類別的餅圖)也可能具有誤導性。 + +## 顏色 + +你在上面「佛羅里達槍支暴力」的圖表中看到,顏色可以為圖表提供額外的意義,尤其是那些未使用 ggplot2 和 RColorBrewer 等庫設計的圖表,這些庫提供了各種經過驗證的顏色庫和調色板。如果你手動製作圖表,可以稍微研究一下[顏色理論](https://colormatters.com/color-and-design/basic-color-theory)。 + +> ✅ 在設計圖表時,請注意可訪問性是視覺化的重要方面。一些用戶可能是色盲——你的圖表是否能為視覺障礙者良好顯示? + +選擇圖表顏色時要謹慎,因為顏色可能傳達你未曾預料的含義。上面「身高」圖表中的「粉紅女士」傳達了一種明顯的「女性化」含義,這增加了圖表本身的怪異感。 + +雖然[顏色的含義](https://colormatters.com/color-symbolism/the-meanings-of-colors)可能因地區而異,並且通常根據色調而改變,但一般來說,顏色的含義包括: + +| 顏色 | 含義 | +| ------ | ------------------- | +| 紅色 | 力量 | +| 藍色 | 信任、忠誠 | +| 黃色 | 快樂、警告 | +| 綠色 | 生態、幸運、嫉妒 | +| 紫色 | 快樂 | +| 橙色 | 活力 | + +如果你需要使用自定義顏色製作圖表,請確保你的圖表既可訪問又符合你想要傳達的含義。 + +## 設計圖表以提高可讀性 + +如果圖表不可讀,那就毫無意義!花點時間考慮調整圖表的寬度和高度,使其能很好地與數據匹配。如果需要顯示一個變量(例如所有 50 個州),請盡可能垂直顯示在 Y 軸上,以避免水平滾動的圖表。 + +標記你的軸,必要時提供圖例,並提供工具提示以便更好地理解數據。 + +如果你的數據在 X 軸上是文本且冗長,可以將文本角度調整以提高可讀性。[plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) 提供了 3D 繪圖功能,如果你的數據支持它,可以使用它製作更高級的數據視覺化。 + +![3D 圖表](../../../../../translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.mo.png) + +## 動畫和 3D 圖表展示 + +如今一些最好的數據視覺化是動畫化的。Shirley Wu 使用 D3 創作了令人驚嘆的作品,例如「[電影之花](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)」,每朵花都是一部電影的視覺化。另一個例子是《衛報》的「Bussed Out」,這是一個結合 Greensock 和 D3 的視覺化和滾動敘事文章格式的互動體驗,展示了紐約市如何通過將無家可歸者送出城市來處理其無家可歸問題。 + +![Bussed Out](../../../../../translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.mo.png) + +> 「Bussed Out: How America Moves its Homeless」來自[衛報](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study)。視覺化由 Nadieh Bremer 和 Shirley Wu 創作 + +雖然本課程不足以深入教授這些強大的視覺化庫,但你可以嘗試在 Vue.js 應用中使用 D3,創建一個動畫化的社交網絡視覺化,展示小說《危險關係》的內容。 + +> 《危險關係》是一部書信體小說,即以一系列信件形式呈現的小說。由 Choderlos de Laclos 於 1782 年撰寫,講述了 18 世紀晚期法國貴族中兩位主角 Vicomte de Valmont 和 Marquise de Merteuil 的惡毒、道德敗壞的社交手段。兩人最終都遭遇了悲劇,但在此之前造成了大量的社會損害。小說以寫給圈內各人的信件形式展開,信件內容包括復仇計劃或純粹製造麻煩。創建一個這些信件的視覺化,探索敘事中的主要角色。 + +你將完成一個網頁應用,展示這個社交網絡的動畫化視圖。它使用了一個庫,該庫旨在使用 Vue.js 和 D3 創建[網絡視覺化](https://github.com/emiliorizzo/vue-d3-network)。當應用運行時,你可以在屏幕上拖動節點來重新排列數據。 + +![危險關係](../../../../../translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.mo.png) + +## 專案:使用 D3.js 建立一個展示網絡的圖表 + +> 本課程文件夾包含一個 `solution` 文件夾,你可以在其中找到完成的專案,供你參考。 + +1. 按照起始文件夾根目錄中的 README.md 文件中的指示操作。確保你的機器上已安裝 NPM 和 Node.js,並運行它們以安裝專案的依賴項。 + +2. 打開 `starter/src` 文件夾。你會發現一個 `assets` 文件夾,其中有一個 .json 文件,包含小說中的所有信件,編號並附有「to」和「from」標註。 + +3. 完成 `components/Nodes.vue` 中的代碼以啟用視覺化。找到名為 `createLinks()` 的方法,並添加以下嵌套循環。 + +循環遍歷 .json 對象以捕獲信件的「to」和「from」數據,並構建 `links` 對象,以便視覺化庫可以使用它: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +從終端運行你的應用(npm run serve),享受視覺化效果! + +## 🚀 挑戰 + +在互聯網上探索誤導性視覺化。作者如何欺騙用戶?這是故意的嗎?嘗試修正這些視覺化,展示它們應有的樣子。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## 回顧與自學 + +以下是一些有關誤導性數據視覺化的文章: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +看看這些有趣的歷史資產和文物視覺化: + +https://handbook.pubpub.org/ + +閱讀這篇文章,了解動畫如何增強你的視覺化: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## 作業 + +[創建你自己的自定義視覺化](assignment.md) + +--- + +**免責聲明**: +本文檔已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵信息,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/3-Data-Visualization/README.md b/translations/mo/3-Data-Visualization/README.md new file mode 100644 index 00000000..e4865f4f --- /dev/null +++ b/translations/mo/3-Data-Visualization/README.md @@ -0,0 +1,42 @@ + +# 視覺化 + +![一隻蜜蜂停在薰衣草花上](../../../translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.mo.jpg) +> 照片由 Jenna Lee 提供,來源於 Unsplash + +視覺化數據是數據科學家最重要的任務之一。圖片勝過千言萬語,視覺化可以幫助你識別數據中的各種有趣部分,例如峰值、異常值、分組、趨勢等,這些都能幫助你理解數據背後的故事。 + +在這五節課中,你將探索來自自然的數據,並使用各種技術創建有趣且美麗的視覺化。 + +| 主題編號 | 主題 | 相關課程 | 作者 | +| :-----------: | :--: | :-----------: | :----: | +| 1. | 數量視覺化 |
  • [Python](09-visualization-quantities/README.md)
  • [R](../../../3-Data-Visualization/R/09-visualization-quantities)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 2. | 分佈視覺化 |
  • [Python](10-visualization-distributions/README.md)
  • [R](../../../3-Data-Visualization/R/10-visualization-distributions)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 3. | 比例視覺化 |
  • [Python](11-visualization-proportions/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 4. | 關係視覺化 |
  • [Python](12-visualization-relationships/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 5. | 創建有意義的視覺化 |
  • [Python](13-meaningful-visualizations/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| + +### 致謝 + +這些視覺化課程由 [Jen Looper](https://twitter.com/jenlooper)、[Jasleen Sondhi](https://github.com/jasleen101010) 和 [Vidushi Gupta](https://github.com/Vidushi-Gupta) 用 🌸 精心編寫。 + +🍯 美國蜂蜜生產數據來源於 Jessica Li 在 [Kaggle](https://www.kaggle.com/jessicali9530/honey-production) 的項目。該 [數據](https://usda.library.cornell.edu/concern/publications/rn301137d) 來自 [美國農業部](https://www.nass.usda.gov/About_NASS/index.php)。 + +🍄 蘑菇數據同樣來源於 [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset),由 Hatteras Dunton 修訂。該數據集包括描述假設樣本,對應於 Agaricus 和 Lepiota 家族中 23 種有鰓蘑菇。蘑菇信息取自《Audubon Society Field Guide to North American Mushrooms》(1981)。該數據集於 1987 年捐贈給 UCI ML 27。 + +🦆 明尼蘇達州鳥類數據來自 [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds),由 Hannah Collins 從 [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) 抓取。 + +所有這些數據集均以 [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) 授權。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/14-Introduction/README.md b/translations/mo/4-Data-Science-Lifecycle/14-Introduction/README.md new file mode 100644 index 00000000..eef2ab54 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/14-Introduction/README.md @@ -0,0 +1,120 @@ + +# 資料科學生命週期介紹 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/14-DataScience-Lifecycle.png)| +|:---:| +| 資料科學生命週期介紹 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +## [課前測驗](https://red-water-0103e7a0f.azurestaticapps.net/quiz/26) + +到目前為止,你可能已經意識到資料科學是一個過程。這個過程可以分為五個階段: + +- 資料捕捉 +- 資料處理 +- 資料分析 +- 資料溝通 +- 資料維護 + +本課程將重點放在生命週期的三個部分:資料捕捉、資料處理和資料維護。 + +![資料科學生命週期圖示](../../../../translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.mo.jpg) +> 圖片來源:[Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/) + +## 資料捕捉 + +生命週期的第一階段非常重要,因為後續階段都依賴於此。這實際上是兩個階段合併為一:獲取資料以及定義需要解決的目的和問題。 +定義專案目標需要深入了解問題或問題背景。首先,我們需要識別並獲取那些需要解決問題的人。這些可能是企業的利益相關者或專案的贊助者,他們可以幫助確定誰或什麼將從這個專案中受益,以及他們需要什麼以及為什麼需要它。一個明確定義的目標應該是可測量且可量化的,以定義可接受的結果。 + +資料科學家可能會問的問題: +- 這個問題以前是否被研究過?發現了什麼? +- 所有參與者是否都理解目的和目標? +- 是否存在模糊性?如何減少模糊性? +- 有哪些限制條件? +- 最終結果可能會是什麼樣子? +- 有多少資源(時間、人力、計算能力)可用? + +接下來是識別、收集,然後探索為實現這些目標所需的資料。在資料獲取的這一步,資料科學家還必須評估資料的數量和質量。這需要一些資料探索,以確認所獲取的資料能否支持達到期望的結果。 + +資料科學家可能會問的資料相關問題: +- 我已經擁有哪些資料? +- 誰擁有這些資料? +- 有哪些隱私問題需要考慮? +- 我是否擁有足夠的資料來解決這個問題? +- 這些資料的質量是否適合解決這個問題? +- 如果我通過這些資料發現了額外的信息,我們是否應該考慮改變或重新定義目標? + +## 資料處理 + +生命週期的資料處理階段專注於發現資料中的模式以及建模。一些在資料處理階段使用的技術需要統計方法來揭示模式。通常,這對於人類來說是一項繁瑣的任務,尤其是面對大型資料集,因此需要依賴計算機來加速過程。在這個階段,資料科學和機器學習會交叉。正如你在第一課中學到的,機器學習是建立模型以理解資料的過程。模型是資料中變數之間關係的表示,幫助預測結果。 + +此階段常用的技術在《機器學習初學者》課程中有涵蓋。點擊以下連結了解更多: + +- [分類](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification):將資料組織到不同的類別中以提高使用效率。 +- [聚類](https://github.com/microsoft/ML-For-Beginners/tree/main/5-Clustering):將資料分組到相似的群組中。 +- [回歸](https://github.com/microsoft/ML-For-Beginners/tree/main/2-Regression):確定變數之間的關係以預測或預估值。 + +## 資料維護 + +在生命週期的圖示中,你可能注意到維護位於資料捕捉和資料處理之間。維護是一個持續的過程,涉及在專案過程中管理、存儲和保護資料,並且應在整個專案期間加以考慮。 + +### 資料存儲 +資料存儲的方式和位置可能會影響存儲成本以及資料存取的速度。這些決策通常不會由資料科學家單獨做出,但他們可能需要根據資料存儲方式來選擇如何使用資料。 + +以下是現代資料存儲系統的一些方面,可能會影響這些選擇: + +**本地存儲 vs 離線存儲 vs 公有或私有雲** + +本地存儲指的是使用自己的設備來管理資料,例如擁有一台伺服器和硬碟來存儲資料;而離線存儲則依賴於你不擁有的設備,例如資料中心。公有雲是一種流行的資料存儲選擇,不需要了解資料的具體存儲位置或方式,其中公有指的是所有使用雲服務者共享統一的基礎設施。一些組織有嚴格的安全政策,要求完全掌控資料存儲的設備,這時會選擇提供專屬雲服務的私有雲。你將在[後續課程](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/5-Data-Science-In-Cloud)中學到更多關於雲端資料的內容。 + +**冷資料 vs 熱資料** + +在訓練模型時,你可能需要更多的訓練資料。如果你對模型感到滿意,更多的資料將用於模型的實際應用。無論如何,隨著資料的累積,存儲和存取資料的成本將增加。將不常使用的資料(冷資料)與頻繁存取的資料(熱資料)分開存儲,可以通過硬體或軟體服務降低存儲成本。如果需要存取冷資料,可能會比存取熱資料花費更多時間。 + +### 資料管理 +在處理資料時,你可能會發現部分資料需要清理,使用本課程中[資料準備](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/08-data-preparation)部分涵蓋的技術來建立準確的模型。當新資料到達時,也需要應用相同的技術來保持資料質量的一致性。一些專案會使用自動化工具來進行清理、聚合和壓縮,然後將資料移動到最終存儲位置。Azure Data Factory 就是一個這樣的工具。 + +### 資料安全 +資料安全的主要目標之一是確保資料的使用者能夠控制所收集的資料以及其使用的背景。保持資料安全包括限制存取權限僅限於需要的人,遵守當地法律和法規,以及維持道德標準,這些內容在[道德課程](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/1-Introduction/02-ethics)中有涵蓋。 + +以下是團隊可能採取的一些安全措施: +- 確保所有資料都已加密 +- 向客戶提供有關其資料使用方式的信息 +- 移除已離開專案成員的資料存取權限 +- 僅允許特定專案成員修改資料 + +## 🚀 挑戰 + +資料科學生命週期有許多不同版本,每個版本的步驟可能有不同的名稱和階段數量,但都包含本課程中提到的相同過程。 + +探索[團隊資料科學過程生命週期](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/lifecycle)和[跨行業標準資料挖掘過程](https://www.datascience-pm.com/crisp-dm-2/)。列出兩者的三個相似點和三個不同點。 + +|團隊資料科學過程 (TDSP)|跨行業標準資料挖掘過程 (CRISP-DM)| +|--|--| +|![團隊資料科學生命週期](../../../../translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.mo.png) | ![資料科學過程聯盟圖示](../../../../translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.mo.png) | +| 圖片來源:[Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | 圖片來源:[Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) | + +## [課後測驗](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## 回顧與自學 + +應用資料科學生命週期涉及多種角色和任務,其中一些可能專注於每個階段的特定部分。團隊資料科學過程提供了一些資源,解釋了專案中可能涉及的角色和任務類型。 + +* [團隊資料科學過程的角色和任務](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/roles-tasks) +* [執行資料科學任務:探索、建模和部署](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/execute-data-science-tasks) + +## 作業 + +[評估資料集](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/translations/mo/4-Data-Science-Lifecycle/14-Introduction/assignment.md new file mode 100644 index 00000000..e96df074 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -0,0 +1,37 @@ + +# 評估數據集 + +一位客戶向您的團隊尋求幫助,希望調查紐約市計程車乘客的季節性消費習慣。 + +他們想知道:**紐約市的黃色計程車乘客在冬季還是夏季給司機的小費更多?** + +您的團隊目前處於數據科學生命周期的[捕捉階段](Readme.md#Capturing),而您負責處理數據集。您已獲得一個筆記本和[數據](../../../../data/taxi.csv)進行探索。 + +在此目錄中,有一個[筆記本](notebook.ipynb),使用 Python 從[紐約市計程車與禮車委員會](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets)載入黃色計程車行程數據。 +您也可以使用文字編輯器或像 Excel 這樣的電子表格軟件打開計程車數據文件。 + +## 指導說明 + +- 評估此數據集中的數據是否能幫助回答問題。 +- 探索[紐約市開放數據目錄](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93)。找出一個可能對回答客戶問題有幫助的額外數據集。 +- 提出 3 個您會向客戶詢問的問題,以獲得更多澄清並更好地理解問題。 + +請參考[數據集字典](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf)和[用戶指南](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf),以獲取有關數據的更多信息。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | --- | + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/15-analyzing/README.md b/translations/mo/4-Data-Science-Lifecycle/15-analyzing/README.md new file mode 100644 index 00000000..16f1c8d2 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/15-analyzing/README.md @@ -0,0 +1,65 @@ + +# 數據科學生命周期:分析 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](../../sketchnotes/15-Analyzing.png)| +|:---:| +| 數據科學生命周期:分析 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +## 課前測驗 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/28) + +在數據生命周期中的分析階段,確認數據是否能回答所提出的問題或解決特定問題。這一步驟也可以用來確認模型是否正確地解決了這些問題。本課程專注於探索性數據分析(Exploratory Data Analysis,簡稱 EDA),這是一種用於定義數據特徵和關係的技術,並可用於為建模做準備。 + +我們將使用來自 [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1) 的示例數據集,展示如何使用 Python 和 Pandas 庫應用這些技術。這個數據集包含一些電子郵件中常見詞彙的計數,這些電子郵件的來源是匿名的。請使用本目錄中的 [notebook](notebook.ipynb) 來跟隨學習。 + +## 探索性數據分析 + +在生命周期的數據捕獲階段,我們獲取數據並確定問題和相關問題,但我們如何知道這些數據能否支持最終結果呢? +回想一下,數據科學家在獲取數據時可能會提出以下問題: +- 我有足夠的數據來解決這個問題嗎? +- 這些數據的質量是否能滿足這個問題的需求? +- 如果通過這些數據發現了額外的信息,我們是否應該考慮更改或重新定義目標? + +探索性數據分析是一個了解數據的過程,可以用來回答這些問題,並識別處理數據集時可能面臨的挑戰。接下來,我們將專注於一些用於實現這些目標的技術。 + +## 數據剖析、描述性統計和 Pandas + +我們如何評估是否有足夠的數據來解決這個問題?數據剖析可以通過描述性統計技術來總結並收集數據集的一些整體信息。數據剖析幫助我們了解手頭的數據,而描述性統計則幫助我們了解數據的數量。 + +在之前的一些課程中,我們使用 Pandas 的 [`describe()` 函數](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html) 提供了一些描述性統計。它可以對數值數據提供計數、最大值和最小值、平均值、標準差以及分位數等信息。使用像 `describe()` 這樣的描述性統計函數可以幫助你評估數據量是否足夠,或者是否需要更多數據。 + +## 抽樣與查詢 + +在大型數據集中探索所有內容可能非常耗時,這通常是交給計算機完成的任務。然而,抽樣是一種理解數據的有用工具,能幫助我們更好地了解數據集的內容及其代表的意義。通過抽樣,你可以應用概率和統計來對數據得出一些一般性的結論。雖然沒有明確的規則規定應該抽取多少數據,但需要注意的是,抽樣的數據越多,對數據進行概括的準確性就越高。 + +Pandas 提供了 [`sample()` 函數](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html),你可以通過參數指定想要獲取的隨機樣本數量。 + +對數據進行一般性查詢可以幫助你回答一些初步的問題和假設。與抽樣不同,查詢允許你控制並專注於數據中你感興趣的特定部分。Pandas 庫中的 [`query()` 函數](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html) 允許你選擇列並通過檢索的行獲得簡單的數據答案。 + +## 使用可視化進行探索 + +你不需要等到數據徹底清理和分析後才開始創建可視化。事實上,在探索過程中使用可視化可以幫助識別數據中的模式、關係和問題。此外,可視化還能為那些未參與數據管理的人提供一種溝通方式,並且是一個分享和澄清在數據捕獲階段未解決問題的機會。請參考[可視化部分](../../../../../../../../../3-Data-Visualization)來了解一些流行的可視化探索方法。 + +## 探索以識別不一致性 + +本課程中的所有主題都可以幫助識別缺失或不一致的值,而 Pandas 提供了一些函數來檢查這些問題。[isna() 或 isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html) 可以用來檢查缺失值。在探索數據中這些值的過程中,一個重要的部分是了解它們為什麼會出現。這可以幫助你決定應該採取哪些[措施來解決這些問題](/2-Working-With-Data/08-data-preparation/notebook.ipynb)。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/27) + +## 作業 + +[探索答案](assignment.md) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/15-analyzing/assignment.md b/translations/mo/4-Data-Science-Lifecycle/15-analyzing/assignment.md new file mode 100644 index 00000000..94fb7ede --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/15-analyzing/assignment.md @@ -0,0 +1,36 @@ + +# 探索答案 + +這是上一課[作業](../14-Introduction/assignment.md)的延續,我們之前簡單地查看了數據集。現在,我們將更深入地分析這些數據。 + +再次重申,客戶想知道的問題是:**紐約市的黃計程車乘客在冬季或夏季是否給司機更多的小費?** + +您的團隊目前處於數據科學生命周期的[分析](README.md)階段,負責對數據集進行探索性數據分析。您已獲得一個筆記本和包含2019年1月和7月200筆計程車交易的數據集。 + +## 指示 + +在此目錄中有一個[筆記本](assignment.ipynb)和來自[計程車與禮車委員會](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets)的數據。請參考[數據集字典](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf)和[使用指南](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf)以獲取更多關於數據的信息。 + +使用本課中的一些技術,在筆記本中進行自己的EDA(可以添加額外的單元格),並回答以下問題: + +- 數據中還有哪些因素可能影響小費金額? +- 哪些欄位可能不需要用來回答客戶的問題? +- 根據目前提供的數據,是否有任何證據顯示季節性的小費行為? + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | --- + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/16-communication/README.md b/translations/mo/4-Data-Science-Lifecycle/16-communication/README.md new file mode 100644 index 00000000..2aa898a0 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/16-communication/README.md @@ -0,0 +1,222 @@ + +# 數據科學生命周期:溝通 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速寫筆記](../../sketchnotes/16-Communicating.png)| +|:---:| +| 數據科學生命周期:溝通 - _由 [@nitya](https://twitter.com/nitya) 繪製的速寫筆記_ | + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/30) + +透過上方的課前測驗來測試你對即將學習內容的了解! + +# 簡介 + +### 什麼是溝通? +讓我們從定義溝通開始這堂課。**溝通是傳遞或交換信息的過程。** 信息可以是想法、思考、感受、訊息、隱秘信號、數據——任何一個**_發送者_**(傳遞信息的人)希望**_接收者_**(接收信息的人)理解的內容。在這堂課中,我們將把發送者稱為溝通者,而接收者稱為受眾。 + +### 數據溝通與故事講述 +我們知道溝通的目的是傳遞或交換信息。但在溝通數據時,目標不應僅僅是向受眾傳遞數字,而是要講述一個由數據支撐的故事——有效的數據溝通與故事講述是密不可分的。受眾更可能記住你講述的故事,而不是你提供的數字。在這堂課的後半部分,我們將探討一些方法,幫助你更有效地利用故事講述來溝通數據。 + +### 溝通的類型 +在這堂課中,我們將討論兩種不同的溝通類型:單向溝通和雙向溝通。 + +**單向溝通**是指發送者向接收者傳遞信息,而不需要任何反饋或回應。我們每天都能看到單向溝通的例子——例如群發電子郵件、新聞報導最新事件,或者電視廣告告訴你他們的產品有多好。在這些情況下,發送者並不尋求信息的交換,而只是希望傳遞或提供信息。 + +**雙向溝通**是指所有參與方既是發送者又是接收者。發送者首先向接收者溝通,接收者則提供反饋或回應。雙向溝通是我們通常所理解的溝通方式。我們通常想到的是人們進行的對話——無論是面對面、電話交談、社交媒體互動,還是短信交流。 + +在溝通數據時,有些情況下你會使用單向溝通(例如在會議或大型群體中進行演示,且不會直接回答問題),而有些情況下你會使用雙向溝通(例如用數據說服幾位利益相關者支持某項提案,或說服同事投入時間和精力開發新項目)。 + +# 有效溝通 + +### 作為溝通者的責任 +在溝通時,你的責任是確保接收者能夠理解你希望他們接收到的信息。在溝通數據時,你不僅希望接收者記住數字,還希望他們能記住由數據支撐的故事。一位優秀的數據溝通者同時也是一位優秀的故事講述者。 + +如何用數據講述故事?方法無窮無盡——但以下是我們在這堂課中將討論的六種方法: +1. 理解你的受眾、溝通渠道和溝通方式 +2. 從結果出發 +3. 像講述真正的故事一樣進行溝通 +4. 使用有意義的詞語和短語 +5. 善用情感 + +以下是每種策略的詳細解釋。 + +### 1. 理解你的受眾、溝通渠道和溝通方式 +你與家人溝通的方式可能與你與朋友溝通的方式不同。你可能會使用不同的詞語和短語,讓對方更容易理解。同樣的原則也適用於溝通數據。思考你正在與誰溝通,思考他們的目標以及他們對你所描述情況的背景知識。 + +你可以將大多數受眾分為以下幾個類別。在 _哈佛商業評論_ 的文章“[如何用數據講故事](http://blogs.hbr.org/2013/04/how-to-tell-a-story-with-data/)”中,戴爾的執行策略師 Jim Stikeleather 將受眾分為五個類別: + +- **初學者**:第一次接觸該主題,但不希望過於簡化 +- **普通人**:對主題有所了解,但希望獲得概述和主要主題 +- **管理者**:深入了解細節和相互關係,並能採取行動 +- **專家**:更注重探索和發現,較少講故事,更多細節 +- **高管**:只關注重要性和加權概率的結論 + +這些類別可以幫助你決定如何向受眾展示數據。 + +除了考慮受眾的類別,你還應該考慮你用來與受眾溝通的渠道。如果你是寫備忘錄或電子郵件,與開會或在會議上演示的方式應有所不同。 + +此外,了解你將如何與受眾溝通(使用單向溝通或雙向溝通)也至關重要。 + +如果你的受眾主要是初學者,且你使用的是單向溝通,你必須先教育受眾並提供適當的背景知識。然後,你需要向他們展示你的數據,並解釋數據的含義以及數據的重要性。在這種情況下,你可能需要專注於提高清晰度,因為受眾無法直接向你提問。 + +如果你的受眾主要是管理者,且你使用的是雙向溝通,你可能不需要教育受眾或提供太多背景知識。你可以直接討論你收集的數據及其重要性。然而,在這種情況下,你需要專注於時間管理和控制你的演示。使用雙向溝通時(尤其是面對尋求“深入了解細節和相互關係”的管理者受眾),可能會出現一些問題,導致討論偏離你想要講述的故事。當這種情況發生時,你可以採取行動,將討論拉回到你的故事主題上。 + +### 2. 從結果出發 +從結果出發意味著在開始溝通之前,先了解你希望受眾獲得的主要信息。提前思考你希望受眾記住的內容,可以幫助你構建一個受眾能夠跟隨的故事。從結果出發適用於單向溝通和雙向溝通。 + +如何從結果出發?在溝通數據之前,先寫下你的主要信息。然後,在準備用數據講述故事的每一步中,問自己:“這如何融入我正在講述的故事?” + +需要注意的是——雖然從結果出發是理想的,但你不應只溝通支持你主要信息的數據。這種做法被稱為挑選性溝通,指溝通者只傳遞支持自己觀點的數據,而忽略其他數據。 + +如果你收集的所有數據都清楚地支持你的主要信息,那很好。但如果有數據不支持你的主要信息,甚至支持與你的主要信息相反的觀點,你也應該溝通這些數據。如果出現這種情況,坦誠地告訴受眾,並解釋為什麼即使所有數據並不完全支持你的故事,你仍然選擇堅持這個故事。 + +### 3. 像講述真正的故事一樣進行溝通 +傳統的故事通常分為五個階段。你可能聽過這些階段被表述為:背景介紹、情節升級、高潮、情節回落和結局。或者更容易記住的:背景、衝突、高潮、結束和結論。在溝通你的數據和故事時,你可以採用類似的方法。 + +你可以從背景開始,設置場景,確保受眾都在同一頁。然後介紹衝突。為什麼需要收集這些數據?你試圖解決什麼問題?接著是高潮。數據是什麼?數據的含義是什麼?數據告訴我們需要哪些解決方案?然後是結束,你可以重申問題和提出的解決方案。最後是結論,你可以總結你的主要信息以及你建議團隊採取的下一步行動。 + +### 4. 使用有意義的詞語和短語 +如果我們一起開發一款產品,我對你說“我們的用戶在註冊平台時花了很長時間”,你會估計“很長時間”是多久?一小時?一周?很難知道。如果我對整個受眾說這句話呢?每個人可能會對“很長時間”有不同的理解。 + +但如果我說“我們的用戶平均花了3分鐘註冊並完成平台的使用”,那就更清楚了。 + +在溝通數據時,很容易認為受眾的思維方式和你一樣。但事實並非總是如此。清晰地傳達你的數據及其含義是你作為溝通者的責任。如果數據或故事不清楚,受眾就很難跟隨,也更不可能理解你的主要信息。 + +你可以通過使用有意義的詞語和短語,而不是模糊的表述,來更清楚地溝通數據。以下是一些例子: + +- 我們有一個*令人印象深刻*的一年! + - 一個人可能認為令人印象深刻意味著收入增長2%-3%,而另一個人可能認為是50%-60%的增長。 +- 我們用戶的成功率*顯著*提高。 + - 多大的提高才算顯著? +- 這項工作需要*大量*努力。 + - 多少努力才算大量? + +使用模糊的詞語可能在引入更多數據或總結故事時有用,但請考慮確保演示的每個部分對受眾清晰明了。 + +### 5. 善用情感 +情感是故事講述的關鍵。在用數據講述故事時,情感更為重要。當你溝通數據時,一切都圍繞你希望受眾獲得的主要信息。喚起受眾的情感有助於他們產生共鳴,並更有可能採取行動。情感還能增加受眾記住你的信息的可能性。 + +你可能在電視廣告中遇到過這種情況。一些廣告非常沉重,利用悲傷的情感與受眾建立聯繫,讓他們更關注所展示的數據。或者,一些廣告非常歡快,讓你將數據與快樂的感覺聯繫起來。 + +如何在溝通數據時使用情感?以下是幾種方法: + +- 使用見證和個人故事 + - 在收集數據時,嘗試收集定量和定性數據,並在溝通時整合這兩種類型的數據。如果你的數據主要是定量的,尋找個人故事以了解他們的經歷。 +- 使用圖像 + - 圖像幫助受眾將自己置於情境中。使用圖像可以引導受眾產生你希望他們對數據的情感。 +- 使用顏色 + - 不同的顏色喚起不同的情感。以下是一些常見顏色及其喚起的情感。需要注意的是,顏色在不同文化中可能有不同的含義。 + - 藍色通常喚起和平和信任的情感 + - 綠色通常與自然和環境相關 + - 紅色通常代表激情和興奮 + - 黃色通常代表樂觀和快樂 + +# 溝通案例研究 +Emerson 是一款移動應用的產品經理。他注意到用戶在週末提交的投訴和錯誤報告增加了42%。他還發現,如果投訴在48小時內未得到回應,用戶給應用商店評分1或2星的可能性增加了32%。 + +經過研究,Emerson 提出了幾個解決方案來解決這個問題。他安排了一個30分鐘的會議,與公司三位主管溝通數據和提出的解決方案。 + +在這次會議中,Emerson 的目標是讓公司主管理解以下兩個解決方案可以改善應用評分,這可能會轉化為更高的收入。 + +**解決方案 1.** 雇用客服人員在週末工作 + +**解決方案 2.** 購買新的客服工單系統,讓客服人員能輕鬆識別隊列中等待時間最長的投訴——以便優先處理。 +在會議中,Emerson花了5分鐘解釋為什麼在應用商店中獲得低評分是不好的,10分鐘解釋研究過程以及如何識別趨勢,10分鐘討論最近的一些客戶投訴,最後5分鐘簡略提及兩個潛在解決方案。 + +Emerson在這次會議中的溝通方式是否有效? + +在會議中,一位公司主管專注於Emerson所提到的10分鐘客戶投訴。會議結束後,這些投訴成為這位主管唯一記得的內容。另一位公司主管主要關注Emerson描述的研究過程。第三位公司主管記得Emerson提出的解決方案,但不確定如何實施這些解決方案。 + +在上述情況中,可以看到Emerson希望公司主管們從會議中獲得的重點與他們實際記住的內容之間存在顯著差距。以下是Emerson可以考慮的另一種方法。 + +Emerson如何改進這種方法? +背景、衝突、高潮、結尾、結論 +**背景** - Emerson可以花前5分鐘介紹整個情況,確保公司主管們了解問題如何影響公司關鍵指標,例如收入。 + +可以這樣表述:「目前,我們的應用在應用商店中的評分是2.5。應用商店中的評分對應用商店優化至關重要,這會影響有多少用戶在搜索中看到我們的應用,以及潛在用戶如何看待我們的應用。而且,當然,我們的用戶數量直接與收入相關。」 + +**衝突** Emerson接下來可以花大約5分鐘談論衝突。 + +可以這樣表述:「用戶在週末提交投訴和錯誤報告的比例增加了42%。提交投訴後48小時內未得到回覆的客戶,給我們的應用評分超過2的可能性降低了32%。將我們的應用評分提高到4將提升20-30%的可見度,我預計這將使收入增加10%。」當然,Emerson應該準備好為這些數據提供合理的解釋。 + +**高潮** 在鋪墊好背景後,Emerson可以花大約5分鐘進入高潮部分。 + +Emerson可以介紹提出的解決方案,說明這些解決方案如何解決所列出的問題,如何將這些解決方案整合到現有的工作流程中,解決方案的成本是多少,解決方案的投資回報率(ROI)是多少,甚至可以展示一些解決方案實施後的截圖或線框圖。Emerson還可以分享一些用戶的感言,例如那些投訴超過48小時才得到回覆的用戶的感言,甚至是公司內部現有客戶服務代表對目前工單系統的評論。 + +**結尾** 接下來,Emerson可以花5分鐘重申公司面臨的問題,回顧提出的解決方案,並再次強調為什麼這些解決方案是正確的選擇。 + +**結論** 由於這是一場與少數利益相關者的會議,會進行雙向溝通,Emerson可以計劃留出10分鐘的時間供提問,以確保主管們在會議結束前能夠澄清任何困惑的地方。 + +如果Emerson採用方法#2,主管們更有可能從會議中獲得Emerson希望他們記住的重點——即投訴和錯誤的處理方式可以改進,並且有兩個解決方案可以實施以實現這一改進。這種方法將更有效地傳達Emerson希望傳達的數據和故事。 + +# 結論 +### 主要要點摘要 +- 溝通是傳遞或交換信息。 +- 在溝通數據時,目標不應僅僅是向觀眾傳遞數字。目標應該是通過數據講述一個故事。 +- 溝通有兩種類型:單向溝通(信息傳遞無需回應)和雙向溝通(信息在雙方之間交流)。 +- 有許多策略可以用來通過數據講故事,我們討論了以下五種策略: + - 了解你的觀眾、媒介和溝通方式 + - 從結果開始思考 + - 像講述一個真正的故事一樣進行 + - 使用有意義的詞語和短語 + - 善用情感 + +### 自學推薦資源 +[The Five C's of Storytelling - Articulate Persuasion](http://articulatepersuasion.com/the-five-cs-of-storytelling/) + +[1.4 Your Responsibilities as a Communicator – Business Communication for Success (umn.edu)](https://open.lib.umn.edu/businesscommunication/chapter/1-4-your-responsibilities-as-a-communicator/) + +[How to Tell a Story with Data (hbr.org)](https://hbr.org/2013/04/how-to-tell-a-story-with-data) + +[Two-Way Communication: 4 Tips for a More Engaged Workplace (yourthoughtpartner.com)](https://www.yourthoughtpartner.com/blog/bid/59576/4-steps-to-increase-employee-engagement-through-two-way-communication) + +[6 succinct steps to great data storytelling - BarnRaisers, LLC (barnraisersllc.com)](https://barnraisersllc.com/2021/05/02/6-succinct-steps-to-great-data-storytelling/) + +[How to Tell a Story With Data | Lucidchart Blog](https://www.lucidchart.com/blog/how-to-tell-a-story-with-data) + +[6 Cs of Effective Storytelling on Social Media | Cooler Insights](https://coolerinsights.com/2018/06/effective-storytelling-social-media/) + +[The Importance of Emotions In Presentations | Ethos3 - A Presentation Training and Design Agency](https://ethos3.com/2015/02/the-importance-of-emotions-in-presentations/) + +[Data storytelling: linking emotions and rational decisions (toucantoco.com)](https://www.toucantoco.com/en/blog/data-storytelling-dataviz) + +[Emotional Advertising: How Brands Use Feelings to Get People to Buy (hubspot.com)](https://blog.hubspot.com/marketing/emotions-in-advertising-examples) + +[Choosing Colors for Your Presentation Slides | Think Outside The Slide](https://www.thinkoutsidetheslide.com/choosing-colors-for-your-presentation-slides/) + +[How To Present Data [10 Expert Tips] | ObservePoint](https://resources.observepoint.com/blog/10-tips-for-presenting-data) + +[Microsoft Word - Persuasive Instructions.doc (tpsnva.org)](https://www.tpsnva.org/teach/lq/016/persinstr.pdf) + +[The Power of Story for Your Data (thinkhdi.com)](https://www.thinkhdi.com/library/supportworld/2019/power-story-your-data.aspx) + +[Common Mistakes in Data Presentation (perceptualedge.com)](https://www.perceptualedge.com/articles/ie/data_presentation.pdf) + +[Infographic: Here are 15 Common Data Fallacies to Avoid (visualcapitalist.com)](https://www.visualcapitalist.com/here-are-15-common-data-fallacies-to-avoid/) + +[Cherry Picking: When People Ignore Evidence that They Dislike – Effectiviology](https://effectiviology.com/cherry-picking/#How_to_avoid_cherry_picking) + +[Tell Stories with Data: Communication in Data Science | by Sonali Verghese | Towards Data Science](https://towardsdatascience.com/tell-stories-with-data-communication-in-data-science-5266f7671d7) + +[1. Communicating Data - Communicating Data with Tableau [Book] (oreilly.com)](https://www.oreilly.com/library/view/communicating-data-with/9781449372019/ch01.html) + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/31) + +透過上方的課後測驗回顧你剛剛學到的內容! + +## 作業 + +[市場研究](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用本翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/16-communication/assignment.md b/translations/mo/4-Data-Science-Lifecycle/16-communication/assignment.md new file mode 100644 index 00000000..56e5d631 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/16-communication/assignment.md @@ -0,0 +1,26 @@ + +# 講述一個故事 + +## 指引 + +數據科學的核心在於講述故事。選擇任意一個數據集,撰寫一篇短文,講述你可以從中挖掘出的故事。你希望你的數據集能揭示什麼?如果它的揭示結果出現問題,你會怎麼做?如果你的數據無法輕易解鎖其秘密,又該如何應對?思考你的數據集可能呈現的各種情境,並將它們記錄下來。 + +## 評分標準 + +卓越 | 合格 | 需要改進 +--- | --- | -- | + +一篇完整的文章以 .doc 格式呈現,數據集被清楚地解釋、記錄並標註來源,並且圍繞數據集講述了一個連貫的故事,包含詳細的數據示例。| 一篇較短的文章,細節不夠充分 | 文章在上述某些細節方面有所欠缺。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/4-Data-Science-Lifecycle/README.md b/translations/mo/4-Data-Science-Lifecycle/README.md new file mode 100644 index 00000000..366f5497 --- /dev/null +++ b/translations/mo/4-Data-Science-Lifecycle/README.md @@ -0,0 +1,30 @@ + +# 數據科學生命週期 + +![communication](../../../translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.mo.jpg) +> 圖片由 Headway 提供,來自 Unsplash + +在這些課程中,您將探索數據科學生命週期的一些方面,包括數據的分析和溝通。 + +### 主題 + +1. [介紹](14-Introduction/README.md) +2. [分析](15-analyzing/README.md) +3. [溝通](16-communication/README.md) + +### 致謝 + +這些課程由 [Jalen McGee](https://twitter.com/JalenMCG) 和 [Jasmine Greenaway](https://twitter.com/paladique) 用 ❤️ 編寫 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/17-Introduction/README.md b/translations/mo/5-Data-Science-In-Cloud/17-Introduction/README.md new file mode 100644 index 00000000..17c05649 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/17-Introduction/README.md @@ -0,0 +1,116 @@ + +# 雲端中的資料科學介紹 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| 雲端中的資料科學:介紹 - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +在這堂課中,您將學習雲端的基本原則,了解為什麼使用雲端服務來執行資料科學項目可能對您有吸引力,並且我們將探討一些在雲端中運行的資料科學項目範例。 + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/32) + +## 什麼是雲端? + +雲端,或稱雲端運算,是透過網際網路提供一系列按需付費的運算服務,這些服務基於一個基礎設施上運行。服務包括存儲、資料庫、網路、軟體、分析以及智能服務等解決方案。 + +我們通常將公有雲、私有雲和混合雲區分如下: + +* 公有雲:公有雲由第三方雲端服務提供商擁有和運營,並透過網際網路向公眾提供其運算資源。 +* 私有雲:指專門由單一企業或組織使用的雲端運算資源,服務和基礎設施維護在私人網路上。 +* 混合雲:混合雲是一種結合公有雲和私有雲的系統。使用者選擇本地數據中心,同時允許數據和應用程式在一個或多個公有雲上運行。 + +大多數雲端運算服務分為三類:基礎設施即服務 (IaaS)、平台即服務 (PaaS) 和軟體即服務 (SaaS)。 + +* 基礎設施即服務 (IaaS):使用者租用 IT 基礎設施,例如伺服器和虛擬機 (VM)、存儲、網路、操作系統。 +* 平台即服務 (PaaS):使用者租用一個開發、測試、交付和管理軟體應用程式的環境。使用者不需要擔心設置或管理伺服器、存儲、網路和資料庫等基礎設施。 +* 軟體即服務 (SaaS):使用者透過網際網路按需訪問軟體應用程式,通常以訂閱方式提供。使用者不需要擔心托管和管理軟體應用程式、基礎設施或維護,例如軟體升級和安全修補。 + +一些最大的雲端提供商包括 Amazon Web Services、Google Cloud Platform 和 Microsoft Azure。 + +## 為什麼選擇雲端進行資料科學? + +開發者和 IT 專業人士選擇使用雲端的原因有很多,包括以下幾點: + +* 創新:您可以透過將雲端提供商創建的創新服務直接整合到您的應用程式中來提升應用程式的功能。 +* 彈性:您只需支付所需的服務費用,並可以從多種服務中進行選擇。通常採用按需付費模式,並根據需求的變化調整服務。 +* 預算:您不需要進行初期投資來購買硬體和軟體,設置和運行本地數據中心,您只需支付使用的部分。 +* 可擴展性:您的資源可以根據項目的需求進行擴展,這意味著您的應用程式可以根據外部因素在任何時間點使用更多或更少的運算能力、存儲和頻寬。 +* 生產力:您可以專注於您的業務,而不是花時間處理可以由其他人管理的任務,例如管理數據中心。 +* 可靠性:雲端運算提供多種方式來持續備份您的數據,並且您可以設置災難恢復計劃,即使在危機時期也能保持業務和服務的運行。 +* 安全性:您可以受益於加強項目安全性的政策、技術和控制措施。 + +以上是人們選擇使用雲端服務的一些常見原因。現在我們對雲端的概念及其主要優勢有了更好的理解,讓我們更具體地探討資料科學家和處理數據的開發者的工作,以及雲端如何幫助他們應對可能面臨的多種挑戰: + +* 存儲大量數據:與其購買、管理和保護大型伺服器,您可以直接將數據存儲在雲端中,例如使用 Azure Cosmos DB、Azure SQL Database 和 Azure Data Lake Storage。 +* 執行數據整合:數據整合是資料科學的重要部分,讓您從數據收集過渡到採取行動。透過雲端提供的數據整合服務,您可以從多個來源收集、轉換和整合數據到單一數據倉庫,例如使用 Data Factory。 +* 處理數據:處理大量數據需要大量運算能力,而並非每個人都能擁有足夠強大的機器,因此許多人選擇直接利用雲端的巨大運算能力來運行和部署解決方案。 +* 使用數據分析服務:雲端服務如 Azure Synapse Analytics、Azure Stream Analytics 和 Azure Databricks,幫助您將數據轉化為可行的洞察。 +* 使用機器學習和數據智能服務:與其從零開始,您可以使用雲端提供商提供的機器學習算法,例如 AzureML。您還可以使用認知服務,例如語音轉文字、文字轉語音、電腦視覺等。 + +## 雲端中的資料科學範例 + +讓我們透過幾個場景使這些概念更具體化。 + +### 即時社交媒體情緒分析 + +我們從一個常見的機器學習研究場景開始:即時社交媒體情緒分析。 + +假設您運營一個新聞媒體網站,並希望利用即時數據來了解讀者可能感興趣的內容。為了更深入了解,您可以建立一個程序,對 Twitter 上與讀者相關的主題進行即時情緒分析。 + +您需要關注的關鍵指標是特定主題(標籤)的推文量和情緒,情緒是透過分析工具對指定主題進行情緒分析來確定的。 + +建立此項目所需的步驟如下: + +* 創建一個事件中心以收集 Twitter 的輸入流數據 +* 配置並啟動 Twitter 客戶端應用程式,調用 Twitter Streaming APIs +* 創建一個 Stream Analytics 作業 +* 指定作業的輸入和查詢 +* 創建輸出接收器並指定作業的輸出 +* 啟動作業 + +查看完整過程,請參考[文件](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-77958-bethanycheum&ocid=AID30411099)。 + +### 科學論文分析 + +讓我們看另一個由本課程作者之一 [Dmitry Soshnikov](http://soshnikov.com) 創建的項目範例。 + +Dmitry 創建了一個分析 COVID 論文的工具。透過審視此項目,您將了解如何創建一個工具,從科學論文中提取知識,獲得洞察,並幫助研究人員高效地瀏覽大量論文。 + +以下是使用的不同步驟: + +* 使用 [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 提取和預處理信息 +* 使用 [Azure ML](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 進行並行處理 +* 使用 [Cosmos DB](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 存儲和查詢信息 +* 使用 Power BI 創建一個互動式儀表板進行數據探索和可視化 + +查看完整過程,請訪問 [Dmitry 的博客](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/)。 + +如您所見,我們可以以多種方式利用雲端服務來進行資料科學。 + +## 備註 + +來源: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## 課後測驗 + +[課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/33) + +## 作業 + +[市場研究](assignment.md) + +--- + +**免責聲明**: +此文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/17-Introduction/assignment.md b/translations/mo/5-Data-Science-In-Cloud/17-Introduction/assignment.md new file mode 100644 index 00000000..65e714d8 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/17-Introduction/assignment.md @@ -0,0 +1,25 @@ + +# 市場調查 + +## 說明 + +在這節課中,你學到了幾個重要的雲端服務提供商。進行一些市場調查,了解每個提供商能為數據科學家提供什麼服務。這些服務是否具有可比性?撰寫一篇文章,描述三個或更多這些雲端服務提供商的服務內容。 + +## 評分標準 + +優秀 | 合格 | 需要改進 +--- | --- | -- | +一篇一頁的文章描述了三個雲端服務提供商的數據科學服務,並區分了它們之間的差異。 | 提交了一篇較短的文章 | 提交了一篇文章,但未完成分析 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/README.md b/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/README.md new file mode 100644 index 00000000..a924d379 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/README.md @@ -0,0 +1,351 @@ + +# 雲端中的數據科學:「低代碼/無代碼」方式 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速記筆記](../../sketchnotes/18-DataScience-Cloud.png)| +|:---:| +| 雲端中的數據科學:低代碼 - _由 [@nitya](https://twitter.com/nitya) 繪製的速記筆記_ | + +目錄: + +- [雲端中的數據科學:「低代碼/無代碼」方式](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [課前測驗](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1. 簡介](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.1 什麼是 Azure Machine Learning?](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.2 心臟衰竭預測項目:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.3 心臟衰竭數據集:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2. 在 Azure ML Studio 中進行低代碼/無代碼模型訓練](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.1 創建 Azure ML 工作區](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2 計算資源](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.1 選擇適合的計算資源選項](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.2 創建計算集群](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.3 加載數據集](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.4 使用 AutoML 進行低代碼/無代碼訓練](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3. 低代碼/無代碼模型部署及端點使用](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.1 模型部署](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.2 端點使用](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [🚀 挑戰](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [課後測驗](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [回顧與自學](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [作業](../../../../5-Data-Science-In-Cloud/18-Low-Code) + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/34) + +## 1. 簡介 + +### 1.1 什麼是 Azure Machine Learning? + +Azure 雲平台包含超過 200 種產品和雲服務,旨在幫助您實現創新解決方案。數據科學家通常需要花費大量精力來探索和預處理數據,並嘗試各種模型訓練算法以生成準確的模型。這些任務耗時且可能導致昂貴的計算硬件使用效率低下。 + +[Azure ML](https://docs.microsoft.com/azure/machine-learning/overview-what-is-azure-machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 是一個基於雲的平臺,用於在 Azure 中構建和運行機器學習解決方案。它提供了多種功能和能力,幫助數據科學家準備數據、訓練模型、發布預測服務並監控其使用情況。最重要的是,它通過自動化許多與模型訓練相關的耗時任務來提高效率;並且它能夠使用可有效擴展的雲端計算資源來處理大量數據,僅在實際使用時產生成本。 + +Azure ML 提供了開發者和數據科學家所需的所有工具,用於其機器學習工作流程,包括: + +- **Azure Machine Learning Studio**:Azure Machine Learning 的網頁門戶,提供低代碼和無代碼選項,用於模型訓練、部署、自動化、跟蹤和資產管理。該 Studio 與 Azure Machine Learning SDK 集成,提供無縫體驗。 +- **Jupyter Notebooks**:快速原型設計和測試 ML 模型。 +- **Azure Machine Learning Designer**:允許拖放模塊以構建實驗,並在低代碼環境中部署管道。 +- **自動化機器學習界面 (AutoML)**:自動化機器學習模型開發的迭代任務,能以高效和高生產力的方式構建 ML 模型,同時保持模型質量。 +- **數據標註**:一種輔助 ML 工具,用於自動標註數據。 +- **Visual Studio Code 的機器學習擴展**:提供完整的開發環境,用於構建和管理 ML 項目。 +- **機器學習 CLI**:提供命令行管理 Azure ML 資源的命令。 +- **與開源框架集成**:如 PyTorch、TensorFlow、Scikit-learn 等,用於訓練、部署和管理端到端的機器學習過程。 +- **MLflow**:一個開源庫,用於管理機器學習實驗的生命周期。**MLFlow Tracking** 是 MLflow 的一個組件,用於記錄和跟蹤訓練運行的指標和模型工件,無論實驗環境如何。 + +### 1.2 心臟衰竭預測項目: + +毫無疑問,製作和構建項目是檢驗技能和知識的最佳方式。在本課程中,我們將探索兩種不同的方法來構建一個心臟衰竭攻擊預測的數據科學項目,分別是通過低代碼/無代碼方式和通過 Azure ML SDK,如下圖所示: + +![項目架構](../../../../translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.mo.png) + +每種方法都有其優缺點。低代碼/無代碼方式更容易入門,因為它涉及與 GUI(圖形用戶界面)交互,無需事先了解代碼。此方法能快速測試項目的可行性並創建 POC(概念驗證)。然而,隨著項目規模的擴大並需要進入生產階段,通過 GUI 創建資源的方式將不再可行。我們需要以編程方式自動化所有內容,從資源的創建到模型的部署。這時,了解如何使用 Azure ML SDK 就變得至關重要。 + +| | 低代碼/無代碼 | Azure ML SDK | +|-------------------|------------------|---------------------------| +| 代碼專業知識 | 不需要 | 需要 | +| 開發時間 | 快速且簡單 | 取決於代碼專業知識 | +| 生產準備 | 否 | 是 | + +### 1.3 心臟衰竭數據集: + +心血管疾病(CVDs)是全球死亡的首要原因,佔全球死亡人數的 31%。環境和行為風險因素,如吸煙、不健康飲食和肥胖、缺乏運動以及有害的酒精使用,可以用作估算模型的特徵。能夠估算 CVD 發展的概率對於預防高風險人群的攻擊非常有用。 + +Kaggle 提供了一個[心臟衰竭數據集](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data),我們將在本項目中使用。您現在可以下載該數據集。這是一個包含 13 列(12 個特徵和 1 個目標變量)和 299 行的表格數據集。 + +| | 變量名稱 | 類型 | 描述 | 示例 | +|----|---------------------------|-----------------|-----------------------------------------------------------|-------------------| +| 1 | age | 數值型 | 患者年齡 | 25 | +| 2 | anaemia | 布爾型 | 紅細胞或血紅蛋白減少 | 0 或 1 | +| 3 | creatinine_phosphokinase | 數值型 | 血液中 CPK 酶的水平 | 542 | +| 4 | diabetes | 布爾型 | 患者是否患有糖尿病 | 0 或 1 | +| 5 | ejection_fraction | 數值型 | 每次心臟收縮時血液排出的百分比 | 45 | +| 6 | high_blood_pressure | 布爾型 | 患者是否患有高血壓 | 0 或 1 | +| 7 | platelets | 數值型 | 血液中的血小板數量 | 149000 | +| 8 | serum_creatinine | 數值型 | 血液中的血清肌酐水平 | 0.5 | +| 9 | serum_sodium | 數值型 | 血液中的血清鈉水平 | jun | +| 10 | sex | 布爾型 | 女性或男性 | 0 或 1 | +| 11 | smoking | 布爾型 | 患者是否吸煙 | 0 或 1 | +| 12 | time | 數值型 | 隨訪期(天) | 4 | +|----|---------------------------|-----------------|-----------------------------------------------------------|-------------------| +| 21 | DEATH_EVENT [目標] | 布爾型 | 患者是否在隨訪期內死亡 | 0 或 1 | + +獲取數據集後,我們就可以在 Azure 中開始項目了。 + +## 2. 在 Azure ML Studio 中進行低代碼/無代碼模型訓練 + +### 2.1 創建 Azure ML 工作區 + +要在 Azure ML 中訓練模型,首先需要創建 Azure ML 工作區。工作區是 Azure Machine Learning 的頂級資源,提供了一個集中式位置,用於管理您使用 Azure Machine Learning 創建的所有工件。工作區會保留所有訓練運行的歷史記錄,包括日誌、指標、輸出以及腳本的快照。您可以使用這些信息來確定哪次訓練運行生成了最佳模型。[了解更多](https://docs.microsoft.com/azure/machine-learning/concept-workspace?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +建議使用與您的操作系統兼容的最新瀏覽器。支持以下瀏覽器: + +- Microsoft Edge(最新版本的新 Microsoft Edge,不是舊版 Microsoft Edge) +- Safari(最新版本,僅限 Mac) +- Chrome(最新版本) +- Firefox(最新版本) + +要使用 Azure Machine Learning,請在您的 Azure 訂閱中創建工作區。然後,您可以使用此工作區來管理數據、計算資源、代碼、模型以及與機器學習工作負載相關的其他工件。 + +> **_注意:_** 您的 Azure 訂閱將因數據存儲而產生少量費用,只要 Azure Machine Learning 工作區存在於您的訂閱中。因此,我們建議在不再使用工作區時刪除它。 + +1. 使用與您的 Azure 訂閱相關的 Microsoft 賬戶登錄 [Azure 入口網站](https://ms.portal.azure.com/)。 +2. 選擇 **+創建資源** + + ![工作區-1](../../../../translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.mo.png) + + 搜索 Machine Learning 並選擇 Machine Learning 磚塊 + + ![工作區-2](../../../../translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.mo.png) + + 點擊創建按鈕 + + ![工作區-3](../../../../translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.mo.png) + + 按以下方式填寫設置: + - 訂閱:您的 Azure 訂閱 + - 資源組:創建或選擇一個資源組 + - 工作區名稱:輸入工作區的唯一名稱 + - 地區:選擇離您最近的地理區域 + - 存儲帳戶:注意將為您的工作區創建的默認新存儲帳戶 + - 密鑰保管庫:注意將為您的工作區創建的默認新密鑰保管庫 + - 應用洞察:注意將為您的工作區創建的默認新應用洞察資源 + - 容器註冊表:無(第一次將模型部署到容器時會自動創建一個) + + ![工作區-4](../../../../translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.mo.png) + + - 點擊創建 + 審核,然後點擊創建按鈕 +3. 等待您的工作區創建完成(可能需要幾分鐘)。然後在入口網站中找到它。您可以通過 Machine Learning Azure 服務找到它。 +4. 在工作區的概覽頁面,啟動 Azure Machine Learning Studio(或打開新的瀏覽器標籤並導航到 https://ml.azure.com),使用您的 Microsoft 賬戶登錄 Azure Machine Learning Studio。如果提示,選擇您的 Azure 目錄和訂閱,以及您的 Azure Machine Learning 工作區。 + +![工作區-5](../../../../translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.mo.png) + +5. 在 Azure Machine Learning Studio 中,切換左上角的 ☰ 圖標以查看界面中的各個頁面。您可以使用這些頁面來管理工作區中的資源。 + +![工作區-6](../../../../translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.mo.png) + +您可以使用 Azure 入口網站管理工作區,但對於數據科學家和機器學習運營工程師來說,Azure Machine Learning Studio 提供了一個更專注的用戶界面,用於管理工作區資源。 + +### 2.2 計算資源 + +計算資源是基於雲的資源,用於運行模型訓練和數據探索過程。您可以創建四種類型的計算資源: + +- **計算實例**:數據科學家用於處理數據和模型的開發工作站。這涉及創建虛擬機(VM)並啟動筆記本實例。然後,您可以通過筆記本調用計算集群來訓練模型。 +- **計算集群**:可擴展的虛擬機集群,用於按需處理實驗代碼。訓練模型時需要使用計算集群。計算集群還可以使用專門的 GPU 或 CPU 資源。 +- **推理集群**:用於部署使用您訓練模型的預測服務的目標。 +- **附加計算資源**:連結至現有的 Azure 計算資源,例如虛擬機器或 Azure Databricks 叢集。 + +#### 2.2.1 為您的計算資源選擇合適的選項 + +在建立計算資源時需要考慮一些關鍵因素,這些選擇可能是至關重要的決策。 + +**您需要 CPU 還是 GPU?** + +CPU(中央處理器)是執行計算機程式指令的電子電路。GPU(圖形處理器)是一種專門的電子電路,可以以非常高的速度執行與圖形相關的程式碼。 + +CPU 和 GPU 架構的主要區別在於,CPU 設計用於快速處理多種任務(以 CPU 時鐘速度衡量),但在同時執行的任務數量上有限。GPU 則設計用於平行計算,因此在深度學習任務中表現更佳。 + +| CPU | GPU | +|-----------------------------------------|-----------------------------| +| 價格較低 | 價格較高 | +| 並行性較低 | 並行性較高 | +| 深度學習模型訓練速度較慢 | 深度學習的最佳選擇 | + +**叢集大小** + +較大的叢集成本較高,但響應速度更快。因此,如果您有時間但預算有限,應該選擇小型叢集開始。相反,如果您有預算但時間有限,應該選擇大型叢集開始。 + +**虛擬機器大小** + +根據您的時間和預算限制,您可以調整 RAM、磁碟、核心數量和時鐘速度的大小。增加這些參數會提高成本,但性能也會更好。 + +**專用或低優先級實例?** + +低優先級實例意味著它是可中斷的:基本上,Microsoft Azure 可以將這些資源分配給其他任務,從而中斷作業。專用實例(不可中斷)則意味著作業不會在未經您允許的情況下被終止。這是另一個時間與金錢的考量,因為可中斷實例比專用實例便宜。 + +#### 2.2.2 建立計算叢集 + +在我們之前建立的 [Azure ML 工作區](https://ml.azure.com/) 中,進入計算資源頁面,您將能看到我們剛剛討論的不同計算資源(例如計算實例、計算叢集、推理叢集和附加計算資源)。在這個專案中,我們需要一個計算叢集來進行模型訓練。在 Studio 中,點擊 "Compute" 菜單,然後選擇 "Compute cluster" 標籤,接著點擊 "+ New" 按鈕以建立計算叢集。 + +![22](../../../../translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.mo.png) + +1. 選擇您的選項:專用 vs 低優先級、CPU 或 GPU、虛擬機器大小和核心數量(您可以保留此專案的預設設定)。 +2. 點擊 "Next" 按鈕。 + +![23](../../../../translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.mo.png) + +3. 為叢集命名。 +4. 選擇您的選項:最小/最大節點數量、閒置秒數後縮減、SSH 存取。注意,如果最小節點數量為 0,當叢集閒置時您可以節省成本。注意,最大節點數量越高,訓練時間越短。建議的最大節點數量為 3。 +5. 點擊 "Create" 按鈕。此步驟可能需要幾分鐘。 + +![29](../../../../translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.mo.png) + +太棒了!現在我們已經有了一個計算叢集,接下來需要將數據加載到 Azure ML Studio。 + +### 2.3 加載數據集 + +1. 在我們之前建立的 [Azure ML 工作區](https://ml.azure.com/) 中,點擊左側菜單中的 "Datasets",然後點擊 "+ Create dataset" 按鈕以建立數據集。選擇 "From local files" 選項並選擇我們之前下載的 Kaggle 數據集。 + + ![24](../../../../translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.mo.png) + +2. 為您的數據集命名、選擇類型並添加描述。點擊 "Next"。從文件中上傳數據。點擊 "Next"。 + + ![25](../../../../translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.mo.png) + +3. 在 Schema 中,將以下特徵的數據類型更改為布林值:anaemia、diabetes、高血壓、性別、吸煙和 DEATH_EVENT。點擊 "Next" 並點擊 "Create"。 + + ![26](../../../../translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.mo.png) + +太棒了!現在數據集已經準備好,計算叢集也已建立,我們可以開始訓練模型了! + +### 2.4 使用 AutoML 進行低代碼/無代碼訓練 + +傳統的機器學習模型開發需要大量資源,並且需要顯著的領域知識和時間來生成和比較多個模型。自動化機器學習(AutoML)是一種自動化機器學習模型開發中耗時、迭代任務的過程。它使數據科學家、分析師和開發者能夠以高效能和生產力建立 ML 模型,同時保持模型質量。它減少了生成可投入生產的 ML 模型所需的時間,並且操作簡便高效。[了解更多](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +1. 在我們之前建立的 [Azure ML 工作區](https://ml.azure.com/) 中,點擊左側菜單中的 "Automated ML",選擇您剛剛上傳的數據集。點擊 "Next"。 + + ![27](../../../../translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.mo.png) + +2. 輸入新的實驗名稱、目標列(DEATH_EVENT)以及我們建立的計算叢集。點擊 "Next"。 + + ![28](../../../../translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.mo.png) + +3. 選擇 "Classification" 並點擊 "Finish"。此步驟可能需要 30 分鐘到 1 小時,具體取決於您的計算叢集大小。 + + ![30](../../../../translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.mo.png) + +4. 一旦運行完成,點擊 "Automated ML" 標籤,點擊您的運行,然後在 "Best model summary" 卡片中點擊算法。 + + ![31](../../../../translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.mo.png) + +在這裡,您可以看到 AutoML 生成的最佳模型的詳細描述。您還可以在 "Models" 標籤中探索其他生成的模型。花幾分鐘時間探索 "Explanations (preview)" 按鈕中的模型。一旦您選擇了要使用的模型(在此我們選擇 AutoML 選擇的最佳模型),接下來我們將了解如何部署它。 + +## 3. 低代碼/無代碼模型部署及端點使用 +### 3.1 模型部署 + +自動化機器學習介面允許您將最佳模型部署為網路服務,僅需幾個步驟。部署是模型的整合,使其能夠根據新數據進行預測並識別潛在的機會領域。對於此專案,部署到網路服務意味著醫療應用程式將能夠使用模型進行即時預測患者的心臟病風險。 + +在最佳模型描述中,點擊 "Deploy" 按鈕。 + +![deploy-1](../../../../translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.mo.png) + +15. 為其命名、添加描述、選擇計算類型(Azure Container Instance),啟用身份驗證並點擊 "Deploy"。此步驟可能需要約 20 分鐘完成。部署過程包括註冊模型、生成資源並配置它們以供網路服務使用。部署狀態下會顯示狀態消息。定期點擊 "Refresh" 檢查部署狀態。當狀態顯示 "Healthy" 時,表示已部署並正在運行。 + +![deploy-2](../../../../translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.mo.png) + +16. 部署完成後,點擊 "Endpoint" 標籤並點擊您剛剛部署的端點。在這裡,您可以找到有關端點的所有詳細資訊。 + +![deploy-3](../../../../translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.mo.png) + +太棒了!現在我們已經部署了模型,可以開始使用端點。 + +### 3.2 端點使用 + +點擊 "Consume" 標籤。在這裡,您可以找到 REST 端點以及消費選項中的 Python 腳本。花些時間閱讀 Python 程式碼。 + +此腳本可以直接從您的本地機器運行,並使用您的端點。 + +![35](../../../../translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.mo.png) + +花些時間檢查以下兩行程式碼: + +```python +url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score' +api_key = '' # Replace this with the API key for the web service +``` +`url` 變數是消費標籤中找到的 REST 端點,而 `api_key` 變數是消費標籤中找到的主密鑰(僅在啟用了身份驗證的情況下)。這就是腳本如何使用端點。 + +18. 運行腳本,您應該看到以下輸出: + ```python + b'"{\\"result\\": [true]}"' + ``` +這表示給定數據的心臟衰竭預測為真。這是合理的,因為如果您仔細查看腳本中自動生成的數據,所有值默認為 0 和 false。您可以使用以下輸入樣本更改數據: + +```python +data = { + "data": + [ + { + 'age': "0", + 'anaemia': "false", + 'creatinine_phosphokinase': "0", + 'diabetes': "false", + 'ejection_fraction': "0", + 'high_blood_pressure': "false", + 'platelets': "0", + 'serum_creatinine': "0", + 'serum_sodium': "0", + 'sex': "false", + 'smoking': "false", + 'time': "0", + }, + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} +``` +腳本應返回: + ```python + b'"{\\"result\\": [true, false]}"' + ``` + +恭喜!您剛剛使用 Azure ML 訓練並部署了模型,並成功使用了端點! + +> **_注意:_** 完成專案後,請記得刪除所有資源。 +## 🚀 挑戰 + +仔細查看 AutoML 為頂級模型生成的模型解釋和詳細資訊。嘗試理解為什麼最佳模型比其他模型更好。比較了哪些算法?它們之間有什麼差異?為什麼在這種情況下最佳模型表現更好? + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/35) + +## 回顧與自學 + +在本課中,您學習了如何在雲端以低代碼/無代碼方式訓練、部署和使用模型來預測心臟衰竭風險。如果您尚未完成,請深入研究 AutoML 為頂級模型生成的模型解釋,並嘗試理解為什麼最佳模型比其他模型更好。 + +您可以通過閱讀此 [文件](https://docs.microsoft.com/azure/machine-learning/tutorial-first-experiment-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 進一步了解低代碼/無代碼 AutoML。 + +## 作業 + +[Azure ML 上的低代碼/無代碼數據科學專案](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/assignment.md b/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/assignment.md new file mode 100644 index 00000000..c5f9cbb2 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/18-Low-Code/assignment.md @@ -0,0 +1,25 @@ + +# Azure ML 平台上的低代碼/無代碼數據科學項目 + +## 說明 + +我們已經學習如何使用 Azure ML 平台以低代碼/無代碼的方式進行模型的訓練、部署和使用。現在,請尋找一些可以用來訓練其他模型的數據,並將其部署和使用。您可以在 [Kaggle](https://kaggle.com) 和 [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 上尋找數據集。 + +## 評分標準 + +| 卓越 | 合格 | 需要改進 | +|------|------|----------| +|在上傳數據時,您注意到了是否需要更改特徵的類型。如果需要,您也清理了數據。您使用 AutoML 在數據集上進行了訓練,並檢查了模型解釋。您部署了最佳模型,並成功使用了它。|在上傳數據時,您注意到了是否需要更改特徵的類型。您使用 AutoML 在數據集上進行了訓練,部署了最佳模型,並成功使用了它。|您部署了由 AutoML 訓練的最佳模型,並成功使用了它。| + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/19-Azure/README.md b/translations/mo/5-Data-Science-In-Cloud/19-Azure/README.md new file mode 100644 index 00000000..f15a1e79 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/19-Azure/README.md @@ -0,0 +1,312 @@ + +# 雲端中的數據科學:Azure ML SDK 的方法 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的速寫筆記](../../sketchnotes/19-DataScience-Cloud.png)| +|:---:| +| 雲端中的數據科學:Azure ML SDK - _由 [@nitya](https://twitter.com/nitya) 繪製的速寫筆記_ | + +目錄: + +- [雲端中的數據科學:Azure ML SDK 的方法](../../../../5-Data-Science-In-Cloud/19-Azure) + - [課前測驗](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1. 簡介](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.1 什麼是 Azure ML SDK?](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.2 心臟衰竭預測項目和數據集介紹](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2. 使用 Azure ML SDK 訓練模型](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.1 建立 Azure ML 工作區](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.2 建立計算實例](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.3 加載數據集](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.4 建立筆記本](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5 訓練模型](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.1 設置工作區、實驗、計算集群和數據集](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.2 AutoML 配置和訓練](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3. 使用 Azure ML SDK 部署模型和消費端點](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.1 保存最佳模型](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.2 模型部署](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.3 消費端點](../../../../5-Data-Science-In-Cloud/19-Azure) + - [🚀 挑戰](../../../../5-Data-Science-In-Cloud/19-Azure) + - [課後測驗](../../../../5-Data-Science-In-Cloud/19-Azure) + - [回顧與自學](../../../../5-Data-Science-In-Cloud/19-Azure) + - [作業](../../../../5-Data-Science-In-Cloud/19-Azure) + +## [課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/36) + +## 1. 簡介 + +### 1.1 什麼是 Azure ML SDK? + +數據科學家和 AI 開發者使用 Azure 機器學習 SDK 與 Azure 機器學習服務一起構建和運行機器學習工作流。您可以在任何 Python 環境中與該服務交互,包括 Jupyter Notebooks、Visual Studio Code 或您喜愛的 Python IDE。 + +SDK 的主要功能包括: + +- 探索、準備和管理機器學習實驗中使用的數據集的生命周期。 +- 管理雲端資源以監控、記錄和組織您的機器學習實驗。 +- 使用本地或雲端資源(包括 GPU 加速的模型訓練)訓練模型。 +- 使用自動化機器學習,該功能接受配置參數和訓練數據,並自動迭代算法和超參數設置以找到最佳模型進行預測。 +- 部署 Web 服務,將訓練好的模型轉換為可在任何應用中使用的 RESTful 服務。 + +[了解更多關於 Azure 機器學習 SDK 的信息](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +在[上一課](../18-Low-Code/README.md)中,我們學習了如何以低代碼/無代碼的方式訓練、部署和使用模型。我們使用了心臟衰竭數據集來生成心臟衰竭預測模型。在本課中,我們將使用 Azure 機器學習 SDK 完成相同的任務。 + +![項目架構](../../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.mo.png) + +### 1.2 心臟衰竭預測項目和數據集介紹 + +查看[此處](../18-Low-Code/README.md)了解心臟衰竭預測項目和數據集的介紹。 + +## 2. 使用 Azure ML SDK 訓練模型 +### 2.1 建立 Azure ML 工作區 + +為了簡化操作,我們將在 Jupyter Notebook 中工作。這意味著您已經擁有一個工作區和計算實例。如果您已經有工作區,可以直接跳到 2.3 筆記本創建部分。 + +如果沒有,請按照[上一課](../18-Low-Code/README.md)中 **2.1 建立 Azure ML 工作區** 的指示來建立工作區。 + +### 2.2 建立計算實例 + +在我們之前建立的 [Azure ML 工作區](https://ml.azure.com/) 中,進入計算菜單,您將看到不同的計算資源。 + +![計算實例-1](../../../../translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.mo.png) + +讓我們建立一個計算實例來提供 Jupyter Notebook。 +1. 點擊 + New 按鈕。 +2. 為您的計算實例命名。 +3. 選擇您的選項:CPU 或 GPU、VM 大小和核心數量。 +4. 點擊 Create 按鈕。 + +恭喜,您剛剛建立了一個計算實例!我們將在[建立筆記本部分](../../../../5-Data-Science-In-Cloud/19-Azure)中使用此計算實例。 + +### 2.3 加載數據集 +如果您尚未上傳數據集,請參考[上一課](../18-Low-Code/README.md)中的 **2.3 加載數據集** 部分。 + +### 2.4 建立筆記本 + +> **_注意:_** 接下來的步驟,您可以選擇從頭建立一個新的筆記本,或者上傳我們之前建立的 [筆記本](notebook.ipynb) 到您的 Azure ML Studio。要上傳,只需點擊 "Notebook" 菜單並上傳筆記本。 + +筆記本是數據科學過程中非常重要的一部分。它們可以用於進行探索性數據分析(EDA)、調用計算集群訓練模型、調用推理集群部署端點。 + +要建立筆記本,我們需要一個提供 Jupyter Notebook 實例的計算節點。返回 [Azure ML 工作區](https://ml.azure.com/) 並點擊計算實例。在計算實例列表中,您應該看到[我們之前建立的計算實例](../../../../5-Data-Science-In-Cloud/19-Azure)。 + +1. 在 Applications 部分,點擊 Jupyter 選項。 +2. 勾選 "Yes, I understand" 框並點擊 Continue 按鈕。 +![筆記本-1](../../../../translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.mo.png) +3. 這將在瀏覽器中打開一個新的標籤頁,顯示您的 Jupyter Notebook 實例。點擊 "New" 按鈕建立筆記本。 + +![筆記本-2](../../../../translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.mo.png) + +現在我們有了一個筆記本,可以開始使用 Azure ML SDK 訓練模型。 + +### 2.5 訓練模型 + +首先,如果您有任何疑問,請參考 [Azure ML SDK 文檔](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109)。它包含了理解我們在本課中將看到的模塊所需的所有信息。 + +#### 2.5.1 設置工作區、實驗、計算集群和數據集 + +您需要使用以下代碼從配置文件加載 `workspace`: + +```python +from azureml.core import Workspace +ws = Workspace.from_config() +``` + +這將返回一個表示工作區的 `Workspace` 類型的對象。接著,您需要使用以下代碼建立一個 `experiment`: + +```python +from azureml.core import Experiment +experiment_name = 'aml-experiment' +experiment = Experiment(ws, experiment_name) +``` +要從工作區獲取或建立實驗,您需要使用實驗名稱請求實驗。實驗名稱必須是 3-36 個字符,並以字母或數字開頭,只能包含字母、數字、下劃線和連字符。如果在工作區中找不到實驗,則會建立一個新的實驗。 + +現在,您需要使用以下代碼建立一個計算集群進行訓練。請注意,此步驟可能需要幾分鐘。 + +```python +from azureml.core.compute import AmlCompute + +aml_name = "heart-f-cluster" +try: + aml_compute = AmlCompute(ws, aml_name) + print('Found existing AML compute context.') +except: + print('Creating new AML compute context.') + aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3) + aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config) + aml_compute.wait_for_completion(show_output = True) + +cts = ws.compute_targets +compute_target = cts[aml_name] +``` + +您可以通過數據集名稱從工作區獲取數據集,如下所示: + +```python +dataset = ws.datasets['heart-failure-records'] +df = dataset.to_pandas_dataframe() +df.describe() +``` +#### 2.5.2 AutoML 配置和訓練 + +要設置 AutoML 配置,請使用 [AutoMLConfig 類](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109)。 + +如文檔所述,您可以使用許多參數進行配置。對於本項目,我們將使用以下參數: + +- `experiment_timeout_minutes`:實驗允許運行的最大時間(以分鐘為單位),超過此時間後實驗將自動停止並生成結果。 +- `max_concurrent_iterations`:實驗允許的最大並發訓練迭代次數。 +- `primary_metric`:用於確定實驗狀態的主要指標。 +- `compute_target`:運行自動化機器學習實驗的 Azure 機器學習計算目標。 +- `task`:要運行的任務類型。值可以是 'classification'、'regression' 或 'forecasting',取決於要解決的自動化機器學習問題類型。 +- `training_data`:實驗中使用的訓練數據。它應包含訓練特徵和標籤列(可選的樣本權重列)。 +- `label_column_name`:標籤列的名稱。 +- `path`:Azure 機器學習項目文件夾的完整路徑。 +- `enable_early_stopping`:是否啟用早期終止,如果短期內分數沒有改善則終止。 +- `featurization`:指示是否應自動完成特徵化步驟,或者是否使用自定義特徵化。 +- `debug_log`:用於寫入調試信息的日誌文件。 + +```python +from azureml.train.automl import AutoMLConfig + +project_folder = './aml-project' + +automl_settings = { + "experiment_timeout_minutes": 20, + "max_concurrent_iterations": 3, + "primary_metric" : 'AUC_weighted' +} + +automl_config = AutoMLConfig(compute_target=compute_target, + task = "classification", + training_data=dataset, + label_column_name="DEATH_EVENT", + path = project_folder, + enable_early_stopping= True, + featurization= 'auto', + debug_log = "automl_errors.log", + **automl_settings + ) +``` +現在您已設置好配置,可以使用以下代碼訓練模型。此步驟可能需要一小時,具體取決於集群大小。 + +```python +remote_run = experiment.submit(automl_config) +``` +您可以運行 RunDetails 小部件來顯示不同的實驗。 +```python +from azureml.widgets import RunDetails +RunDetails(remote_run).show() +``` +## 3. 使用 Azure ML SDK 部署模型和消費端點 + +### 3.1 保存最佳模型 + +`remote_run` 是 [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 類型的對象。此對象包含 `get_output()` 方法,該方法返回最佳運行及其相應的擬合模型。 + +```python +best_run, fitted_model = remote_run.get_output() +``` +您可以通過打印 fitted_model 查看最佳模型使用的參數,並使用 [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 方法查看最佳模型的屬性。 + +```python +best_run.get_properties() +``` + +現在使用 [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 方法註冊模型。 +```python +model_name = best_run.properties['model_name'] +script_file_name = 'inference/score.py' +best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py') +description = "aml heart failure project sdk" +model = best_run.register_model(model_name = model_name, + model_path = './outputs/', + description = description, + tags = None) +``` +### 3.2 模型部署 + +保存最佳模型後,我們可以使用 [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109) 類進行部署。InferenceConfig 表示用於部署的自定義環境的配置設置。[AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) 類表示部署為 Azure 容器實例上的 Web 服務端點的機器學習模型。部署的服務由模型、腳本和相關文件創建。生成的 Web 服務是一個負載均衡的 HTTP 端點,具有 REST API。您可以向此 API 發送數據並接收模型返回的預測。 + +模型使用 [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 方法進行部署。 + +```python +from azureml.core.model import InferenceConfig, Model +from azureml.core.webservice import AciWebservice + +inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment()) + +aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, + memory_gb = 1, + tags = {'type': "automl-heart-failure-prediction"}, + description = 'Sample service for AutoML Heart Failure Prediction') + +aci_service_name = 'automl-hf-sdk' +aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) +aci_service.wait_for_deployment(True) +print(aci_service.state) +``` +此步驟可能需要幾分鐘。 + +### 3.3 消費端點 + +您可以通過建立一個樣本輸入來使用您的端點: + +```python +data = { + "data": + [ + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} + +test_sample = str.encode(json.dumps(data)) +``` +然後,您可以將此輸入發送到您的模型進行預測: +```python +response = aci_service.run(input_data=test_sample) +response +``` +這應該輸出 `'{"result": [false]}'`。這表示我們傳送到端點的病患輸入生成了預測結果 `false`,也就是說這個人不太可能會心臟病發作。 + +恭喜!你剛剛使用 Azure ML SDK 成功消耗了在 Azure ML 上部署並訓練的模型! + +> **_NOTE:_** 完成專案後,別忘了刪除所有資源。 + +## 🚀 挑戰 + +透過 SDK 還有許多其他功能可以實現,但很遺憾,我們無法在這堂課中全部介紹。不過好消息是,學會如何快速瀏覽 SDK 文件可以幫助你在學習路上走得更遠。查看 Azure ML SDK 文件,找到允許你建立管道的 `Pipeline` 類別。管道是一系列可以作為工作流程執行的步驟集合。 + +**提示:** 前往 [SDK 文件](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109),在搜尋欄中輸入關鍵字如 "Pipeline"。你應該可以在搜尋結果中找到 `azureml.pipeline.core.Pipeline` 類別。 + +## [課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/37) + +## 回顧與自學 + +在這堂課中,你學會了如何使用 Azure ML SDK 在雲端訓練、部署並消耗模型來預測心臟衰竭風險。查看這份 [文件](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 以獲取更多關於 Azure ML SDK 的資訊。試著使用 Azure ML SDK 建立你自己的模型。 + +## 作業 + +[使用 Azure ML SDK 的數據科學專案](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/19-Azure/assignment.md b/translations/mo/5-Data-Science-In-Cloud/19-Azure/assignment.md new file mode 100644 index 00000000..15954166 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/19-Azure/assignment.md @@ -0,0 +1,25 @@ + +# 使用 Azure ML SDK 的數據科學專案 + +## 指導說明 + +我們已經學習了如何使用 Azure ML 平台透過 Azure ML SDK 來訓練、部署和使用模型。現在,請尋找一些可以用來訓練其他模型的數據,並嘗試部署和使用該模型。你可以在 [Kaggle](https://kaggle.com) 和 [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) 上尋找數據集。 + +## 評分標準 + +| 優秀 | 合格 | 需要改進 | +|------|------|----------| +|在進行 AutoML 配置時,你查閱了 SDK 文件以了解可以使用的參數。你使用 Azure ML SDK 在數據集上運行了 AutoML 訓練,並檢查了模型解釋。你部署了最佳模型,並能夠通過 Azure ML SDK 使用該模型。 | 你使用 Azure ML SDK 在數據集上運行了 AutoML 訓練,並檢查了模型解釋。你部署了最佳模型,並能夠通過 Azure ML SDK 使用該模型。 | 你使用 Azure ML SDK 在數據集上運行了 AutoML 訓練。你部署了最佳模型,並能夠通過 Azure ML SDK 使用該模型。 | + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/5-Data-Science-In-Cloud/README.md b/translations/mo/5-Data-Science-In-Cloud/README.md new file mode 100644 index 00000000..1644c838 --- /dev/null +++ b/translations/mo/5-Data-Science-In-Cloud/README.md @@ -0,0 +1,34 @@ + +# 雲端中的數據科學 + +![cloud-picture](../../../translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.mo.jpg) + +> 圖片來源:[Jelleke Vanooteghem](https://unsplash.com/@ilumire) 來自 [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) + +當涉及到使用大數據進行數據科學時,雲端可以成為改變遊戲規則的關鍵。在接下來的三節課中,我們將了解什麼是雲端以及為什麼它非常有用。我們還將探索一個心臟衰竭數據集,並建立一個模型來幫助評估某人發生心臟衰竭的可能性。我們將利用雲端的強大功能來訓練、部署和以兩種不同的方式使用模型。一種方式是僅使用用戶界面,以低代碼/無代碼的方式進行;另一種方式是使用 Azure Machine Learning Software Developer Kit (Azure ML SDK)。 + +![project-schema](../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.mo.png) + +### 主題 + +1. [為什麼在數據科學中使用雲端?](17-Introduction/README.md) +2. [雲端中的數據科學:低代碼/無代碼方式](18-Low-Code/README.md) +3. [雲端中的數據科學:Azure ML SDK 方式](19-Azure/README.md) + +### 致謝 +這些課程由 [Maud Levy](https://twitter.com/maudstweets) 和 [Tiffany Souterre](https://twitter.com/TiffanySouterre) 帶著☁️和💕撰寫。 + +心臟衰竭預測項目的數據來源於 [Larxel](https://www.kaggle.com/andrewmvd) 在 [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data) 上提供的數據。該數據遵循 [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) 授權條款。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/README.md b/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/README.md new file mode 100644 index 00000000..065617ea --- /dev/null +++ b/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/README.md @@ -0,0 +1,155 @@ + +# 真實世界中的數據科學 + +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| 真實世界中的數據科學 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +我們即將完成這段學習旅程! + +我們從數據科學和倫理的定義開始,探索了各種數據分析和可視化的工具與技術,回顧了數據科學的生命周期,並了解了如何利用雲端計算服務擴展和自動化數據科學工作流程。所以,你可能會想:_「我該如何將這些學到的知識應用到真實世界的情境中?」_ + +在這節課中,我們將探索數據科學在各行業中的真實應用,並深入研究在研究、數字人文和可持續性等領域的具體案例。我們還會介紹學生項目機會,並以一些有用的資源作為結尾,幫助你繼續學習之旅! + +## 課前測驗 + +[課前測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/38) + +## 數據科學 + 行業 + +隨著人工智慧的普及化,開發者現在更容易設計並將基於 AI 的決策和數據驅動的洞察整合到用戶體驗和開發工作流程中。以下是數據科學在行業中「應用」於真實世界的一些例子: + + * [Google Flu Trends](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) 使用數據科學將搜索詞與流感趨勢相關聯。儘管該方法存在缺陷,但它提高了人們對數據驅動的醫療預測可能性(及挑戰)的認識。 + + * [UPS 路線預測](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - 解釋了 UPS 如何利用數據科學和機器學習來預測最佳配送路線,考慮了天氣條件、交通模式、配送期限等因素。 + + * [紐約市計程車路線可視化](http://chriswhong.github.io/nyctaxi/) - 使用[信息自由法](https://chriswhong.com/open-data/foil_nyc_taxi/)收集的數據幫助可視化紐約市計程車一天的運行情況,讓我們了解它們如何穿梭於繁忙的城市、賺取的收入以及每 24 小時內行程的時長。 + + * [Uber 數據科學工作台](https://eng.uber.com/dsw/) - 利用每天從數百萬次 Uber 行程中收集的數據(如接送地點、行程時長、偏好路線等),構建數據分析工具,幫助定價、安全性、欺詐檢測和導航決策。 + + * [體育分析](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - 專注於_預測分析_(團隊和球員分析,例如 [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/))和_數據可視化_(團隊和粉絲儀表板、比賽等),應用於人才發掘、體育博彩和場地管理等。 + + * [銀行業中的數據科學](https://data-flair.training/blogs/data-science-in-banking/) - 強調數據科學在金融行業的價值,應用範圍包括風險建模、欺詐檢測、客戶細分、實時預測和推薦系統。預測分析還驅動了關鍵指標,如[信用評分](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit)。 + + * [醫療保健中的數據科學](https://data-flair.training/blogs/data-science-in-healthcare/) - 強調了醫療影像(如 MRI、X 光、CT 掃描)、基因組學(DNA 測序)、藥物開發(風險評估、成功預測)、預測分析(患者護理和供應物流)、疾病追蹤與預防等應用。 + +![真實世界中的數據科學應用](../../../../translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.mo.png) 圖片來源:[Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +該圖展示了其他領域及應用數據科學技術的例子。想探索更多應用?請查看下方的[回顧與自學](../../../../6-Data-Science-In-Wild/20-Real-World-Examples)部分。 + +## 數據科學 + 研究 + +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| 數據科學與研究 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +雖然真實世界的應用通常專注於大規模的行業案例,_研究_應用和項目則可以從兩個角度提供價值: + +* _創新機會_ - 探索先進概念的快速原型設計,並測試下一代應用的用戶體驗。 +* _部署挑戰_ - 調查數據科學技術在真實世界中的潛在危害或意外後果。 + +對於學生來說,這些研究項目既能提供學習機會,也能促進合作,幫助你加深對主題的理解,並拓寬與相關領域專家或團隊的交流與參與。那麼,研究項目是什麼樣的?它們如何產生影響? + +讓我們來看一個例子——[MIT Gender Shades Study](http://gendershades.org/overview.html),由 Joy Buolamwini(MIT Media Labs)發起,並與 Timnit Gebru(當時在 Microsoft Research)共同撰寫了一篇[標誌性研究論文](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf),該研究專注於: + + * **研究目標:** 評估基於性別和膚色的自動化面部分析算法和數據集中的偏差。 + * **研究原因:** 面部分析被應用於執法、機場安檢、招聘系統等領域——這些情境中,分類不準確(例如由於偏差)可能對受影響的個人或群體造成潛在的經濟和社會危害。理解(並消除或減輕)偏差是公平使用的關鍵。 + * **研究方法:** 研究人員發現現有基準主要使用膚色較淺的受試者,並策劃了一個新的數據集(1000 多張圖片),該數據集在性別和膚色上更加平衡。該數據集被用於評估三種性別分類產品(來自 Microsoft、IBM 和 Face++)的準確性。 + +研究結果顯示,儘管整體分類準確性良好,但不同子群體之間的錯誤率存在明顯差異——例如,對女性或膚色較深的人群的**性別誤判**更高,表明存在偏差。 + +**關鍵成果:** 提高了人們對數據科學需要更多_代表性數據集_(平衡的子群體)和更多_包容性團隊_(多元背景)的認識,以便在 AI 解決方案中更早地識別並消除或減輕這些偏差。像這樣的研究努力對於許多組織制定_負責任 AI_的原則和實踐也起到了重要作用,從而提高了 AI 產品和流程的公平性。 + +**想了解 Microsoft 的相關研究工作嗎?** + +* 查看 [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) 中的人工智慧研究項目。 +* 探索 [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/) 的學生項目。 +* 查看 [Fairlearn](https://fairlearn.org/) 項目和 [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) 計劃。 + +## 數據科學 + 人文 + +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| 數據科學與數字人文 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +數字人文[被定義為](https://digitalhumanities.stanford.edu/about-dh-stanford)「結合計算方法與人文探究的一系列實踐和方法」。[斯坦福大學的項目](https://digitalhumanities.stanford.edu/projects)如_「重啟歷史」_和_「詩意思維」_展示了[數字人文與數據科學](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science)之間的聯繫——強調了網絡分析、信息可視化、空間和文本分析等技術,這些技術可以幫助我們重新審視歷史和文學數據集,從而獲得新的見解和視角。 + +*想探索並擴展這一領域的項目嗎?* + +查看 ["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671)——這是一個來自 [Jen Looper](https://twitter.com/jenlooper) 的精彩案例,探討我們如何利用數據科學重新審視熟悉的詩歌,並在新的背景下重新評估其意義及作者的貢獻。例如,_我們能否通過分析詩歌的語氣或情感來預測其創作的季節_——這又能告訴我們作者在相關時期的心理狀態? + +為了回答這個問題,我們遵循數據科學生命周期的步驟: + * [`數據獲取`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - 收集相關的數據集進行分析。選項包括使用 API(例如 [Poetry DB API](https://poetrydb.org/index.html))或抓取網頁(例如 [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm))使用工具如 [Scrapy](https://scrapy.org/)。 + * [`數據清理`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - 解釋如何使用基本工具(如 Visual Studio Code 和 Microsoft Excel)對文本進行格式化、清理和簡化。 + * [`數據分析`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - 解釋如何將數據集導入「筆記本」中,使用 Python 包(如 pandas、numpy 和 matplotlib)進行組織和可視化分析。 + * [`情感分析`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - 解釋如何整合雲服務(如文本分析),使用低代碼工具(如 [Power Automate](https://flow.microsoft.com/en-us/))進行自動化數據處理工作流程。 + +通過這一工作流程,我們可以探索季節對詩歌情感的影響,並幫助我們形成對作者的獨特見解。試試看,然後擴展筆記本以提出其他問題或以新的方式可視化數據! + +> 你可以使用 [Digital Humanities Toolkit](https://github.com/Digital-Humanities-Toolkit) 中的一些工具來進一步探索這些研究方向。 + +## 數據科學 + 可持續性 + +| ![ 由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記 ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| 數據科學與可持續性 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +[2030 年可持續發展議程](https://sdgs.un.org/2030agenda)——由所有聯合國成員於 2015 年通過——確定了 17 項目標,其中包括專注於**保護地球**免受退化和氣候變化影響的目標。[Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) 計劃支持這些目標,探索技術解決方案如何支持並構建更可持續的未來,並專注於[四大目標](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh):到 2030 年實現碳負排放、正水資源、零廢棄物和生物多樣性。 + +以可擴展和及時的方式應對這些挑戰需要雲端規模的思維——以及大規模數據。[Planetary Computer](https://planetarycomputer.microsoft.com/) 計劃提供了四個組件,幫助數據科學家和開發者應對這些挑戰: + + * [數據目錄](https://planetarycomputer.microsoft.com/catalog) - 包含數百萬兆字節的地球系統數據(免費且託管於 Azure)。 + * [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - 幫助用戶在空間和時間範圍內搜索相關數據。 + * [Hub](https://planetarycomputer.microsoft.com/docs/overview/environment/) - 為科學家提供處理大規模地理空間數據集的管理環境。 + * [應用程序](https://planetarycomputer.microsoft.com/applications) - 展示可持續性洞察的使用案例和工具。 +**Planetary Computer Project 目前處於預覽階段(截至 2021 年 9 月)** - 以下是如何開始使用資料科學為永續解決方案做出貢獻的方式。 + +* [申請訪問權限](https://planetarycomputer.microsoft.com/account/request),開始探索並與同行交流。 +* [探索文件](https://planetarycomputer.microsoft.com/docs/overview/about),了解支援的資料集和 API。 +* 探索像 [生態系統監測](https://analytics-lab.org/ecosystemmonitoring/) 這樣的應用程式,尋找應用程式創意的靈感。 + +思考如何利用資料視覺化揭示或放大與氣候變遷和森林砍伐相關的洞察力。或者思考如何利用洞察力創造新的使用者體驗,激勵行為改變以實現更永續的生活。 + +## 資料科學 + 學生 + +我們已經討論了在產業和研究中的實際應用,並探索了數位人文和永續性中的資料科學應用範例。那麼,作為資料科學初學者,你如何建立技能並分享專業知識呢? + +以下是一些資料科學學生專案的範例,供你參考。 + + * [MSR 資料科學夏季學校](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) 的 GitHub [專案](https://github.com/msr-ds3),探索以下主題: + - [警察使用武力中的種族偏見](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [紐約地鐵系統的可靠性](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) + * [數位化物質文化:探索 Sirkap 的社會經濟分佈](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc) - 由 [Ornella Altunyan](https://twitter.com/ornelladotcom) 和 Claremont 團隊使用 [ArcGIS StoryMaps](https://storymaps.arcgis.com/) 完成。 + +## 🚀 挑戰 + +搜尋推薦給初學者的資料科學專案文章,例如 [這 50 個主題領域](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/)、[這 21 個專案創意](https://www.intellspot.com/data-science-project-ideas) 或 [這 16 個帶有原始碼的專案](https://data-flair.training/blogs/data-science-project-ideas/),你可以拆解並重新混合。別忘了撰寫部落格記錄你的學習旅程,並與大家分享你的洞察力。 + +## 課後測驗 + +[課後測驗](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/39) + +## 回顧與自學 + +想探索更多使用案例嗎?以下是一些相關文章: + * [17 個資料科學應用與範例](https://builtin.com/data-science/data-science-applications-examples) - 2021 年 7 月 + * [11 個令人驚嘆的資料科學實際應用](https://myblindbird.com/data-science-applications-real-world/) - 2021 年 5 月 + * [資料科學在現實世界中的應用](https://towardsdatascience.com/data-science-in-the-real-world/home) - 文章合集 + * 資料科學在以下領域的應用:[教育](https://data-flair.training/blogs/data-science-in-education/)、[農業](https://data-flair.training/blogs/data-science-in-agriculture/)、[金融](https://data-flair.training/blogs/data-science-in-finance/)、[電影](https://data-flair.training/blogs/data-science-at-movies/) 等。 + +## 作業 + +[探索 Planetary Computer 資料集](assignment.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md b/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md new file mode 100644 index 00000000..c0e2a511 --- /dev/null +++ b/translations/mo/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md @@ -0,0 +1,50 @@ + +# 探索行星電腦數據集 + +## 說明 + +在這節課中,我們討論了各種數據科學的應用領域,並深入探討了與研究、可持續性和數字人文相關的例子。在這次作業中,您將更詳細地探索其中一個例子,並應用您學到的有關數據可視化和分析的知識,從可持續性數據中獲取洞察。 + +[行星電腦](https://planetarycomputer.microsoft.com/)項目提供了數據集和API,您可以通過註冊帳戶來訪問——如果您想嘗試作業的額外步驟,請申請一個帳戶。該網站還提供了一個[Explorer](https://planetarycomputer.microsoft.com/explore)功能,您可以在不創建帳戶的情況下使用它。 + +`步驟:` +Explorer界面(如下圖所示)允許您選擇一個數據集(從提供的選項中),一個預設查詢(用於篩選數據)以及一個渲染選項(用於創建相關的可視化)。在這次作業中,您的任務是: + + 1. 閱讀[Explorer文檔](https://planetarycomputer.microsoft.com/docs/overview/explorer/)——了解選項。 + 2. 探索數據集[目錄](https://planetarycomputer.microsoft.com/catalog)——了解每個數據集的用途。 + 3. 使用Explorer——選擇一個您感興趣的數據集,選擇相關的查詢和渲染選項。 + +![行星電腦Explorer](../../../../translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.mo.png) + +`您的任務:` +現在,研究瀏覽器中渲染的可視化,並回答以下問題: + * 該數據集有哪些_特徵_? + * 該可視化提供了哪些_洞察_或結果? + * 這些洞察對於該項目的可持續性目標有什麼_影響_? + * 該可視化的_局限性_是什麼(即,您未能獲得哪些洞察)? + * 如果您能獲取原始數據,您會創建哪些_替代可視化_,為什麼? + +`額外加分:` +申請一個帳戶——並在獲批後登錄。 + * 使用 _Launch Hub_ 選項在Notebook中打開原始數據。 + * 交互式地探索數據,並實現您想到的替代可視化。 + * 現在分析您的自定義可視化——您是否能夠獲得之前錯過的洞察? + +## 評分標準 + +優秀 | 合格 | 需要改進 +--- | --- | -- | +回答了所有五個核心問題。學生清楚地指出了當前和替代可視化如何提供有關可持續性目標或結果的洞察。| 學生詳細回答了至少前三個問題,表明他們對Explorer有實際操作經驗。| 學生未能回答多個問題,或提供的細節不足——表明未對該項目進行有意義的嘗試。 | + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/6-Data-Science-In-Wild/README.md b/translations/mo/6-Data-Science-In-Wild/README.md new file mode 100644 index 00000000..a44d8583 --- /dev/null +++ b/translations/mo/6-Data-Science-In-Wild/README.md @@ -0,0 +1,25 @@ + +# 野外數據科學 + +數據科學在各行各業中的實際應用。 + +### 主題 + +1. [現實世界中的數據科學](20-Real-World-Examples/README.md) + +### 致謝 + +由 [Nitya Narasimhan](https://twitter.com/nitya) 用 ❤️ 撰寫 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/CODE_OF_CONDUCT.md b/translations/mo/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..69c9086d --- /dev/null +++ b/translations/mo/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ + +# Microsoft 開源行為準則 + +此專案已採用 [Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/)。 + +資源: + +- [Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft 行為準則常見問題](https://opensource.microsoft.com/codeofconduct/faq/) +- 如有疑問或擔憂,請聯絡 [opencode@microsoft.com](mailto:opencode@microsoft.com) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/CONTRIBUTING.md b/translations/mo/CONTRIBUTING.md new file mode 100644 index 00000000..72afac19 --- /dev/null +++ b/translations/mo/CONTRIBUTING.md @@ -0,0 +1,21 @@ + +# 貢獻 + +此專案歡迎各種貢獻與建議。大多數的貢獻需要您同意一份貢獻者授權協議 (CLA),以聲明您擁有權利並實際授予我們使用您貢獻的權利。詳細資訊請參訪 https://cla.microsoft.com。 + +當您提交拉取請求 (pull request) 時,CLA 機器人會自動判斷您是否需要提供 CLA,並適當地標記 PR(例如,標籤、評論)。只需按照機器人提供的指示操作即可。您只需在所有使用我們 CLA 的存儲庫中完成一次此步驟。 + +此專案已採用 [Microsoft 開源行為準則](https://opensource.microsoft.com/codeofconduct/)。如需更多資訊,請參閱 [行為準則常見問題](https://opensource.microsoft.com/codeofconduct/faq/) 或聯絡 [opencode@microsoft.com](mailto:opencode@microsoft.com) 提出其他問題或意見。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/README.md b/translations/mo/README.md new file mode 100644 index 00000000..0fd521d2 --- /dev/null +++ b/translations/mo/README.md @@ -0,0 +1,163 @@ + +# 初學者的數據科學 - 課程大綱 + +Azure 的雲端倡導者團隊很高興為您提供一個為期 10 週、共 20 節課的數據科學課程。每節課都包含課前和課後測驗、完成課程的書面指導、解決方案以及作業。我們的專案式教學法讓您在實作中學習,這是一種能讓新技能牢牢掌握的有效方式。 + +**衷心感謝我們的作者們:** [Jasmine Greenaway](https://www.twitter.com/paladique)、[Dmitry Soshnikov](http://soshnikov.com)、[Nitya Narasimhan](https://twitter.com/nitya)、[Jalen McGee](https://twitter.com/JalenMcG)、[Jen Looper](https://twitter.com/jenlooper)、[Maud Levy](https://twitter.com/maudstweets)、[Tiffany Souterre](https://twitter.com/TiffanySouterre)、[Christopher Harrison](https://www.twitter.com/geektrainer)。 + +**🙏 特別感謝 🙏 我們的 [Microsoft 學生大使](https://studentambassadors.microsoft.com/) 作者、審稿人和內容貢獻者們,** 特別是 Aaryan Arora、[Aditya Garg](https://github.com/AdityaGarg00)、[Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/)、[Ankita Singh](https://www.linkedin.com/in/ankitasingh007)、[Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/)、[Arpita Das](https://www.linkedin.com/in/arpitadas01/)、ChhailBihari Dubey、[Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor)、[Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb)、[Majd Safi](https://www.linkedin.com/in/majd-s/)、[Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/)、[Miguel Correa](https://www.linkedin.com/in/miguelmque/)、[Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119)、[Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum)、[Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/)、[Rohit Yadav](https://www.linkedin.com/in/rty2423)、Samridhi Sharma、[Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200)、[Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/)、[Tauqeer Ahmad](https://www.linkedin.com/in/tauqeerahmad5201/)、Yogendrasingh Pawar、[Vidushi Gupta](https://www.linkedin.com/in/vidushi-gupta07/)、[Jasleen Sondhi](https://www.linkedin.com/in/jasleen-sondhi/)。 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](./sketchnotes/00-Title.png)| +|:---:| +| 初學者的數據科學 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +## 公告 - 全新生成式 AI 課程已發布! + +我們剛剛發布了一個包含 12 節課的生成式 AI 課程。學習內容包括: + +- 提示設計與提示工程 +- 文本與圖像應用生成 +- 搜索應用 + +和往常一樣,每節課都包含課程內容、作業、知識檢查和挑戰。 + +查看課程內容: + +> https://aka.ms/genai-beginners + +# 你是學生嗎? + +可以從以下資源開始: + +- [學生中心頁面](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) 在這個頁面上,您可以找到初學者資源、學生套件,甚至有機會獲得免費認證憑證。這是一個值得收藏並定期查看的頁面,因為我們至少每月更新一次內容。 +- [Microsoft 學生大使計劃](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) 加入一個全球性的學生大使社群,這可能是您進入 Microsoft 的途徑。 + +# 開始學習 + +> **教師們**:我們已[提供了一些建議](for-teachers.md)來幫助您使用這份課程。我們期待您在[討論論壇](https://github.com/microsoft/Data-Science-For-Beginners/discussions)中的反饋! + +> **[學生們](https://aka.ms/student-page)**:如果您想自行使用這份課程,請將整個倉庫分叉,並從課前測驗開始完成練習。然後閱讀課程內容並完成其餘活動。嘗試通過理解課程內容來創建專案,而不是直接複製解決方案代碼;不過,解決方案代碼可以在每個專案導向課程的 /solutions 資料夾中找到。另一個建議是與朋友組成學習小組,一起學習這些內容。進一步學習,我們推薦 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum)。 + +## 認識團隊 + +[![宣傳影片](../../ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "宣傳影片") + +**Gif 作者** [Mohit Jaisal](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 點擊上方圖片觀看關於這個專案及其創作者的影片! + +## 教學法 + +在設計這份課程時,我們選擇了兩個教學原則:確保課程是專案導向的,並且包含頻繁的測驗。在這個系列結束時,學生將學習到數據科學的基本原則,包括倫理概念、數據準備、不同的數據處理方式、數據可視化、數據分析、數據科學的實際應用案例等。 + +此外,課前的低壓力測驗可以幫助學生專注於學習主題,而課後的測驗則能進一步鞏固記憶。這份課程設計靈活且有趣,可以整體學習,也可以部分學習。專案從簡單開始,並在 10 週的學習周期中逐漸變得複雜。 + +> 查看我們的 [行為準則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯指南](TRANSLATIONS.md)。我們歡迎您的建設性反饋! + +## 每節課包含: + +- 可選的手繪筆記 +- 可選的補充影片 +- 課前熱身測驗 +- 書面課程內容 +- 專案導向課程的分步指導 +- 知識檢查 +- 挑戰 +- 補充閱讀 +- 作業 +- 課後測驗 + +> **關於測驗的說明**:所有測驗都包含在 Quiz-App 資料夾中,共有 40 個測驗,每個測驗包含三個問題。測驗可以從課程中鏈接,也可以在本地運行或部署到 Azure;請按照 `quiz-app` 資料夾中的指導進行操作。我們正在逐步進行本地化。 + +## 課程內容 + +|![由 [(@sketchthedocs)](https://sketchthedocs.dev) 繪製的手繪筆記](./sketchnotes/00-Roadmap.png)| +|:---:| +| 初學者的數據科學:路線圖 - _由 [@nitya](https://twitter.com/nitya) 繪製的手繪筆記_ | + +| 課程編號 | 主題 | 課程分組 | 學習目標 | 課程鏈接 | 作者 | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | 定義數據科學 | [簡介](1-Introduction/README.md) | 學習數據科學的基本概念,以及它與人工智慧、機器學習和大數據的關係。 | [課程](1-Introduction/01-defining-data-science/README.md) [影片](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | 數據科學倫理 | [簡介](1-Introduction/README.md) | 數據倫理的概念、挑戰與框架。 | [課程](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | 定義數據 | [簡介](1-Introduction/README.md) | 數據的分類方式及其常見來源。 | [課程](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | 統計與機率入門 | [簡介](1-Introduction/README.md) | 使用機率與統計的數學技術來理解數據。 | [課程](1-Introduction/04-stats-and-probability/README.md) [影片](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | 使用關聯數據 | [數據處理](2-Working-With-Data/README.md) | 關聯數據的介紹,以及使用結構化查詢語言(SQL,發音為 "see-quell")探索和分析關聯數據的基礎知識。 | [課程](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | +| 06 | 使用 NoSQL 數據 | [數據處理](2-Working-With-Data/README.md) | 非關聯數據的介紹、其各種類型以及探索和分析文檔數據庫的基礎知識。 | [課程](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique) | +| 07 | 使用 Python | [數據處理](2-Working-With-Data/README.md) | 使用 Python 進行數據探索的基礎知識,包括 Pandas 等庫。建議具備 Python 程式設計的基礎知識。 | [課程](2-Working-With-Data/07-python/README.md) [影片](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | 數據準備 | [處理數據](2-Working-With-Data/README.md) | 關於清理和轉換數據的技術,應對缺失、不準確或不完整數據的挑戰。 | [課程](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | 數量可視化 | [數據可視化](3-Data-Visualization/README.md) | 學習如何使用 Matplotlib 可視化鳥類數據 🦆 | [課程](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | 數據分佈可視化 | [數據可視化](3-Data-Visualization/README.md) | 可視化區間內的觀察和趨勢。 | [課程](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | 比例可視化 | [數據可視化](3-Data-Visualization/README.md) | 可視化離散和分組百分比。 | [課程](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | 關係可視化 | [數據可視化](3-Data-Visualization/README.md) | 可視化數據集及其變量之間的連接和相關性。 | [課程](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | 有意義的可視化 | [數據可視化](3-Data-Visualization/README.md) | 提供技術和指導,讓您的可視化在解決問題和洞察方面更具價值。 | [課程](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | 數據科學生命周期介紹 | [生命周期](4-Data-Science-Lifecycle/README.md) | 介紹數據科學生命周期及其第一步:獲取和提取數據。 | [課程](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | 分析 | [生命周期](4-Data-Science-Lifecycle/README.md) | 數據科學生命周期的這一階段專注於分析數據的技術。 | [課程](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | 溝通 | [生命周期](4-Data-Science-Lifecycle/README.md) | 數據科學生命周期的這一階段專注於以易於決策者理解的方式呈現數據洞察。 | [課程](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | 雲端中的數據科學 | [雲端數據](5-Data-Science-In-Cloud/README.md) | 這系列課程介紹雲端中的數據科學及其優勢。 | [課程](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) 和 [Maud](https://twitter.com/maudstweets) | +| 18 | 雲端中的數據科學 | [雲端數據](5-Data-Science-In-Cloud/README.md) | 使用低代碼工具訓練模型。 | [課程](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) 和 [Maud](https://twitter.com/maudstweets) | +| 19 | 雲端中的數據科學 | [雲端數據](5-Data-Science-In-Cloud/README.md) | 使用 Azure Machine Learning Studio 部署模型。 | [課程](5-Data-Science-In-Cloud/19-Azure/README.md)| [Tiffany](https://twitter.com/TiffanySouterre) 和 [Maud](https://twitter.com/maudstweets) | +| 20 | 野外的數據科學 | [野外應用](6-Data-Science-In-Wild/README.md) | 現實世界中的數據科學驅動項目。 | [課程](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## GitHub Codespaces + +按照以下步驟在 Codespace 中打開此範例: +1. 點擊 Code 下拉菜單,選擇 Open with Codespaces 選項。 +2. 在面板底部選擇 + New codespace。 +如需更多資訊,請查看 [GitHub 文檔](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace)。 + +## VSCode Remote - Containers +按照以下步驟使用本地機器和 VSCode 的 VS Code Remote - Containers 擴展在容器中打開此倉庫: + +1. 如果您是第一次使用開發容器,請確保您的系統符合前置要求(例如已安裝 Docker),請參考 [入門文檔](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started)。 + +要使用此倉庫,您可以選擇以下方式之一: + +**注意**:在底層,這將使用 Remote-Containers: **Clone Repository in Container Volume...** 命令將源代碼克隆到 Docker 卷中,而不是本地文件系統。[卷](https://docs.docker.com/storage/volumes/) 是持久化容器數據的首選機制。 + +或者打開本地克隆或下載的倉庫版本: + +- 將此倉庫克隆到您的本地文件系統。 +- 按 F1 並選擇 **Remote-Containers: Open Folder in Container...** 命令。 +- 選擇此文件夾的克隆副本,等待容器啟動,然後試用。 + +## 離線訪問 + +您可以使用 [Docsify](https://docsify.js.org/#/) 離線運行此文檔。Fork 此倉庫,在您的本地機器上 [安裝 Docsify](https://docsify.js.org/#/quickstart),然後在此倉庫的根文件夾中輸入 `docsify serve`。網站將在您的本地主機的 3000 端口上提供服務:`localhost:3000`。 + +> 注意,筆記本文件不會通過 Docsify 渲染,因此當您需要運行筆記本時,請在 VS Code 中使用 Python kernel 單獨運行。 + +## 尋求幫助! + +如果您希望翻譯全部或部分課程,請遵循我們的 [翻譯指南](TRANSLATIONS.md)。 + +## 其他課程 + +我們的團隊還製作了其他課程!查看以下內容: + +- [生成式 AI 初學者課程](https://aka.ms/genai-beginners) +- [生成式 AI 初學者課程 .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) +- [使用 JavaScript 的生成式 AI](https://github.com/microsoft/generative-ai-with-javascript) +- [使用 Java 的生成式 AI](https://aka.ms/genaijava) +- [AI 初學者課程](https://aka.ms/ai-beginners) +- [數據科學初學者課程](https://aka.ms/datascience-beginners) +- [機器學習初學者課程](https://aka.ms/ml-beginners) +- [網絡安全初學者課程](https://github.com/microsoft/Security-101) +- [Web 開發初學者課程](https://aka.ms/webdev-beginners) +- [物聯網初學者課程](https://aka.ms/iot-beginners) +- [XR 開發初學者課程](https://github.com/microsoft/xr-development-for-beginners) +- [掌握 GitHub Copilot 進行配對編程](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) +- [掌握 GitHub Copilot 用於 C#/.NET 開發者](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) +- [選擇您的 Copilot 冒險](https://github.com/microsoft/CopilotAdventures) + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/SECURITY.md b/translations/mo/SECURITY.md new file mode 100644 index 00000000..bc424e8d --- /dev/null +++ b/translations/mo/SECURITY.md @@ -0,0 +1,51 @@ + +## 安全性 + +Microsoft 非常重視我們軟體產品和服務的安全性,包括透過我們的 GitHub 組織管理的所有原始碼庫,這些組織包括 [Microsoft](https://github.com/Microsoft)、[Azure](https://github.com/Azure)、[DotNet](https://github.com/dotnet)、[AspNet](https://github.com/aspnet)、[Xamarin](https://github.com/xamarin) 以及 [我們的 GitHub 組織](https://opensource.microsoft.com/)。 + +如果您認為在任何 Microsoft 擁有的原始碼庫中發現了符合 [Microsoft 對安全性漏洞的定義](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) 的安全性漏洞,請按照以下說明向我們報告。 + +## 回報安全性問題 + +**請勿透過公開的 GitHub 問題回報安全性漏洞。** + +相反,請透過 Microsoft Security Response Center (MSRC) 回報,網址為 [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report)。 + +如果您希望在不登入的情況下提交,請發送電子郵件至 [secure@microsoft.com](mailto:secure@microsoft.com)。如果可能,請使用我們的 PGP 金鑰加密您的訊息;您可以從 [Microsoft Security Response Center PGP Key 頁面](https://www.microsoft.com/en-us/msrc/pgp-key-msrc) 下載。 + +您應該在 24 小時內收到回覆。如果因某些原因未收到,請透過電子郵件跟進,以確保我們收到您的原始訊息。更多資訊請參閱 [microsoft.com/msrc](https://www.microsoft.com/msrc)。 + +請提供以下所需資訊(盡可能詳細),以幫助我們更好地了解問題的性質和範圍: + + * 問題類型(例如:緩衝區溢位、SQL 注入、跨站腳本攻擊等) + * 與問題相關的原始檔案的完整路徑 + * 受影響原始碼的位置(標籤/分支/提交或直接 URL) + * 重現問題所需的任何特殊配置 + * 重現問題的逐步指導 + * 概念驗證或漏洞利用程式碼(如果可能) + * 問題的影響,包括攻擊者可能如何利用該問題 + +這些資訊將幫助我們更快速地處理您的報告。 + +如果您是為了漏洞賞金計劃而回報,提供更完整的報告可能有助於獲得更高的賞金獎勵。請造訪我們的 [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) 頁面,了解更多有關我們現行計劃的詳細資訊。 + +## 偏好的語言 + +我們偏好所有的溝通使用英文。 + +## 政策 + +Microsoft 遵循 [協調式漏洞披露](https://www.microsoft.com/en-us/msrc/cvd) 的原則。 + +--- + +**免責聲明**: +本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/SUPPORT.md b/translations/mo/SUPPORT.md new file mode 100644 index 00000000..d414d9a9 --- /dev/null +++ b/translations/mo/SUPPORT.md @@ -0,0 +1,24 @@ + +# 支援 +## 如何提交問題和獲取幫助 + +此專案使用 GitHub Issues 來追蹤錯誤和功能請求。在提交新問題之前,請先搜尋現有問題以避免重複。對於新問題,請將您的錯誤或功能請求提交為一個新問題。 + +如果您需要幫助或對使用此專案有任何疑問,請提交一個問題。 + +## Microsoft 支援政策 + +對於此存放庫的支援僅限於上述列出的資源。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/docs/_sidebar.md b/translations/mo/docs/_sidebar.md new file mode 100644 index 00000000..12c63e54 --- /dev/null +++ b/translations/mo/docs/_sidebar.md @@ -0,0 +1,40 @@ + +- 介紹 + - [定義資料科學](../1-Introduction/01-defining-data-science/README.md) + - [資料科學的倫理](../1-Introduction/02-ethics/README.md) + - [定義資料](../1-Introduction/03-defining-data/README.md) + - [機率與統計](../1-Introduction/04-stats-and-probability/README.md) +- 資料處理 + - [關聯式資料庫](../2-Working-With-Data/05-relational-databases/README.md) + - [非關聯式資料庫](../2-Working-With-Data/06-non-relational/README.md) + - [Python](../2-Working-With-Data/07-python/README.md) + - [資料準備](../2-Working-With-Data/08-data-preparation/README.md) +- 資料視覺化 + - [數量的視覺化](../3-Data-Visualization/09-visualization-quantities/README.md) + - [分佈的視覺化](../3-Data-Visualization/10-visualization-distributions/README.md) + - [比例的視覺化](../3-Data-Visualization/11-visualization-proportions/README.md) + - [關係的視覺化](../3-Data-Visualization/12-visualization-relationships/README.md) + - [有意義的視覺化](../3-Data-Visualization/13-meaningful-visualizations/README.md) +- 資料科學生命週期 + - [介紹](../4-Data-Science-Lifecycle/14-Introduction/README.md) + - [分析](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [溝通](../4-Data-Science-Lifecycle/16-communication/README.md) +- 雲端中的資料科學 + - [介紹](../5-Data-Science-In-Cloud/17-Introduction/README.md) + - [低程式碼](../5-Data-Science-In-Cloud/18-Low-Code/README.md) + - [Azure](../5-Data-Science-In-Cloud/19-Azure/README.md) +- 真實世界中的資料科學 + - [真實世界中的資料科學](../6-Data-Science-In-Wild/README.md) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用此翻譯而產生的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/for-teachers.md b/translations/mo/for-teachers.md new file mode 100644 index 00000000..4c9eb2e6 --- /dev/null +++ b/translations/mo/for-teachers.md @@ -0,0 +1,78 @@ + +## 給教育工作者 + +您是否希望在課堂上使用這份課程?請隨意使用! + +事實上,您可以直接在 GitHub 上使用 GitHub Classroom 來進行。 + +要做到這一點,請先 fork 此 repo。您需要為每一課建立一個 repo,因此需要將每個資料夾提取到一個獨立的 repo 中。這樣,[GitHub Classroom](https://classroom.github.com/classrooms) 就能分別處理每一課。 + +這些[完整的指導](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/)可以幫助您了解如何設置您的課堂。 + +## 按原樣使用此 repo + +如果您希望直接使用目前的 repo,而不使用 GitHub Classroom,也可以做到。您需要與您的學生溝通,告訴他們一起完成哪一課。 + +在線上教學模式(例如 Zoom、Teams 或其他平台)中,您可以為測驗設置分組討論室,並指導學生準備學習。然後邀請學生參加測驗,並在指定時間以 "issues" 的形式提交答案。如果您希望學生公開合作,也可以用相同方式進行作業。 + +如果您更喜歡較為私密的方式,可以要求學生逐課 fork 課程到他們自己的 GitHub 私人 repo,並授予您訪問權限。這樣他們可以私下完成測驗和作業,並通過 classroom repo 的 issues 提交給您。 + +在線課堂有許多不同的運作方式。請告訴我們哪種方式最適合您! + +## 此課程包含: + +20 篇課程、40 個測驗和 20 個作業。課程配有手繪筆記,適合視覺型學習者。許多課程提供 Python 和 R 版本,並可使用 Jupyter notebooks 在 VS Code 中完成。了解更多關於如何設置您的課堂以使用這些技術堆疊:https://code.visualstudio.com/docs/datascience/jupyter-notebooks。 + +所有手繪筆記,包括一張大幅海報,都在[此資料夾](../../sketchnotes)中。 + +整個課程也可以[以 PDF 格式](../../pdf/readme.pdf)獲取。 + +您還可以使用 [Docsify](https://docsify.js.org/#/) 將此課程作為獨立的、離線友好的網站運行。[安裝 Docsify](https://docsify.js.org/#/quickstart) 到您的本地機器,然後在本地 repo 的根目錄中輸入 `docsify serve`。網站將在本地端的 3000 端口上運行:`localhost:3000`。 + +課程的離線友好版本將以獨立網頁形式打開:https://localhost:3000 + +課程分為六個部分: + +- 1: 介紹 + - 1: 定義數據科學 + - 2: 倫理 + - 3: 定義數據 + - 4: 概率與統計概述 +- 2: 處理數據 + - 5: 關聯式數據庫 + - 6: 非關聯式數據庫 + - 7: Python + - 8: 數據準備 +- 3: 數據可視化 + - 9: 數量的可視化 + - 10: 分佈的可視化 + - 11: 比例的可視化 + - 12: 關係的可視化 + - 13: 有意義的可視化 +- 4: 數據科學生命周期 + - 14: 介紹 + - 15: 分析 + - 16: 溝通 +- 5: 雲端中的數據科學 + - 17: 介紹 + - 18: 低代碼選項 + - 19: Azure +- 6: 真實世界中的數據科學 + - 20: 概述 + +## 請提供您的意見! + +我們希望這份課程能夠滿足您和您的學生的需求。請在討論區提供反饋!也可以在討論區為您的學生創建一個課堂專區。 + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。 \ No newline at end of file diff --git a/translations/mo/quiz-app/README.md b/translations/mo/quiz-app/README.md new file mode 100644 index 00000000..44d7a0bb --- /dev/null +++ b/translations/mo/quiz-app/README.md @@ -0,0 +1,139 @@ + +# 測驗 + +這些測驗是數據科學課程的課前和課後測驗,課程網址為:https://aka.ms/datascience-beginners + +## 新增翻譯測驗集 + +透過在 `assets/translations` 資料夾中建立相應的測驗結構來新增測驗翻譯。原始測驗位於 `assets/translations/en` 資料夾中。測驗被分為多個組別,請確保編號與正確的測驗部分對齊。整個課程共有 40 個測驗,編號從 0 開始。 + +在編輯翻譯後,請編輯翻譯資料夾中的 `index.js` 檔案,按照 `en` 資料夾中的慣例匯入所有檔案。 + +接著,編輯 `assets/translations` 資料夾中的 `index.js` 檔案,匯入新的翻譯檔案。 + +然後,編輯此應用程式中的 `App.vue` 檔案中的下拉選單,新增您的語言。將本地化的縮寫與您的語言資料夾名稱匹配。 + +最後,如果翻譯課程中存在測驗連結,請編輯所有測驗連結,將本地化作為查詢參數加入,例如:`?loc=fr`。 + +## 專案設定 + +``` +npm install +``` + +### 編譯並啟動開發環境的熱重載 + +``` +npm run serve +``` + +### 編譯並壓縮以進行生產部署 + +``` +npm run build +``` + +### 檢查並修復檔案 + +``` +npm run lint +``` + +### 自訂配置 + +請參閱 [配置參考](https://cli.vuejs.org/config/)。 + +致謝:感謝此測驗應用程式的原始版本:https://github.com/arpan45/simple-quiz-vue + +## 部署到 Azure + +以下是幫助您開始的逐步指南: + +1. **Fork GitHub 儲存庫** +確保您的靜態網站應用程式程式碼位於您的 GitHub 儲存庫中。Fork 此儲存庫。 + +2. **建立 Azure 靜態網站應用程式** +- 建立一個 [Azure 帳戶](http://azure.microsoft.com) +- 前往 [Azure 入口網站](https://portal.azure.com) +- 點擊「建立資源」,搜尋「靜態網站應用程式」。 +- 點擊「建立」。 + +3. **配置靜態網站應用程式** +- **基本設定**: + - 訂閱:選擇您的 Azure 訂閱。 + - 資源群組:建立一個新的資源群組或使用現有的資源群組。 + - 名稱:為您的靜態網站應用程式提供一個名稱。 + - 區域:選擇最接近使用者的區域。 + +- **部署詳細資訊**: + - 原始碼:選擇「GitHub」。 + - GitHub 帳戶:授權 Azure 存取您的 GitHub 帳戶。 + - 組織:選擇您的 GitHub 組織。 + - 儲存庫:選擇包含靜態網站應用程式的儲存庫。 + - 分支:選擇您要部署的分支。 + +- **建置詳細資訊**: + - 建置預設值:選擇應用程式使用的框架(例如 React、Angular、Vue 等)。 + - 應用程式位置:指定包含應用程式程式碼的資料夾(例如,如果在根目錄,則為 `/`)。 + - API 位置:如果有 API,請指定其位置(可選)。 + - 輸出位置:指定建置輸出生成的資料夾(例如 build 或 dist)。 + +4. **檢查並建立** +檢查您的設定,然後點擊「建立」。Azure 將設置必要的資源,並在您的儲存庫中建立一個 GitHub Actions 工作流程。 + +5. **GitHub Actions 工作流程** +Azure 會自動在您的儲存庫中建立一個 GitHub Actions 工作流程檔案(.github/workflows/azure-static-web-apps-.yml)。此工作流程將處理建置和部署過程。 + +6. **監控部署** +前往 GitHub 儲存庫中的「Actions」標籤。 +您應該會看到一個正在運行的工作流程。此工作流程將建置並部署您的靜態網站應用程式到 Azure。 +一旦工作流程完成,您的應用程式將在提供的 Azure URL 上線。 + +### 範例工作流程檔案 + +以下是 GitHub Actions 工作流程檔案的範例: +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### 其他資源 +- [Azure 靜態網站應用程式文件](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [GitHub Actions 文件](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原始語言的文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對於因使用本翻譯而引起的任何誤解或錯誤解讀概不負責。 \ No newline at end of file diff --git a/translations/mo/sketchnotes/README.md b/translations/mo/sketchnotes/README.md new file mode 100644 index 00000000..f834eaf6 --- /dev/null +++ b/translations/mo/sketchnotes/README.md @@ -0,0 +1,21 @@ + +在這裡找到所有的手繪筆記! + +## 致謝 + +Nitya Narasimhan,藝術家 + +![roadmap sketchnote](../../../translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.mo.png) + +--- + +**免責聲明**: +本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。應以原文文件作為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤讀概不負責。 \ No newline at end of file diff --git a/translations/ru/1-Introduction/01-defining-data-science/README.md b/translations/ru/1-Introduction/01-defining-data-science/README.md new file mode 100644 index 00000000..17132ba4 --- /dev/null +++ b/translations/ru/1-Introduction/01-defining-data-science/README.md @@ -0,0 +1,124 @@ + +# Определение науки о данных + +| ![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/01-Definitions.png) | +| :------------------------------------------------------------------------------------------------: | +| Определение науки о данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +--- + +[![Видео: Определение науки о данных](../../../../translated_images/video-def-ds.6623ee2392ef1abf6d7faf3fad10a4163642811749da75f44e35a5bb121de15c.ru.png)](https://youtu.be/beZ7Mb_oz9I) + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/0) + +## Что такое данные? +В нашей повседневной жизни мы постоянно окружены данными. Текст, который вы сейчас читаете, — это данные. Список телефонных номеров ваших друзей в смартфоне — это данные, как и текущее время, отображаемое на ваших часах. Как люди, мы естественным образом оперируем данными, подсчитывая деньги или пишем письма друзьям. + +Однако данные стали гораздо более важными с появлением компьютеров. Основная роль компьютеров — выполнять вычисления, но для этого им нужны данные. Поэтому нам нужно понять, как компьютеры хранят и обрабатывают данные. + +С появлением Интернета роль компьютеров как устройств для работы с данными возросла. Если задуматься, мы все чаще используем компьютеры для обработки и передачи данных, а не для собственно вычислений. Когда мы пишем электронное письмо другу или ищем информацию в Интернете, мы, по сути, создаем, храним, передаем и манипулируем данными. +> Можете ли вы вспомнить, когда в последний раз использовали компьютер для выполнения именно вычислений? + +## Что такое наука о данных? + +На [Википедии](https://en.wikipedia.org/wiki/Data_science) **наука о данных** определяется как *научная область, использующая научные методы для извлечения знаний и инсайтов из структурированных и неструктурированных данных, а также для применения этих знаний и инсайтов в различных областях*. + +Это определение подчеркивает следующие важные аспекты науки о данных: + +* Основная цель науки о данных — **извлечение знаний** из данных, другими словами, **понимание** данных, поиск скрытых взаимосвязей и построение **моделей**. +* Наука о данных использует **научные методы**, такие как теория вероятностей и статистика. На самом деле, когда термин *наука о данных* только появился, некоторые утверждали, что это просто новое модное название для статистики. Сегодня очевидно, что эта область гораздо шире. +* Полученные знания должны быть применены для получения **практических инсайтов**, то есть таких, которые можно использовать в реальных бизнес-ситуациях. +* Мы должны уметь работать как со **структурированными**, так и с **неструктурированными** данными. Мы вернемся к обсуждению различных типов данных позже в курсе. +* **Область применения** — важное понятие, и ученым по данным часто требуется хотя бы базовое понимание предметной области, например: финансы, медицина, маркетинг и т.д. + +> Еще один важный аспект науки о данных заключается в том, что она изучает, как данные могут быть собраны, сохранены и обработаны с помощью компьютеров. Если статистика дает нам математические основы, то наука о данных применяет математические концепции для извлечения инсайтов из данных. + +Один из подходов (приписываемый [Джиму Грею](https://en.wikipedia.org/wiki/Jim_Gray_(computer_scientist))) к пониманию науки о данных — рассматривать ее как отдельную парадигму науки: +* **Эмпирическая**, где мы полагаемся в основном на наблюдения и результаты экспериментов +* **Теоретическая**, где новые концепции возникают из существующих научных знаний +* **Вычислительная**, где мы открываем новые принципы на основе вычислительных экспериментов +* **Данные-ориентированная**, основанная на обнаружении взаимосвязей и закономерностей в данных + +## Другие смежные области + +Поскольку данные повсеместны, наука о данных также является широкой областью, затрагивающей многие другие дисциплины. + +## Типы данных + +Как мы уже упоминали, данные повсюду. Нам просто нужно правильно их зафиксировать! Полезно различать **структурированные** и **неструктурированные** данные. Первые обычно представлены в хорошо организованной форме, часто в виде таблицы или нескольких таблиц, тогда как вторые — это просто набор файлов. Иногда также можно говорить о **полуструктурированных** данных, которые имеют некоторую структуру, но она может значительно варьироваться. + +| Структурированные | Полуструктурированные | Неструктурированные | +| ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------- | +| Список людей с их номерами телефонов | Страницы Википедии с ссылками | Текст Энциклопедии Британника | +| Температура во всех комнатах здания каждую минуту за последние 20 лет | Коллекция научных статей в формате JSON с авторами, датой публикации и аннотацией | Файловое хранилище с корпоративными документами | +| Данные о возрасте и поле всех людей, входящих в здание | Интернет-страницы | Сырой видеопоток с камеры наблюдения | + +## Где взять данные + +Существует множество возможных источников данных, и перечислить их все невозможно! Однако давайте упомянем некоторые типичные места, где можно получить данные: + +* **Структурированные** + - **Интернет вещей** (IoT), включая данные с различных датчиков, таких как датчики температуры или давления, предоставляет множество полезных данных. Например, если офисное здание оснащено IoT-датчиками, можно автоматически управлять отоплением и освещением для минимизации затрат. + - **Опросы**, которые мы просим пользователей заполнить после покупки или посещения сайта. + - **Анализ поведения** может, например, помочь понять, насколько глубоко пользователь изучает сайт и что обычно заставляет его покинуть сайт. +* **Неструктурированные** + - **Тексты** могут быть богатым источником инсайтов, таких как общий **оценочный тон**, или извлечение ключевых слов и семантического значения. + - **Изображения** или **видео**. Видео с камеры наблюдения может быть использовано для оценки дорожного трафика и информирования людей о возможных пробках. + - **Логи веб-сервера** могут помочь понять, какие страницы сайта посещаются чаще всего и как долго. +* **Полуструктурированные** + - **Графы социальных сетей** могут быть отличным источником данных о личностях пользователей и их потенциальной эффективности в распространении информации. + - Если у нас есть множество фотографий с вечеринки, мы можем попытаться извлечь данные о **групповой динамике**, построив граф людей, фотографирующихся вместе. + +Зная о различных возможных источниках данных, вы можете подумать о различных сценариях, где методы науки о данных могут быть применены для лучшего понимания ситуации и улучшения бизнес-процессов. + +## Что можно делать с данными + +В науке о данных мы сосредотачиваемся на следующих этапах работы с данными: + +Конечно, в зависимости от конкретных данных некоторые этапы могут отсутствовать (например, если данные уже находятся в базе данных или если обучение модели не требуется), а некоторые этапы могут повторяться несколько раз (например, обработка данных). + +## Цифровизация и цифровая трансформация + +В последнее десятилетие многие компании начали осознавать важность данных при принятии бизнес-решений. Чтобы применять принципы науки о данных в бизнесе, сначала нужно собрать данные, то есть перевести бизнес-процессы в цифровую форму. Это называется **цифровизацией**. Применение методов науки о данных к этим данным для принятия решений может привести к значительному росту производительности (или даже к изменению бизнес-модели), что называется **цифровой трансформацией**. + +Рассмотрим пример. Допустим, у нас есть курс по науке о данных (например, этот), который мы проводим онлайн для студентов, и мы хотим использовать науку о данных для его улучшения. Как это можно сделать? + +Мы можем начать с вопроса: "Что можно оцифровать?" Самый простой способ — измерить время, которое требуется каждому студенту для завершения каждого модуля, и оценить полученные знания, предложив тест с выбором ответа в конце каждого модуля. Усреднив время завершения по всем студентам, мы можем выяснить, какие модули вызывают наибольшие трудности, и поработать над их упрощением. +Вы можете возразить, что этот подход не является идеальным, потому что модули могут быть разной длины. Вероятно, было бы справедливее разделить время на длину модуля (в количестве символов) и сравнивать уже эти значения. +Когда мы начинаем анализировать результаты тестов с множественным выбором, мы можем попытаться определить, какие концепции вызывают трудности у студентов, и использовать эту информацию для улучшения содержания. Для этого необходимо разработать тесты таким образом, чтобы каждый вопрос соответствовал определенной концепции или части знаний. + +Если мы хотим усложнить задачу, мы можем сопоставить время, затраченное на каждый модуль, с возрастной категорией студентов. Возможно, мы обнаружим, что для некоторых возрастных категорий выполнение модуля занимает неоправданно много времени или что студенты бросают его, не завершив. Это может помочь нам дать возрастные рекомендации для модуля и минимизировать неудовлетворенность людей из-за неверных ожиданий. + +## 🚀 Задача + +В этом задании мы попробуем найти концепции, связанные с областью Data Science, анализируя тексты. Мы возьмем статью из Википедии о Data Science, загрузим и обработаем текст, а затем создадим облако слов, похожее на это: + +![Облако слов для Data Science](../../../../translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ru.png) + +Посетите [`notebook.ipynb`](../../../../../../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore'), чтобы ознакомиться с кодом. Вы также можете запустить код и увидеть, как он выполняет все преобразования данных в реальном времени. + +> Если вы не знаете, как запускать код в Jupyter Notebook, ознакомьтесь с [этой статьей](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/1) + +## Задания + +* **Задача 1**: Измените приведенный выше код, чтобы найти связанные концепции для областей **Big Data** и **Machine Learning**. +* **Задача 2**: [Подумайте о сценариях Data Science](assignment.md) + +## Благодарности + +Этот урок был создан с ♥️ [Дмитрием Сошниковым](http://soshnikov.com) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/01-defining-data-science/assignment.md b/translations/ru/1-Introduction/01-defining-data-science/assignment.md new file mode 100644 index 00000000..4d406660 --- /dev/null +++ b/translations/ru/1-Introduction/01-defining-data-science/assignment.md @@ -0,0 +1,46 @@ + +# Задание: Сценарии использования науки о данных + +В этом первом задании мы предлагаем вам подумать о каком-либо реальном процессе или проблеме в различных областях и о том, как вы можете улучшить их с помощью процесса науки о данных. Подумайте о следующем: + +1. Какие данные вы можете собрать? +1. Как вы будете их собирать? +1. Как вы будете хранить данные? Каков вероятный объем данных? +1. Какие выводы вы сможете сделать из этих данных? Какие решения мы сможем принять на основе данных? + +Попробуйте рассмотреть 3 разные проблемы/процессы и опишите каждый из вышеуказанных пунктов для каждой области. + +Вот некоторые области и проблемы, которые могут помочь вам начать размышления: + +1. Как можно использовать данные для улучшения образовательного процесса для детей в школах? +1. Как можно использовать данные для контроля вакцинации во время пандемии? +1. Как можно использовать данные, чтобы убедиться, что вы продуктивны на работе? + +## Инструкции + +Заполните следующую таблицу (при необходимости замените предложенные области своими): + +| Область | Проблема | Какие данные собирать | Как хранить данные | Какие выводы/решения можно сделать | +|---------|----------|------------------------|--------------------|------------------------------------| +| Образование | | | | | +| Вакцинация | | | | | +| Продуктивность | | | | | + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшений +--- | --- | -- | +Удалось определить разумные источники данных, способы их хранения и возможные выводы/решения для всех областей | Некоторые аспекты решения не детализированы, хранение данных не обсуждается, описано как минимум 2 области | Описаны только части решения, рассмотрена только одна область. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/01-defining-data-science/solution/assignment.md b/translations/ru/1-Introduction/01-defining-data-science/solution/assignment.md new file mode 100644 index 00000000..8d8a9095 --- /dev/null +++ b/translations/ru/1-Introduction/01-defining-data-science/solution/assignment.md @@ -0,0 +1,48 @@ + +# Задание: Сценарии использования Data Science + +В этом первом задании мы просим вас подумать о каком-либо реальном процессе или проблеме в различных областях, и о том, как вы можете улучшить их с помощью процесса Data Science. Подумайте о следующем: + +1. Какие данные вы можете собрать? +1. Как вы будете их собирать? +1. Как вы будете хранить данные? Каков вероятный объем данных? +1. Какие выводы вы сможете сделать из этих данных? Какие решения можно будет принять на основе данных? + +Попробуйте рассмотреть 3 разные проблемы/процесса и опишите каждый из вышеуказанных пунктов для каждой области. + +Вот несколько примеров областей и проблем, которые могут помочь вам начать размышления: + +1. Как можно использовать данные для улучшения образовательного процесса для детей в школах? +1. Как можно использовать данные для контроля вакцинации во время пандемии? +1. Как можно использовать данные, чтобы убедиться, что вы продуктивны на работе? + +## Инструкции + +Заполните следующую таблицу (при необходимости замените предложенные области на свои собственные): + +| Область | Проблема | Какие данные собирать | Как хранить данные | Какие выводы/решения можно сделать | +|---------|----------|------------------------|--------------------|------------------------------------| +| Образование | В университете обычно низкая посещаемость лекций, и у нас есть гипотеза, что студенты, которые посещают лекции, в среднем лучше сдают экзамены. Мы хотим стимулировать посещаемость и проверить гипотезу. | Мы можем отслеживать посещаемость с помощью фотографий, сделанных камерой наблюдения в аудитории, или отслеживать bluetooth/wifi-адреса мобильных телефонов студентов в классе. Данные об экзаменах уже доступны в базе данных университета. | Если мы отслеживаем изображения с камер наблюдения, нам нужно хранить несколько (5-10) фотографий во время лекции (неструктурированные данные), а затем использовать ИИ для распознавания лиц студентов (преобразование данных в структурированную форму). | Мы можем вычислить средние данные о посещаемости для каждого студента и посмотреть, есть ли корреляция с оценками за экзамены. Мы подробнее поговорим о корреляции в разделе [вероятности и статистики](../../04-stats-and-probability/README.md). Чтобы стимулировать посещаемость студентов, мы можем публиковать еженедельный рейтинг посещаемости на портале университета и разыгрывать призы среди тех, у кого самая высокая посещаемость. | +| Вакцинация | | | | | +| Продуктивность | | | | | + +> *Мы предоставляем только один пример ответа, чтобы вы могли понять, что ожидается в этом задании.* + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшений +--- | --- | -- | +Удалось определить разумные источники данных, способы их хранения и возможные выводы/решения для всех областей | Некоторые аспекты решения не детализированы, хранение данных не обсуждается, описано как минимум 2 области | Описаны только части решения, рассмотрена только одна область. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/02-ethics/README.md b/translations/ru/1-Introduction/02-ethics/README.md new file mode 100644 index 00000000..8804914a --- /dev/null +++ b/translations/ru/1-Introduction/02-ethics/README.md @@ -0,0 +1,265 @@ + +# Введение в этику данных + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/02-Ethics.png)| +|:---:| +| Этика в науке о данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +--- + +Мы все являемся гражданами мира данных, живущими в эпоху цифровизации. + +Рыночные тенденции показывают, что к 2022 году каждая третья крупная организация будет покупать и продавать свои данные через онлайн-[площадки и биржи](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/). Как **разработчики приложений**, мы обнаружим, что интеграция аналитики, основанной на данных, и автоматизации, управляемой алгоритмами, в повседневный пользовательский опыт станет проще и дешевле. Однако с распространением ИИ нам также придется понимать потенциальный вред, который может быть вызван [использованием алгоритмов в качестве оружия](https://www.youtube.com/watch?v=TQHs8SA1qpk) в масштабах. + +Тенденции также указывают на то, что к 2025 году мы будем создавать и потреблять более [180 зеттабайт](https://www.statista.com/statistics/871513/worldwide-data-created/) данных. Как **ученые в области данных**, мы получаем беспрецедентный доступ к персональным данным. Это позволяет нам создавать поведенческие профили пользователей и влиять на принятие решений таким образом, чтобы создавать [иллюзию свободного выбора](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice), при этом потенциально направляя пользователей к результатам, которые мы предпочитаем. Это также поднимает более широкие вопросы о конфиденциальности данных и защите пользователей. + +Этика данных становится _необходимыми ограничителями_ для науки о данных и инженерии, помогая минимизировать потенциальный вред и непреднамеренные последствия наших действий, основанных на данных. [Цикл ажиотажа Гартнера для ИИ](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) выделяет важные тенденции в области цифровой этики, ответственного ИИ и управления ИИ как ключевые драйверы для более крупных мегатрендов, связанных с _демократизацией_ и _индустриализацией_ ИИ. + +![Цикл ажиотажа Гартнера для ИИ - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +В этом уроке мы исследуем увлекательную область этики данных - от основных концепций и вызовов до примеров из практики и прикладных концепций ИИ, таких как управление, которые помогают создать культуру этики в командах и организациях, работающих с данными и ИИ. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/2) 🎯 + +## Основные определения + +Начнем с понимания базовой терминологии. + +Слово "этика" происходит от [греческого слова "ethikos"](https://en.wikipedia.org/wiki/Ethics) (и его корня "ethos"), что означает _характер или моральная природа_. + +**Этика** касается общих ценностей и моральных принципов, которые регулируют наше поведение в обществе. Этика основывается не на законах, а на широко принятых нормах того, что является "правильным или неправильным". Однако этические соображения могут влиять на корпоративное управление и государственное регулирование, создавая больше стимулов для соблюдения. + +**Этика данных** - это [новая ветвь этики](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1), которая "изучает и оценивает моральные проблемы, связанные с _данными, алгоритмами и соответствующими практиками_". Здесь **"данные"** сосредоточены на действиях, связанных с созданием, записью, курированием, обработкой, распространением, обменом и использованием; **"алгоритмы"** - на ИИ, агентах, машинном обучении и роботах; а **"практики"** - на таких темах, как ответственное новаторство, программирование, хакерство и кодексы этики. + +**Прикладная этика** - это [практическое применение моральных соображений](https://en.wikipedia.org/wiki/Applied_ethics). Это процесс активного изучения этических вопросов в контексте _реальных действий, продуктов и процессов_ и принятия корректирующих мер, чтобы они оставались в соответствии с нашими определенными этическими ценностями. + +**Культура этики** касается [_операционализации_ прикладной этики](https://hbr.org/2019/05/how-to-design-an-ethical-organization), чтобы гарантировать, что наши этические принципы и практики последовательно и масштабируемо внедряются по всей организации. Успешные культуры этики определяют этические принципы на уровне всей организации, предоставляют значимые стимулы для соблюдения и укрепляют нормы этики, поощряя и усиливая желаемое поведение на каждом уровне организации. + +## Концепции этики + +В этом разделе мы обсудим такие концепции, как **общие ценности** (принципы) и **этические вызовы** (проблемы) в области этики данных, а также рассмотрим **примеры из практики**, которые помогут вам понять эти концепции в реальных контекстах. + +### 1. Принципы этики + +Любая стратегия этики данных начинается с определения _этических принципов_ - "общих ценностей", которые описывают приемлемое поведение и направляют действия, соответствующие требованиям, в наших проектах, связанных с данными и ИИ. Вы можете определить их на индивидуальном или командном уровне. Однако большинство крупных организаций формулируют их в виде миссии или рамочной программы _этического ИИ_, которая определяется на корпоративном уровне и последовательно внедряется во всех командах. + +**Пример:** Миссия [Ответственного ИИ](https://www.microsoft.com/en-us/ai/responsible-ai) компании Microsoft гласит: _"Мы привержены развитию ИИ, основанного на этических принципах, которые ставят людей на первое место"_ - выделяя 6 этических принципов в следующей рамочной программе: + +![Ответственный ИИ в Microsoft](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +Давайте кратко рассмотрим эти принципы. _Прозрачность_ и _ответственность_ являются основополагающими ценностями, на которых строятся другие принципы, поэтому начнем с них: + +* [**Ответственность**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) делает практиков _ответственными_ за их действия с данными и ИИ, а также за соблюдение этих этических принципов. +* [**Прозрачность**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) гарантирует, что действия с данными и ИИ _понятны_ (интерпретируемы) пользователям, объясняя, что и почему было сделано. +* [**Справедливость**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - сосредоточена на обеспечении того, чтобы ИИ относился _ко всем людям_ справедливо, устраняя любые системные или скрытые социально-технические предвзятости в данных и системах. +* [**Надежность и безопасность**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - гарантирует, что ИИ ведет себя _последовательно_ с определенными ценностями, минимизируя потенциальный вред или непреднамеренные последствия. +* [**Конфиденциальность и безопасность**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - касается понимания происхождения данных и предоставления _конфиденциальности данных и связанных с этим защит_ пользователям. +* [**Инклюзивность**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - касается проектирования решений ИИ с намерением адаптировать их для удовлетворения _широкого спектра человеческих потребностей_ и возможностей. + +> 🚨 Подумайте, какой могла бы быть ваша миссия в области этики данных. Изучите рамочные программы этического ИИ других организаций - вот примеры от [IBM](https://www.ibm.com/cloud/learn/ai-ethics), [Google](https://ai.google/principles) и [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/). Какие общие ценности у них есть? Как эти принципы соотносятся с продуктами ИИ или отраслью, в которой они работают? + +### 2. Этические вызовы + +После того как мы определили этические принципы, следующий шаг - оценить наши действия с данными и ИИ, чтобы убедиться, что они соответствуют этим общим ценностям. Подумайте о своих действиях в двух категориях: _сбор данных_ и _разработка алгоритмов_. + +При сборе данных действия, скорее всего, будут включать **персональные данные** или персонально идентифицируемую информацию (PII) для идентифицируемых живых лиц. Это включает [разнообразные элементы неперсональных данных](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en), которые _в совокупности_ идентифицируют человека. Этические вызовы могут быть связаны с _конфиденциальностью данных_, _правами собственности на данные_ и такими темами, как _осознанное согласие_ и _права интеллектуальной собственности_ пользователей. + +При разработке алгоритмов действия будут включать сбор и курирование **наборов данных**, а затем их использование для обучения и развертывания **моделей данных**, которые прогнозируют результаты или автоматизируют решения в реальных контекстах. Этические вызовы могут возникать из-за _предвзятости наборов данных_, проблем с _качеством данных_, _несправедливости_ и _искажений_ в алгоритмах, включая некоторые системные проблемы. + +В обоих случаях этические вызовы подчеркивают области, где наши действия могут вступать в конфликт с нашими общими ценностями. Чтобы обнаружить, смягчить, минимизировать или устранить эти проблемы, нам нужно задавать моральные вопросы "да/нет", связанные с нашими действиями, а затем принимать корректирующие меры по мере необходимости. Давайте рассмотрим некоторые этические вызовы и моральные вопросы, которые они поднимают: + +#### 2.1 Право собственности на данные + +Сбор данных часто включает персональные данные, которые могут идентифицировать субъектов данных. [Право собственности на данные](https://permission.io/blog/data-ownership) касается _контроля_ и [_прав пользователей_](https://permission.io/blog/data-ownership), связанных с созданием, обработкой и распространением данных. + +Моральные вопросы, которые нужно задать: +* Кто владеет данными? (пользователь или организация) +* Какие права есть у субъектов данных? (например, доступ, удаление, переносимость) +* Какие права есть у организаций? (например, исправление злонамеренных отзывов пользователей) + +#### 2.2 Осознанное согласие + +[Осознанное согласие](https://legaldictionary.net/informed-consent/) определяет акт согласия пользователей на действие (например, сбор данных) с _полным пониманием_ соответствующих фактов, включая цель, потенциальные риски и альтернативы. + +Вопросы для изучения: +* Дал ли пользователь (субъект данных) разрешение на сбор и использование данных? +* Понял ли пользователь цель, для которой были собраны данные? +* Понял ли пользователь потенциальные риски от своего участия? + +#### 2.3 Интеллектуальная собственность + +[Интеллектуальная собственность](https://en.wikipedia.org/wiki/Intellectual_property) относится к нематериальным результатам человеческой инициативы, которые могут _иметь экономическую ценность_ для отдельных лиц или бизнеса. + +Вопросы для изучения: +* Имеют ли собранные данные экономическую ценность для пользователя или бизнеса? +* Есть ли у **пользователя** права интеллектуальной собственности? +* Есть ли у **организации** права интеллектуальной собственности? +* Если такие права существуют, как мы их защищаем? + +#### 2.4 Конфиденциальность данных + +[Конфиденциальность данных](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) или информационная конфиденциальность касается сохранения конфиденциальности пользователей и защиты их идентичности в отношении персонально идентифицируемой информации. + +Вопросы для изучения: +* Защищены ли данные пользователей (персональные) от взломов и утечек? +* Доступны ли данные пользователей только авторизованным пользователям и в соответствующих контекстах? +* Сохраняется ли анонимность пользователей при обмене или распространении данных? +* Можно ли деидентифицировать пользователя из анонимизированных наборов данных? + +#### 2.5 Право быть забытым + +[Право быть забытым](https://en.wikipedia.org/wiki/Right_to_be_forgotten) или [право на удаление](https://www.gdpreu.org/right-to-be-forgotten/) предоставляет пользователям дополнительную защиту персональных данных. В частности, оно дает пользователям право запрашивать удаление или удаление персональных данных из интернет-поисковиков и других мест _при определенных обстоятельствах_, позволяя им начать заново в интернете без учета прошлых действий. + +Вопросы для изучения: +* Позволяет ли система субъектам данных запрашивать удаление? +* Должно ли отозвание согласия пользователя автоматически запускать удаление данных? +* Были ли данные собраны без согласия или незаконным способом? +* Соответствуем ли мы государственным регламентам по защите данных? + +#### 2.6 Предвзятость наборов данных + +Предвзятость наборов данных или [предвзятость при сборе](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) касается выбора _нерепрезентативного_ подмножества данных для разработки алгоритмов, что может создавать потенциальную несправедливость в результатах для различных групп. Типы предвзятости включают предвзятость при отборе или выборке, предвзятость добровольцев и инструментальную предвзятость. + +Вопросы для изучения: +* Привлекли ли мы репрезентативный набор субъектов данных? +* Проверили ли мы наш собранный или курированный набор данных на наличие различных предвзятостей? +* Можем ли мы смягчить или устранить обнаруженные предвзятости? + +#### 2.7 Качество данных + +[Качество данных](https://lakefs.io/data-quality-testing/) оценивает достоверность курированного набора данных, используемого для разработки наших алгоритмов, проверяя, соответствуют ли признаки и записи требованиям к уровню точности и согласованности, необходимым для нашей цели в ИИ. + +Вопросы для изучения: +* Захватили ли мы действительные _признаки_ для нашего случая использования? +* Были ли данные захвачены _последовательно_ из различных источников данных? +* Полон ли набор данных для различных условий или сценариев? +* Точно ли информация отражает реальность? +[Algorithm Fairness](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) проверяет, не приводит ли дизайн алгоритма к систематической дискриминации определенных подгрупп субъектов данных, что может вызывать [потенциальный вред](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) в _распределении_ (когда ресурсы отказываются или удерживаются от этой группы) и _качестве обслуживания_ (когда ИИ менее точен для некоторых подгрупп по сравнению с другими). + +Вопросы для изучения: + * Оценивали ли мы точность модели для различных подгрупп и условий? + * Анализировали ли мы систему на предмет потенциального вреда (например, стереотипов)? + * Можем ли мы пересмотреть данные или переобучить модели, чтобы уменьшить выявленный вред? + +Изучите ресурсы, такие как [AI Fairness checklists](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA), чтобы узнать больше. + +#### 2.9 Искажение данных + +[Искажение данных](https://www.sciencedirect.com/topics/computer-science/misrepresentation) касается вопроса, не передаем ли мы инсайты из честно представленных данных обманным образом, чтобы поддержать желаемый нарратив. + +Вопросы для изучения: + * Сообщаем ли мы неполные или неточные данные? + * Визуализируем ли мы данные таким образом, чтобы они приводили к вводящим в заблуждение выводам? + * Используем ли мы выборочные статистические методы для манипуляции результатами? + * Существуют ли альтернативные объяснения, которые могут предложить другой вывод? + +#### 2.10 Свобода выбора +[Иллюзия свободы выбора](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) возникает, когда "архитектуры выбора" системы используют алгоритмы принятия решений, чтобы подтолкнуть людей к предпочтительному результату, создавая видимость наличия у них опций и контроля. Эти [темные паттерны](https://www.darkpatterns.org/) могут причинять социальный и экономический вред пользователям. Поскольку решения пользователей влияют на профили поведения, эти действия потенциально формируют будущие выборы, которые могут усиливать или расширять воздействие этих вредных последствий. + +Вопросы для изучения: + * Понимал ли пользователь последствия принятия этого выбора? + * Был ли пользователь осведомлен о (альтернативных) вариантах и их плюсах и минусах? + * Может ли пользователь отменить автоматизированный или навязанный выбор позже? + +### 3. Примеры из практики + +Чтобы рассмотреть эти этические вызовы в реальных контекстах, полезно изучить примеры из практики, которые подчеркивают потенциальный вред и последствия для отдельных людей и общества, если такие нарушения этики игнорируются. + +Вот несколько примеров: + +| Этический вызов | Пример из практики | +|--- |--- | +| **Осознанное согласие** | 1972 - [Исследование сифилиса в Таскиги](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - афроамериканским мужчинам, участвовавшим в исследовании, обещали бесплатное медицинское обслуживание, _но обманули_, не сообщив им о диагнозе или доступности лечения. Многие участники умерли, их партнеры и дети пострадали; исследование длилось 40 лет. | +| **Конфиденциальность данных** | 2007 - [Приз Netflix](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) предоставил исследователям _10 миллионов анонимных оценок фильмов от 50 тысяч клиентов_, чтобы улучшить алгоритмы рекомендаций. Однако исследователи смогли сопоставить анонимные данные с персонально идентифицируемыми данными из _внешних наборов данных_ (например, комментарии IMDb), фактически "деанонимизировав" некоторых подписчиков Netflix.| +| **Смещение в сборе данных** | 2013 - Город Бостон [разработал приложение Street Bump](https://www.boston.gov/transportation/street-bump), которое позволяло гражданам сообщать о выбоинах, предоставляя городу лучшие данные о дорогах для выявления и устранения проблем. Однако [люди с низким доходом имели меньший доступ к автомобилям и телефонам](https://hbr.org/2013/04/the-hidden-biases-in-big-data), что делало их дорожные проблемы невидимыми для этого приложения. Разработчики работали с учеными над вопросами _равного доступа и цифрового разрыва_ для обеспечения справедливости. | +| **Справедливость алгоритмов** | 2018 - Исследование MIT [Gender Shades](http://gendershades.org/overview.html) оценило точность продуктов ИИ для классификации пола, выявив пробелы в точности для женщин и цветных людей. [Карта Apple 2019 года](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/), казалось, предлагала меньший кредит женщинам, чем мужчинам. Оба случая иллюстрируют проблемы алгоритмического смещения, приводящие к социально-экономическим последствиям.| +| **Искажение данных** | 2020 - [Департамент здравоохранения Джорджии выпустил графики COVID-19](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening), которые, казалось, вводили граждан в заблуждение относительно тенденций подтвержденных случаев с не хронологическим порядком на оси x. Это иллюстрирует искажение через визуализационные трюки. | +| **Иллюзия свободы выбора** | 2020 - Образовательное приложение [ABCmouse заплатило $10 млн для урегулирования жалобы FTC](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/), где родители были вынуждены платить за подписки, которые они не могли отменить. Это иллюстрирует темные паттерны в архитектурах выбора, где пользователи были подтолкнуты к потенциально вредным решениям. | +| **Конфиденциальность данных и права пользователей** | 2021 - [Утечка данных Facebook](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) раскрыла данные 530 миллионов пользователей, что привело к штрафу в $5 млрд от FTC. Однако компания отказалась уведомить пользователей о нарушении, нарушив их права на прозрачность данных и доступ. | + +Хотите изучить больше примеров из практики? Ознакомьтесь с этими ресурсами: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - этические дилеммы в различных отраслях. +* [Курс по этике в Data Science](https://www.coursera.org/learn/data-science-ethics#syllabus) - изучение знаковых примеров из практики. +* [Где все пошло не так](https://deon.drivendata.org/examples/) - чеклист Deon с примерами. + +> 🚨 Подумайте о примерах из практики, которые вы видели - сталкивались ли вы или были ли затронуты подобным этическим вызовом в своей жизни? Можете ли вы вспомнить хотя бы один другой пример, который иллюстрирует один из этических вызовов, обсуждаемых в этом разделе? + +## Прикладная этика + +Мы обсудили концепции этики, вызовы и примеры из практики в реальных контекстах. Но как начать _применять_ этические принципы и практики в своих проектах? И как _операционализировать_ эти практики для лучшего управления? Давайте изучим некоторые реальные решения: + +### 1. Профессиональные кодексы + +Профессиональные кодексы предлагают один из вариантов для организаций "мотивировать" членов поддерживать их этические принципы и миссию. Кодексы являются _моральными руководствами_ для профессионального поведения, помогая сотрудникам или членам принимать решения, которые соответствуют принципам их организации. Они эффективны только при добровольном соблюдении со стороны членов; однако многие организации предлагают дополнительные награды и штрафы, чтобы стимулировать соблюдение. + +Примеры включают: + + * [Oxford Munich](http://www.code-of-ethics.org/code-of-conduct/) Кодекс этики + * [Data Science Association](http://datascienceassn.org/code-of-conduct.html) Кодекс поведения (создан в 2013 году) + * [ACM Code of Ethics and Professional Conduct](https://www.acm.org/code-of-ethics) (с 1993 года) + +> 🚨 Вы являетесь членом профессиональной инженерной или организации в области Data Science? Изучите их сайт, чтобы узнать, определяют ли они профессиональный кодекс этики. Что он говорит об их этических принципах? Как они "мотивируют" членов следовать кодексу? + +### 2. Чеклисты по этике + +Хотя профессиональные кодексы определяют необходимое _этическое поведение_ для специалистов, они [имеют известные ограничения](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) в обеспечении соблюдения, особенно в крупных проектах. Вместо этого многие эксперты в области Data Science [рекомендуют чеклисты](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md), которые могут **связать принципы с практиками** более детерминированным и действенным образом. + +Чеклисты превращают вопросы в задачи "да/нет", которые можно операционализировать, позволяя отслеживать их как часть стандартных рабочих процессов выпуска продукта. + +Примеры включают: + * [Deon](https://deon.drivendata.org/) - универсальный чеклист по этике данных, созданный на основе [рекомендаций отрасли](https://deon.drivendata.org/#checklist-citations) с инструментом командной строки для легкой интеграции. + * [Чеклист аудита конфиденциальности](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - предоставляет общие рекомендации по практике обработки информации с точки зрения юридической и социальной экспозиции. + * [Чеклист справедливости ИИ](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - созданный практиками ИИ для поддержки внедрения и интеграции проверок справедливости в циклы разработки ИИ. + * [22 вопроса по этике данных и ИИ](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - более открытая структура, предназначенная для первоначального изучения этических вопросов в дизайне, реализации и организационных контекстах. + +### 3. Регулирование этики + +Этика касается определения общих ценностей и добровольного выполнения правильных действий. **Соблюдение** касается _следования закону_, если он определен. **Управление** охватывает все способы, которыми организации работают для обеспечения соблюдения этических принципов и выполнения установленных законов. + +Сегодня управление принимает две формы в рамках организаций. Во-первых, это определение принципов **этического ИИ** и установление практик для операционализации их внедрения во всех проектах, связанных с ИИ, в организации. Во-вторых, это соблюдение всех государственных **регламентов защиты данных**, действующих в регионах, где она работает. + +Примеры регламентов защиты данных и конфиденциальности: + + * `1974`, [US Privacy Act](https://www.justice.gov/opcl/privacy-act-1974) - регулирует сбор, использование и раскрытие личной информации _федеральным правительством_. + * `1996`, [US Health Insurance Portability & Accountability Act (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - защищает персональные медицинские данные. + * `1998`, [US Children's Online Privacy Protection Act (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - защищает конфиденциальность данных детей младше 13 лет. + * `2018`, [Общий регламент защиты данных (GDPR)](https://gdpr-info.eu/) - предоставляет права пользователей, защиту данных и конфиденциальность. + * `2018`, [Закон о конфиденциальности потребителей Калифорнии (CCPA)](https://www.oag.ca.gov/privacy/ccpa) предоставляет потребителям больше _прав_ на их (личные) данные. + * `2021`, Китайский [Закон о защите персональной информации](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) недавно принят, создавая один из самых строгих онлайн-регламентов конфиденциальности данных в мире. + +> 🚨 Европейский Союз определил GDPR (Общий регламент защиты данных), который остается одним из самых влиятельных регламентов конфиденциальности данных сегодня. Знаете ли вы, что он также определяет [8 прав пользователей](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) для защиты цифровой конфиденциальности и персональных данных граждан? Узнайте, что это за права и почему они важны. + +### 4. Культура этики + +Обратите внимание, что существует нематериальный разрыв между _соблюдением_ (выполнением минимальных требований закона) и решением [системных проблем](https://www.coursera.org/learn/data-science-ethics/home/week/4) (таких как закостенелость, асимметрия информации и несправедливость распределения), которые могут ускорить использование ИИ в вредных целях. + +Последнее требует [коллаборативных подходов к определению культуры этики](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f), которые строят эмоциональные связи и последовательные общие ценности _в организациях_ отрасли. Это требует более [формализованных культур этики данных](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) в организациях - позволяя _любому_ [потянуть шнур Андон](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (чтобы поднять этические вопросы на ранних этапах процесса) и делая _этические оценки_ (например, при найме) ключевым критерием формирования команды в проектах ИИ. + +--- +## [Викторина после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/3) 🎯 +## Обзор и самостоятельное изучение + +Курсы и книги помогают понять основные концепции и вызовы этики, а примеры из практики и инструменты помогают применять этические практики в реальных контекстах. Вот несколько ресурсов для начала: + +* [Machine Learning For Beginners](https://github.com/microsoft/ML-For-Beginners/blob/main/1-Introduction/3-fairness/README.md) - урок о справедливости от Microsoft. +* [Принципы ответственного ИИ](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - бесплатный учебный курс от Microsoft Learn. +* [Этика и наука о данных](https://resources.oreilly.com/examples/0636920203964) - электронная книга от O'Reilly (М. Лукидес, Х. Мейсон и др.). +* [Этика в науке о данных](https://www.coursera.org/learn/data-science-ethics#syllabus) - онлайн-курс от Мичиганского университета. +* [Этика в деталях](https://ethicsunwrapped.utexas.edu/case-studies) - кейс-стадии от Техасского университета. + +# Задание + +[Напишите кейс-стадию по этике данных](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/02-ethics/assignment.md b/translations/ru/1-Introduction/02-ethics/assignment.md new file mode 100644 index 00000000..7073d6e5 --- /dev/null +++ b/translations/ru/1-Introduction/02-ethics/assignment.md @@ -0,0 +1,35 @@ + +## Напишите кейс по этике данных + +## Инструкции + +Вы изучили различные [вызовы этики данных](README.md#2-ethics-challenges) и ознакомились с примерами [кейсов](README.md#3-case-studies), отражающих этические проблемы в реальных ситуациях. + +В этом задании вам предстоит написать собственный кейс, отражающий вызов этики данных, основанный на вашем личном опыте или на реальной ситуации, с которой вы знакомы. Просто выполните следующие шаги: + +1. `Выберите вызов этики данных`. Ознакомьтесь с [примерами из урока](README.md#2-ethics-challenges) или изучите онлайн-ресурсы, такие как [Deon Checklist](https://deon.drivendata.org/examples/), чтобы найти вдохновение. + +2. `Опишите реальный пример`. Вспомните ситуацию, о которой вы слышали (новости, исследование и т.д.) или с которой сталкивались (местное сообщество), где произошел этот конкретный вызов. Подумайте о вопросах этики данных, связанных с этим вызовом, и обсудите потенциальные вреды или непреднамеренные последствия, возникающие из-за этой проблемы. Бонус: подумайте о возможных решениях или процессах, которые могут быть применены для устранения или смягчения негативного воздействия этого вызова. + +3. `Предоставьте список связанных ресурсов`. Поделитесь одним или несколькими ресурсами (ссылки на статью, личный блог или изображение, онлайн-исследование и т.д.), чтобы доказать, что это действительно произошло. Бонус: поделитесь ресурсами, которые также демонстрируют потенциальные вреды и последствия инцидента или подчеркивают положительные шаги, предпринятые для предотвращения его повторения. + + + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Один или несколько вызовов этики данных идентифицированы.

Кейс четко описывает реальный инцидент, отражающий этот вызов, и подчеркивает нежелательные последствия или вред, который он вызвал.

Приведен хотя бы один связанный ресурс, подтверждающий, что это произошло. | Один вызов этики данных идентифицирован.

По крайней мере одно соответствующее последствие или вред обсуждается кратко.

Однако обсуждение ограничено или отсутствуют доказательства реального инцидента. | Вызов этики данных идентифицирован.

Однако описание или ресурсы недостаточно отражают вызов или подтверждают его реальное существование. | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/03-defining-data/README.md b/translations/ru/1-Introduction/03-defining-data/README.md new file mode 100644 index 00000000..ddc3d680 --- /dev/null +++ b/translations/ru/1-Introduction/03-defining-data/README.md @@ -0,0 +1,84 @@ + +# Определение данных + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|Определение данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Данные — это факты, информация, наблюдения и измерения, которые используются для открытия новых знаний и поддержки обоснованных решений. Точка данных — это единичная единица данных в наборе данных, который представляет собой коллекцию таких точек. Наборы данных могут быть представлены в различных форматах и структурах, которые обычно зависят от их источника, то есть от того, откуда они поступили. Например, ежемесячный доход компании может быть представлен в виде таблицы, а данные о частоте сердечных сокращений, полученные со смарт-часов, могут быть в формате [JSON](https://stackoverflow.com/a/383699). Для специалистов по данным часто является нормой работать с разными типами данных в рамках одного набора данных. + +Этот урок посвящен определению и классификации данных по их характеристикам и источникам. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/4) +## Как описываются данные + +### Сырые данные +Сырые данные — это данные, поступившие из источника в их первоначальном виде, которые еще не были проанализированы или организованы. Чтобы понять, что происходит с набором данных, его необходимо организовать в формат, который будет понятен как людям, так и технологиям, используемым для дальнейшего анализа. Структура набора данных описывает, как он организован, и может быть классифицирована как структурированная, неструктурированная и полуструктурированная. Эти типы структур зависят от источника, но в конечном итоге укладываются в одну из трех категорий. + +### Количественные данные +Количественные данные — это числовые наблюдения в наборе данных, которые обычно можно анализировать, измерять и использовать математически. Примеры количественных данных: численность населения страны, рост человека или квартальная прибыль компании. С помощью дополнительного анализа количественные данные могут быть использованы для выявления сезонных тенденций индекса качества воздуха (AQI) или оценки вероятности пробок в час пик в обычный рабочий день. + +### Качественные данные +Качественные данные, также известные как категориальные данные, — это данные, которые нельзя измерить объективно, как количественные наблюдения. Это, как правило, различные форматы субъективных данных, которые фиксируют качество чего-либо, например продукта или процесса. Иногда качественные данные могут быть числовыми, но не использоваться в математических расчетах, например, телефонные номера или временные метки. Примеры качественных данных: комментарии к видео, марка и модель автомобиля или любимый цвет ваших близких друзей. Качественные данные могут быть использованы для понимания, какие продукты больше всего нравятся потребителям, или для выявления популярных ключевых слов в резюме соискателей. + +### Структурированные данные +Структурированные данные организованы в виде строк и столбцов, где каждая строка имеет одинаковый набор столбцов. Столбцы представляют собой значения определенного типа и обозначаются именем, описывающим, что представляет это значение, а строки содержат сами значения. Часто на столбцы накладываются определенные правила или ограничения, чтобы гарантировать, что значения точно соответствуют их описанию. Например, представьте таблицу клиентов, где каждая строка должна содержать номер телефона, а номера телефонов не могут содержать буквенные символы. На столбец с номерами телефонов могут быть наложены правила, чтобы он никогда не оставался пустым и содержал только цифры. + +Преимущество структурированных данных заключается в том, что их можно организовать таким образом, чтобы они были связаны с другими структурированными данными. Однако из-за того, что данные организованы строго определенным образом, внесение изменений в их общую структуру может потребовать значительных усилий. Например, добавление столбца с адресами электронной почты в таблицу клиентов, где этот столбец не может быть пустым, потребует решения, как заполнить значения для уже существующих строк. + +Примеры структурированных данных: таблицы, реляционные базы данных, номера телефонов, банковские выписки. + +### Неструктурированные данные +Неструктурированные данные обычно не могут быть организованы в строки и столбцы и не имеют фиксированного формата или набора правил. Из-за меньших ограничений на структуру неструктурированных данных добавление новой информации в них проще по сравнению со структурированными наборами данных. Например, если датчик, измеряющий барометрическое давление каждые 2 минуты, получил обновление, позволяющее ему также измерять температуру, это не потребует изменения существующих данных, если они неструктурированы. Однако анализ или исследование таких данных может занять больше времени. Например, ученый, который хочет найти среднюю температуру за прошлый месяц по данным датчика, может обнаружить, что датчик записал "e" в некоторых данных, чтобы указать на неисправность, вместо типичного числового значения, что делает данные неполными. + +Примеры неструктурированных данных: текстовые файлы, текстовые сообщения, видеофайлы. + +### Полуструктурированные данные +Полуструктурированные данные сочетают в себе черты структурированных и неструктурированных данных. Они обычно не соответствуют формату строк и столбцов, но организованы таким образом, который считается структурированным, и могут следовать фиксированному формату или набору правил. Структура может варьироваться от четко определенной иерархии до более гибкой, позволяющей легко интегрировать новую информацию. Метаданные — это индикаторы, которые помогают определить, как данные организованы и хранятся, и имеют различные названия в зависимости от типа данных. Некоторые распространенные названия для метаданных: теги, элементы, сущности и атрибуты. Например, типичное электронное письмо будет содержать тему, текст и список получателей и может быть организовано по отправителю или времени отправки. + +Примеры полуструктурированных данных: HTML, файлы CSV, JavaScript Object Notation (JSON). + +## Источники данных + +Источник данных — это начальное место, где данные были сгенерированы или где они "хранятся", и оно может варьироваться в зависимости от того, как и когда данные были собраны. Данные, сгенерированные их пользователями, называются первичными данными, тогда как вторичные данные поступают из источника, который собирал данные для общего использования. Например, группа ученых, собирающих наблюдения в тропическом лесу, будет считаться первичным источником, а если они решат поделиться этими данными с другими учеными, то для последних это будет вторичный источник. + +Базы данных являются распространенным источником данных и полагаются на системы управления базами данных для их хранения и обслуживания, где пользователи используют команды, называемые запросами, для исследования данных. Файлы как источники данных могут быть аудио-, видеофайлами, изображениями, а также таблицами, такими как Excel. Интернет-источники — это распространенное место для хранения данных, где можно найти как базы данных, так и файлы. Интерфейсы прикладного программирования (API) позволяют программистам создавать способы обмена данными с внешними пользователями через интернет, а процесс веб-скрейпинга извлекает данные с веб-страниц. [Уроки в разделе "Работа с данными"](../../../../../../../../../2-Working-With-Data) посвящены использованию различных источников данных. + +## Заключение + +В этом уроке мы узнали: + +- Что такое данные +- Как описываются данные +- Как классифицируются и категоризируются данные +- Где можно найти данные + +## 🚀 Задание + +Kaggle — отличный источник открытых наборов данных. Используйте [инструмент поиска наборов данных](https://www.kaggle.com/datasets), чтобы найти несколько интересных наборов данных и классифицировать 3-5 из них по следующим критериям: + +- Являются ли данные количественными или качественными? +- Являются ли данные структурированными, неструктурированными или полуструктурированными? + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/5) + +## Обзор и самостоятельное изучение + +- Этот модуль Microsoft Learn под названием [Классификация данных](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data) подробно описывает структурированные, полуструктурированные и неструктурированные данные. + +## Задание + +[Классификация наборов данных](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/03-defining-data/assignment.md b/translations/ru/1-Introduction/03-defining-data/assignment.md new file mode 100644 index 00000000..59d9ec76 --- /dev/null +++ b/translations/ru/1-Introduction/03-defining-data/assignment.md @@ -0,0 +1,79 @@ + +# Классификация наборов данных + +## Инструкции + +Следуйте указаниям в этом задании, чтобы определить и классифицировать данные по одному из следующих типов: + +**Типы структуры**: Структурированные, Полуструктурированные или Неструктурированные + +**Типы значений**: Качественные или Количественные + +**Типы источников**: Первичные или Вторичные + +1. Компания была приобретена и теперь имеет материнскую компанию. Ученые данных получили таблицу с номерами телефонов клиентов от материнской компании. + +Тип структуры: + +Тип значений: + +Тип источника: + +--- + +2. Умные часы собирали данные о частоте сердечных сокращений своего владельца, и необработанные данные находятся в формате JSON. + +Тип структуры: + +Тип значений: + +Тип источника: + +--- + +3. Опрос на рабочем месте о моральном состоянии сотрудников, который хранится в файле CSV. + +Тип структуры: + +Тип значений: + +Тип источника: + +--- + +4. Астрофизики получают доступ к базе данных галактик, собранной космическим зондом. Данные содержат количество планет в каждой галактике. + +Тип структуры: + +Тип значений: + +Тип источника: + +--- + +5. Приложение для управления личными финансами использует API для подключения к финансовым счетам пользователя, чтобы рассчитать его чистую стоимость. Пользователь может видеть все свои транзакции в формате строк и столбцов, который выглядит как таблица. + +Тип структуры: + +Тип значений: + +Тип источника: + +## Рубрика + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Правильно определены все типы структуры, значений и источников | Правильно определены 3 типа структуры, значений и источников | Правильно определены 2 или менее типов структуры, значений и источников | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/04-stats-and-probability/README.md b/translations/ru/1-Introduction/04-stats-and-probability/README.md new file mode 100644 index 00000000..161ee312 --- /dev/null +++ b/translations/ru/1-Introduction/04-stats-and-probability/README.md @@ -0,0 +1,276 @@ + +# Краткое введение в статистику и теорию вероятностей + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| Статистика и теория вероятностей - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Статистика и теория вероятностей — это две тесно связанные области математики, которые имеют большое значение для анализа данных. Можно работать с данными без глубоких знаний математики, но лучше знать хотя бы основные концепции. Здесь мы представим краткое введение, которое поможет вам начать. + +[![Вводное видео](../../../../translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ru.png)](https://youtu.be/Z5Zy85g4Yjw) + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/6) + +## Вероятность и случайные величины + +**Вероятность** — это число от 0 до 1, которое выражает, насколько вероятно наступление **события**. Она определяется как количество положительных исходов (которые приводят к событию), деленное на общее количество исходов, при условии, что все исходы равновероятны. Например, если мы бросаем кубик, вероятность того, что выпадет четное число, равна 3/6 = 0.5. + +Когда мы говорим о событиях, мы используем **случайные величины**. Например, случайная величина, представляющая число, выпавшее при броске кубика, принимает значения от 1 до 6. Множество чисел от 1 до 6 называется **пространством выборки**. Мы можем говорить о вероятности того, что случайная величина примет определенное значение, например P(X=3)=1/6. + +Случайная величина в предыдущем примере называется **дискретной**, потому что ее пространство выборки можно пересчитать, то есть есть отдельные значения, которые можно перечислить. Бывают случаи, когда пространство выборки — это диапазон действительных чисел или весь набор действительных чисел. Такие величины называются **непрерывными**. Хорошим примером является время прибытия автобуса. + +## Распределение вероятностей + +В случае дискретных случайных величин легко описать вероятность каждого события с помощью функции P(X). Для каждого значения *s* из пространства выборки *S* она дает число от 0 до 1, такое, что сумма всех значений P(X=s) для всех событий будет равна 1. + +Наиболее известное дискретное распределение — это **равномерное распределение**, в котором пространство выборки состоит из N элементов с равной вероятностью 1/N для каждого из них. + +Описать распределение вероятностей непрерывной величины, значения которой берутся из некоторого интервала [a,b] или всего множества действительных чисел ℝ, сложнее. Рассмотрим случай времени прибытия автобуса. На самом деле вероятность того, что автобус прибудет точно в определенное время *t*, равна 0! + +> Теперь вы знаете, что события с нулевой вероятностью случаются, и довольно часто! Например, каждый раз, когда прибывает автобус! + +Мы можем говорить только о вероятности того, что величина попадет в заданный интервал значений, например P(t1≤X2). В этом случае распределение вероятностей описывается **функцией плотности вероятности** p(x), такой, что + +![P(t_1\le X1, x2, ..., xn. Мы можем определить **среднее** (или **арифметическое среднее**) значение последовательности традиционным способом как (x1+x2+xn)/n. Если мы увеличим размер выборки (то есть возьмем предел при n→∞), мы получим среднее значение (также называемое **математическим ожиданием**) распределения. Мы будем обозначать ожидание как **E**(x). + +> Можно показать, что для любого дискретного распределения с значениями {x1, x2, ..., xN} и соответствующими вероятностями p1, p2, ..., pN, математическое ожидание будет равно E(X)=x1p1+x2p2+...+xNpN. + +Чтобы определить, насколько значения разбросаны, мы можем вычислить дисперсию σ2 = ∑(xi - μ)2/n, где μ — это среднее значение последовательности. Значение σ называется **стандартным отклонением**, а σ2 — **дисперсией**. + +## Мода, медиана и квартили + +Иногда среднее значение неадекватно представляет "типичное" значение данных. Например, если есть несколько экстремальных значений, которые полностью выходят за рамки, они могут повлиять на среднее. Хорошим показателем является **медиана** — значение, такое, что половина точек данных ниже него, а другая половина — выше. + +Чтобы лучше понять распределение данных, полезно говорить о **квартилях**: + +* Первый квартиль, или Q1, — это значение, такое, что 25% данных ниже него +* Третий квартиль, или Q3, — это значение, такое, что 75% данных ниже него + +Графически мы можем представить связь между медианой и квартилями в диаграмме, называемой **ящик с усами**: + + + +Здесь мы также вычисляем **межквартильный размах** IQR=Q3-Q1 и так называемые **выбросы** — значения, которые лежат за пределами [Q1-1.5*IQR,Q3+1.5*IQR]. + +Для конечного распределения, содержащего небольшое количество возможных значений, хорошим "типичным" значением является то, которое встречается чаще всего, и оно называется **модой**. Это часто применяется к категориальным данным, таким как цвета. Рассмотрим ситуацию, когда у нас есть две группы людей — одни сильно предпочитают красный цвет, а другие — синий. Если мы кодируем цвета числами, среднее значение для любимого цвета будет где-то в спектре оранжево-зеленого, что не отражает реальных предпочтений ни одной из групп. Однако мода будет либо одним из цветов, либо обоими цветами, если количество людей, голосующих за них, одинаково (в этом случае выборка называется **мультимодальной**). + +## Данные из реального мира + +Когда мы анализируем данные из реальной жизни, они часто не являются случайными величинами в строгом смысле, то есть мы не проводим эксперименты с неизвестным результатом. Например, рассмотрим команду бейсболистов и их физические данные, такие как рост, вес и возраст. Эти числа не совсем случайны, но мы все равно можем применять те же математические концепции. Например, последовательность весов людей можно рассматривать как последовательность значений, взятых из некоторой случайной величины. Ниже приведена последовательность весов реальных бейсболистов из [Major League Baseball](http://mlb.mlb.com/index.jsp), взятая из [этого набора данных](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) (для удобства показаны только первые 20 значений): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **Примечание**: Чтобы увидеть пример работы с этим набором данных, посмотрите [сопутствующий ноутбук](notebook.ipynb). В этом уроке также есть ряд задач, которые вы можете выполнить, добавив немного кода в этот ноутбук. Если вы не уверены, как работать с данными, не переживайте — мы вернемся к работе с данными с использованием Python позже. Если вы не знаете, как запускать код в Jupyter Notebook, ознакомьтесь с [этой статьей](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +Вот диаграмма "ящик с усами", показывающая среднее, медиану и квартили для наших данных: + +![Диаграмма весов](../../../../translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ru.png) + +Поскольку наши данные содержат информацию о разных **ролях** игроков, мы также можем построить диаграмму "ящик с усами" по ролям — это позволит нам понять, как значения параметров различаются в зависимости от ролей. На этот раз мы рассмотрим рост: + +![Диаграмма по ролям](../../../../translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ru.png) + +Эта диаграмма предполагает, что, в среднем, рост игроков первой базы выше, чем рост игроков второй базы. Позже в этом уроке мы узнаем, как можно более формально проверить эту гипотезу и как показать, что наши данные статистически значимы для подтверждения этого. + +> При работе с данными из реального мира мы предполагаем, что все точки данных — это выборки, взятые из некоторого распределения вероятностей. Это предположение позволяет нам применять методы машинного обучения и строить рабочие предсказательные модели. + +Чтобы увидеть, как распределены наши данные, мы можем построить график, называемый **гистограммой**. Ось X будет содержать количество различных интервалов веса (так называемых **корзин**), а вертикальная ось будет показывать количество раз, когда выборка случайной величины попадала в данный интервал. + +![Гистограмма реальных данных](../../../../translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ru.png) + +Из этой гистограммы видно, что все значения сосредоточены вокруг определенного среднего веса, и чем дальше мы отходим от этого веса, тем реже встречаются веса такого значения. То есть вероятность того, что вес бейсболиста будет сильно отличаться от среднего веса, очень мала. Дисперсия весов показывает степень, в которой веса могут отличаться от среднего. + +> Если мы возьмем веса других людей, не из бейсбольной лиги, распределение, вероятно, будет другим. Однако форма распределения останется той же, но среднее и дисперсия изменятся. Таким образом, если мы обучим нашу модель на бейсболистах, она, скорее всего, даст неверные результаты при применении к студентам университета, потому что исходное распределение отличается. + +## Нормальное распределение + +Распределение весов, которое мы видели выше, очень типично, и многие измерения из реального мира следуют тому же типу распределения, но с разными средним и дисперсией. Это распределение называется **нормальным распределением**, и оно играет очень важную роль в статистике. + +Использование нормального распределения — это правильный способ генерации случайных весов потенциальных бейсболистов. Как только мы знаем средний вес `mean` и стандартное отклонение `std`, мы можем сгенерировать 1000 выборок веса следующим образом: +```python +samples = np.random.normal(mean,std,1000) +``` + +Если мы построим гистограмму сгенерированных выборок, мы увидим картину, очень похожую на ту, что показана выше. А если мы увеличим количество выборок и количество корзин, мы можем получить изображение нормального распределения, которое будет ближе к идеальному: + +![Нормальное распределение с mean=0 и std.dev=1](../../../../translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ru.png) + +*Нормальное распределение с mean=0 и std.dev=1* + +## Доверительные интервалы + +Когда мы говорим о весах бейсболистов, мы предполагаем, что существует определенная **случайная величина W**, которая соответствует идеальному распределению вероятностей весов всех бейсболистов (так называемой **популяции**). Наша последовательность весов соответствует подмножеству всех бейсболистов, которое мы называем **выборкой**. Интересный вопрос: можем ли мы узнать параметры распределения W, то есть среднее и дисперсию популяции? + +Самый простой ответ — вычислить среднее и дисперсию нашей выборки. Однако может случиться так, что наша случайная выборка не точно представляет всю популяцию. Поэтому имеет смысл говорить о **доверительном интервале**. +> **Доверительный интервал** — это оценка истинного среднего значения генеральной совокупности на основе нашей выборки, которая является точной с определенной вероятностью (или **уровнем доверия**). +Предположим, у нас есть выборка X1, ..., Xn из нашего распределения. Каждый раз, когда мы берем выборку из распределения, мы получаем разное среднее значение μ. Таким образом, μ можно считать случайной величиной. **Доверительный интервал** с уровнем доверия p — это пара значений (Lp, Rp), таких, что **P**(Lp≤μ≤Rp) = p, то есть вероятность того, что измеренное среднее значение попадет в интервал, равна p. + +Детальное обсуждение того, как рассчитываются такие доверительные интервалы, выходит за рамки нашего краткого введения. Более подробную информацию можно найти [на Википедии](https://en.wikipedia.org/wiki/Confidence_interval). Вкратце, мы определяем распределение вычисленного среднего выборки относительно истинного среднего генеральной совокупности, которое называется **распределением Стьюдента**. + +> **Интересный факт**: Распределение Стьюдента названо в честь математика Уильяма Сили Госета, который опубликовал свою работу под псевдонимом "Student". Он работал на пивоварне Guinness, и, согласно одной из версий, его работодатель не хотел, чтобы широкая общественность знала, что они используют статистические тесты для оценки качества сырья. + +Если мы хотим оценить среднее значение μ нашей генеральной совокупности с уровнем доверия p, нам нужно взять *(1-p)/2-й процентиль* распределения Стьюдента A, который можно либо найти в таблицах, либо вычислить с помощью встроенных функций статистического программного обеспечения (например, Python, R и т.д.). Тогда интервал для μ будет задан как X±A*D/√n, где X — полученное среднее выборки, D — стандартное отклонение. + +> **Примечание**: Мы также опускаем обсуждение важной концепции [степеней свободы](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)), которая имеет значение в контексте распределения Стьюдента. Вы можете обратиться к более полным книгам по статистике, чтобы глубже понять эту концепцию. + +Пример расчета доверительного интервала для веса и роста приведен в [сопроводительных ноутбуках](notebook.ipynb). + +| p | Средний вес | +|------|-------------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +Обратите внимание, что чем выше вероятность доверия, тем шире доверительный интервал. + +## Проверка гипотез + +В нашем наборе данных о бейсболистах есть разные роли игроков, которые можно обобщить следующим образом (см. [сопроводительный ноутбук](notebook.ipynb), чтобы узнать, как можно рассчитать эту таблицу): + +| Роль | Рост | Вес | Количество | +|-------------------|------------|------------|------------| +| Ловец | 72.723684 | 204.328947 | 76 | +| Назначенный бьющий | 74.222222 | 220.888889 | 18 | +| Первый базовый | 74.000000 | 213.109091 | 55 | +| Аутфилдер | 73.010309 | 199.113402 | 194 | +| Релив-питчер | 74.374603 | 203.517460 | 315 | +| Второй базовый | 71.362069 | 184.344828 | 58 | +| Шортстоп | 71.903846 | 182.923077 | 52 | +| Стартовый питчер | 74.719457 | 205.163636 | 221 | +| Третий базовый | 73.044444 | 200.955556 | 45 | + +Мы можем заметить, что средний рост первых базовых выше, чем у вторых базовых. Таким образом, мы можем прийти к выводу, что **первые базовые выше вторых базовых**. + +> Это утверждение называется **гипотезой**, потому что мы не знаем, является ли этот факт действительно верным. + +Однако не всегда очевидно, можем ли мы сделать такой вывод. Из обсуждения выше мы знаем, что каждое среднее значение имеет связанный с ним доверительный интервал, и эта разница может быть просто статистической ошибкой. Нам нужен более формальный способ проверки гипотезы. + +Давайте вычислим доверительные интервалы отдельно для роста первых и вторых базовых: + +| Уровень доверия | Первые базовые | Вторые базовые | +|------------------|----------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +Мы видим, что при любом уровне доверия интервалы не пересекаются. Это доказывает нашу гипотезу, что первые базовые выше вторых базовых. + +Более формально, проблема, которую мы решаем, заключается в том, чтобы определить, являются ли **два распределения одинаковыми**, или хотя бы имеют одинаковые параметры. В зависимости от распределения, для этого нужно использовать разные тесты. Если мы знаем, что наши распределения нормальные, мы можем применить **[t-тест Стьюдента](https://en.wikipedia.org/wiki/Student%27s_t-test)**. + +В t-тесте Стьюдента мы вычисляем так называемое **t-значение**, которое указывает на разницу между средними значениями, учитывая дисперсию. Показано, что t-значение следует **распределению Стьюдента**, что позволяет нам получить пороговое значение для заданного уровня доверия **p** (это можно вычислить или найти в числовых таблицах). Затем мы сравниваем t-значение с этим порогом, чтобы подтвердить или отклонить гипотезу. + +В Python мы можем использовать пакет **SciPy**, который включает функцию `ttest_ind` (в дополнение ко многим другим полезным статистическим функциям!). Она вычисляет t-значение за нас, а также выполняет обратный поиск p-значения доверия, чтобы мы могли просто посмотреть на уровень доверия и сделать вывод. + +Например, наше сравнение роста первых и вторых базовых дает следующие результаты: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +В нашем случае p-значение очень низкое, что означает, что есть сильные доказательства в пользу того, что первые базовые выше. + +Существуют также другие типы гипотез, которые мы можем захотеть проверить, например: +* Доказать, что данная выборка следует некоторому распределению. В нашем случае мы предположили, что рост распределен нормально, но это требует формальной статистической проверки. +* Доказать, что среднее значение выборки соответствует некоторому заданному значению. +* Сравнить средние значения нескольких выборок (например, различия в уровнях счастья среди разных возрастных групп). + +## Закон больших чисел и центральная предельная теорема + +Одна из причин, почему нормальное распределение так важно, — это так называемая **центральная предельная теорема**. Предположим, у нас есть большая выборка из независимых N значений X1, ..., XN, взятых из любого распределения с средним μ и дисперсией σ2. Тогда, при достаточно большом N (другими словами, когда N→∞), среднее ΣiXi будет нормально распределено, с средним μ и дисперсией σ2/N. + +> Другой способ интерпретировать центральную предельную теорему — это сказать, что независимо от распределения, при вычислении среднего суммы любых значений случайной величины вы получаете нормальное распределение. + +Из центральной предельной теоремы также следует, что, когда N→∞, вероятность того, что среднее выборки будет равно μ, становится равной 1. Это известно как **закон больших чисел**. + +## Ковариация и корреляция + +Одной из задач Data Science является поиск связей между данными. Мы говорим, что две последовательности **коррелируют**, когда они демонстрируют схожее поведение одновременно, то есть либо одновременно растут/падают, либо одна последовательность растет, когда другая падает, и наоборот. Другими словами, между двумя последовательностями, кажется, есть какая-то связь. + +> Корреляция не обязательно указывает на причинно-следственную связь между двумя последовательностями; иногда обе переменные могут зависеть от какой-то внешней причины, или это может быть чисто случайным совпадением, что две последовательности коррелируют. Однако сильная математическая корреляция — хороший признак того, что две переменные как-то связаны. + +Математически основным понятием, показывающим связь между двумя случайными величинами, является **ковариация**, которая вычисляется следующим образом: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]. Мы вычисляем отклонение обеих переменных от их средних значений, а затем произведение этих отклонений. Если обе переменные отклоняются вместе, произведение всегда будет положительным значением, которое добавится к положительной ковариации. Если обе переменные отклоняются несинхронно (то есть одна падает ниже среднего, когда другая растет выше среднего), мы всегда получим отрицательные числа, которые добавятся к отрицательной ковариации. Если отклонения не зависят друг от друга, они будут примерно равны нулю. + +Абсолютное значение ковариации не говорит нам много о том, насколько велика корреляция, потому что оно зависит от величины фактических значений. Чтобы нормализовать его, мы можем разделить ковариацию на стандартное отклонение обеих переменных, чтобы получить **корреляцию**. Хорошо то, что корреляция всегда находится в диапазоне [-1,1], где 1 указывает на сильную положительную корреляцию между значениями, -1 — на сильную отрицательную корреляцию, а 0 — на отсутствие корреляции (переменные независимы). + +**Пример**: Мы можем вычислить корреляцию между весом и ростом бейсболистов из упомянутого выше набора данных: +```python +print(np.corrcoef(weights,heights)) +``` +В результате мы получаем **матрицу корреляции**, подобную этой: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> Матрица корреляции C может быть вычислена для любого количества входных последовательностей S1, ..., Sn. Значение Cij — это корреляция между Si и Sj, а диагональные элементы всегда равны 1 (что также является самокорреляцией Si). + +В нашем случае значение 0.53 указывает на то, что существует некоторая корреляция между весом и ростом человека. Мы также можем построить диаграмму рассеяния одного значения относительно другого, чтобы визуально увидеть связь: + +![Связь между весом и ростом](../../../../translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ru.png) + +> Больше примеров корреляции и ковариации можно найти в [сопроводительном ноутбуке](notebook.ipynb). + +## Заключение + +В этом разделе мы узнали: + +* основные статистические свойства данных, такие как среднее, дисперсия, мода и квартили +* различные распределения случайных величин, включая нормальное распределение +* как найти корреляцию между различными свойствами +* как использовать математический и статистический аппарат для доказательства гипотез +* как вычислять доверительные интервалы для случайной величины на основе выборки данных + +Хотя это, безусловно, не исчерпывающий список тем, существующих в рамках теории вероятностей и статистики, он должен быть достаточным для хорошего старта в этом курсе. + +## 🚀 Задание + +Используйте пример кода в ноутбуке, чтобы проверить другие гипотезы: +1. Первые базовые старше вторых базовых +2. Первые базовые выше третьих базовых +3. Шортстопы выше вторых базовых + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/7) + +## Обзор и самостоятельное изучение + +Теория вероятностей и статистика — это настолько обширная тема, что она заслуживает отдельного курса. Если вы хотите углубиться в теорию, вам могут быть интересны следующие книги: + +1. [Карлос Фернандес-Гранда](https://cims.nyu.edu/~cfgranda/) из Нью-Йоркского университета подготовил отличные лекционные материалы [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (доступны онлайн). +1. [Питер и Эндрю Брюс. Практическая статистика для специалистов по данным.](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[пример кода на R](https://github.com/andrewgbruce/statistics-for-data-scientists)]. +1. [Джеймс Д. Миллер. Статистика для специалистов по данным](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[пример кода на R](https://github.com/PacktPublishing/Statistics-for-Data-Science)]. + +## Задание + +[Малое исследование диабета](assignment.md) + +## Благодарности + +Этот урок был создан с ♥️ [Дмитрием Сошниковым](http://soshnikov.com). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/04-stats-and-probability/assignment.md b/translations/ru/1-Introduction/04-stats-and-probability/assignment.md new file mode 100644 index 00000000..3c05ceed --- /dev/null +++ b/translations/ru/1-Introduction/04-stats-and-probability/assignment.md @@ -0,0 +1,40 @@ + +# Небольшое исследование диабета + +В этом задании мы будем работать с небольшим набором данных пациентов с диабетом, взятых [здесь](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html). + +| | ВОЗРАСТ | ПОЛ | ИМТ | АД | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|---------|-----|-----|----|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2 | 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | + +## Инструкции + +* Откройте [ноутбук задания](assignment.ipynb) в среде jupyter notebook +* Выполните все задачи, указанные в ноутбуке, а именно: + * [ ] Вычислите средние значения и дисперсию для всех переменных + * [ ] Постройте boxplot для ИМТ, АД и Y в зависимости от пола + * [ ] Как распределены переменные Возраст, Пол, ИМТ и Y? + * [ ] Проверьте корреляцию между различными переменными и прогрессией заболевания (Y) + * [ ] Проверьте гипотезу о том, что степень прогрессии диабета различается между мужчинами и женщинами + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Все задачи выполнены, графически проиллюстрированы и объяснены | Большинство задач выполнено, отсутствуют объяснения или выводы из графиков и/или полученных значений | Выполнены только базовые задачи, такие как вычисление среднего/дисперсии и построение простых графиков, выводы из данных не сделаны + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/1-Introduction/README.md b/translations/ru/1-Introduction/README.md new file mode 100644 index 00000000..ae0ab0bd --- /dev/null +++ b/translations/ru/1-Introduction/README.md @@ -0,0 +1,31 @@ + +# Введение в науку о данных + +![данные в действии](../../../translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ru.jpg) +> Фото сделано Стивеном Доусоном на Unsplash + +В этих уроках вы узнаете, как определяется наука о данных, а также познакомитесь с этическими аспектами, которые должен учитывать специалист по данным. Вы также узнаете, что такое данные, и получите общее представление о статистике и теории вероятностей — ключевых академических областях науки о данных. + +### Темы + +1. [Определение науки о данных](01-defining-data-science/README.md) +2. [Этика в науке о данных](02-ethics/README.md) +3. [Определение данных](03-defining-data/README.md) +4. [Введение в статистику и теорию вероятностей](04-stats-and-probability/README.md) + +### Авторы + +Эти уроки были написаны с ❤️ [Нитьей Нарасимхан](https://twitter.com/nitya) и [Дмитрием Сошниковым](https://twitter.com/shwars). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/05-relational-databases/README.md b/translations/ru/2-Working-With-Data/05-relational-databases/README.md new file mode 100644 index 00000000..855e957d --- /dev/null +++ b/translations/ru/2-Working-With-Data/05-relational-databases/README.md @@ -0,0 +1,195 @@ + +# Работа с данными: реляционные базы данных + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/05-RelationalData.png)| +|:---:| +| Работа с данными: реляционные базы данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Скорее всего, вы уже использовали электронные таблицы для хранения информации. У вас был набор строк и столбцов, где строки содержали информацию (или данные), а столбцы описывали эту информацию (иногда называемую метаданными). Реляционная база данных основана на этом базовом принципе столбцов и строк в таблицах, позволяя распределять информацию между несколькими таблицами. Это дает возможность работать с более сложными данными, избегать дублирования и иметь гибкость в исследовании данных. Давайте изучим концепции реляционной базы данных. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/8) + +## Все начинается с таблиц + +В основе реляционной базы данных лежат таблицы. Как и в случае с электронными таблицами, таблица представляет собой набор столбцов и строк. Строка содержит данные или информацию, с которой мы хотим работать, например, название города или количество осадков. Столбцы описывают данные, которые они хранят. + +Начнем наше исследование, создав таблицу для хранения информации о городах. Мы можем начать с их названия и страны. Это можно сохранить в таблице следующим образом: + +| Город | Страна | +| -------- | ------------- | +| Токио | Япония | +| Атланта | США | +| Окленд | Новая Зеландия| + +Обратите внимание, что названия столбцов **город**, **страна** и **население** описывают хранимые данные, а каждая строка содержит информацию об одном городе. + +## Недостатки подхода с одной таблицей + +Скорее всего, приведенная выше таблица кажется вам довольно знакомой. Давайте добавим дополнительные данные в нашу растущую базу данных — годовое количество осадков (в миллиметрах). Мы сосредоточимся на годах 2018, 2019 и 2020. Если мы добавим данные для Токио, это может выглядеть следующим образом: + +| Город | Страна | Год | Количество | +| ------ | ------ | ---- | ---------- | +| Токио | Япония | 2020 | 1690 | +| Токио | Япония | 2019 | 1874 | +| Токио | Япония | 2018 | 1445 | + +Что вы замечаете в нашей таблице? Вы можете заметить, что мы повторяем название и страну города снова и снова. Это может занимать довольно много места и в основном является ненужным. В конце концов, у Токио есть только одно название, которое нас интересует. + +Хорошо, давайте попробуем другой подход. Добавим новые столбцы для каждого года: + +| Город | Страна | 2018 | 2019 | 2020 | +| -------- | ------------- | ---- | ---- | ---- | +| Токио | Япония | 1445 | 1874 | 1690 | +| Атланта | США | 1779 | 1111 | 1683 | +| Окленд | Новая Зеландия| 1386 | 942 | 1176 | + +Хотя это позволяет избежать дублирования строк, возникают другие проблемы. Нам придется изменять структуру таблицы каждый раз, когда появляется новый год. Кроме того, по мере роста данных использование годов в качестве столбцов усложнит извлечение и вычисление значений. + +Именно поэтому нам нужны несколько таблиц и отношения между ними. Разделяя данные, мы можем избежать дублирования и получить больше гибкости в работе с ними. + +## Концепция отношений + +Вернемся к нашим данным и определим, как мы хотим их разделить. Мы знаем, что хотим хранить название и страну для наших городов, поэтому это, вероятно, лучше всего подойдет для одной таблицы. + +| Город | Страна | +| -------- | ------------- | +| Токио | Япония | +| Атланта | США | +| Окленд | Новая Зеландия| + +Но прежде чем создавать следующую таблицу, нам нужно понять, как ссылаться на каждый город. Нам нужен какой-то идентификатор, ID или (в технических терминах базы данных) первичный ключ. Первичный ключ — это значение, используемое для идентификации одной конкретной строки в таблице. Хотя это может быть основано на самом значении (например, мы могли бы использовать название города), оно почти всегда должно быть числом или другим идентификатором. Мы не хотим, чтобы идентификатор когда-либо изменялся, так как это нарушит связь. В большинстве случаев первичный ключ или идентификатор будет автоматически сгенерированным числом. + +> ✅ Первичный ключ часто сокращается как PK + +### города + +| city_id | Город | Страна | +| ------- | -------- | ------------- | +| 1 | Токио | Япония | +| 2 | Атланта | США | +| 3 | Окленд | Новая Зеландия| + +> ✅ Вы заметите, что мы используем термины "id" и "первичный ключ" взаимозаменяемо в течение этого урока. Эти концепции применимы к DataFrames, которые вы изучите позже. DataFrames не используют терминологию "первичный ключ", однако вы заметите, что они ведут себя аналогично. + +Создав таблицу городов, давайте сохраним данные о количестве осадков. Вместо того чтобы дублировать полную информацию о городе, мы можем использовать идентификатор. Мы также должны убедиться, что вновь созданная таблица имеет столбец *id*, так как все таблицы должны иметь идентификатор или первичный ключ. + +### осадки + +| rainfall_id | city_id | Год | Количество | +| ----------- | ------- | ---- | ---------- | +| 1 | 1 | 2018 | 1445 | +| 2 | 1 | 2019 | 1874 | +| 3 | 1 | 2020 | 1690 | +| 4 | 2 | 2018 | 1779 | +| 5 | 2 | 2019 | 1111 | +| 6 | 2 | 2020 | 1683 | +| 7 | 3 | 2018 | 1386 | +| 8 | 3 | 2019 | 942 | +| 9 | 3 | 2020 | 1176 | + +Обратите внимание на столбец **city_id** в новой таблице **осадки**. Этот столбец содержит значения, которые ссылаются на идентификаторы в таблице **города**. В технических терминах реляционных данных это называется **внешним ключом**; это первичный ключ из другой таблицы. Вы можете просто думать о нем как о ссылке или указателе. **city_id** 1 ссылается на Токио. + +> [!NOTE] Внешний ключ часто сокращается как FK + +## Извлечение данных + +С разделением данных на две таблицы вы можете задаться вопросом, как их извлечь. Если мы используем реляционную базу данных, такую как MySQL, SQL Server или Oracle, мы можем использовать язык, называемый Structured Query Language или SQL. SQL (иногда произносится как "сиквел") — это стандартный язык, используемый для извлечения и изменения данных в реляционной базе данных. + +Для извлечения данных используется команда `SELECT`. В ее основе вы **выбираете** столбцы, которые хотите увидеть, **из** таблицы, в которой они содержатся. Если вы хотите отобразить только названия городов, вы можете использовать следующий запрос: + +```sql +SELECT city +FROM cities; + +-- Output: +-- Tokyo +-- Atlanta +-- Auckland +``` + +`SELECT` — это место, где вы перечисляете столбцы, а `FROM` — где вы перечисляете таблицы. + +> [NOTE] Синтаксис SQL нечувствителен к регистру, то есть `select` и `SELECT` означают одно и то же. Однако, в зависимости от типа базы данных, которую вы используете, столбцы и таблицы могут быть чувствительны к регистру. Поэтому лучшей практикой является всегда относиться ко всему в программировании как к чувствительному к регистру. При написании SQL-запросов общепринято писать ключевые слова заглавными буквами. + +Приведенный выше запрос отобразит все города. Представьте, что мы хотим отобразить только города в Новой Зеландии. Нам нужен какой-то фильтр. Ключевое слово SQL для этого — `WHERE`, или "где что-то истинно". + +```sql +SELECT city +FROM cities +WHERE country = 'New Zealand'; + +-- Output: +-- Auckland +``` + +## Объединение данных + +До сих пор мы извлекали данные из одной таблицы. Теперь мы хотим объединить данные из таблиц **города** и **осадки**. Это делается путем *объединения* их вместе. Вы фактически создадите связь между двумя таблицами и сопоставите значения из столбца каждой таблицы. + +В нашем примере мы сопоставим столбец **city_id** в таблице **осадки** со столбцом **city_id** в таблице **города**. Это сопоставит значение осадков с соответствующим городом. Тип объединения, который мы будем выполнять, называется *внутренним* объединением, что означает, что если строки не совпадают с чем-либо из другой таблицы, они не будут отображаться. В нашем случае у каждого города есть данные об осадках, поэтому все будет отображено. + +Давайте извлечем данные об осадках за 2019 год для всех наших городов. + +Мы будем делать это поэтапно. Первый шаг — объединить данные, указав столбцы для связи — **city_id**, как было отмечено ранее. + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +``` + +Мы выделили два столбца, которые нам нужны, и указали, что хотим объединить таблицы по **city_id**. Теперь мы можем добавить оператор `WHERE`, чтобы отфильтровать только данные за 2019 год. + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +WHERE rainfall.year = 2019 + +-- Output + +-- city | amount +-- -------- | ------ +-- Tokyo | 1874 +-- Atlanta | 1111 +-- Auckland | 942 +``` + +## Итоги + +Реляционные базы данных сосредоточены на разделении информации между несколькими таблицами, которые затем объединяются для отображения и анализа. Это обеспечивает высокую степень гибкости для выполнения вычислений и других манипуляций с данными. Вы изучили основные концепции реляционной базы данных и то, как выполнять объединение между двумя таблицами. + +## 🚀 Задание + +Существует множество реляционных баз данных, доступных в интернете. Вы можете исследовать данные, используя навыки, которые вы изучили выше. + +## Тест после лекции + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/9) + +## Обзор и самостоятельное изучение + +На [Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum) доступно множество ресурсов для продолжения изучения SQL и концепций реляционных баз данных: + +- [Описание концепций реляционных данных](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) +- [Начало работы с запросами в Transact-SQL](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum) (Transact-SQL — это версия SQL) +- [Контент по SQL на Microsoft Learn](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) + +## Задание + +[Название задания](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/05-relational-databases/assignment.md b/translations/ru/2-Working-With-Data/05-relational-databases/assignment.md new file mode 100644 index 00000000..679c1df2 --- /dev/null +++ b/translations/ru/2-Working-With-Data/05-relational-databases/assignment.md @@ -0,0 +1,73 @@ + +# Отображение данных аэропортов + +Вам предоставлена [база данных](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db), созданная на основе [SQLite](https://sqlite.org/index.html), которая содержит информацию об аэропортах. Схема базы данных представлена ниже. Вы будете использовать [расширение SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) в [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) для отображения информации об аэропортах различных городов. + +## Инструкции + +Чтобы приступить к выполнению задания, вам нужно выполнить несколько шагов. Вам потребуется установить необходимые инструменты и скачать пример базы данных. + +### Настройка системы + +Вы можете использовать Visual Studio Code и расширение SQLite для работы с базой данных. + +1. Перейдите на [code.visualstudio.com](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) и следуйте инструкциям для установки Visual Studio Code +1. Установите [расширение SQLite](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum), следуя инструкциям на странице Marketplace + +### Скачивание и открытие базы данных + +Далее вам нужно скачать и открыть базу данных. + +1. Скачайте [файл базы данных с GitHub](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) и сохраните его в выбранной директории +1. Откройте Visual Studio Code +1. Откройте базу данных в расширении SQLite, выбрав **Ctl-Shift-P** (или **Cmd-Shift-P** на Mac) и введя `SQLite: Open database` +1. Выберите **Choose database from file** и откройте файл **airports.db**, который вы скачали ранее +1. После открытия базы данных (на экране не будет видимых изменений), создайте новое окно для запросов, выбрав **Ctl-Shift-P** (или **Cmd-Shift-P** на Mac) и введя `SQLite: New query` + +После открытия нового окна для запросов вы сможете выполнять SQL-запросы к базе данных. Для выполнения запросов используйте команду **Ctl-Shift-Q** (или **Cmd-Shift-Q** на Mac). + +> [!NOTE] Для получения дополнительной информации о расширении SQLite вы можете ознакомиться с [документацией](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) + +## Схема базы данных + +Схема базы данных — это структура и дизайн её таблиц. База данных **airports** содержит две таблицы: `cities`, которая включает список городов Великобритании и Ирландии, и `airports`, которая содержит список всех аэропортов. Поскольку некоторые города могут иметь несколько аэропортов, были созданы две таблицы для хранения информации. В этом упражнении вы будете использовать соединения (joins) для отображения информации о различных городах. + +| Города | +| ----------------- | +| id (PK, integer) | +| city (text) | +| country (text) | + +| Аэропорты | +| -------------------------------- | +| id (PK, integer) | +| name (text) | +| code (text) | +| city_id (FK к id в **Cities**) | + +## Задание + +Создайте запросы для получения следующей информации: + +1. все названия городов из таблицы `Cities` +1. все города Ирландии из таблицы `Cities` +1. все названия аэропортов с указанием их города и страны +1. все аэропорты в Лондоне, Великобритания + +## Критерии оценки + +| Превосходно | Удовлетворительно | Требует улучшения | +| ----------- | ----------------- | ----------------- | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/06-non-relational/README.md b/translations/ru/2-Working-With-Data/06-non-relational/README.md new file mode 100644 index 00000000..a9fb239e --- /dev/null +++ b/translations/ru/2-Working-With-Data/06-non-relational/README.md @@ -0,0 +1,158 @@ + +# Работа с данными: Нереляционные данные + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/06-NoSQL.png)| +|:---:| +|Работа с NoSQL данными - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/10) + +Данные не ограничиваются реляционными базами данных. Этот урок посвящен нереляционным данным и охватывает основы работы с электронными таблицами и NoSQL. + +## Электронные таблицы + +Электронные таблицы — это популярный способ хранения и анализа данных, так как они требуют минимальной настройки для начала работы. В этом уроке вы узнаете основные компоненты электронной таблицы, а также формулы и функции. Примеры будут иллюстрироваться с использованием Microsoft Excel, но большинство элементов и тем будут иметь схожие названия и шаги в других программах для работы с таблицами. + +![Пустая рабочая книга Microsoft Excel с двумя листами](../../../../translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ru.png) + +Электронная таблица — это файл, доступный в файловой системе компьютера, устройства или облачного хранилища. Программное обеспечение может быть браузерным или приложением, которое нужно установить на компьютер или загрузить как приложение. В Excel такие файлы называются **рабочими книгами**, и этот термин будет использоваться в дальнейшем в уроке. + +Рабочая книга содержит один или несколько **листов**, которые обозначены вкладками. На каждом листе есть прямоугольники, называемые **ячейками**, которые содержат данные. Ячейка — это пересечение строки и столбца, где столбцы обозначены буквами, а строки — числами. Некоторые таблицы содержат заголовки в первых строках, чтобы описать данные в ячейках. + +Используя эти базовые элементы рабочей книги Excel, мы рассмотрим пример из [Microsoft Templates](https://templates.office.com/), связанный с инвентаризацией, чтобы изучить дополнительные элементы таблицы. + +### Управление инвентаризацией + +Файл таблицы под названием "InventoryExample" — это форматированная таблица с элементами инвентаря, содержащая три листа с вкладками "Inventory List", "Inventory Pick List" и "Bin Lookup". Строка 4 на листе Inventory List — это заголовок, который описывает значение каждой ячейки в соответствующем столбце. + +![Выделенная формула из примера списка инвентаря в Microsoft Excel](../../../../translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ru.png) + +Иногда значение ячейки зависит от значений других ячеек. Таблица Inventory List отслеживает стоимость каждого элемента инвентаря, но что, если нам нужно узнать общую стоимость всего инвентаря? [**Формулы**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) выполняют действия с данными ячеек и используются для вычисления стоимости инвентаря в этом примере. В этой таблице используется формула в столбце Inventory Value для вычисления стоимости каждого элемента путем умножения количества (QTY) на стоимость (COST). Дважды щелкнув или выделив ячейку, вы увидите формулу. Формулы начинаются со знака равенства, за которым следует вычисление или операция. + +![Выделенная функция из примера списка инвентаря в Microsoft Excel](../../../../translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ru.png) + +Мы можем использовать другую формулу, чтобы сложить все значения столбца Inventory Value и получить общую стоимость. Это можно сделать, складывая каждую ячейку, но это может быть утомительно. Excel предоставляет [**функции**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89), или предопределенные формулы, для выполнения вычислений. Функции требуют аргументов — значений, необходимых для вычислений. Если функция требует более одного аргумента, их нужно указывать в определенном порядке, иначе результат может быть неверным. В этом примере используется функция SUM, которая суммирует значения столбца Inventory Value и выводит итог в ячейке B3. + +## NoSQL + +NoSQL — это общее название для различных способов хранения нереляционных данных и может интерпретироваться как "не-SQL", "нереляционные" или "не только SQL". Эти системы баз данных можно разделить на 4 типа. + +![Графическое представление хранилища данных типа ключ-значение с 4 уникальными ключами и соответствующими значениями](../../../../translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ru.png) +> Источник: [Блог Michał Białecki](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) + +[Базы данных типа ключ-значение](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) связывают уникальные ключи, которые являются идентификаторами, с соответствующими значениями. Эти пары хранятся с использованием [хэш-таблиц](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) с подходящей хэш-функцией. + +![Графическое представление графовой базы данных, показывающее связи между людьми, их интересами и местоположениями](../../../../translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ru.png) +> Источник: [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) + +[Графовые базы данных](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) описывают отношения между данными и представлены в виде узлов и ребер. Узел представляет сущность, например студента или банковскую выписку. Ребра описывают связь между двумя сущностями. Каждый узел и ребро имеют свойства, которые предоставляют дополнительную информацию. + +![Графическое представление колоночного хранилища данных с базой данных клиентов, содержащей две группы столбцов: Identity и Contact Info](../../../../translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ru.png) + +[Колоночные хранилища данных](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) организуют данные в строки и столбцы, как в реляционной структуре, но каждый столбец разделен на группы, называемые семействами столбцов. Все данные в одном столбце связаны и могут быть извлечены или изменены как единое целое. + +### Документные хранилища данных с Azure Cosmos DB + +[Документные хранилища данных](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) основаны на концепции хранилищ типа ключ-значение и состоят из набора полей и объектов. В этом разделе мы изучим документные базы данных с помощью эмулятора Cosmos DB. + +База данных Cosmos DB соответствует определению "Не только SQL", так как документная база данных Cosmos DB использует SQL для запросов. [Предыдущий урок](../05-relational-databases/README.md) о SQL охватывает основы языка, и мы сможем применить некоторые из тех же запросов к документной базе данных. Мы будем использовать эмулятор Cosmos DB, который позволяет создавать и исследовать документные базы данных локально. Подробнее об эмуляторе можно прочитать [здесь](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21). + +Документ — это набор полей и значений объектов, где поля описывают, что представляет значение объекта. Пример документа приведен ниже. + +```json +{ + "firstname": "Eva", + "age": 44, + "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", + "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", + "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", + "_attachments": "attachments/", + "_ts": 1630544034 +} +``` + +Интересующие нас поля в этом документе: `firstname`, `id` и `age`. Остальные поля с подчеркиваниями были сгенерированы Cosmos DB. + +#### Исследование данных с эмулятором Cosmos DB + +Вы можете скачать и установить эмулятор [для Windows здесь](https://aka.ms/cosmosdb-emulator). Для macOS и Linux ознакомьтесь с [этой документацией](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos). + +Эмулятор открывает окно браузера, где в представлении Explorer можно исследовать документы. + +![Представление Explorer в эмуляторе Cosmos DB](../../../../translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ru.png) + +Если вы следуете за уроком, нажмите "Start with Sample", чтобы создать пример базы данных SampleDB. Если развернуть SampleDB, вы найдете контейнер `Persons`, который содержит коллекцию элементов — документов внутри контейнера. Вы можете исследовать четыре отдельных документа в разделе `Items`. + +![Исследование примерных данных в эмуляторе Cosmos DB](../../../../translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ru.png) + +#### Запрос данных документов с эмулятором Cosmos DB + +Вы также можете выполнять запросы к данным, нажав на кнопку "New SQL Query" (вторая кнопка слева). + +`SELECT * FROM c` возвращает все документы в контейнере. Добавим условие where, чтобы найти всех младше 40 лет. + +`SELECT * FROM c where c.age < 40` + +![Выполнение запроса SELECT в эмуляторе Cosmos DB для поиска документов с возрастом меньше 40](../../../../translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ru.png) + +Запрос возвращает два документа, обратите внимание, что значение поля age в каждом из них меньше 40. + +#### JSON и документы + +Если вы знакомы с JavaScript Object Notation (JSON), вы заметите, что документы похожи на JSON. В этой директории есть файл `PersonsData.json` с дополнительными данными, которые можно загрузить в контейнер `Persons` через кнопку `Upload Item`. + +Во многих случаях API, возвращающие данные в формате JSON, могут быть напрямую перенесены и сохранены в документных базах данных. Пример документа ниже представляет твиты из аккаунта Microsoft в Twitter, полученные через Twitter API и добавленные в Cosmos DB. + +```json +{ + "created_at": "2021-08-31T19:03:01.000Z", + "id": "1432780985872142341", + "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", + "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", + "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", + "_attachments": "attachments/", + "_ts": 1630537000 +``` + +Интересующие нас поля в этом документе: `created_at`, `id` и `text`. + +## 🚀 Задание + +В директории есть файл `TwitterData.json`, который можно загрузить в базу данных SampleDB. Рекомендуется добавить его в отдельный контейнер. Для этого: + +1. Нажмите кнопку "New Container" в правом верхнем углу. +2. Выберите существующую базу данных (SampleDB), задайте идентификатор контейнера. +3. Установите ключ раздела `/id`. +4. Нажмите OK (остальную информацию можно игнорировать, так как это небольшой набор данных, работающий локально). +5. Откройте новый контейнер и загрузите файл Twitter Data через кнопку `Upload Item`. + +Попробуйте выполнить несколько запросов SELECT, чтобы найти документы, содержащие слово Microsoft в поле text. Подсказка: попробуйте использовать [ключевое слово LIKE](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character). + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/11) + +## Обзор и самостоятельное изучение + +- В этой таблице есть дополнительные функции и форматирование, которые не рассматриваются в уроке. Microsoft предлагает [большую библиотеку документации и видео](https://support.microsoft.com/excel) по Excel для тех, кто хочет узнать больше. + +- Эта архитектурная документация описывает характеристики различных типов нереляционных данных: [Нереляционные данные и NoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data). + +- Cosmos DB — это облачная нереляционная база данных, которая может хранить различные типы NoSQL, упомянутые в этом уроке. Узнайте больше об этих типах в [учебном модуле Microsoft Learn по Cosmos DB](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/). + +## Задание + +[Soda Profits](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/06-non-relational/assignment.md b/translations/ru/2-Working-With-Data/06-non-relational/assignment.md new file mode 100644 index 00000000..5bbbd988 --- /dev/null +++ b/translations/ru/2-Working-With-Data/06-non-relational/assignment.md @@ -0,0 +1,33 @@ + +# Прибыль от продажи газировки + +## Инструкции + +В [таблице Coca Cola Co](../../../../2-Working-With-Data/06-non-relational/CocaColaCo.xlsx) отсутствуют некоторые расчеты. Ваша задача: + +1. Рассчитать валовую прибыль за финансовые годы '15, '16, '17 и '18. + - Валовая прибыль = Операционные доходы - Себестоимость проданных товаров +1. Рассчитать среднее значение всех валовых прибылей. Постарайтесь сделать это с помощью функции. + - Среднее значение = Сумма валовых прибылей, деленная на количество финансовых лет (10) + - Документация по [функции AVERAGE](https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) +1. Это файл Excel, но он должен быть доступен для редактирования в любой платформе для работы с таблицами. + +[Источник данных: Yiyi Wang](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшений +--- | --- | --- + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/07-python/README.md b/translations/ru/2-Working-With-Data/07-python/README.md new file mode 100644 index 00000000..f6e4cac0 --- /dev/null +++ b/translations/ru/2-Working-With-Data/07-python/README.md @@ -0,0 +1,290 @@ + +# Работа с данными: Python и библиотека Pandas + +| ![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/07-WorkWithPython.png) | +| :-------------------------------------------------------------------------------------------------------: | +| Работа с Python - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +[![Вводное видео](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ru.png)](https://youtu.be/dZjWOGbsN4Y) + +Хотя базы данных предоставляют очень эффективные способы хранения данных и их запросов с использованием языков запросов, наиболее гибким способом обработки данных является написание собственной программы для их манипуляции. Во многих случаях запрос к базе данных будет более эффективным. Однако в некоторых случаях, когда требуется более сложная обработка данных, это не так просто сделать с помощью SQL. +Обработка данных может быть запрограммирована на любом языке программирования, но существуют языки, которые считаются более высокоуровневыми для работы с данными. Дата-сайентисты обычно предпочитают один из следующих языков: + +* **[Python](https://www.python.org/)** — универсальный язык программирования, который часто считается одним из лучших вариантов для начинающих благодаря своей простоте. Python имеет множество дополнительных библиотек, которые могут помочь решить множество практических задач, таких как извлечение данных из ZIP-архива или преобразование изображения в оттенки серого. Помимо науки о данных, Python также часто используется для веб-разработки. +* **[R](https://www.r-project.org/)** — традиционный инструмент, разработанный с учетом статистической обработки данных. Он также содержит большой репозиторий библиотек (CRAN), что делает его хорошим выбором для обработки данных. Однако R не является универсальным языком программирования и редко используется за пределами области науки о данных. +* **[Julia](https://julialang.org/)** — еще один язык, разработанный специально для науки о данных. Он предназначен для обеспечения более высокой производительности, чем Python, что делает его отличным инструментом для научных экспериментов. + +В этом уроке мы сосредоточимся на использовании Python для простой обработки данных. Мы предполагаем базовое знакомство с языком. Если вы хотите углубиться в изучение Python, вы можете обратиться к одному из следующих ресурсов: + +* [Изучите Python весело с помощью Turtle Graphics и фракталов](https://github.com/shwars/pycourse) — краткий вводный курс по программированию на Python на GitHub +* [Сделайте первые шаги с Python](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) — учебный путь на [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +Данные могут быть представлены в различных формах. В этом уроке мы рассмотрим три формы данных — **табличные данные**, **текст** и **изображения**. + +Мы сосредоточимся на нескольких примерах обработки данных, вместо того чтобы давать полный обзор всех связанных библиотек. Это позволит вам понять основные возможности и оставит понимание того, где искать решения ваших задач, когда это потребуется. + +> **Самый полезный совет**. Если вам нужно выполнить определенную операцию с данными, но вы не знаете, как это сделать, попробуйте поискать это в интернете. [Stackoverflow](https://stackoverflow.com/) обычно содержит множество полезных примеров кода на Python для многих типичных задач. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/12) + +## Табличные данные и DataFrame + +Вы уже сталкивались с табличными данными, когда мы говорили о реляционных базах данных. Когда у вас много данных, и они содержатся в нескольких связанных таблицах, определенно имеет смысл использовать SQL для работы с ними. Однако есть много случаев, когда у нас есть таблица данных, и нам нужно получить некоторое **понимание** или **инсайты** об этих данных, такие как распределение, корреляция между значениями и т. д. В науке о данных часто требуется выполнить некоторые преобразования исходных данных, а затем визуализировать их. Оба этих шага легко выполнить с помощью Python. + +Существуют две наиболее полезные библиотеки в Python, которые помогут вам работать с табличными данными: +* **[Pandas](https://pandas.pydata.org/)** позволяет манипулировать так называемыми **DataFrame**, которые аналогичны реляционным таблицам. Вы можете использовать именованные столбцы и выполнять различные операции над строками, столбцами и DataFrame в целом. +* **[Numpy](https://numpy.org/)** — это библиотека для работы с **тензорами**, то есть многомерными **массивами**. Массив содержит значения одного типа и проще, чем DataFrame, но предлагает больше математических операций и создает меньшую нагрузку. + +Также есть несколько других библиотек, о которых стоит знать: +* **[Matplotlib](https://matplotlib.org/)** — библиотека для визуализации данных и построения графиков +* **[SciPy](https://www.scipy.org/)** — библиотека с дополнительными научными функциями. Мы уже сталкивались с этой библиотекой, когда говорили о вероятности и статистике. + +Вот пример кода, который вы обычно используете для импорта этих библиотек в начале вашей программы на Python: +```python +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from scipy import ... # you need to specify exact sub-packages that you need +``` + +Pandas основан на нескольких базовых концепциях. + +### Series + +**Series** — это последовательность значений, похожая на список или массив numpy. Главное отличие заключается в том, что Series также имеет **индекс**, и при операциях с Series (например, сложении) индекс учитывается. Индекс может быть простым, например, номером строки (он используется по умолчанию при создании Series из списка или массива), или иметь сложную структуру, например, временной интервал. + +> **Примечание**: В сопровождающем ноутбуке [`notebook.ipynb`](notebook.ipynb) есть вводный код для работы с Pandas. Здесь мы приводим только некоторые примеры, и вы, конечно, можете ознакомиться с полным ноутбуком. + +Рассмотрим пример: мы хотим проанализировать продажи нашего магазина мороженого. Давайте создадим Series с числами продаж (количество проданных единиц в день) за определенный период времени: + +```python +start_date = "Jan 1, 2020" +end_date = "Mar 31, 2020" +idx = pd.date_range(start_date,end_date) +print(f"Length of index is {len(idx)}") +items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) +items_sold.plot() +``` +![График временного ряда](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ru.png) + +Теперь предположим, что каждую неделю мы устраиваем вечеринку для друзей и берем дополнительно 10 упаковок мороженого для вечеринки. Мы можем создать еще один Series, индексированный по неделям, чтобы это продемонстрировать: +```python +additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) +``` +Когда мы складываем два Series, мы получаем общее количество: +```python +total_items = items_sold.add(additional_items,fill_value=0) +total_items.plot() +``` +![График временного ряда](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ru.png) + +> **Примечание**: Мы не используем простую запись `total_items+additional_items`. Если бы мы это сделали, то получили бы много значений `NaN` (*Not a Number*) в результирующем Series. Это происходит из-за отсутствия значений для некоторых точек индекса в Series `additional_items`, а сложение `NaN` с чем-либо дает `NaN`. Поэтому необходимо указать параметр `fill_value` при сложении. + +С временными рядами мы также можем **пересчитывать** данные с разными временными интервалами. Например, предположим, что мы хотим вычислить средний объем продаж за месяц. Мы можем использовать следующий код: +```python +monthly = total_items.resample("1M").mean() +ax = monthly.plot(kind='bar') +``` +![Средние значения временного ряда за месяц](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ru.png) + +### DataFrame + +DataFrame — это, по сути, коллекция Series с одинаковым индексом. Мы можем объединить несколько Series в DataFrame: +```python +a = pd.Series(range(1,10)) +b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) +df = pd.DataFrame([a,b]) +``` +Это создаст горизонтальную таблицу, подобную этой: +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| 1 | I | like | to | use | Python | and | Pandas | very | much | + +Мы также можем использовать Series в качестве столбцов и задавать имена столбцов с помощью словаря: +```python +df = pd.DataFrame({ 'A' : a, 'B' : b }) +``` +Это даст нам таблицу следующего вида: + +| | A | B | +| --- | --- | ------ | +| 0 | 1 | I | +| 1 | 2 | like | +| 2 | 3 | to | +| 3 | 4 | use | +| 4 | 5 | Python | +| 5 | 6 | and | +| 6 | 7 | Pandas | +| 7 | 8 | very | +| 8 | 9 | much | + +**Примечание**: Мы также можем получить такую таблицу, транспонируя предыдущую, например, написав: +```python +df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) +``` +Здесь `.T` означает операцию транспонирования DataFrame, то есть изменение строк и столбцов, а операция `rename` позволяет переименовать столбцы, чтобы они соответствовали предыдущему примеру. + +Вот несколько наиболее важных операций, которые мы можем выполнять с DataFrame: + +**Выбор столбцов**. Мы можем выбрать отдельные столбцы, написав `df['A']` — эта операция возвращает Series. Мы также можем выбрать подмножество столбцов в новый DataFrame, написав `df[['B','A']]` — это возвращает новый DataFrame. + +**Фильтрация** определенных строк по критериям. Например, чтобы оставить только строки, где столбец `A` больше 5, мы можем написать `df[df['A']>5]`. + +> **Примечание**: Механизм фильтрации работает следующим образом. Выражение `df['A']<5` возвращает булев Series, который указывает, является ли выражение `True` или `False` для каждого элемента исходного Series `df['A']`. Когда булев Series используется в качестве индекса, он возвращает подмножество строк в DataFrame. Таким образом, нельзя использовать произвольное булево выражение Python, например, запись `df[df['A']>5 and df['A']<7]` будет неверной. Вместо этого следует использовать специальную операцию `&` для булевых Series, написав `df[(df['A']>5) & (df['A']<7)]` (*скобки здесь обязательны*). + +**Создание новых вычисляемых столбцов**. Мы можем легко создавать новые вычисляемые столбцы для нашего DataFrame, используя интуитивно понятные выражения, например: +```python +df['DivA'] = df['A']-df['A'].mean() +``` +Этот пример вычисляет отклонение `A` от его среднего значения. На самом деле мы вычисляем Series, а затем присваиваем его левой части, создавая новый столбец. Таким образом, нельзя использовать операции, несовместимые с Series, например, следующий код неверен: +```python +# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" +df['LenB'] = len(df['B']) # <- Wrong result +``` +Последний пример, хотя и синтаксически корректен, дает неверный результат, так как присваивает длину Series `B` всем значениям в столбце, а не длину отдельных элементов, как мы намеревались. + +Если нам нужно вычислить сложные выражения, мы можем использовать функцию `apply`. Последний пример можно записать следующим образом: +```python +df['LenB'] = df['B'].apply(lambda x : len(x)) +# or +df['LenB'] = df['B'].apply(len) +``` + +После выполнения вышеуказанных операций мы получим следующий DataFrame: + +| | A | B | DivA | LenB | +| --- | --- | ------ | ---- | ---- | +| 0 | 1 | I | -4.0 | 1 | +| 1 | 2 | like | -3.0 | 4 | +| 2 | 3 | to | -2.0 | 2 | +| 3 | 4 | use | -1.0 | 3 | +| 4 | 5 | Python | 0.0 | 6 | +| 5 | 6 | and | 1.0 | 3 | +| 6 | 7 | Pandas | 2.0 | 6 | +| 7 | 8 | very | 3.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | + +**Выбор строк по номерам** можно выполнить с помощью конструкции `iloc`. Например, чтобы выбрать первые 5 строк из DataFrame: +```python +df.iloc[:5] +``` + +**Группировка** часто используется для получения результата, аналогичного *сводным таблицам* в Excel. Предположим, что мы хотим вычислить среднее значение столбца `A` для каждого значения `LenB`. Тогда мы можем сгруппировать наш DataFrame по `LenB` и вызвать `mean`: +```python +df.groupby(by='LenB').mean() +``` +Если нам нужно вычислить среднее значение и количество элементов в группе, то мы можем использовать более сложную функцию `aggregate`: +```python +df.groupby(by='LenB') \ + .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ + .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) +``` +Это даст нам следующую таблицу: + +| LenB | Count | Mean | +| ---- | ----- | -------- | +| 1 | 1 | 1.000000 | +| 2 | 1 | 3.000000 | +| 3 | 2 | 5.000000 | +| 4 | 3 | 6.333333 | +| 6 | 2 | 6.000000 | + +### Получение данных +Мы видели, как легко создавать Series и DataFrames из объектов Python. Однако данные обычно поступают в виде текстового файла или таблицы Excel. К счастью, Pandas предлагает простой способ загрузки данных с диска. Например, чтение CSV-файла настолько просто, как это: +```python +df = pd.read_csv('file.csv') +``` +Мы рассмотрим больше примеров загрузки данных, включая их получение с внешних веб-сайтов, в разделе "Задание". + +### Печать и визуализация + +Данные ученые часто должны исследовать данные, поэтому важно уметь их визуализировать. Когда DataFrame большой, зачастую мы хотим просто убедиться, что все делаем правильно, напечатав первые несколько строк. Это можно сделать, вызвав `df.head()`. Если вы запускаете это из Jupyter Notebook, он выведет DataFrame в удобной табличной форме. + +Мы также видели использование функции `plot` для визуализации некоторых столбцов. Хотя `plot` очень полезен для многих задач и поддерживает множество различных типов графиков через параметр `kind=`, вы всегда можете использовать библиотеку `matplotlib` для построения чего-то более сложного. Мы подробно рассмотрим визуализацию данных в отдельных уроках курса. + +Этот обзор охватывает наиболее важные концепции Pandas, однако библиотека очень богата, и нет предела тому, что вы можете с ней сделать! Давайте теперь применим эти знания для решения конкретной задачи. + +## 🚀 Задание 1: Анализ распространения COVID + +Первая задача, на которой мы сосредоточимся, — это моделирование распространения эпидемии COVID-19. Для этого мы будем использовать данные о количестве инфицированных людей в разных странах, предоставленные [Центром системной науки и инженерии](https://systems.jhu.edu/) (CSSE) при [Университете Джонса Хопкинса](https://jhu.edu/). Набор данных доступен в [этом репозитории GitHub](https://github.com/CSSEGISandData/COVID-19). + +Поскольку мы хотим продемонстрировать, как работать с данными, мы приглашаем вас открыть [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) и прочитать его от начала до конца. Вы также можете выполнить ячейки и выполнить некоторые задания, которые мы оставили для вас в конце. + +![Распространение COVID](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ru.png) + +> Если вы не знаете, как запускать код в Jupyter Notebook, ознакомьтесь с [этой статьей](https://soshnikov.com/education/how-to-execute-notebooks-from-github/). + +## Работа с неструктурированными данными + +Хотя данные очень часто имеют табличную форму, в некоторых случаях нам приходится работать с менее структурированными данными, например, текстами или изображениями. В этом случае, чтобы применить методы обработки данных, которые мы рассмотрели выше, нам нужно каким-то образом **извлечь** структурированные данные. Вот несколько примеров: + +* Извлечение ключевых слов из текста и анализ частоты их появления +* Использование нейронных сетей для извлечения информации об объектах на изображении +* Получение информации об эмоциях людей на видеопотоке с камеры + +## 🚀 Задание 2: Анализ научных статей о COVID + +В этом задании мы продолжим тему пандемии COVID и сосредоточимся на обработке научных статей по этой теме. Существует [набор данных CORD-19](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) с более чем 7000 (на момент написания) статей о COVID, доступных с метаданными и аннотациями (а для примерно половины из них также предоставлен полный текст). + +Полный пример анализа этого набора данных с использованием когнитивного сервиса [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) описан [в этом блоге](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). Мы обсудим упрощенную версию этого анализа. + +> **NOTE**: Мы не предоставляем копию набора данных в рамках этого репозитория. Вам может понадобиться сначала скачать файл [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) из [этого набора данных на Kaggle](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge). Для этого может потребоваться регистрация на Kaggle. Вы также можете скачать набор данных без регистрации [отсюда](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html), но он будет включать все полные тексты в дополнение к файлу метаданных. + +Откройте [`notebook-papers.ipynb`](notebook-papers.ipynb) и прочитайте его от начала до конца. Вы также можете выполнить ячейки и выполнить некоторые задания, которые мы оставили для вас в конце. + +![Лечение COVID](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ru.png) + +## Обработка данных изображений + +В последнее время были разработаны очень мощные модели ИИ, которые позволяют понимать изображения. Существует множество задач, которые можно решить с использованием предобученных нейронных сетей или облачных сервисов. Вот несколько примеров: + +* **Классификация изображений**, которая помогает отнести изображение к одной из предопределенных категорий. Вы можете легко обучить свои собственные классификаторы изображений, используя такие сервисы, как [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) +* **Обнаружение объектов** для нахождения различных объектов на изображении. Такие сервисы, как [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), могут обнаруживать множество распространенных объектов, а вы можете обучить модель [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) для обнаружения специфических объектов. +* **Распознавание лиц**, включая определение возраста, пола и эмоций. Это можно сделать с помощью [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum). + +Все эти облачные сервисы можно вызывать с использованием [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum), и их легко интегрировать в ваш процесс исследования данных. + +Вот несколько примеров анализа данных из источников изображений: +* В блоге [Как изучать Data Science без программирования](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) мы исследуем фотографии из Instagram, пытаясь понять, что заставляет людей ставить больше лайков. Мы сначала извлекаем как можно больше информации из изображений с помощью [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum), а затем используем [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) для построения интерпретируемой модели. +* В [Мастерской по изучению лиц](https://github.com/CloudAdvocacy/FaceStudies) мы используем [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) для анализа эмоций людей на фотографиях с мероприятий, чтобы попытаться понять, что делает людей счастливыми. + +## Заключение + +Независимо от того, имеете ли вы уже структурированные или неструктурированные данные, с помощью Python вы можете выполнить все шаги, связанные с обработкой и анализом данных. Это, вероятно, самый гибкий способ обработки данных, и именно поэтому большинство специалистов по данным используют Python как основной инструмент. Изучение Python в глубину — это, вероятно, хорошая идея, если вы серьезно относитесь к своему пути в Data Science! + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/13) + +## Обзор и самостоятельное изучение + +**Книги** +* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) + +**Онлайн-ресурсы** +* Официальный [10 минут с Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) туториал +* [Документация по визуализации в Pandas](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) + +**Изучение Python** +* [Изучайте Python весело с Turtle Graphics и фракталами](https://github.com/shwars/pycourse) +* [Сделайте первые шаги с Python](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) на [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +## Задание + +[Проведите более детальное исследование данных для заданий выше](assignment.md) + +## Благодарности + +Этот урок был создан с ♥️ [Дмитрием Сошниковым](http://soshnikov.com) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/07-python/assignment.md b/translations/ru/2-Working-With-Data/07-python/assignment.md new file mode 100644 index 00000000..d24123fc --- /dev/null +++ b/translations/ru/2-Working-With-Data/07-python/assignment.md @@ -0,0 +1,37 @@ + +# Задание по обработке данных на Python + +В этом задании вам предстоит доработать код, который мы начали разрабатывать в наших упражнениях. Задание состоит из двух частей: + +## Моделирование распространения COVID-19 + + - [ ] Постройте графики *R* для 5-6 различных стран на одном графике для сравнения или на нескольких графиках, расположенных рядом. + - [ ] Посмотрите, как количество смертей и выздоровлений коррелирует с количеством инфицированных случаев. + - [ ] Определите, как долго обычно длится заболевание, визуально сопоставив скорость заражения и уровень смертности, а также выявив аномалии. Возможно, вам придется рассмотреть данные по разным странам, чтобы это выяснить. + - [ ] Рассчитайте уровень летальности и то, как он изменяется со временем. *Возможно, вам потребуется учесть продолжительность заболевания в днях, чтобы сдвинуть один временной ряд перед выполнением расчетов.* + +## Анализ научных статей о COVID-19 + +- [ ] Постройте матрицу совместной встречаемости различных медикаментов и посмотрите, какие препараты часто упоминаются вместе (например, в одном абстракте). Вы можете модифицировать код для построения матрицы совместной встречаемости медикаментов и диагнозов. +- [ ] Визуализируйте эту матрицу с помощью тепловой карты. +- [ ] В качестве дополнительной задачи визуализируйте совместную встречаемость медикаментов с помощью [хордовой диаграммы](https://en.wikipedia.org/wiki/Chord_diagram). [Эта библиотека](https://pypi.org/project/chord/) может помочь вам нарисовать хордовую диаграмму. +- [ ] Еще одна дополнительная задача: извлеките дозировки различных медикаментов (например, **400мг** в *принимайте 400мг хлорохина ежедневно*) с помощью регулярных выражений и создайте датафрейм, который показывает различные дозировки для разных медикаментов. **Примечание**: учитывайте числовые значения, которые находятся в непосредственной текстовой близости от названия лекарства. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшений +--- | --- | -- | +Все задачи выполнены, графически проиллюстрированы и объяснены, включая как минимум одну из двух дополнительных задач | Выполнено более 5 задач, дополнительные задачи не выполнены, или результаты неясны | Выполнено менее 5 (но более 3) задач, визуализации не помогают продемонстрировать суть + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/08-data-preparation/README.md b/translations/ru/2-Working-With-Data/08-data-preparation/README.md new file mode 100644 index 00000000..56b6bd02 --- /dev/null +++ b/translations/ru/2-Working-With-Data/08-data-preparation/README.md @@ -0,0 +1,346 @@ + +# Работа с данными: подготовка данных + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/08-DataPreparation.png)| +|:---:| +|Подготовка данных - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/14) + +В зависимости от источника, необработанные данные могут содержать несоответствия, которые создают сложности для анализа и моделирования. Другими словами, такие данные можно назвать "грязными", и их необходимо очистить. Этот урок посвящен техникам очистки и преобразования данных для решения проблем, связанных с отсутствующими, неточными или неполными данными. Темы, рассмотренные в этом уроке, будут использовать Python и библиотеку Pandas и будут [продемонстрированы в ноутбуке](notebook.ipynb) в этом каталоге. + +## Важность очистки данных + +- **Удобство использования и повторного использования**: Когда данные правильно организованы и нормализованы, их легче искать, использовать и делиться ими с другими. + +- **Согласованность**: В области науки о данных часто приходится работать с несколькими наборами данных, которые необходимо объединить. Убедившись, что каждый отдельный набор данных имеет общую стандартизацию, можно гарантировать, что данные останутся полезными после их объединения в один набор. + +- **Точность моделей**: Очищенные данные повышают точность моделей, которые на них основаны. + +## Общие цели и стратегии очистки + +- **Исследование набора данных**: Исследование данных, которое будет рассмотрено в [позднем уроке](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/4-Data-Science-Lifecycle/15-analyzing), помогает выявить данные, которые нуждаются в очистке. Визуальное наблюдение за значениями в наборе данных позволяет установить ожидания относительно его структуры или определить проблемы, которые можно решить. Исследование может включать базовые запросы, визуализации и выборки. + +- **Форматирование**: В зависимости от источника данные могут иметь несоответствия в представлении. Это может создавать проблемы при поиске и отображении значений, когда они видны в наборе данных, но неправильно представлены в визуализациях или результатах запросов. Общие проблемы форматирования включают устранение пробелов, корректировку дат и типов данных. Решение таких проблем обычно лежит на пользователях данных. Например, стандарты представления дат и чисел могут различаться в разных странах. + +- **Дублирование**: Данные с несколькими повторениями могут приводить к неточным результатам и обычно должны быть удалены. Это часто случается при объединении двух или более наборов данных. Однако бывают случаи, когда дублирование содержит дополнительные сведения, которые могут быть полезны и должны быть сохранены. + +- **Отсутствующие данные**: Отсутствующие данные могут вызывать неточности, а также слабые или предвзятые результаты. Иногда их можно восстановить путем "перезагрузки" данных, заполнения пропущенных значений с помощью вычислений и кода, например, на Python, или просто удаления значения и соответствующих данных. Причины отсутствия данных могут быть различными, и действия по их восстановлению зависят от того, как и почему они были утрачены. + +## Изучение информации о DataFrame +> **Цель обучения:** К концу этого раздела вы должны уметь находить общую информацию о данных, хранящихся в pandas DataFrame. + +После загрузки данных в pandas они, скорее всего, будут представлены в виде DataFrame (см. предыдущий [урок](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/07-python#dataframe) для подробного обзора). Однако если ваш DataFrame содержит 60,000 строк и 400 столбцов, как начать разбираться с такими данными? К счастью, [pandas](https://pandas.pydata.org/) предоставляет удобные инструменты для быстрого просмотра общей информации о DataFrame, а также первых и последних строк. + +Для изучения этой функциональности мы импортируем библиотеку Python scikit-learn и используем известный набор данных: **набор данных Iris**. + +```python +import pandas as pd +from sklearn.datasets import load_iris + +iris = load_iris() +iris_df = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) +``` +| |длина чашелистика (см)|ширина чашелистика (см)|длина лепестка (см)|ширина лепестка (см)| +|----------------------------------------|-----------------------|-----------------------|-------------------|-------------------| +|0 |5.1 |3.5 |1.4 |0.2 | +|1 |4.9 |3.0 |1.4 |0.2 | +|2 |4.7 |3.2 |1.3 |0.2 | +|3 |4.6 |3.1 |1.5 |0.2 | +|4 |5.0 |3.6 |1.4 |0.2 | + +- **DataFrame.info**: Для начала метод `info()` используется для вывода сводки содержимого, присутствующего в `DataFrame`. Давайте посмотрим на этот набор данных: +```python +iris_df.info() +``` +``` +RangeIndex: 150 entries, 0 to 149 +Data columns (total 4 columns): + # Column Non-Null Count Dtype +--- ------ -------------- ----- + 0 sepal length (cm) 150 non-null float64 + 1 sepal width (cm) 150 non-null float64 + 2 petal length (cm) 150 non-null float64 + 3 petal width (cm) 150 non-null float64 +dtypes: float64(4) +memory usage: 4.8 KB +``` +Из этого мы узнаем, что набор данных *Iris* содержит 150 записей в четырех столбцах без пропущенных значений. Все данные хранятся в виде 64-битных чисел с плавающей точкой. + +- **DataFrame.head()**: Далее, чтобы проверить фактическое содержимое `DataFrame`, мы используем метод `head()`. Давайте посмотрим, как выглядят первые несколько строк нашего `iris_df`: +```python +iris_df.head() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +0 5.1 3.5 1.4 0.2 +1 4.9 3.0 1.4 0.2 +2 4.7 3.2 1.3 0.2 +3 4.6 3.1 1.5 0.2 +4 5.0 3.6 1.4 0.2 +``` +- **DataFrame.tail()**: Напротив, чтобы проверить последние несколько строк `DataFrame`, мы используем метод `tail()`: +```python +iris_df.tail() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +145 6.7 3.0 5.2 2.3 +146 6.3 2.5 5.0 1.9 +147 6.5 3.0 5.2 2.0 +148 6.2 3.4 5.4 2.3 +149 5.9 3.0 5.1 1.8 +``` +> **Вывод:** Даже просто взглянув на метаданные о содержимом DataFrame или на первые и последние значения, можно сразу получить представление о размере, форме и содержании данных, с которыми вы работаете. + +## Работа с отсутствующими данными +> **Цель обучения:** К концу этого раздела вы должны знать, как заменять или удалять пропущенные значения из DataFrame. + +Чаще всего наборы данных, которые вы хотите использовать (или вынуждены использовать), содержат пропущенные значения. То, как вы справляетесь с отсутствующими данными, имеет тонкие компромиссы, которые могут повлиять на ваш окончательный анализ и реальные результаты. + +Pandas обрабатывает пропущенные значения двумя способами. Первый вы уже видели в предыдущих разделах: `NaN`, или Not a Number. Это специальное значение, являющееся частью спецификации IEEE для чисел с плавающей точкой, и оно используется только для указания отсутствующих значений с плавающей точкой. + +Для пропущенных значений, отличных от чисел с плавающей точкой, pandas использует объект Python `None`. Хотя может показаться запутанным, что вы сталкиваетесь с двумя различными типами значений, которые говорят практически одно и то же, есть веские программные причины для такого выбора, и на практике это позволяет pandas предложить хороший компромисс для большинства случаев. Тем не менее, и `None`, и `NaN` имеют ограничения, которые необходимо учитывать в отношении их использования. + +Узнайте больше о `NaN` и `None` из [ноутбука](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/4-Data-Science-Lifecycle/15-analyzing/notebook.ipynb)! + +- **Обнаружение пропущенных значений**: В `pandas` методы `isnull()` и `notnull()` являются основными для обнаружения пропущенных данных. Оба возвращают булевы маски для ваших данных. Мы будем использовать `numpy` для значений `NaN`: +```python +import numpy as np + +example1 = pd.Series([0, np.nan, '', None]) +example1.isnull() +``` +``` +0 False +1 True +2 False +3 True +dtype: bool +``` +Внимательно посмотрите на вывод. Вас что-то удивило? Хотя `0` является арифметическим нулем, он, тем не менее, является вполне допустимым целым числом, и pandas рассматривает его как таковое. `''` немного сложнее. Хотя мы использовали его в разделе 1 для представления пустого строкового значения, он, тем не менее, является строковым объектом, а не представлением null с точки зрения pandas. + +Теперь давайте перевернем это и используем эти методы так, как вы будете использовать их на практике. Вы можете использовать булевы маски непосредственно как индекс ``Series`` или ``DataFrame``, что может быть полезно при работе с отдельными пропущенными (или присутствующими) значениями. + +> **Вывод:** Методы `isnull()` и `notnull()` дают схожие результаты при использовании в `DataFrame`: они показывают результаты и индекс этих результатов, что значительно поможет вам в работе с данными. + +- **Удаление пропущенных значений**: Помимо идентификации пропущенных значений, pandas предоставляет удобный способ удаления null-значений из `Series` и `DataFrame`. (Особенно для больших наборов данных часто более целесообразно просто удалить пропущенные значения [NA] из анализа, чем обрабатывать их другими способами.) Чтобы увидеть это в действии, вернемся к `example1`: +```python +example1 = example1.dropna() +example1 +``` +``` +0 0 +2 +dtype: object +``` +Обратите внимание, что это должно выглядеть как ваш вывод из `example3[example3.notnull()]`. Разница здесь в том, что вместо индексации по маскированным значениям `dropna` удалил эти пропущенные значения из `Series` `example1`. + +Поскольку `DataFrame` имеет две измерения, он предоставляет больше возможностей для удаления данных. + +```python +example2 = pd.DataFrame([[1, np.nan, 7], + [2, 5, 8], + [np.nan, 6, 9]]) +example2 +``` +| | 0 | 1 | 2 | +|------|---|---|---| +|0 |1.0|NaN|7 | +|1 |2.0|5.0|8 | +|2 |NaN|6.0|9 | + +(Вы заметили, что pandas преобразовал два столбца в числа с плавающей точкой, чтобы учесть `NaN`?) + +Вы не можете удалить одно значение из `DataFrame`, поэтому вам придется удалять целые строки или столбцы. В зависимости от того, что вы делаете, вы можете захотеть сделать одно или другое, и pandas предоставляет вам варианты для обоих. Поскольку в науке о данных столбцы обычно представляют переменные, а строки — наблюдения, вы, скорее всего, будете удалять строки данных; настройка по умолчанию для `dropna()` — удаление всех строк, содержащих любые null-значения: + +```python +example2.dropna() +``` +``` + 0 1 2 +1 2.0 5.0 8 +``` +Если необходимо, вы можете удалить значения NA из столбцов. Используйте `axis=1`, чтобы сделать это: +```python +example2.dropna(axis='columns') +``` +``` + 2 +0 7 +1 8 +2 9 +``` +Обратите внимание, что это может удалить много данных, которые вы, возможно, захотите сохранить, особенно в небольших наборах данных. Что если вы хотите удалить только строки или столбцы, содержащие несколько или даже все null-значения? Вы можете указать эти настройки в `dropna` с помощью параметров `how` и `thresh`. + +По умолчанию `how='any'` (если вы хотите проверить это самостоятельно или увидеть, какие еще параметры есть у метода, выполните `example4.dropna?` в ячейке кода). Вы можете, например, указать `how='all'`, чтобы удалять только строки или столбцы, содержащие все null-значения. Давайте расширим наш пример `DataFrame`, чтобы увидеть это в действии. + +```python +example2[3] = np.nan +example2 +``` +| |0 |1 |2 |3 | +|------|---|---|---|---| +|0 |1.0|NaN|7 |NaN| +|1 |2.0|5.0|8 |NaN| +|2 |NaN|6.0|9 |NaN| + +Параметр `thresh` дает вам более тонкий контроль: вы устанавливаете количество *не-null* значений, которые строка или столбец должны иметь, чтобы быть сохраненными: +```python +example2.dropna(axis='rows', thresh=3) +``` +``` + 0 1 2 3 +1 2.0 5.0 8 NaN +``` +Здесь первая и последняя строки были удалены, так как они содержат только два не-null значения. + +- **Заполнение null-значений**: В зависимости от вашего набора данных иногда имеет смысл заполнить null-значения допустимыми, а не удалять их. Вы могли бы использовать `isnull` для этого на месте, но это может быть трудоемким, особенно если у вас много значений для заполнения. Поскольку это такая распространенная задача в науке о данных, pandas предоставляет `fillna`, который возвращает копию `Series` или `DataFrame` с заменой пропущенных значений на выбранные вами. Давайте создадим еще один пример `Series`, чтобы увидеть, как это работает на практике. +```python +example3 = pd.Series([1, np.nan, 2, None, 3], index=list('abcde')) +example3 +``` +``` +a 1.0 +b NaN +c 2.0 +d NaN +e 3.0 +dtype: float64 +``` +Вы можете заполнить все пропущенные значения одним значением, например, `0`: +```python +example3.fillna(0) +``` +``` +a 1.0 +b 0.0 +c 2.0 +d 0.0 +e 3.0 +dtype: float64 +``` +Вы можете **заполнить вперед** null-значения, используя последнее допустимое значение для заполнения null: +```python +example3.fillna(method='ffill') +``` +``` +a 1.0 +b 1.0 +c 2.0 +d 2.0 +e 3.0 +dtype: float64 +``` +Вы также можете **заполнить назад**, чтобы распространить следующее допустимое значение назад для заполнения null: +```python +example3.fillna(method='bfill') +``` +``` +a 1.0 +b 2.0 +c 2.0 +d 3.0 +e 3.0 +dtype: float64 +``` +Как вы могли догадаться, это работает так же с `DataFrame`, но вы также можете указать `axis`, вдоль которого нужно заполнить null-значения. Возьмем снова ранее использованный `example2`: +```python +example2.fillna(method='ffill', axis=1) +``` +``` + 0 1 2 3 +0 1.0 1.0 7.0 7.0 +1 2.0 5.0 8.0 8.0 +2 NaN 6.0 9.0 9.0 +``` +Обратите внимание, что если предыдущее значение недоступно для заполнения вперед, null-значение остается. +> **Основная мысль:** Существует множество способов работы с пропущенными значениями в ваших наборах данных. Конкретная стратегия (удаление, замена или способ замены) должна определяться особенностями данных. Чем больше вы работаете с наборами данных, тем лучше вы будете понимать, как справляться с пропущенными значениями. + +## Удаление дублированных данных + +> **Цель обучения:** К концу этого раздела вы должны уверенно определять и удалять дублированные значения из DataFrame. + +Помимо пропущенных данных, в реальных наборах данных вы часто будете сталкиваться с дублированными данными. К счастью, `pandas` предоставляет простой способ обнаружения и удаления дублированных записей. + +- **Определение дубликатов: `duplicated`**: Вы можете легко обнаружить дублированные значения с помощью метода `duplicated` в pandas, который возвращает булеву маску, указывающую, является ли запись в `DataFrame` дубликатом более ранней записи. Давайте создадим еще один пример `DataFrame`, чтобы увидеть это в действии. +```python +example4 = pd.DataFrame({'letters': ['A','B'] * 2 + ['B'], + 'numbers': [1, 2, 1, 3, 3]}) +example4 +``` +| |letters|numbers| +|------|-------|-------| +|0 |A |1 | +|1 |B |2 | +|2 |A |1 | +|3 |B |3 | +|4 |B |3 | + +```python +example4.duplicated() +``` +``` +0 False +1 False +2 True +3 False +4 True +dtype: bool +``` +- **Удаление дубликатов: `drop_duplicates`:** просто возвращает копию данных, для которых все значения `duplicated` равны `False`: +```python +example4.drop_duplicates() +``` +``` + letters numbers +0 A 1 +1 B 2 +3 B 3 +``` +Оба метода, `duplicated` и `drop_duplicates`, по умолчанию учитывают все столбцы, но вы можете указать, чтобы они проверяли только определенный набор столбцов в вашем `DataFrame`: +```python +example4.drop_duplicates(['letters']) +``` +``` +letters numbers +0 A 1 +1 B 2 +``` + +> **Основная мысль:** Удаление дублированных данных — это важная часть практически каждого проекта в области анализа данных. Дублированные данные могут исказить результаты вашего анализа и привести к неточным выводам! + + +## 🚀 Задание + +Все обсуждаемые материалы предоставлены в формате [Jupyter Notebook](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/2-Working-With-Data/08-data-preparation/notebook.ipynb). Кроме того, после каждого раздела есть упражнения — попробуйте их выполнить! + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/15) + + + +## Обзор и самостоятельное изучение + +Существует множество способов изучения и подходов к подготовке данных для анализа и моделирования, а очистка данных — это важный этап, который требует практического подхода. Попробуйте эти задания на Kaggle, чтобы изучить техники, которые не были рассмотрены в этом уроке. + +- [Data Cleaning Challenge: Parsing Dates](https://www.kaggle.com/rtatman/data-cleaning-challenge-parsing-dates/) + +- [Data Cleaning Challenge: Scale and Normalize Data](https://www.kaggle.com/rtatman/data-cleaning-challenge-scale-and-normalize-data) + + +## Задание + +[Оценка данных из формы](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/08-data-preparation/assignment.md b/translations/ru/2-Working-With-Data/08-data-preparation/assignment.md new file mode 100644 index 00000000..6a451740 --- /dev/null +++ b/translations/ru/2-Working-With-Data/08-data-preparation/assignment.md @@ -0,0 +1,28 @@ + +# Оценка данных из формы + +Клиент тестировал [небольшую форму](../../../../2-Working-With-Data/08-data-preparation/index.html) для сбора базовой информации о своей клиентской базе. Они предоставили вам свои результаты для проверки собранных данных. Вы можете открыть страницу `index.html` в браузере, чтобы ознакомиться с формой. + +Вам предоставлен [набор данных в формате csv](../../../../data/form.csv), содержащий записи из формы, а также некоторые базовые визуализации. Клиент отметил, что некоторые визуализации выглядят некорректно, но они не уверены, как это исправить. Вы можете изучить это в [тетрадке задания](assignment.ipynb). + +## Инструкции + +Используйте методы из этого урока, чтобы дать рекомендации по улучшению формы, чтобы она собирала точную и последовательную информацию. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшений +--- | --- | --- + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/2-Working-With-Data/README.md b/translations/ru/2-Working-With-Data/README.md new file mode 100644 index 00000000..cc6ec7a3 --- /dev/null +++ b/translations/ru/2-Working-With-Data/README.md @@ -0,0 +1,31 @@ + +# Работа с данными + +![data love](../../../translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ru.jpg) +> Фото Александра Синна на Unsplash + +В этих уроках вы узнаете о различных способах управления, обработки и использования данных в приложениях. Вы познакомитесь с реляционными и нереляционными базами данных и узнаете, как данные могут храниться в них. Вы изучите основы работы с Python для управления данными и откроете для себя множество способов использования Python для обработки и анализа данных. + +### Темы + +1. [Реляционные базы данных](05-relational-databases/README.md) +2. [Нереляционные базы данных](06-non-relational/README.md) +3. [Работа с Python](07-python/README.md) +4. [Подготовка данных](08-data-preparation/README.md) + +### Авторы + +Эти уроки были написаны с ❤️ [Кристофером Харрисоном](https://twitter.com/geektrainer), [Дмитрием Сошниковым](https://twitter.com/shwars) и [Жасмин Гринэвэй](https://twitter.com/paladique). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/09-visualization-quantities/README.md b/translations/ru/3-Data-Visualization/09-visualization-quantities/README.md new file mode 100644 index 00000000..0fdd3654 --- /dev/null +++ b/translations/ru/3-Data-Visualization/09-visualization-quantities/README.md @@ -0,0 +1,217 @@ + +# Визуализация количеств + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| Визуализация количеств - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В этом уроке вы изучите, как использовать одну из множества доступных библиотек Python для создания интересных визуализаций, связанных с понятием количества. Используя очищенный набор данных о птицах Миннесоты, вы сможете узнать много интересного о местной фауне. +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## Наблюдаем размах крыльев с помощью Matplotlib + +Отличной библиотекой для создания как простых, так и сложных графиков и диаграмм является [Matplotlib](https://matplotlib.org/stable/index.html). В общем случае процесс построения графиков с использованием этих библиотек включает в себя выбор частей вашего датафрейма, которые вы хотите использовать, выполнение необходимых преобразований данных, назначение значений для осей x и y, выбор типа графика и его отображение. Matplotlib предлагает множество видов визуализаций, но в этом уроке мы сосредоточимся на тех, которые наиболее подходят для визуализации количеств: линейные графики, точечные диаграммы и столбчатые диаграммы. + +> ✅ Используйте наиболее подходящий тип графика в зависимости от структуры данных и истории, которую вы хотите рассказать. +> - Для анализа трендов во времени: линейный график +> - Для сравнения значений: столбчатая, колонная, круговая диаграмма, точечная диаграмма +> - Для отображения частей целого: круговая диаграмма +> - Для отображения распределения данных: точечная диаграмма, столбчатая диаграмма +> - Для отображения трендов: линейный график, колонная диаграмма +> - Для отображения взаимосвязей между значениями: линейный график, точечная диаграмма, пузырьковая диаграмма + +Если у вас есть набор данных и вам нужно узнать, сколько определенного элемента в нем содержится, одной из первых задач будет проверка его значений. + +✅ Отличные "шпаргалки" по Matplotlib доступны [здесь](https://matplotlib.org/cheatsheets/cheatsheets.pdf). + +## Построение линейного графика значений размаха крыльев птиц + +Откройте файл `notebook.ipynb` в корневой папке этого урока и добавьте ячейку. + +> Примечание: данные хранятся в корне этого репозитория в папке `/data`. + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +Эти данные содержат смесь текста и чисел: + +| | Название | Научное название | Категория | Отряд | Семейство | Род | Статус сохранности | Мин. длина | Макс. длина | Мин. масса тела | Макс. масса тела | Мин. размах крыльев | Макс. размах крыльев | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | -------------: | -------------: | ----------------: | ----------------: | +| 0 | Чернобрюхий свистун | Dendrocygna autumnalis | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Рыжий свистун | Dendrocygna bicolor | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Белый гусь | Anser caerulescens | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Гусь Росса | Anser rossii | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Большой белолобый гусь | Anser albifrons | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +Начнем с построения графика некоторых числовых данных, используя базовый линейный график. Допустим, вы хотите увидеть максимальный размах крыльев этих интересных птиц. + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![Макс. размах крыльев](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ru.png) + +Что вы замечаете сразу? Кажется, есть как минимум один выброс — это впечатляющий размах крыльев! Размах крыльев в 2300 сантиметров равен 23 метрам — неужели в Миннесоте летают птеродактили? Давайте разберемся. + +Хотя вы могли бы быстро отсортировать данные в Excel, чтобы найти эти выбросы, продолжим процесс визуализации, работая с графиком. + +Добавьте подписи к оси x, чтобы показать, о каких птицах идет речь: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![Размах крыльев с подписями](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ru.png) + +Даже с поворотом подписей на 45 градусов их слишком много, чтобы прочитать. Попробуем другой подход: подпишем только выбросы и разместим подписи внутри графика. Вы можете использовать точечную диаграмму, чтобы освободить место для подписей: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +Что здесь происходит? Вы использовали `tick_params`, чтобы скрыть нижние подписи, а затем создали цикл по вашему набору данных о птицах. Построив график с маленькими круглыми синими точками, используя `bo`, вы проверили, есть ли у какой-либо птицы максимальный размах крыльев больше 500, и отобразили их подпись рядом с точкой, если это так. Вы немного сместили подписи по оси y (`y * (1 - 0.05)`) и использовали название птицы в качестве подписи. + +Что вы обнаружили? + +![Выбросы](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ru.png) +## Фильтрация данных + +И Белоголовый орлан, и Степной сокол, хотя, вероятно, очень крупные птицы, скорее всего, имеют ошибку в данных, с добавленным лишним `0` в их максимальном размахе крыльев. Вряд ли вы встретите Белоголового орлана с размахом крыльев 25 метров, но если это произойдет, пожалуйста, сообщите нам! Давайте создадим новый датафрейм без этих двух выбросов: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +Исключив выбросы, ваши данные стали более согласованными и понятными. + +![Точечная диаграмма размахов крыльев](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ru.png) + +Теперь, когда у нас есть более чистый набор данных, по крайней мере в отношении размаха крыльев, давайте узнаем больше об этих птицах. + +Хотя линейные и точечные диаграммы могут отображать информацию о значениях данных и их распределении, мы хотим подумать о значениях, содержащихся в этом наборе данных. Вы могли бы создать визуализации, чтобы ответить на следующие вопросы о количестве: + +> Сколько категорий птиц существует и каково их количество? +> Сколько птиц вымерло, находится под угрозой исчезновения, редких или обычных? +> Сколько существует различных родов и отрядов в терминологии Линнея? +## Изучаем столбчатые диаграммы + +Столбчатые диаграммы удобны, когда нужно показать группировку данных. Давайте изучим категории птиц, представленные в этом наборе данных, чтобы увидеть, какая из них наиболее распространена по количеству. + +В файле блокнота создайте базовую столбчатую диаграмму. + +✅ Обратите внимание, что вы можете либо исключить двух птиц-выбросов, которых мы определили в предыдущем разделе, исправить ошибку в их размахе крыльев, либо оставить их для этих упражнений, которые не зависят от значений размаха крыльев. + +Если вы хотите создать столбчатую диаграмму, вы можете выбрать данные, на которых хотите сосредоточиться. Столбчатые диаграммы можно создавать из необработанных данных: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![Все данные в виде столбчатой диаграммы](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ru.png) + +Эта столбчатая диаграмма, однако, нечитаема, потому что данных слишком много и они не сгруппированы. Вам нужно выбрать только те данные, которые вы хотите отобразить, поэтому давайте посмотрим на длину птиц в зависимости от их категории. + +Отфильтруйте данные, чтобы включить только категорию птиц. + +✅ Обратите внимание, что вы используете Pandas для управления данными, а затем позволяете Matplotlib строить диаграмму. + +Поскольку категорий много, вы можете отобразить эту диаграмму вертикально и настроить ее высоту, чтобы учесть все данные: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![Категории и длина](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ru.png) + +Эта столбчатая диаграмма дает хорошее представление о количестве птиц в каждой категории. С первого взгляда видно, что наибольшее количество птиц в этом регионе относится к категории Утки/Гуси/Водоплавающие. Миннесота — это "земля 10,000 озер", так что это неудивительно! + +✅ Попробуйте подсчитать что-нибудь еще в этом наборе данных. Вас что-нибудь удивило? + +## Сравнение данных + +Вы можете попробовать разные сравнения сгруппированных данных, создавая новые оси. Попробуйте сравнить MaxLength птицы в зависимости от ее категории: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![Сравнение данных](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ru.png) + +Здесь ничего удивительного: колибри имеют наименьшую максимальную длину по сравнению с пеликанами или гусями. Хорошо, когда данные логичны! + +Вы можете создавать более интересные визуализации столбчатых диаграмм, накладывая данные друг на друга. Давайте наложим минимальную и максимальную длину на каждую категорию птиц: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +На этом графике вы можете увидеть диапазон минимальной и максимальной длины для каждой категории птиц. Можно с уверенностью сказать, что, исходя из этих данных, чем больше птица, тем шире диапазон ее длины. Удивительно! + +![Наложенные значения](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ru.png) + +## 🚀 Задание + +Этот набор данных о птицах предлагает множество информации о различных типах птиц в определенной экосистеме. Поискать в интернете другие наборы данных о птицах. Попробуйте построить графики и диаграммы, чтобы узнать факты, о которых вы не подозревали. +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## Обзор и самостоятельное изучение + +Этот первый урок дал вам информацию о том, как использовать Matplotlib для визуализации количеств. Проведите исследование других способов работы с наборами данных для визуализации. [Plotly](https://github.com/plotly/plotly.py) — это инструмент, который мы не будем рассматривать в этих уроках, поэтому изучите, что он может предложить. +## Задание + +[Линии, точки и столбцы](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/09-visualization-quantities/assignment.md b/translations/ru/3-Data-Visualization/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..5fe094fc --- /dev/null +++ b/translations/ru/3-Data-Visualization/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# Линии, точки и столбцы + +## Инструкции + +В этом уроке вы работали с линейными графиками, точечными диаграммами и столбцовыми графиками, чтобы показать интересные факты об этом наборе данных. В этом задании углубитесь в набор данных, чтобы обнаружить факт о конкретном виде птиц. Например, создайте ноутбук, визуализирующий все интересные данные, которые вы можете найти о белых гусях. Используйте три упомянутых выше типа графиков, чтобы рассказать историю в вашем ноутбуке. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Ноутбук представлен с хорошими аннотациями, четким повествованием и привлекательными графиками | В ноутбуке отсутствует один из этих элементов | В ноутбуке отсутствуют два из этих элементов + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/10-visualization-distributions/README.md b/translations/ru/3-Data-Visualization/10-visualization-distributions/README.md new file mode 100644 index 00000000..2ae46a99 --- /dev/null +++ b/translations/ru/3-Data-Visualization/10-visualization-distributions/README.md @@ -0,0 +1,217 @@ + +# Визуализация распределений + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| Визуализация распределений - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В предыдущем уроке вы узнали несколько интересных фактов о наборе данных о птицах Миннесоты. Вы обнаружили ошибочные данные, визуализировав выбросы, и изучили различия между категориями птиц по их максимальной длине. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## Исследование набора данных о птицах + +Еще один способ изучить данные — это посмотреть на их распределение, то есть на то, как данные организованы вдоль оси. Например, вы можете захотеть узнать об общем распределении максимального размаха крыльев или максимальной массы тела для птиц Миннесоты. + +Давайте узнаем несколько фактов о распределении данных в этом наборе. В файле _notebook.ipynb_, расположенном в корневой папке этого урока, импортируйте Pandas, Matplotlib и ваш набор данных: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +| | Название | Научное название | Категория | Отряд | Семейство | Род | Статус сохранности | Мин. длина | Макс. длина | Мин. масса тела | Макс. масса тела | Мин. размах крыльев | Макс. размах крыльев | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Чернобрюхий свистун | Dendrocygna autumnalis | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Рыжий свистун | Dendrocygna bicolor | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Белый гусь | Anser caerulescens | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Гусь Росса | Anser rossii | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Большой белолобый гусь | Anser albifrons | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +В целом, вы можете быстро посмотреть, как распределены данные, используя диаграмму рассеяния, как мы делали в предыдущем уроке: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +![максимальная длина по отрядам](../../../../translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ru.png) + +Это дает обзор общего распределения длины тела по отрядам птиц, но это не самый оптимальный способ отображения истинных распределений. Для этой задачи обычно создается гистограмма. + +## Работа с гистограммами + +Matplotlib предлагает отличные способы визуализации распределения данных с помощью гистограмм. Этот тип диаграммы похож на столбчатую диаграмму, где распределение можно увидеть через подъем и спад столбцов. Чтобы построить гистограмму, вам нужны числовые данные. Для создания гистограммы можно построить диаграмму, определив тип как 'hist' для гистограммы. Эта диаграмма показывает распределение MaxBodyMass для всего диапазона числовых данных набора данных. Разделяя массив данных на более мелкие интервалы, она может отображать распределение значений данных: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![распределение по всему набору данных](../../../../translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ru.png) + +Как видно, большинство из 400+ птиц в этом наборе данных имеют массу тела менее 2000. Получите больше информации о данных, изменив параметр `bins` на большее число, например, 30: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![распределение по всему набору данных с большим параметром bins](../../../../translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ru.png) + +Эта диаграмма показывает распределение более детально. Менее смещенную влево диаграмму можно создать, выбрав данные только в заданном диапазоне: + +Отфильтруйте данные, чтобы получить только тех птиц, чья масса тела меньше 60, и покажите 40 `bins`: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![отфильтрованная гистограмма](../../../../translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ru.png) + +✅ Попробуйте другие фильтры и точки данных. Чтобы увидеть полное распределение данных, удалите фильтр `['MaxBodyMass']`, чтобы показать распределения с метками. + +Гистограмма также предлагает интересные улучшения цвета и меток: + +Создайте 2D-гистограмму, чтобы сравнить взаимосвязь между двумя распределениями. Давайте сравним `MaxBodyMass` и `MaxLength`. Matplotlib предлагает встроенный способ показать сходимость с использованием более ярких цветов: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +Кажется, есть ожидаемая корреляция между этими двумя элементами вдоль ожидаемой оси, с одной особенно сильной точкой сходимости: + +![2D диаграмма](../../../../translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ru.png) + +Гистограммы хорошо работают по умолчанию для числовых данных. А что, если вам нужно увидеть распределения по текстовым данным? +## Исследование набора данных для распределений с использованием текстовых данных + +Этот набор данных также содержит полезную информацию о категории птиц, их роде, виде и семействе, а также о статусе сохранности. Давайте изучим информацию о статусе сохранности. Каково распределение птиц по их статусу сохранности? + +> ✅ В наборе данных используются несколько аббревиатур для описания статуса сохранности. Эти аббревиатуры взяты из [Категорий Красного списка МСОП](https://www.iucnredlist.org/), организации, которая каталогизирует статус видов. +> +> - CR: Находящиеся на грани исчезновения +> - EN: Исчезающие +> - EX: Вымершие +> - LC: Наименьшая угроза +> - NT: Близкие к уязвимому положению +> - VU: Уязвимые + +Это текстовые значения, поэтому вам нужно будет преобразовать их, чтобы создать гистограмму. Используя dataframe filteredBirds, отобразите его статус сохранности вместе с минимальным размахом крыльев. Что вы видите? + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Min Wingspan') +plt.legend(); +``` + +![размах крыльев и статус сохранности](../../../../translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ru.png) + +Не кажется, что есть хорошая корреляция между минимальным размахом крыльев и статусом сохранности. Проверьте другие элементы набора данных, используя этот метод. Вы можете попробовать разные фильтры. Найдете ли вы какую-либо корреляцию? + +## Плотностные графики + +Вы могли заметить, что гистограммы, которые мы рассматривали до сих пор, имеют "ступенчатый" вид и не плавно переходят в дугу. Чтобы показать более плавный график плотности, вы можете попробовать плотностный график. + +Для работы с плотностными графиками ознакомьтесь с новой библиотекой построения графиков, [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html). + +Загрузив Seaborn, попробуйте базовый плотностный график: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![Плотностный график](../../../../translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ru.png) + +Вы можете увидеть, как график повторяет предыдущий для данных о минимальном размахе крыльев; он просто немного более плавный. Согласно документации Seaborn, "По сравнению с гистограммой, KDE может создать график, который менее загроможден и более интерпретируем, особенно при построении нескольких распределений. Но он может ввести искажения, если исходное распределение ограничено или не является плавным. Как и гистограмма, качество представления также зависит от выбора хороших параметров сглаживания." [источник](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) Другими словами, выбросы, как всегда, могут негативно повлиять на ваши графики. + +Если вы захотите вернуться к той зубчатой линии MaxBodyMass на втором графике, который вы построили, вы сможете сгладить ее, используя этот метод: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![гладкая линия массы тела](../../../../translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ru.png) + +Если вы хотите получить гладкую, но не слишком гладкую линию, измените параметр `bw_adjust`: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![менее гладкая линия массы тела](../../../../translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ru.png) + +✅ Ознакомьтесь с доступными параметрами для этого типа графика и экспериментируйте! + +Этот тип графика предлагает наглядные визуализации. Например, с помощью нескольких строк кода вы можете показать плотность максимальной массы тела по отрядам птиц: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![масса тела по отрядам](../../../../translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ru.png) + +Вы также можете отобразить плотность нескольких переменных на одном графике. Сравните MaxLength и MinLength птицы с их статусом сохранности: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![несколько плотностей, наложенных друг на друга](../../../../translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ru.png) + +Возможно, стоит исследовать, имеет ли значение кластер уязвимых птиц в зависимости от их длины. + +## 🚀 Задание + +Гистограммы — это более сложный тип диаграмм, чем базовые диаграммы рассеяния, столбчатые диаграммы или линейные графики. Найдите в интернете хорошие примеры использования гистограмм. Как они используются, что они демонстрируют и в каких областях или сферах исследования они чаще всего применяются? + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## Обзор и самостоятельное изучение + +В этом уроке вы использовали Matplotlib и начали работать с Seaborn для создания более сложных диаграмм. Проведите исследование о `kdeplot` в Seaborn, "непрерывной кривой плотности вероятности в одном или нескольких измерениях". Ознакомьтесь с [документацией](https://seaborn.pydata.org/generated/seaborn.kdeplot.html), чтобы понять, как это работает. + +## Задание + +[Примените свои навыки](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/10-visualization-distributions/assignment.md b/translations/ru/3-Data-Visualization/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..8b5a2439 --- /dev/null +++ b/translations/ru/3-Data-Visualization/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# Примените свои навыки + +## Инструкции + +До этого вы работали с набором данных о птицах Миннесоты, чтобы узнать информацию о количестве птиц и плотности их популяции. Попробуйте применить эти методы к другому набору данных, возможно, взятому с [Kaggle](https://www.kaggle.com/). Создайте ноутбук, чтобы рассказать историю об этом наборе данных, и обязательно используйте гистограммы при его анализе. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Представлен ноутбук с аннотациями о наборе данных, включая его источник, и использует минимум 5 гистограмм для анализа данных. | Представлен ноутбук с неполными аннотациями или ошибками. | Представлен ноутбук без аннотаций и с наличием ошибок. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/11-visualization-proportions/README.md b/translations/ru/3-Data-Visualization/11-visualization-proportions/README.md new file mode 100644 index 00000000..b8ce85e0 --- /dev/null +++ b/translations/ru/3-Data-Visualization/11-visualization-proportions/README.md @@ -0,0 +1,204 @@ + +# Визуализация пропорций + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|Визуализация пропорций - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В этом уроке вы будете использовать другой набор данных, связанный с природой, чтобы визуализировать пропорции, например, сколько различных видов грибов представлено в наборе данных о грибах. Давайте изучим эти удивительные грибы, используя набор данных от Audubon, содержащий информацию о 23 видах пластинчатых грибов из семейств Agaricus и Lepiota. Вы попробуете аппетитные визуализации, такие как: + +- Круговые диаграммы 🥧 +- Кольцевые диаграммы 🍩 +- Вафельные диаграммы 🧇 + +> 💡 Очень интересный проект [Charticulator](https://charticulator.com) от Microsoft Research предлагает бесплатный интерфейс для визуализации данных с функцией перетаскивания. В одном из их учебных пособий также используется этот набор данных о грибах! Вы можете изучить данные и одновременно освоить библиотеку: [Учебное пособие Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## Узнайте больше о грибах 🍄 + +Грибы — это очень интересный объект для изучения. Давайте импортируем набор данных, чтобы изучить их: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +На экране выводится таблица с отличными данными для анализа: + + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Ядовитый | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Съедобный | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Съедобный | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Ядовитый | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +Сразу видно, что все данные представлены в текстовом формате. Чтобы использовать их в диаграмме, необходимо преобразовать данные. Большая часть данных представлена в виде объекта: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +Результат: + +```output +Index(['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'], + dtype='object') +``` +Возьмите эти данные и преобразуйте столбец 'class' в категорию: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` + +```python +edibleclass=mushrooms.groupby(['class']).count() +edibleclass +``` + +Теперь, если вы выведете данные о грибах, вы увидите, что они сгруппированы в категории по классам ядовитых/съедобных грибов: + + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | 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 | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Съедобный | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Ядовитый | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +Если вы следуете порядку, представленному в этой таблице, чтобы создать метки категорий класса, вы можете построить круговую диаграмму: + +## Круг! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +Вуаля, круговая диаграмма, показывающая пропорции данных по двум классам грибов. Очень важно правильно задать порядок меток, особенно здесь, поэтому обязательно проверьте порядок, в котором создается массив меток! + +![круговая диаграмма](../../../../translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ru.png) + +## Кольца! + +Более визуально интересной версией круговой диаграммы является кольцевая диаграмма, которая представляет собой круговую диаграмму с отверстием в центре. Давайте посмотрим на наши данные с помощью этого метода. + +Посмотрите на различные места обитания грибов: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +Здесь вы группируете данные по месту обитания. Их всего 7, поэтому используйте их в качестве меток для кольцевой диаграммы: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![кольцевая диаграмма](../../../../translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ru.png) + +Этот код рисует диаграмму и центральный круг, затем добавляет этот круг в диаграмму. Измените ширину центрального круга, изменив значение `0.40` на другое. + +Кольцевые диаграммы можно настроить различными способами, чтобы изменить метки. Метки, в частности, можно выделить для улучшения читаемости. Узнайте больше в [документации](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut). + +Теперь, когда вы знаете, как группировать данные и отображать их в виде круговой или кольцевой диаграммы, вы можете изучить другие типы диаграмм. Попробуйте вафельную диаграмму, которая представляет собой другой способ изучения количества. +## Вафли! + +Вафельная диаграмма — это другой способ визуализации количеств в виде двумерного массива квадратов. Попробуйте визуализировать различные количества цветов шляпок грибов в этом наборе данных. Для этого вам нужно установить вспомогательную библиотеку [PyWaffle](https://pypi.org/project/pywaffle/) и использовать Matplotlib: + +```python +pip install pywaffle +``` + +Выберите сегмент данных для группировки: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +Создайте вафельную диаграмму, создав метки и затем сгруппировав данные: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +С помощью вафельной диаграммы вы можете четко увидеть пропорции цветов шляпок грибов в этом наборе данных. Интересно, что существует много грибов с зелеными шляпками! + +![вафельная диаграмма](../../../../translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ru.png) + +✅ PyWaffle поддерживает использование иконок в диаграммах, которые могут быть любыми доступными иконками из [Font Awesome](https://fontawesome.com/). Проведите эксперименты, чтобы создать еще более интересную вафельную диаграмму, используя иконки вместо квадратов. + +В этом уроке вы узнали три способа визуализации пропорций. Сначала нужно сгруппировать данные в категории, а затем решить, какой способ отображения данных — круг, кольцо или вафля — подходит лучше всего. Все они аппетитны и дают пользователю мгновенное представление о наборе данных. + +## 🚀 Задание + +Попробуйте воссоздать эти аппетитные диаграммы в [Charticulator](https://charticulator.com). +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## Обзор и самостоятельное изучение + +Иногда бывает не очевидно, когда использовать круговую, кольцевую или вафельную диаграмму. Вот несколько статей на эту тему: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +Проведите исследование, чтобы найти больше информации о выборе подходящего типа диаграммы. +## Задание + +[Попробуйте в Excel](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/11-visualization-proportions/assignment.md b/translations/ru/3-Data-Visualization/11-visualization-proportions/assignment.md new file mode 100644 index 00000000..452c8340 --- /dev/null +++ b/translations/ru/3-Data-Visualization/11-visualization-proportions/assignment.md @@ -0,0 +1,25 @@ + +# Попробуйте в Excel + +## Инструкции + +Знали ли вы, что в Excel можно создавать кольцевые, круговые и вафельные диаграммы? Используя набор данных на ваш выбор, создайте эти три диаграммы прямо в таблице Excel. + +## Критерии оценки + +| Превосходно | Удовлетворительно | Требует улучшений | +| ------------------------------------------------------- | ------------------------------------------------- | --------------------------------------------------- | +| Представлена таблица Excel со всеми тремя диаграммами | Представлена таблица Excel с двумя диаграммами | Представлена таблица Excel только с одной диаграммой | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/12-visualization-relationships/README.md b/translations/ru/3-Data-Visualization/12-visualization-relationships/README.md new file mode 100644 index 00000000..5833bcef --- /dev/null +++ b/translations/ru/3-Data-Visualization/12-visualization-relationships/README.md @@ -0,0 +1,186 @@ + +# Визуализация связей: всё о мёде 🍯 + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|Визуализация связей - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Продолжая исследование, связанное с природой, давайте изучим интересные способы визуализации связей между различными типами мёда, основываясь на наборе данных, полученном от [Министерства сельского хозяйства США](https://www.nass.usda.gov/About_NASS/index.php). + +Этот набор данных, содержащий около 600 записей, отображает производство мёда в различных штатах США. Например, можно изучить количество колоний, урожайность на одну колонию, общий объём производства, запасы, цену за фунт и стоимость произведённого мёда в каждом штате за период с 1998 по 2012 год, где каждая строка представляет данные за год для конкретного штата. + +Будет интересно визуализировать связь между объёмом производства в штате за год и, например, ценой мёда в этом штате. Также можно визуализировать связь между урожайностью мёда на одну колонию в разных штатах. Этот временной период охватывает разрушительное явление «Синдром разрушения колоний» (CCD), впервые зафиксированное в 2006 году (http://npic.orst.edu/envir/ccd.html), что делает этот набор данных особенно значимым для изучения. 🐝 + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +В этом уроке вы можете использовать библиотеку Seaborn, с которой вы уже знакомы, чтобы визуализировать связи между переменными. Особенно интересна функция `relplot` в Seaborn, которая позволяет создавать диаграммы рассеяния и линейные графики для быстрой визуализации '[статистических связей](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)', что помогает исследователю данных лучше понять, как переменные связаны друг с другом. + +## Диаграммы рассеяния + +Используйте диаграмму рассеяния, чтобы показать, как цена мёда менялась год за годом в каждом штате. Seaborn, используя `relplot`, удобно группирует данные по штатам и отображает точки данных как для категориальных, так и для числовых данных. + +Начнём с импорта данных и библиотеки Seaborn: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +Вы заметите, что данные о мёде содержат несколько интересных столбцов, включая год и цену за фунт. Давайте изучим эти данные, сгруппированные по штатам США: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + +Создайте базовую диаграмму рассеяния, чтобы показать связь между ценой за фунт мёда и штатом его происхождения. Сделайте ось `y` достаточно высокой, чтобы отобразить все штаты: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ru.png) + +Теперь покажите те же данные с цветовой схемой, напоминающей цвет мёда, чтобы продемонстрировать, как цена меняется год за годом. Вы можете сделать это, добавив параметр 'hue', чтобы показать изменения: + +> ✅ Узнайте больше о [цветовых палитрах, которые можно использовать в Seaborn](https://seaborn.pydata.org/tutorial/color_palettes.html) - попробуйте красивую радужную палитру! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ru.png) + +С изменением цветовой схемы становится очевидным, что цена за фунт мёда значительно увеличивается с годами. Если вы проверите это на выборке данных (например, выберите штат Аризона), вы увидите закономерность роста цен год за годом, за редкими исключениями: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +Другой способ визуализировать этот рост — использовать размер вместо цвета. Для пользователей с нарушением цветового восприятия это может быть более удобным вариантом. Измените визуализацию, чтобы показать увеличение цены через увеличение диаметра точек: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +Вы можете заметить, как размер точек постепенно увеличивается. + +![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ru.png) + +Это простой случай спроса и предложения? Из-за таких факторов, как изменение климата и разрушение колоний, становится ли мёда меньше с каждым годом, что приводит к росту цен? + +Чтобы найти корреляцию между некоторыми переменными в этом наборе данных, давайте изучим линейные графики. + +## Линейные графики + +Вопрос: Наблюдается ли явный рост цены за фунт мёда год за годом? Это можно легко увидеть, создав один линейный график: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +Ответ: Да, с некоторыми исключениями около 2003 года: + +![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ru.png) + +✅ Поскольку Seaborn агрегирует данные в одну линию, он отображает «несколько измерений для каждого значения x, строя среднее значение и 95% доверительный интервал вокруг среднего». [Источник](https://seaborn.pydata.org/tutorial/relational.html). Это трудоёмкое поведение можно отключить, добавив `ci=None`. + +Вопрос: А в 2003 году можно также увидеть всплеск предложения мёда? Что если посмотреть на общий объём производства год за годом? + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ru.png) + +Ответ: Не совсем. Если посмотреть на общий объём производства, он, наоборот, кажется увеличившимся в этот год, хотя в целом объём производства мёда снижается в течение этих лет. + +Вопрос: В таком случае, что могло вызвать всплеск цены мёда около 2003 года? + +Чтобы выяснить это, можно использовать сетку фасетов. + +## Сетки фасетов + +Сетки фасетов позволяют выбрать один аспект вашего набора данных (в нашем случае можно выбрать 'год', чтобы избежать создания слишком большого количества фасетов). Seaborn затем создаёт график для каждого из этих фасетов с выбранными координатами x и y для более удобного визуального сравнения. Выделяется ли 2003 год в таком сравнении? + +Создайте сетку фасетов, продолжая использовать `relplot`, как рекомендовано в [документации Seaborn](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid). + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +В этой визуализации вы можете сравнить урожайность на одну колонию и количество колоний год за годом, расположив их рядом с wrap, установленным на 3 для колонок: + +![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ru.png) + +Для этого набора данных ничего особенного не выделяется в отношении количества колоний и их урожайности год за годом и штат за штатом. Есть ли другой способ найти корреляцию между этими двумя переменными? + +## Двухлинейные графики + +Попробуйте многолинейный график, наложив два линейных графика друг на друга, используя функцию Seaborn 'despine', чтобы убрать верхние и правые границы, и используя `ax.twinx` [из библиотеки Matplotlib](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html). Twinx позволяет графику делить ось x и отображать две оси y. Отобразите урожайность на одну колонию и количество колоний, наложив их друг на друга: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ru.png) + +Хотя ничего явно не выделяется около 2003 года, это позволяет завершить урок на более позитивной ноте: несмотря на общее снижение количества колоний, их число стабилизируется, даже если урожайность на одну колонию уменьшается. + +Вперёд, пчёлы, вперёд! + +🐝❤️ +## 🚀 Задание + +В этом уроке вы узнали немного больше о других способах использования диаграмм рассеяния и линейных сеток, включая сетки фасетов. Попробуйте создать сетку фасетов, используя другой набор данных, возможно, тот, который вы использовали ранее в этих уроках. Обратите внимание, сколько времени требуется для её создания и как важно учитывать количество сеток, которые нужно нарисовать, используя эти техники. +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## Обзор и самостоятельное изучение + +Линейные графики могут быть простыми или довольно сложными. Почитайте [документацию Seaborn](https://seaborn.pydata.org/generated/seaborn.lineplot.html) о различных способах их построения. Попробуйте улучшить линейные графики, которые вы создали в этом уроке, используя другие методы, перечисленные в документации. +## Задание + +[Погрузитесь в улей](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/12-visualization-relationships/assignment.md b/translations/ru/3-Data-Visualization/12-visualization-relationships/assignment.md new file mode 100644 index 00000000..ddf2f960 --- /dev/null +++ b/translations/ru/3-Data-Visualization/12-visualization-relationships/assignment.md @@ -0,0 +1,25 @@ + +# Погружение в пчелиный улей + +## Инструкции + +В этом уроке вы начали изучать набор данных о пчелах и их производстве меда за период времени, в течение которого наблюдались потери в популяции пчелиных колоний. Углубитесь в этот набор данных и создайте ноутбук, который сможет рассказать историю о состоянии популяции пчел, по штатам и годам. Вы обнаружили что-то интересное в этом наборе данных? + +## Критерии оценки + +| Превосходно | Удовлетворительно | Требуется улучшение | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| Представлен ноутбук с историей, аннотированной как минимум тремя различными графиками, показывающими аспекты набора данных, по штатам и годам | В ноутбуке отсутствует один из этих элементов | В ноутбуке отсутствуют два из этих элементов | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/13-meaningful-visualizations/README.md b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/README.md new file mode 100644 index 00000000..9c68cc50 --- /dev/null +++ b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/README.md @@ -0,0 +1,182 @@ + +# Создание значимых визуализаций + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| Значимые визуализации - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +> "Если достаточно долго мучить данные, они признаются в чем угодно" -- [Рональд Коуз](https://en.wikiquote.org/wiki/Ronald_Coase) + +Одним из базовых навыков дата-сайентиста является способность создавать значимые визуализации данных, которые помогают отвечать на возникающие вопросы. Перед тем как визуализировать данные, необходимо убедиться, что они были очищены и подготовлены, как вы делали в предыдущих уроках. После этого можно начинать решать, как лучше всего представить данные. + +В этом уроке вы изучите: + +1. Как выбрать правильный тип графика +2. Как избежать обманчивых визуализаций +3. Как работать с цветом +4. Как стилизовать графики для удобства чтения +5. Как создавать анимированные или 3D-решения для графиков +6. Как создавать креативные визуализации + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## Выбор правильного типа графика + +В предыдущих уроках вы экспериментировали с созданием различных интересных визуализаций данных, используя Matplotlib и Seaborn для построения графиков. В общем случае, вы можете выбрать [правильный тип графика](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) для ответа на ваш вопрос, используя эту таблицу: + +| Вам нужно: | Вам следует использовать: | +| -------------------------- | ------------------------------- | +| Показать тренды данных во времени | Линейный график | +| Сравнить категории | Столбчатый, Круговой | +| Сравнить общие значения | Круговой, Сложенный столбчатый | +| Показать взаимосвязи | Точечный, Линейный, Фасетный, Двойной линейный | +| Показать распределения | Точечный, Гистограмма, Ящик | +| Показать пропорции | Круговой, Донат, Вафельный | + +> ✅ В зависимости от структуры ваших данных, возможно, потребуется преобразовать их из текстового формата в числовой, чтобы поддерживать определенный тип графика. + +## Избегайте обмана + +Даже если дата-сайентист тщательно выбирает правильный график для данных, существует множество способов представить данные так, чтобы доказать определенную точку зрения, часто в ущерб самим данным. Существует множество примеров обманчивых графиков и инфографики! + +[![Как графики обманывают, Альберто Каиро](../../../../translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ru.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "Как графики обманывают") + +> 🎥 Нажмите на изображение выше, чтобы посмотреть конференцию о обманчивых графиках + +Этот график переворачивает ось X, чтобы показать противоположное истине, основываясь на дате: + +![плохой график 1](../../../../translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ru.png) + +[Этот график](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) еще более обманчив, так как взгляд притягивается к правой стороне, создавая впечатление, что со временем случаи COVID снизились в различных округах. Однако, если внимательно посмотреть на даты, можно заметить, что они были переставлены, чтобы создать этот обманчивый нисходящий тренд. + +![плохой график 2](../../../../translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ru.jpg) + +Этот известный пример использует цвет И перевернутую ось Y, чтобы ввести в заблуждение: вместо того чтобы сделать вывод, что количество смертей от оружия резко возросло после принятия законодательства, благоприятного для оружия, взгляд обманчиво заставляет думать, что произошло обратное: + +![плохой график 3](../../../../translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ru.jpg) + +Этот странный график показывает, как пропорции могут быть манипулированы, что выглядит комично: + +![плохой график 4](../../../../translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ru.jpg) + +Сравнение несравнимого — еще один сомнительный прием. Существует [замечательный веб-сайт](https://tylervigen.com/spurious-correlations), посвященный "ложным корреляциям", демонстрирующий "факты", связывающие, например, уровень разводов в штате Мэн и потребление маргарина. Группа на Reddit также собирает [некрасивые примеры](https://www.reddit.com/r/dataisugly/top/?t=all) использования данных. + +Важно понимать, как легко взгляд может быть обманут обманчивыми графиками. Даже если намерения дата-сайентиста хороши, выбор неподходящего типа графика, например кругового графика с слишком большим количеством категорий, может быть обманчивым. + +## Цвет + +Вы видели на графике "Флоридское насилие с применением оружия", как цвет может добавить дополнительный слой смысла к графикам, особенно тем, которые не созданы с использованием библиотек, таких как Matplotlib и Seaborn, которые предлагают различные проверенные цветовые палитры. Если вы создаете график вручную, изучите немного [теорию цвета](https://colormatters.com/color-and-design/basic-color-theory). + +> ✅ Помните, что при создании графиков доступность является важным аспектом визуализации. Некоторые ваши пользователи могут быть дальтониками — хорошо ли ваш график отображается для пользователей с нарушениями зрения? + +Будьте осторожны при выборе цветов для вашего графика, так как цвет может передавать смысл, который вы не намеревались. "Розовые дамы" на графике "роста" выше передают явно "женственное" значение, что добавляет странности самому графику. + +Хотя [значение цвета](https://colormatters.com/color-symbolism/the-meanings-of-colors) может различаться в разных частях мира и изменяться в зависимости от оттенка, в общем случае значения цветов включают: + +| Цвет | Значение | +| ------ | ------------------- | +| красный | сила | +| синий | доверие, лояльность | +| желтый | счастье, осторожность | +| зеленый | экология, удача, зависть | +| фиолетовый | счастье | +| оранжевый | яркость | + +Если вам поручено создать график с пользовательскими цветами, убедитесь, что ваши графики доступны и выбранный цвет соответствует смыслу, который вы хотите передать. + +## Стилизация графиков для удобства чтения + +Графики не имеют смысла, если их невозможно прочитать! Уделите время тому, чтобы настроить ширину и высоту вашего графика так, чтобы он хорошо масштабировался с вашими данными. Если необходимо отобразить одну переменную (например, все 50 штатов), покажите их вертикально на оси Y, если это возможно, чтобы избежать горизонтальной прокрутки графика. + +Подписывайте оси, предоставляйте легенду, если это необходимо, и предлагайте всплывающие подсказки для лучшего понимания данных. + +Если ваши данные текстовые и содержат длинные подписи на оси X, вы можете наклонить текст для лучшей читаемости. [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) предлагает 3D-построение графиков, если ваши данные это поддерживают. Сложные визуализации данных можно создавать с использованием `mpl_toolkits.mplot3d`. + +![3D графики](../../../../translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ru.png) + +## Анимация и отображение 3D-графиков + +Некоторые из лучших визуализаций данных сегодня являются анимированными. Ширли Ву создала потрясающие примеры с использованием D3, такие как '[цветы фильмов](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', где каждый цветок представляет собой визуализацию фильма. Другой пример для Guardian — 'bussed out', интерактивный опыт, объединяющий визуализации с Greensock и D3, а также формат статьи с прокруткой, чтобы показать, как Нью-Йорк решает проблему бездомных, отправляя людей из города. + +![перевозка](../../../../translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ru.png) + +> "Bussed Out: Как Америка перемещает своих бездомных" от [Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Визуализации Надии Бремер и Ширли Ву + +Хотя этот урок недостаточен для глубокого изучения этих мощных библиотек визуализации, попробуйте использовать D3 в приложении Vue.js, чтобы создать визуализацию книги "Опасные связи" как анимированную социальную сеть. + +> "Опасные связи" — это эпистолярный роман, представленный в виде серии писем. Написанный в 1782 году Шодерло де Лакло, он рассказывает историю жестоких, морально банкротных социальных маневров двух соперничающих главных героев французской аристократии конца XVIII века, виконта де Вальмона и маркизы де Мертей. Оба в конце концов погибают, но не без нанесения значительного социального ущерба. Роман разворачивается как серия писем, написанных различным людям из их круга, с целью мести или просто для создания проблем. Создайте визуализацию этих писем, чтобы обнаружить главных "королей" повествования визуально. + +Вы завершите веб-приложение, которое будет отображать анимированный вид этой социальной сети. Оно использует библиотеку, созданную для [визуализации сети](https://github.com/emiliorizzo/vue-d3-network) с использованием Vue.js и D3. Когда приложение запущено, вы можете перемещать узлы на экране, чтобы перетасовать данные. + +![связи](../../../../translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ru.png) + +## Проект: Создание графика для отображения сети с использованием D3.js + +> В папке урока есть папка `solution`, где вы можете найти завершенный проект для справки. + +1. Следуйте инструкциям в файле README.md в корневой папке стартового проекта. Убедитесь, что у вас установлены NPM и Node.js перед установкой зависимостей проекта. + +2. Откройте папку `starter/src`. Вы найдете папку `assets`, где находится .json файл со всеми письмами из романа, пронумерованными, с аннотациями "кому" и "от кого". + +3. Завершите код в `components/Nodes.vue`, чтобы включить визуализацию. Найдите метод `createLinks()` и добавьте следующий вложенный цикл. + +Пройдите через объект .json, чтобы захватить данные "кому" и "от кого" для писем и создать объект `links`, чтобы библиотека визуализации могла его использовать: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +Запустите приложение из терминала (npm run serve) и наслаждайтесь визуализацией! + +## 🚀 Задание + +Исследуйте интернет, чтобы найти обманчивые визуализации. Как автор вводит пользователя в заблуждение, и было ли это намеренно? Попробуйте исправить визуализации, чтобы показать, как они должны выглядеть. + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## Обзор и самостоятельное изучение + +Вот несколько статей о обманчивых визуализациях данных: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +Посмотрите эти интересные визуализации исторических объектов и артефактов: + +https://handbook.pubpub.org/ + +Изучите эту статью о том, как анимация может улучшить ваши визуализации: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## Задание + +[Создайте свою собственную визуализацию](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/13-meaningful-visualizations/assignment.md b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/assignment.md new file mode 100644 index 00000000..becabac2 --- /dev/null +++ b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/assignment.md @@ -0,0 +1,25 @@ + +# Создайте свою собственную визуализацию + +## Инструкции + +Используя пример кода из этого проекта для создания социальной сети, создайте собственные данные о ваших социальных взаимодействиях. Вы можете отобразить ваше использование социальных сетей или составить диаграмму членов вашей семьи. Создайте интересное веб-приложение, которое демонстрирует уникальную визуализацию социальной сети. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Представлен репозиторий на GitHub с кодом, который работает корректно (попробуйте развернуть его как статическое веб-приложение) и содержит аннотированный README, объясняющий проект | Репозиторий работает некорректно или плохо документирован | Репозиторий работает некорректно и плохо документирован + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/13-meaningful-visualizations/solution/README.md b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/solution/README.md new file mode 100644 index 00000000..5eda0dfa --- /dev/null +++ b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/solution/README.md @@ -0,0 +1,40 @@ + +# Проект визуализации данных "Опасные связи" + +Чтобы начать работу, убедитесь, что у вас установлены NPM и Node на вашем компьютере. Установите зависимости (npm install), а затем запустите проект локально (npm run serve): + +## Настройка проекта +``` +npm install +``` + +### Компиляция и автоматическая перезагрузка для разработки +``` +npm run serve +``` + +### Компиляция и минимизация для продакшена +``` +npm run build +``` + +### Проверка и исправление файлов +``` +npm run lint +``` + +### Настройка конфигурации +См. [Справочник по конфигурации](https://cli.vuejs.org/config/). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/13-meaningful-visualizations/starter/README.md b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/starter/README.md new file mode 100644 index 00000000..54e3eb89 --- /dev/null +++ b/translations/ru/3-Data-Visualization/13-meaningful-visualizations/starter/README.md @@ -0,0 +1,40 @@ + +# Проект визуализации данных "Опасные связи" + +Чтобы начать работу, убедитесь, что у вас установлены NPM и Node на вашем компьютере. Установите зависимости (npm install), а затем запустите проект локально (npm run serve): + +## Настройка проекта +``` +npm install +``` + +### Компиляция и автоматическая перезагрузка для разработки +``` +npm run serve +``` + +### Компиляция и минимизация для продакшена +``` +npm run build +``` + +### Проверка и исправление файлов +``` +npm run lint +``` + +### Настройка конфигурации +См. [Справочник по конфигурации](https://cli.vuejs.org/config/). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/09-visualization-quantities/README.md b/translations/ru/3-Data-Visualization/R/09-visualization-quantities/README.md new file mode 100644 index 00000000..9eadc028 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/09-visualization-quantities/README.md @@ -0,0 +1,231 @@ + +# Визуализация количеств +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| Визуализация количеств - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В этом уроке вы изучите, как использовать некоторые из множества доступных библиотек пакетов R для создания интересных визуализаций, связанных с концепцией количества. Используя очищенный набор данных о птицах Миннесоты, вы сможете узнать много интересного о местной дикой природе. +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## Наблюдение за размахом крыльев с помощью ggplot2 +Отличной библиотекой для создания как простых, так и сложных графиков и диаграмм различных типов является [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html). В общем, процесс построения графиков с использованием этих библиотек включает в себя определение частей вашего датафрейма, которые вы хотите использовать, выполнение необходимых преобразований данных, назначение значений осей x и y, выбор типа графика и его отображение. + +`ggplot2` — это система для декларативного создания графики, основанная на "Грамматике графики". [Грамматика графики](https://en.wikipedia.org/wiki/Ggplot2) — это общая схема визуализации данных, которая разбивает графики на семантические компоненты, такие как шкалы и слои. Другими словами, простота создания графиков для унивариантных или многовариантных данных с минимальным количеством кода делает `ggplot2` самым популярным пакетом для визуализации в R. Пользователь указывает `ggplot2`, как сопоставить переменные с эстетикой, какие графические примитивы использовать, а `ggplot2` берет на себя остальное. + +> ✅ График = Данные + Эстетика + Геометрия +> - Данные относятся к набору данных +> - Эстетика указывает переменные для изучения (переменные x и y) +> - Геометрия относится к типу графика (линейный график, столбчатая диаграмма и т. д.) + +Выберите подходящую геометрию (тип графика) в зависимости от ваших данных и истории, которую вы хотите рассказать с помощью графика. + +> - Для анализа трендов: линейный график, столбчатая диаграмма +> - Для сравнения значений: столбчатая диаграмма, круговая диаграмма, точечный график +> - Для отображения частей целого: круговая диаграмма +> - Для отображения распределения данных: точечный график, столбчатая диаграмма +> - Для отображения взаимосвязей между значениями: линейный график, точечный график, пузырьковая диаграмма + +✅ Вы также можете ознакомиться с этим описательным [шпаргалкой](https://nyu-cdsc.github.io/learningr/assets/data-visualization-2.1.pdf) для ggplot2. + +## Построение линейного графика значений размаха крыльев птиц + +Откройте консоль R и импортируйте набор данных. +> Примечание: Набор данных находится в корне этого репозитория в папке `/data`. + +Давайте импортируем набор данных и посмотрим на его начало (первые 5 строк). + +```r +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") +head(birds) +``` +Начало данных содержит смесь текста и чисел: + +| | Название | Научное название | Категория | Отряд | Семейство | Род | Статус сохранности | Мин. длина | Макс. длина | Мин. масса тела | Макс. масса тела | Мин. размах крыльев | Макс. размах крыльев | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Чернобрюхий свистун | Dendrocygna autumnalis | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Рыжий свистун | Dendrocygna bicolor | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Белый гусь | Anser caerulescens | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Гусь Росса | Anser rossii | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Большой белолобый гусь | Anser albifrons | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +Давайте начнем с построения некоторых числовых данных, используя базовый линейный график. Предположим, вы хотите увидеть максимальный размах крыльев этих интересных птиц. + +```r +install.packages("ggplot2") +library("ggplot2") +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() +``` +Здесь вы устанавливаете пакет `ggplot2`, а затем импортируете его в рабочую область с помощью команды `library("ggplot2")`. Для построения любого графика в ggplot используется функция `ggplot()`, где вы указываете набор данных, переменные x и y в качестве атрибутов. В данном случае мы используем функцию `geom_line()`, так как хотим построить линейный график. + +![MaxWingspan-lineplot](../../../../../translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ru.png) + +Что вы замечаете сразу? Кажется, есть как минимум один выброс — это впечатляющий размах крыльев! Размах крыльев более 2000 сантиметров равен более чем 20 метрам — неужели в Миннесоте летают птеродактили? Давайте разберемся. + +Хотя вы могли бы быстро отсортировать данные в Excel, чтобы найти эти выбросы, которые, вероятно, являются опечатками, продолжим процесс визуализации, работая с графиком. + +Добавьте подписи к оси x, чтобы показать, о каких птицах идет речь: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() + + theme(axis.text.x = element_text(angle = 45, hjust=1))+ + xlab("Birds") + + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") +``` +Мы задаем угол в `theme` и указываем подписи осей x и y в `xlab()` и `ylab()` соответственно. Функция `ggtitle()` задает название графика. + +![MaxWingspan-lineplot-improved](../../../../../translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ru.png) + +Даже с поворотом подписей на 45 градусов их слишком много, чтобы прочитать. Попробуем другой подход: подпишем только выбросы и разместим подписи внутри графика. Вы можете использовать точечный график, чтобы освободить место для подписей: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") + +``` +Что здесь происходит? Вы использовали функцию `geom_point()` для построения точек. С ее помощью вы добавили подписи для птиц с `MaxWingspan > 500` и также скрыли подписи на оси x, чтобы уменьшить загроможденность графика. + +Что вы обнаруживаете? + +![MaxWingspan-scatterplot](../../../../../translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ru.png) + +## Фильтрация данных + +И белоголовый орлан, и луговой сокол, хотя, вероятно, очень крупные птицы, кажутся ошибочно помеченными, с добавленным лишним нулем к их максимальному размаху крыльев. Вряд ли вы встретите белоголового орлана с размахом крыльев 25 метров, но если это произойдет, пожалуйста, дайте нам знать! Давайте создадим новый датафрейм без этих двух выбросов: + +```r +birds_filtered <- subset(birds, MaxWingspan < 500) + +ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + ylab("Wingspan (CM)") + + xlab("Birds") + + ggtitle("Max Wingspan in Centimeters") + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +``` +Мы создали новый датафрейм `birds_filtered`, а затем построили точечный график. Исключив выбросы, ваши данные стали более согласованными и понятными. + +![MaxWingspan-scatterplot-improved](../../../../../translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ru.png) + +Теперь, когда у нас есть более чистый набор данных, по крайней мере, в отношении размаха крыльев, давайте узнаем больше об этих птицах. + +Хотя линейные и точечные графики могут отображать информацию о значениях данных и их распределении, мы хотим подумать о значениях, содержащихся в этом наборе данных. Вы могли бы создать визуализации, чтобы ответить на следующие вопросы о количестве: + +> Сколько категорий птиц существует и каково их количество? +> Сколько птиц вымерло, находится под угрозой исчезновения, редких или обычных? +> Сколько существует различных родов и отрядов в терминологии Линнея? + +## Изучение столбчатых диаграмм + +Столбчатые диаграммы удобны, когда нужно показать группировку данных. Давайте изучим категории птиц, которые существуют в этом наборе данных, чтобы увидеть, какая из них наиболее распространена по количеству. +Создадим столбчатую диаграмму на основе отфильтрованных данных. + +```r +install.packages("dplyr") +install.packages("tidyverse") + +library(lubridate) +library(scales) +library(dplyr) +library(ggplot2) +library(tidyverse) + +birds_filtered %>% group_by(Category) %>% + summarise(n=n(), + MinLength = mean(MinLength), + MaxLength = mean(MaxLength), + MinBodyMass = mean(MinBodyMass), + MaxBodyMass = mean(MaxBodyMass), + MinWingspan=mean(MinWingspan), + MaxWingspan=mean(MaxWingspan)) %>% + gather("key", "value", - c(Category, n)) %>% + ggplot(aes(x = Category, y = value, group = key, fill = key)) + + geom_bar(stat = "identity") + + scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) + + xlab("Category")+ggtitle("Birds of Minnesota") + +``` +В следующем фрагменте мы устанавливаем пакеты [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) и [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0), чтобы помочь манипулировать и группировать данные для построения составной столбчатой диаграммы. Сначала вы группируете данные по `Category` птиц, а затем суммируете столбцы `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan`. Затем строите столбчатую диаграмму с помощью пакета `ggplot2`, указывая цвета для разных категорий и подписи. + +![Stacked bar chart](../../../../../translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ru.png) + +Эта столбчатая диаграмма, однако, нечитаема из-за слишком большого количества негруппированных данных. Вам нужно выбрать только те данные, которые вы хотите отобразить, поэтому давайте посмотрим на длину птиц в зависимости от их категории. + +Отфильтруйте данные, чтобы включить только категорию птиц. + +Поскольку категорий много, вы можете отобразить эту диаграмму вертикально и настроить ее высоту, чтобы учесть все данные: + +```r +birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE) +birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category) +ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip() +``` +Сначала вы подсчитываете уникальные значения в столбце `Category`, а затем сортируете их в новый датафрейм `birds_count`. Эти отсортированные данные затем учитываются на том же уровне, чтобы они были построены в отсортированном порядке. Используя `ggplot2`, вы затем строите данные в виде столбчатой диаграммы. Функция `coord_flip()` строит горизонтальные столбцы. + +![category-length](../../../../../translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ru.png) + +Эта столбчатая диаграмма дает хороший обзор количества птиц в каждой категории. С первого взгляда видно, что наибольшее количество птиц в этом регионе относится к категории Утки/Гуси/Водоплавающие. Миннесота — это "земля 10,000 озер", так что это неудивительно! + +✅ Попробуйте подсчитать что-нибудь еще в этом наборе данных. Вас что-нибудь удивит? + +## Сравнение данных + +Вы можете попробовать разные сравнения сгруппированных данных, создавая новые оси. Попробуйте сравнить MaxLength птицы в зависимости от ее категории: + +```r +birds_grouped <- birds_filtered %>% + group_by(Category) %>% + summarise( + MaxLength = max(MaxLength, na.rm = T), + MinLength = max(MinLength, na.rm = T) + ) %>% + arrange(Category) + +ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip() +``` +Мы группируем данные `birds_filtered` по `Category`, а затем строим столбчатую диаграмму. + +![comparing data](../../../../../translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ru.png) + +Здесь ничего удивительного: колибри имеют наименьший MaxLength по сравнению с пеликанами или гусями. Хорошо, когда данные логически понятны! + +Вы можете создавать более интересные визуализации столбчатых диаграмм, накладывая данные друг на друга. Давайте наложим минимальную и максимальную длину на заданную категорию птиц: + +```r +ggplot(data=birds_grouped, aes(x=Category)) + + geom_bar(aes(y=MaxLength), stat="identity", position ="identity", fill='blue') + + geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+ + coord_flip() +``` +![super-imposed values](../../../../../translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ru.png) + +## 🚀 Задание + +Этот набор данных о птицах предлагает множество информации о различных типах птиц в определенной экосистеме. Поискать в интернете другие наборы данных, связанные с птицами. Попрактикуйтесь в создании диаграмм и графиков, чтобы открыть для себя факты, о которых вы не подозревали. +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## Обзор и самостоятельное изучение + +Этот первый урок дал вам некоторую информацию о том, как использовать `ggplot2` для визуализации количеств. Проведите исследование других способов работы с наборами данных для визуализации. Найдите и изучите наборы данных, которые вы могли бы визуализировать с помощью других пакетов, таких как [Lattice](https://stat.ethz.ch/R-manual/R-devel/library/lattice/html/Lattice.html) и [Plotly](https://github.com/plotly/plotly.R#readme). + +## Задание +[Линии, точки и столбцы](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/09-visualization-quantities/assignment.md b/translations/ru/3-Data-Visualization/R/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..1921600a --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# Линии, точечные диаграммы и столбцы + +## Инструкции + +В этом уроке вы работали с линейными графиками, точечными диаграммами и столбцовыми графиками, чтобы показать интересные факты об этом наборе данных. В этом задании углубитесь в набор данных, чтобы обнаружить факт о заданном виде птиц. Например, создайте скрипт, визуализирующий все интересные данные, которые вы можете найти о белых гусях. Используйте три упомянутых выше графика, чтобы рассказать историю в своей записной книжке. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Скрипт представлен с хорошими аннотациями, убедительным повествованием и привлекательными графиками | В скрипте отсутствует один из этих элементов | В скрипте отсутствуют два из этих элементов + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/10-visualization-distributions/README.md b/translations/ru/3-Data-Visualization/R/10-visualization-distributions/README.md new file mode 100644 index 00000000..13001982 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/10-visualization-distributions/README.md @@ -0,0 +1,184 @@ + +# Визуализация распределений + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| Визуализация распределений - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В предыдущем уроке вы узнали несколько интересных фактов о наборе данных о птицах Миннесоты. Вы нашли ошибочные данные, визуализировав выбросы, и изучили различия между категориями птиц по их максимальной длине. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## Исследуем набор данных о птицах + +Еще один способ изучить данные — это посмотреть на их распределение, то есть на то, как данные организованы вдоль оси. Например, вы можете захотеть узнать об общем распределении максимального размаха крыльев или максимальной массы тела для птиц Миннесоты. + +Давайте узнаем несколько фактов о распределении данных в этом наборе. В вашем консоли R импортируйте `ggplot2` и базу данных. Удалите выбросы из базы данных, как это было сделано в предыдущей теме. + +```r +library(ggplot2) + +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") + +birds_filtered <- subset(birds, MaxWingspan < 500) +head(birds_filtered) +``` +| | Название | Научное название | Категория | Отряд | Семейство | Род | Статус сохранности | Мин. длина | Макс. длина | Мин. масса тела | Макс. масса тела | Мин. размах крыльев | Макс. размах крыльев | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Чернобрюхий свистун | Dendrocygna autumnalis | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Рыжий свистун | Dendrocygna bicolor | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Белый гусь | Anser caerulescens | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Гусь Росса | Anser rossii | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Большой белолобый гусь | Anser albifrons | Утки/Гуси/Водоплавающие | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +В целом, вы можете быстро взглянуть на то, как данные распределены, используя диаграмму рассеяния, как мы делали в предыдущем уроке: + +```r +ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + + geom_point() + + ggtitle("Max Length per order") + coord_flip() +``` +![максимальная длина по отрядам](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ru.png) + +Это дает обзор общего распределения длины тела по отрядам птиц, но это не оптимальный способ отображения истинных распределений. Для этой задачи обычно создается гистограмма. + +## Работа с гистограммами + +`ggplot2` предлагает отличные способы визуализации распределения данных с помощью гистограмм. Этот тип диаграммы похож на столбчатую диаграмму, где распределение можно увидеть через подъем и спад столбцов. Чтобы построить гистограмму, вам нужны числовые данные. Для создания гистограммы вы можете построить диаграмму, определив тип как 'hist' для гистограммы. Эта диаграмма показывает распределение MaxBodyMass для всего диапазона числовых данных набора. Разделяя массив данных на меньшие интервалы, она может отображать распределение значений данных: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + + geom_histogram(bins=10)+ylab('Frequency') +``` +![распределение по всему набору данных](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ru.png) + +Как видно, большинство из 400+ птиц в этом наборе данных имеют Max Body Mass менее 2000. Получите больше информации о данных, изменив параметр `bins` на большее число, например, 30: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') +``` + +![распределение-30 интервалов](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ru.png) + +Эта диаграмма показывает распределение в более детализированном виде. Менее смещенную влево диаграмму можно создать, выбрав данные только в заданном диапазоне: + +Отфильтруйте данные, чтобы получить только тех птиц, чья масса тела меньше 60, и покажите 30 `bins`: + +```r +birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_histogram(bins=30)+ylab('Frequency') +``` + +![отфильтрованная гистограмма](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ru.png) + +✅ Попробуйте другие фильтры и точки данных. Чтобы увидеть полное распределение данных, удалите фильтр `['MaxBodyMass']`, чтобы показать распределения с метками. + +Гистограмма предлагает также интересные улучшения цвета и меток: + +Создайте 2D-гистограмму, чтобы сравнить взаимосвязь между двумя распределениями. Давайте сравним `MaxBodyMass` и `MaxLength`. `ggplot2` предлагает встроенный способ показать сходимость с помощью более ярких цветов: + +```r +ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + + geom_bin2d() +scale_fill_continuous(type = "viridis") +``` +Кажется, существует ожидаемая корреляция между этими двумя элементами вдоль ожидаемой оси, с одной особенно сильной точкой сходимости: + +![2D диаграмма](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ru.png) + +Гистограммы хорошо работают по умолчанию для числовых данных. А что, если вам нужно увидеть распределения по текстовым данным? +## Исследуем набор данных для распределений с использованием текстовых данных + +Этот набор данных также содержит полезную информацию о категории птиц, их роде, виде и семействе, а также о статусе сохранности. Давайте изучим информацию о статусе сохранности. Каково распределение птиц по их статусу сохранности? + +> ✅ В наборе данных используются несколько аббревиатур для описания статуса сохранности. Эти аббревиатуры взяты из [Категорий Красного списка МСОП](https://www.iucnredlist.org/), организации, которая каталогизирует статус видов. +> +> - CR: Находящиеся на грани исчезновения +> - EN: Исчезающие +> - EX: Вымершие +> - LC: Наименьшая угроза +> - NT: Близкие к уязвимому положению +> - VU: Уязвимые + +Это текстовые значения, поэтому вам нужно будет преобразовать их, чтобы создать гистограмму. Используя dataframe filteredBirds, отобразите его статус сохранности вместе с минимальным размахом крыльев. Что вы видите? + +```r +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6' + +ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) + + geom_histogram(position = "identity", alpha = 0.4, bins = 20) + + scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern")) +``` + +![размах крыльев и статус сохранности](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ru.png) + +Не кажется, что существует хорошая корреляция между минимальным размахом крыльев и статусом сохранности. Проверьте другие элементы набора данных, используя этот метод. Вы можете попробовать разные фильтры. Найдете ли вы какую-либо корреляцию? + +## Плотностные графики + +Вы могли заметить, что гистограммы, которые мы рассматривали до сих пор, имеют "ступенчатую" форму и не плавно переходят в дугу. Чтобы показать более плавный график плотности, вы можете попробовать плотностный график. + +Давайте теперь поработаем с плотностными графиками! + +```r +ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + + geom_density() +``` +![плотностный график](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ru.png) + +Вы можете увидеть, как график повторяет предыдущий для данных о минимальном размахе крыльев; он просто немного более плавный. Если вы захотите вернуться к той зубчатой линии MaxBodyMass на втором графике, который вы построили, вы сможете сгладить ее, используя этот метод: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density() +``` +![плотность массы тела](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ru.png) + +Если вы хотите получить плавную, но не слишком плавную линию, измените параметр `adjust`: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density(adjust = 1/5) +``` +![менее плавная масса тела](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ru.png) + +✅ Прочитайте о доступных параметрах для этого типа графика и экспериментируйте! + +Этот тип диаграммы предлагает красиво объясняющие визуализации. Например, с помощью нескольких строк кода вы можете показать плотность максимальной массы тела по отрядам птиц: + +```r +ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + + geom_density(alpha=0.5) +``` +![масса тела по отрядам](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ru.png) + +## 🚀 Задание + +Гистограммы — это более сложный тип диаграмм, чем базовые диаграммы рассеяния, столбчатые диаграммы или линейные графики. Найдите в интернете хорошие примеры использования гистограмм. Как они используются, что они демонстрируют и в каких областях или сферах исследования они чаще всего применяются? + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## Обзор и самостоятельное изучение + +В этом уроке вы использовали `ggplot2` и начали работать с более сложными диаграммами. Проведите исследование о `geom_density_2d()` — "непрерывной кривой плотности вероятности в одном или нескольких измерениях". Прочитайте [документацию](https://ggplot2.tidyverse.org/reference/geom_density_2d.html), чтобы понять, как это работает. + +## Задание + +[Примените свои навыки](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/10-visualization-distributions/assignment.md b/translations/ru/3-Data-Visualization/R/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..5a34c958 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# Примените свои навыки + +## Инструкции + +До этого вы работали с набором данных о птицах Миннесоты, чтобы узнать информацию о количестве птиц и плотности их популяции. Попробуйте применить эти техники к другому набору данных, возможно, взятому с [Kaggle](https://www.kaggle.com/). Напишите R-скрипт, чтобы рассказать историю об этом наборе данных, и обязательно используйте гистограммы при его анализе. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | --- | +Представлен скрипт с аннотациями о наборе данных, включая его источник, и использует минимум 5 гистограмм для анализа данных. | Представлен скрипт с неполными аннотациями или ошибками. | Представлен скрипт без аннотаций и с ошибками. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/11-visualization-proportions/README.md b/translations/ru/3-Data-Visualization/R/11-visualization-proportions/README.md new file mode 100644 index 00000000..3fe405a5 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/11-visualization-proportions/README.md @@ -0,0 +1,198 @@ + +# Визуализация пропорций + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|Визуализация пропорций - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В этом уроке вы будете использовать другой набор данных, связанный с природой, чтобы визуализировать пропорции, например, сколько различных видов грибов содержится в заданном наборе данных о грибах. Давайте изучим эти удивительные грибы, используя набор данных, взятый из Audubon, который содержит информацию о 23 видах пластинчатых грибов из семейств Agaricus и Lepiota. Вы попробуете создать аппетитные визуализации, такие как: + +- Круговые диаграммы 🥧 +- Диаграммы в виде пончика 🍩 +- Вафельные диаграммы 🧇 + +> 💡 Очень интересный проект [Charticulator](https://charticulator.com) от Microsoft Research предлагает бесплатный интерфейс для создания визуализаций данных методом перетаскивания. В одном из их учебных пособий также используется этот набор данных о грибах! Вы можете изучить данные и одновременно освоить библиотеку: [Учебное пособие Charticulator](https://charticulator.com/tutorials/tutorial4.html). + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## Узнайте больше о грибах 🍄 + +Грибы — это очень интересный объект для изучения. Давайте импортируем набор данных, чтобы изучить их: + +```r +mushrooms = read.csv('../../data/mushrooms.csv') +head(mushrooms) +``` +На экране появляется таблица с отличными данными для анализа: + + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Ядовитый | Выпуклый | Гладкий | Коричневый| Синяки | Резкий | Свободный | Близкий | Узкий | Черный | Утолщающийся| Равный | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Свисающий | Черный | Разбросанный| Городской| +| Съедобный | Выпуклый | Гладкий | Желтый | Синяки | Миндальный| Свободный | Близкий | Широкий | Черный | Утолщающийся| Клубень | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Свисающий | Коричневый | Многочисленный| Травы | +| Съедобный | Колокольчик| Гладкий | Белый | Синяки | Анисовый | Свободный | Близкий | Широкий | Коричневый | Утолщающийся| Клубень | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Свисающий | Коричневый | Многочисленный| Луга | +| Ядовитый | Выпуклый | Чешуйчатый | Белый | Синяки | Резкий | Свободный | Близкий | Узкий | Коричневый | Утолщающийся| Равный | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Свисающий | Черный | Разбросанный| Городской| +| Съедобный | Выпуклый | Гладкий | Зеленый | Без синяков| Нет | Свободный | Переполненный| Широкий | Черный | Сужающийся | Равный | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Исчезающий| Коричневый | Обильный | Травы | +| Съедобный | Выпуклый | Чешуйчатый | Желтый | Синяки | Миндальный| Свободный | Близкий | Широкий | Коричневый | Утолщающийся| Клубень | Гладкий | Гладкий | Белый | Белый | Частичный | Белый | Один | Свисающий | Черный | Многочисленный| Травы | + +Сразу видно, что все данные представлены в текстовом виде. Чтобы использовать их в диаграмме, необходимо преобразовать данные. Большая часть данных представлена в виде объекта: + +```r +names(mushrooms) +``` + +Результат: + +```output +[1] "class" "cap.shape" + [3] "cap.surface" "cap.color" + [5] "bruises" "odor" + [7] "gill.attachment" "gill.spacing" + [9] "gill.size" "gill.color" +[11] "stalk.shape" "stalk.root" +[13] "stalk.surface.above.ring" "stalk.surface.below.ring" +[15] "stalk.color.above.ring" "stalk.color.below.ring" +[17] "veil.type" "veil.color" +[19] "ring.number" "ring.type" +[21] "spore.print.color" "population" +[23] "habitat" +``` +Возьмите эти данные и преобразуйте столбец 'class' в категорию: + +```r +library(dplyr) +grouped=mushrooms %>% + group_by(class) %>% + summarise(count=n()) +``` + +Теперь, если вы выведете данные о грибах, вы увидите, что они сгруппированы по категориям в зависимости от класса (ядовитый/съедобный): +```r +View(grouped) +``` + +| class | count | +| --------- | --------- | +| Съедобный | 4208 | +| Ядовитый | 3916 | + +Если вы следуете порядку, представленному в этой таблице, чтобы создать метки категорий класса, вы можете построить круговую диаграмму. + +## Круг! + +```r +pie(grouped$count,grouped$class, main="Edible?") +``` +Вуаля, круговая диаграмма, показывающая пропорции данных в соответствии с двумя классами грибов. Очень важно правильно указать порядок меток, особенно здесь, поэтому обязательно проверьте порядок, в котором создается массив меток! + +![круговая диаграмма](../../../../../translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ru.png) + +## Пончики! + +Более визуально интересной версией круговой диаграммы является диаграмма в виде пончика, которая представляет собой круговую диаграмму с отверстием в центре. Давайте посмотрим на наши данные с помощью этого метода. + +Посмотрите на различные места обитания грибов: + +```r +library(dplyr) +habitat=mushrooms %>% + group_by(habitat) %>% + summarise(count=n()) +View(habitat) +``` +Результат: +| habitat| count | +| --------- | --------- | +| Травы | 2148 | +| Листья | 832 | +| Луга | 292 | +| Тропы | 1144 | +| Городской | 368 | +| Отходы | 192 | +| Деревья | 3148 | + +Здесь вы группируете данные по месту обитания. Всего их 7, поэтому используйте их в качестве меток для диаграммы в виде пончика: + +```r +library(ggplot2) +library(webr) +PieDonut(habitat, aes(habitat, count=count)) +``` + +![диаграмма в виде пончика](../../../../../translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ru.png) + +Этот код использует две библиотеки - ggplot2 и webr. С помощью функции PieDonut из библиотеки webr можно легко создать диаграмму в виде пончика! + +Диаграммы в виде пончика в R можно создавать, используя только библиотеку ggplot2. Вы можете узнать больше об этом [здесь](https://www.r-graph-gallery.com/128-ring-or-donut-plot.html) и попробовать сами. + +Теперь, когда вы знаете, как группировать данные и отображать их в виде круговой или пончиковой диаграммы, вы можете изучить другие типы диаграмм. Попробуйте вафельную диаграмму, которая представляет собой другой способ изучения количества. + +## Вафли! + +Диаграмма типа "вафля" — это другой способ визуализации количеств в виде двумерного массива квадратов. Попробуйте визуализировать различные количества цветов шляпок грибов в этом наборе данных. Для этого вам нужно установить вспомогательную библиотеку [waffle](https://cran.r-project.org/web/packages/waffle/waffle.pdf) и использовать ее для создания визуализации: + +```r +install.packages("waffle", repos = "https://cinc.rud.is") +``` + +Выберите сегмент данных для группировки: + +```r +library(dplyr) +cap_color=mushrooms %>% + group_by(cap.color) %>% + summarise(count=n()) +View(cap_color) +``` + +Создайте вафельную диаграмму, создав метки и сгруппировав данные: + +```r +library(waffle) +names(cap_color$count) = paste0(cap_color$cap.color) +waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", + "pink", "purple", "red", "grey", + "yellow","white")) +``` + +С помощью вафельной диаграммы вы можете четко увидеть пропорции цветов шляпок грибов в этом наборе данных. Интересно, что есть много грибов с зелеными шляпками! + +![вафельная диаграмма](../../../../../translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ru.png) + +В этом уроке вы узнали три способа визуализации пропорций. Сначала нужно сгруппировать данные в категории, а затем решить, какой способ отображения данных — круг, пончик или вафля — подходит лучше всего. Все они аппетитны и дают пользователю мгновенное представление о наборе данных. + +## 🚀 Задание + +Попробуйте воссоздать эти аппетитные диаграммы в [Charticulator](https://charticulator.com). +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## Обзор и самостоятельное изучение + +Иногда бывает неочевидно, когда использовать круговую, пончиковую или вафельную диаграмму. Вот несколько статей для чтения на эту тему: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +Проведите исследование, чтобы найти больше информации о принятии этого сложного решения. + +## Задание + +[Попробуйте в Excel](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/12-visualization-relationships/README.md b/translations/ru/3-Data-Visualization/R/12-visualization-relationships/README.md new file mode 100644 index 00000000..7d1a5908 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/12-visualization-relationships/README.md @@ -0,0 +1,177 @@ + +# Визуализация связей: всё о мёде 🍯 + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|Визуализация связей - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Продолжая исследование природы, давайте изучим интересные способы визуализации связей между различными типами мёда, основываясь на наборе данных, полученном от [Министерства сельского хозяйства США](https://www.nass.usda.gov/About_NASS/index.php). + +Этот набор данных, содержащий около 600 записей, отображает производство мёда в различных штатах США. Например, можно изучить количество колоний, урожайность на одну колонию, общий объём производства, запасы, цену за фунт и стоимость произведённого мёда в каждом штате за период с 1998 по 2012 год, где каждая строка представляет данные за год для конкретного штата. + +Будет интересно визуализировать связь между производством мёда в определённом штате за год и, например, ценой мёда в этом штате. Альтернативно, можно визуализировать связь между урожайностью мёда на одну колонию в разных штатах. Этот временной промежуток охватывает разрушительное явление «Синдром разрушения колоний» (CCD), впервые зафиксированное в 2006 году (http://npic.orst.edu/envir/ccd.html), что делает этот набор данных особенно значимым для изучения. 🐝 + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +В этом уроке вы можете использовать библиотеку ggplot2, с которой вы уже знакомы, чтобы визуализировать связи между переменными. Особенно интересным является использование функций `geom_point` и `qplot` из ggplot2, которые позволяют быстро создавать точечные и линейные графики для визуализации '[статистических связей](https://ggplot2.tidyverse.org/)'. Это помогает специалисту по данным лучше понять, как переменные взаимодействуют друг с другом. + +## Точечные графики + +Используйте точечный график, чтобы показать, как цена мёда менялась год за годом в каждом штате. ggplot2, используя `ggplot` и `geom_point`, удобно группирует данные по штатам и отображает точки для категориальных и числовых данных. + +Начнём с импорта данных и библиотеки Seaborn: + +```r +honey=read.csv('../../data/honey.csv') +head(honey) +``` +Вы заметите, что данные о мёде содержат несколько интересных столбцов, включая год и цену за фунт. Давайте изучим эти данные, сгруппированные по штатам США: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | -------- | ---------- | --------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | +| FL | 230000 | 98 |22540000 | 4508000 | 0.64 | 14426000 | 1998 | + +Создайте базовый точечный график, чтобы показать связь между ценой за фунт мёда и штатом его происхождения. Сделайте ось `y` достаточно высокой, чтобы отобразить все штаты: + +```r +library(ggplot2) +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(colour = "blue") +``` +![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ru.png) + +Теперь покажите те же данные с цветовой схемой, напоминающей цвет мёда, чтобы отобразить, как цена меняется год за годом. Вы можете сделать это, добавив параметр 'scale_color_gradientn', чтобы показать изменения: + +> ✅ Узнайте больше о [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) - попробуйте красивую радужную цветовую схему! + +```r +ggplot(honey, aes(x = priceperlb, y = state, color=year)) + + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) +``` +![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ru.png) + +С изменением цветовой схемы становится очевидным, что цена за фунт мёда значительно увеличивается с течением времени. Если вы проверите выборку данных (например, для штата Аризона), вы увидите закономерность увеличения цен год за годом, с редкими исключениями: + +| state | numcol | yieldpercol | totalprod | stocks | priceperlb | prodvalue | year | +| ----- | ------ | ----------- | --------- | ------- | ---------- | --------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +Другой способ визуализировать этот процесс — использовать размер вместо цвета. Для пользователей с нарушением цветового восприятия это может быть более удобным вариантом. Измените визуализацию, чтобы показать увеличение цены через увеличение диаметра точек: + +```r +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(aes(size = year),colour = "blue") + + scale_size_continuous(range = c(0.25, 3)) +``` +Вы можете заметить, как размер точек постепенно увеличивается. + +![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ru.png) + +Это простой случай спроса и предложения? Из-за таких факторов, как изменение климата и разрушение колоний, становится ли мёда меньше с каждым годом, что приводит к увеличению цены? + +Чтобы найти корреляцию между некоторыми переменными в этом наборе данных, давайте изучим линейные графики. + +## Линейные графики + +Вопрос: Наблюдается ли явное увеличение цены мёда за фунт год за годом? Это можно легко увидеть, создав один линейный график: + +```r +qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") +``` +Ответ: Да, с некоторыми исключениями около 2003 года: + +![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ru.png) + +Вопрос: А в 2003 году можно ли также увидеть всплеск предложения мёда? Что если посмотреть на общий объём производства год за годом? + +```python +qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") +``` + +![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ru.png) + +Ответ: Не совсем. Если посмотреть на общий объём производства, он, наоборот, кажется увеличившимся в этот год, хотя в целом объём производства мёда снижается в течение этих лет. + +Вопрос: В таком случае, что могло вызвать скачок цены мёда около 2003 года? + +Чтобы выяснить это, можно использовать сетку фасетов. + +## Сетки фасетов + +Сетки фасетов позволяют выделить одну грань вашего набора данных (в нашем случае можно выбрать 'год', чтобы избежать слишком большого количества фасетов). Seaborn может создать график для каждого из этих фасетов, используя выбранные координаты x и y для более удобного визуального сравнения. Выделяется ли 2003 год в таком сравнении? + +Создайте сетку фасетов, используя `facet_wrap`, как рекомендовано в [документации ggplot2](https://ggplot2.tidyverse.org/reference/facet_wrap.html). + +```r +ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + + geom_line() + facet_wrap(vars(year)) +``` +В этой визуализации вы можете сравнить урожайность на одну колонию и количество колоний год за годом, бок о бок, с настройкой wrap на 3 для столбцов: + +![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ru.png) + +Для этого набора данных ничего особенно не выделяется в отношении количества колоний и их урожайности год за годом и штат за штатом. Можно ли найти другой способ выявить корреляцию между этими двумя переменными? + +## Двухлинейные графики + +Попробуйте многолинейный график, наложив два линейных графика друг на друга, используя функции `par` и `plot` в R. Мы будем отображать год на оси x и показывать две оси y. Таким образом, отобразим урожайность на одну колонию и количество колоний, наложенные друг на друга: + +```r +par(mar = c(5, 4, 4, 4) + 0.3) +plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") +par(new = TRUE) +plot(honey$year, honey$yieldpercol, pch = 17, col = 3, + axes = FALSE, xlab = "", ylab = "",type="l") +axis(side = 4, at = pretty(range(y2))) +mtext("colony yield", side = 4, line = 3) +``` +![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ru.png) + +Хотя ничего явно не выделяется около 2003 года, это позволяет завершить урок на более позитивной ноте: несмотря на общее снижение количества колоний, их число стабилизируется, даже если урожайность на одну колонию уменьшается. + +Вперёд, пчёлы, вперёд! + +🐝❤️ +## 🚀 Задание + +В этом уроке вы узнали больше о других способах использования точечных графиков и линейных сеток, включая сетки фасетов. Попробуйте создать сетку фасетов, используя другой набор данных, возможно, тот, который вы использовали ранее. Обратите внимание, сколько времени требуется на создание и как важно учитывать количество сеток, которые нужно нарисовать, используя эти техники. +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## Обзор и самостоятельное изучение + +Линейные графики могут быть простыми или довольно сложными. Почитайте [документацию ggplot2](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together) о различных способах их построения. Попробуйте улучшить линейные графики, которые вы создали в этом уроке, используя другие методы, перечисленные в документации. +## Задание + +[Погрузитесь в улей](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/R/13-meaningful-vizualizations/README.md b/translations/ru/3-Data-Visualization/R/13-meaningful-vizualizations/README.md new file mode 100644 index 00000000..b78470b2 --- /dev/null +++ b/translations/ru/3-Data-Visualization/R/13-meaningful-vizualizations/README.md @@ -0,0 +1,182 @@ + +# Создание значимых визуализаций + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| Значимые визуализации - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +> "Если достаточно долго пытать данные, они признаются во всем" -- [Рональд Коуз](https://en.wikiquote.org/wiki/Ronald_Coase) + +Одним из основных навыков дата-сайентиста является умение создавать значимые визуализации данных, которые помогают отвечать на возникающие вопросы. Перед тем как визуализировать данные, необходимо убедиться, что они очищены и подготовлены, как вы делали в предыдущих уроках. После этого можно начинать выбирать лучший способ их представления. + +В этом уроке вы изучите: + +1. Как выбрать правильный тип диаграммы +2. Как избежать обманчивых визуализаций +3. Как работать с цветом +4. Как стилизовать диаграммы для улучшения читаемости +5. Как создавать анимационные или 3D-диаграммы +6. Как разрабатывать креативные визуализации + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## Выбор правильного типа диаграммы + +В предыдущих уроках вы экспериментировали с созданием различных интересных визуализаций данных, используя Matplotlib и Seaborn. В общем случае, вы можете выбрать [подходящий тип диаграммы](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) для вашего вопроса, используя следующую таблицу: + +| Вам нужно: | Используйте: | +| -------------------------- | ------------------------------ | +| Показать тренды данных во времени | Линейная диаграмма | +| Сравнить категории | Столбчатая, круговая диаграмма | +| Сравнить общие значения | Круговая, составная столбчатая | +| Показать взаимосвязи | Точечная, линейная, фасетная, двойная линия | +| Показать распределения | Точечная, гистограмма, ящичная диаграмма | +| Показать пропорции | Круговая, пончиковая, вафельная диаграмма | + +> ✅ В зависимости от структуры ваших данных, возможно, потребуется преобразовать их из текстового формата в числовой, чтобы диаграмма корректно отображала информацию. + +## Избегайте обмана + +Даже если дата-сайентист тщательно выбирает подходящую диаграмму для данных, существует множество способов представить данные так, чтобы доказать определенную точку зрения, часто в ущерб самим данным. Существует множество примеров обманчивых диаграмм и инфографики! + +[![Как диаграммы вводят в заблуждение, Альберто Кайро](../../../../../translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ru.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "Как диаграммы вводят в заблуждение") + +> 🎥 Нажмите на изображение выше, чтобы посмотреть доклад о вводящих в заблуждение диаграммах + +Эта диаграмма переворачивает ось X, чтобы показать противоположное истине, основываясь на дате: + +![плохая диаграмма 1](../../../../../translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ru.png) + +[Эта диаграмма](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) еще более обманчива, так как взгляд автоматически устремляется вправо, чтобы сделать вывод, что со временем случаи COVID сократились в различных округах. Однако, если внимательно посмотреть на даты, можно заметить, что они были переставлены, чтобы создать ложное впечатление нисходящего тренда. + +![плохая диаграмма 2](../../../../../translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ru.jpg) + +Этот печально известный пример использует цвет И перевернутую ось Y, чтобы ввести в заблуждение: вместо вывода о том, что количество смертей от огнестрельного оружия возросло после принятия закона, благоприятного для оружия, взгляд обманчиво воспринимает противоположное: + +![плохая диаграмма 3](../../../../../translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ru.jpg) + +Эта странная диаграмма показывает, как можно манипулировать пропорциями, вызывая комический эффект: + +![плохая диаграмма 4](../../../../../translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ru.jpg) + +Сравнение несравнимого — еще один сомнительный прием. Существует [замечательный веб-сайт](https://tylervigen.com/spurious-correlations), посвященный "ложным корреляциям", где представлены "факты", связывающие, например, уровень разводов в штате Мэн и потребление маргарина. На Reddit также есть группа, собирающая [некрасивые примеры](https://www.reddit.com/r/dataisugly/top/?t=all) использования данных. + +Важно понимать, как легко взгляд может быть обманут вводящими в заблуждение диаграммами. Даже если намерения дата-сайентиста благие, выбор неподходящего типа диаграммы, например, круговой диаграммы с слишком большим количеством категорий, может ввести в заблуждение. + +## Цвет + +Вы видели на примере диаграммы о "насилии с применением оружия во Флориде", как цвет может добавить дополнительный слой смысла к диаграммам, особенно если они не созданы с использованием библиотек, таких как ggplot2 и RColorBrewer, которые предлагают проверенные цветовые палитры. Если вы создаете диаграмму вручную, изучите немного [теорию цвета](https://colormatters.com/color-and-design/basic-color-theory). + +> ✅ Помните, что при разработке диаграмм доступность является важным аспектом визуализации. Некоторые ваши пользователи могут быть дальтониками — отображается ли ваша диаграмма корректно для пользователей с нарушениями зрения? + +Будьте осторожны при выборе цветов для вашей диаграммы, так как цвет может передавать смысл, который вы не намеревались вложить. Например, "розовые дамы" на диаграмме о "росте" выше передают явно "женственный" подтекст, что добавляет странности самой диаграмме. + +Хотя [значение цветов](https://colormatters.com/color-symbolism/the-meanings-of-colors) может различаться в разных частях мира и меняться в зависимости от оттенка, в общем случае цвета ассоциируются со следующими значениями: + +| Цвет | Значение | +| ------ | ------------------- | +| красный | сила | +| синий | доверие, лояльность | +| желтый | счастье, осторожность | +| зеленый | экология, удача, зависть | +| фиолетовый | счастье | +| оранжевый | энергия | + +Если вам нужно создать диаграмму с пользовательскими цветами, убедитесь, что ваша диаграмма доступна для всех пользователей, а выбранные цвета соответствуют смыслу, который вы хотите передать. + +## Стилизация диаграмм для читаемости + +Диаграммы не будут значимыми, если они нечитаемы! Уделите время настройке ширины и высоты диаграммы, чтобы она хорошо масштабировалась с вашими данными. Если необходимо отобразить, например, все 50 штатов, расположите их вертикально на оси Y, чтобы избежать горизонтальной прокрутки. + +Подписывайте оси, добавляйте легенду при необходимости и предлагайте всплывающие подсказки для лучшего понимания данных. + +Если ваши данные текстовые и содержат длинные подписи на оси X, вы можете наклонить текст для улучшения читаемости. [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) предлагает 3D-графики, если ваши данные это поддерживают. С его помощью можно создавать сложные визуализации данных. + +![3D графики](../../../../../translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ru.png) + +## Анимация и 3D-отображение диаграмм + +Некоторые из лучших визуализаций данных сегодня являются анимационными. Ширли Ву создала потрясающие примеры с использованием D3, такие как '[цветы фильмов](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)', где каждый цветок представляет собой визуализацию фильма. Другой пример для Guardian — 'Bussed Out', интерактивный проект, сочетающий визуализации с Greensock и D3, а также формат статьи с прокруткой, чтобы показать, как Нью-Йорк решает проблему бездомных, отправляя их за пределы города. + +![перевозка](../../../../../translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ru.png) + +> "Bussed Out: Как Америка перемещает своих бездомных" от [The Guardian](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study). Визуализации Надии Бремер и Ширли Ву + +Хотя этот урок недостаточен для глубокого изучения этих мощных библиотек визуализации, попробуйте свои силы в D3 в приложении на Vue.js, используя библиотеку для отображения визуализации книги "Опасные связи" в виде анимированной социальной сети. + +> "Опасные связи" — это эпистолярный роман, представленный в виде серии писем. Написанный в 1782 году Шодерло де Лакло, он рассказывает историю коварных и аморальных социальных маневров двух главных героев французской аристократии конца XVIII века — виконта де Вальмона и маркизы де Мертей. Оба в итоге погибают, но не без нанесения значительного социального ущерба. Роман разворачивается как серия писем, написанных различным людям из их окружения, с целью мести или создания проблем. Создайте визуализацию этих писем, чтобы выявить ключевых персонажей повествования визуально. + +Вы завершите веб-приложение, которое будет отображать анимированный вид этой социальной сети. Оно использует библиотеку, созданную для [визуализации сети](https://github.com/emiliorizzo/vue-d3-network) с использованием Vue.js и D3. Когда приложение запущено, вы можете перемещать узлы на экране, чтобы изменять расположение данных. + +![связи](../../../../../translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ru.png) + +## Проект: Создание диаграммы для отображения сети с использованием D3.js + +> В папке этого урока есть папка `solution`, где вы найдете завершенный проект для справки. + +1. Следуйте инструкциям в файле README.md в корневой папке стартового проекта. Убедитесь, что у вас установлены NPM и Node.js перед установкой зависимостей проекта. + +2. Откройте папку `starter/src`. Вы найдете папку `assets`, где находится файл .json со всеми письмами из романа, пронумерованными, с указанием "кому" и "от кого". + +3. Завершите код в `components/Nodes.vue`, чтобы включить визуализацию. Найдите метод `createLinks()` и добавьте следующий вложенный цикл. + +Пройдитесь по объекту .json, чтобы собрать данные "кому" и "от кого" для писем и создать объект `links`, который сможет использовать библиотека визуализации: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +Запустите приложение из терминала (npm run serve) и наслаждайтесь визуализацией! + +## 🚀 Задание + +Изучите интернет в поисках обманчивых визуализаций. Как автор вводит пользователя в заблуждение, и было ли это сделано намеренно? Попробуйте исправить визуализации, чтобы показать, как они должны выглядеть. + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## Обзор и самостоятельное изучение + +Вот несколько статей о вводящих в заблуждение визуализациях данных: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +Ознакомьтесь с этими интересными визуализациями исторических артефактов: + +https://handbook.pubpub.org/ + +Прочтите эту статью о том, как анимация может улучшить ваши визуализации: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## Задание + +[Создайте свою собственную визуализацию](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/3-Data-Visualization/README.md b/translations/ru/3-Data-Visualization/README.md new file mode 100644 index 00000000..938ebbd0 --- /dev/null +++ b/translations/ru/3-Data-Visualization/README.md @@ -0,0 +1,42 @@ + +# Визуализации + +![пчела на цветке лаванды](../../../translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ru.jpg) +> Фото от Jenna Lee на Unsplash + +Визуализация данных — одна из самых важных задач для специалиста по данным. Изображения говорят больше, чем тысяча слов, а визуализация может помочь вам выявить множество интересных аспектов ваших данных, таких как пики, выбросы, группировки, тенденции и многое другое, что поможет вам понять историю, которую ваши данные пытаются рассказать. + +В этих пяти уроках вы изучите данные, полученные из природы, и создадите интересные и красивые визуализации, используя различные техники. + +| Номер темы | Тема | Связанный урок | Автор | +| :-----------: | :--: | :-----------: | :----: | +| 1. | Визуализация количеств |
  • [Python](09-visualization-quantities/README.md)
  • [R](../../../3-Data-Visualization/R/09-visualization-quantities)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 2. | Визуализация распределений |
  • [Python](10-visualization-distributions/README.md)
  • [R](../../../3-Data-Visualization/R/10-visualization-distributions)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 3. | Визуализация пропорций |
  • [Python](11-visualization-proportions/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 4. | Визуализация взаимосвязей |
  • [Python](12-visualization-relationships/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| +| 5. | Создание значимых визуализаций |
  • [Python](13-meaningful-visualizations/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [Jen Looper](https://twitter.com/jenlooper)
  • [Vidushi Gupta](https://github.com/Vidushi-Gupta)
  • [Jasleen Sondhi](https://github.com/jasleen101010)
| + +### Благодарности + +Эти уроки по визуализации были написаны с 🌸 [Jen Looper](https://twitter.com/jenlooper), [Jasleen Sondhi](https://github.com/jasleen101010) и [Vidushi Gupta](https://github.com/Vidushi-Gupta). + +🍯 Данные о производстве меда в США взяты из проекта Джессики Ли на [Kaggle](https://www.kaggle.com/jessicali9530/honey-production). [Данные](https://usda.library.cornell.edu/concern/publications/rn301137d) получены из [Министерства сельского хозяйства США](https://www.nass.usda.gov/About_NASS/index.php). + +🍄 Данные о грибах также взяты с [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset), переработаны Хаттерасом Дантом. Этот набор данных включает описания гипотетических образцов, соответствующих 23 видам пластинчатых грибов из семейств Agaricus и Lepiota. Грибы взяты из "Полевого путеводителя по грибам Северной Америки" Общества Одюбона (1981). Этот набор данных был передан UCI ML 27 в 1987 году. + +🦆 Данные о птицах Миннесоты взяты с [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds), собраны с [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) Ханной Коллинс. + +Все эти наборы данных лицензированы как [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/14-Introduction/README.md b/translations/ru/4-Data-Science-Lifecycle/14-Introduction/README.md new file mode 100644 index 00000000..63e1bae0 --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/14-Introduction/README.md @@ -0,0 +1,123 @@ + +# Введение в жизненный цикл Data Science + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/14-DataScience-Lifecycle.png)| +|:---:| +| Введение в жизненный цикл Data Science - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## [Тест перед лекцией](https://red-water-0103e7a0f.azurestaticapps.net/quiz/26) + +На данном этапе вы, вероятно, уже осознали, что Data Science — это процесс. Этот процесс можно разделить на 5 этапов: + +- Сбор данных +- Обработка +- Анализ +- Коммуникация +- Поддержка + +Этот урок сосредоточен на трех частях жизненного цикла: сборе данных, обработке и поддержке. + +![Диаграмма жизненного цикла Data Science](../../../../translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ru.jpg) +> Фото от [Berkeley School of Information](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/) + +## Сбор данных + +Первый этап жизненного цикла очень важен, так как последующие этапы зависят от него. По сути, это два этапа, объединенные в один: получение данных и определение цели и проблем, которые необходимо решить. +Определение целей проекта требует глубокого понимания контекста проблемы или вопроса. Сначала нужно выявить и привлечь тех, чью проблему необходимо решить. Это могут быть заинтересованные стороны бизнеса или спонсоры проекта, которые помогут определить, кто или что выиграет от этого проекта, а также что и почему им это нужно. Хорошо сформулированная цель должна быть измеримой и количественно определяемой, чтобы можно было определить приемлемый результат. + +Вопросы, которые может задать специалист по данным: +- Решалась ли эта проблема ранее? Что было обнаружено? +- Понятны ли цель и задача всем участникам? +- Есть ли двусмысленность и как ее уменьшить? +- Какие существуют ограничения? +- Как может выглядеть конечный результат? +- Сколько ресурсов (времени, людей, вычислительных мощностей) доступно? + +Далее необходимо определить, собрать, а затем изучить данные, необходимые для достижения поставленных целей. На этапе получения данных специалисты по данным также должны оценить количество и качество данных. Это требует некоторого исследования данных, чтобы подтвердить, что полученные данные помогут достичь желаемого результата. + +Вопросы, которые может задать специалист по данным о данных: +- Какие данные уже доступны мне? +- Кто владеет этими данными? +- Какие существуют проблемы конфиденциальности? +- Достаточно ли данных для решения этой проблемы? +- Соответствуют ли данные необходимому качеству для данной задачи? +- Если я обнаружу дополнительную информацию через эти данные, стоит ли пересмотреть или переопределить цели? + +## Обработка + +Этап обработки жизненного цикла сосредоточен на выявлении закономерностей в данных, а также на моделировании. Некоторые методы, используемые на этапе обработки, требуют применения статистических методов для выявления закономерностей. Обычно это была бы трудоемкая задача для человека при работе с большим набором данных, поэтому используются компьютеры для ускорения процесса. На этом этапе Data Science пересекается с машинным обучением. Как вы узнали в первом уроке, машинное обучение — это процесс создания моделей для понимания данных. Модели представляют собой отношения между переменными в данных, которые помогают прогнозировать результаты. + +Распространенные методы, используемые на этом этапе, подробно рассматриваются в учебной программе ML для начинающих. Ознакомьтесь с ссылками, чтобы узнать больше: + +- [Классификация](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification): Организация данных в категории для более эффективного использования. +- [Кластеризация](https://github.com/microsoft/ML-For-Beginners/tree/main/5-Clustering): Группировка данных в схожие группы. +- [Регрессия](https://github.com/microsoft/ML-For-Beginners/tree/main/2-Regression): Определение отношений между переменными для прогнозирования или предсказания значений. + +## Поддержка + +На диаграмме жизненного цикла вы могли заметить, что поддержка находится между сбором данных и обработкой. Поддержка — это непрерывный процесс управления, хранения и защиты данных на протяжении всего проекта и должна учитываться на всех этапах проекта. + +### Хранение данных + +Решения о том, как и где хранить данные, могут повлиять на стоимость их хранения, а также на производительность, например, скорость доступа к данным. Такие решения, скорее всего, не принимаются только специалистом по данным, но он может столкнуться с выбором, как работать с данными в зависимости от того, как они хранятся. + +Вот некоторые аспекты современных систем хранения данных, которые могут повлиять на эти решения: + +**Локальное хранение vs удаленное хранение vs публичное или частное облако** + +Локальное хранение подразумевает управление данными на собственном оборудовании, например, владение сервером с жесткими дисками, где хранятся данные, тогда как удаленное хранение зависит от оборудования, которым вы не владеете, например, дата-центра. Публичное облако — популярный выбор для хранения данных, который не требует знания о том, как и где именно хранятся данные. Публичное облако подразумевает единую инфраструктуру, которая используется всеми пользователями облака. Некоторые организации имеют строгие политики безопасности, требующие полного доступа к оборудованию, где хранятся данные, и используют частное облако, предоставляющее собственные облачные услуги. Вы узнаете больше о данных в облаке в [поздних уроках](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/5-Data-Science-In-Cloud). + +**"Холодные" vs "горячие" данные** + +При обучении моделей может потребоваться больше данных для обучения. Если модель вас устраивает, новые данные будут поступать для выполнения ее задачи. В любом случае стоимость хранения и доступа к данным будет увеличиваться по мере их накопления. Разделение редко используемых данных, известных как "холодные", от часто используемых "горячих" данных может быть более дешевым вариантом хранения данных с помощью аппаратных или программных решений. Если "холодные" данные нужно будет получить, это может занять немного больше времени по сравнению с "горячими" данными. + +### Управление данными + +Работая с данными, вы можете обнаружить, что некоторые из них нуждаются в очистке с использованием методов, рассмотренных в уроке, посвященном [подготовке данных](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/08-data-preparation), чтобы построить точные модели. Когда поступают новые данные, им потребуется применение тех же методов для поддержания качества. Некоторые проекты включают использование автоматизированных инструментов для очистки, агрегации и сжатия данных перед их перемещением в конечное место хранения. Azure Data Factory — пример одного из таких инструментов. + +### Защита данных + +Одна из главных целей защиты данных — обеспечение того, чтобы те, кто с ними работает, контролировали, что собирается и в каком контексте используется. Защита данных включает ограничение доступа только для тех, кому он необходим, соблюдение местных законов и нормативов, а также поддержание этических стандартов, рассмотренных в [уроке об этике](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/1-Introduction/02-ethics). + +Вот некоторые действия, которые команда может предпринять с учетом безопасности: +- Убедиться, что все данные зашифрованы +- Предоставить клиентам информацию о том, как используются их данные +- Удалить доступ к данным у тех, кто покинул проект +- Разрешить изменять данные только определенным участникам проекта + +## 🚀 Задание + +Существует множество версий жизненного цикла Data Science, где каждый этап может иметь разные названия и количество стадий, но будет включать те же процессы, упомянутые в этом уроке. + +Изучите [жизненный цикл процесса Team Data Science](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/lifecycle) и [стандартный процесс для анализа данных в различных отраслях (CRISP-DM)](https://www.datascience-pm.com/crisp-dm-2/). Назовите 3 сходства и различия между ними. + +|Процесс Team Data Science (TDSP)|Стандартный процесс для анализа данных в различных отраслях (CRISP-DM)| +|--|--| +|![Жизненный цикл Team Data Science](../../../../translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ru.png) | ![Изображение процесса CRISP-DM](../../../../translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ru.png) | +| Изображение от [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | Изображение от [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) | + +## [Тест после лекции](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## Обзор и самостоятельное изучение + +Применение жизненного цикла Data Science включает множество ролей и задач, где некоторые могут сосредоточиться на определенных частях каждого этапа. Процесс Team Data Science предоставляет несколько ресурсов, объясняющих типы ролей и задач, которые могут быть в проекте. + +* [Роли и задачи процесса Team Data Science](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/roles-tasks) +* [Выполнение задач Data Science: исследование, моделирование и развертывание](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/execute-data-science-tasks) + +## Задание + +[Оценка набора данных](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/translations/ru/4-Data-Science-Lifecycle/14-Introduction/assignment.md new file mode 100644 index 00000000..94662c13 --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -0,0 +1,37 @@ + +# Оценка набора данных + +Клиент обратился к вашей команде за помощью в исследовании сезонных привычек расходов пассажиров такси в Нью-Йорке. + +Они хотят узнать: **Чаевые пассажиров желтых такси в Нью-Йорке больше зимой или летом?** + +Ваша команда находится на этапе [Сбор данных](Readme.md#Capturing) жизненного цикла Data Science, и вы отвечаете за обработку набора данных. Вам предоставили ноутбук и [данные](../../../../data/taxi.csv) для изучения. + +В этом каталоге находится [ноутбук](notebook.ipynb), который использует Python для загрузки данных о поездках желтых такси из [Комиссии по такси и лимузинам Нью-Йорка](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets). +Вы также можете открыть файл с данными такси в текстовом редакторе или программном обеспечении для работы с таблицами, таком как Excel. + +## Инструкции + +- Оцените, может ли данный набор данных помочь ответить на вопрос. +- Изучите [каталог открытых данных Нью-Йорка](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93). Найдите дополнительный набор данных, который потенциально может быть полезен для ответа на вопрос клиента. +- Составьте 3 вопроса, которые вы бы задали клиенту для получения дополнительной информации и лучшего понимания проблемы. + +Обратитесь к [словарю данных](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) и [руководству пользователя](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) для получения дополнительной информации о данных. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | --- + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/15-analyzing/README.md b/translations/ru/4-Data-Science-Lifecycle/15-analyzing/README.md new file mode 100644 index 00000000..99a3bc9a --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/15-analyzing/README.md @@ -0,0 +1,66 @@ + +# Жизненный цикл Data Science: Анализ + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/15-Analyzing.png)| +|:---:| +| Жизненный цикл Data Science: Анализ - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## Предлекционный тест + +## [Предлекционный тест](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/28) + +Анализ в жизненном цикле данных подтверждает, что данные могут ответить на поставленные вопросы или решить конкретную проблему. Этот этап также может быть направлен на подтверждение того, что модель правильно решает эти вопросы и проблемы. Этот урок посвящен разведочному анализу данных (Exploratory Data Analysis, EDA), который включает техники для определения характеристик и взаимосвязей в данных и может быть использован для подготовки данных к моделированию. + +Мы будем использовать пример набора данных с [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1), чтобы показать, как это можно применить с помощью Python и библиотеки Pandas. Этот набор данных содержит количество некоторых распространенных слов, найденных в электронных письмах, источники которых анонимны. Используйте [ноутбук](notebook.ipynb) в этом каталоге, чтобы следовать за материалом. + +## Разведочный анализ данных + +Этап сбора данных в жизненном цикле включает получение данных, а также определение проблем и вопросов, но как мы можем быть уверены, что данные помогут достичь конечного результата? +Напомним, что специалист по данным может задавать следующие вопросы при получении данных: +- Достаточно ли у меня данных для решения этой проблемы? +- Соответствует ли качество данных требованиям для решения этой проблемы? +- Если я обнаружу дополнительную информацию через эти данные, стоит ли пересмотреть или переопределить цели? + +Разведочный анализ данных — это процесс знакомства с данными, который может помочь ответить на эти вопросы, а также выявить сложности работы с набором данных. Давайте сосредоточимся на некоторых техниках, используемых для достижения этих целей. + +## Профилирование данных, описательная статистика и Pandas + +Как мы можем оценить, достаточно ли у нас данных для решения проблемы? Профилирование данных может обобщить и собрать общую информацию о нашем наборе данных с помощью методов описательной статистики. Профилирование данных помогает понять, что у нас есть, а описательная статистика — сколько у нас есть. + +В нескольких предыдущих уроках мы использовали Pandas для предоставления описательной статистики с помощью функции [`describe()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html). Она предоставляет количество, максимальные и минимальные значения, среднее, стандартное отклонение и квартили для числовых данных. Использование описательной статистики, такой как функция `describe()`, может помочь вам оценить, сколько данных у вас есть и нужно ли больше. + +## Выборка и запросы + +Исследование всего большого набора данных может быть очень трудоемким и обычно поручается компьютеру. Однако выборка — это полезный инструмент для понимания данных, который позволяет лучше понять, что содержится в наборе данных и что он представляет. С помощью выборки можно применять теорию вероятностей и статистику, чтобы сделать общие выводы о данных. Хотя нет строгого правила о том, сколько данных следует выбирать, важно помнить, что чем больше данных вы выбираете, тем точнее будут ваши обобщения. + +В библиотеке Pandas есть функция [`sample()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html), где вы можете указать, сколько случайных выборок вы хотите получить и использовать. + +Общие запросы к данным могут помочь ответить на некоторые общие вопросы и гипотезы, которые у вас есть. В отличие от выборки, запросы позволяют вам сосредоточиться на конкретных частях данных, которые вас интересуют. +Функция [`query()`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html) в библиотеке Pandas позволяет выбирать столбцы и получать простые ответы о данных через извлеченные строки. + +## Исследование с помощью визуализаций + +Не обязательно ждать, пока данные будут полностью очищены и проанализированы, чтобы начать создавать визуализации. На самом деле, наличие визуального представления во время исследования может помочь выявить закономерности, взаимосвязи и проблемы в данных. Более того, визуализации предоставляют способ общения с теми, кто не участвует в управлении данными, и могут стать возможностью поделиться и уточнить дополнительные вопросы, которые не были рассмотрены на этапе сбора. Обратитесь к [разделу о визуализациях](../../../../../../../../../3-Data-Visualization), чтобы узнать больше о популярных способах исследования данных визуально. + +## Исследование для выявления несоответствий + +Все темы этого урока могут помочь выявить отсутствующие или несоответствующие значения, но Pandas предоставляет функции для проверки некоторых из них. [isna() или isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html) могут проверить наличие пропущенных значений. Важным аспектом исследования этих значений в ваших данных является выяснение причин, по которым они оказались такими. Это может помочь вам решить, какие [действия предпринять для их устранения](/2-Working-With-Data/08-data-preparation/notebook.ipynb). + +## [Предлекционный тест](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/27) + +## Задание + +[Исследование для ответов](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/15-analyzing/assignment.md b/translations/ru/4-Data-Science-Lifecycle/15-analyzing/assignment.md new file mode 100644 index 00000000..5f1ab3de --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/15-analyzing/assignment.md @@ -0,0 +1,36 @@ + +# Исследование ответов + +Это продолжение [задания](../14-Introduction/assignment.md) из предыдущего урока, где мы кратко ознакомились с набором данных. Теперь мы будем изучать данные более подробно. + +Напомним, вопрос, который интересует клиента: **Чаевые пассажиров желтых такси в Нью-Йорке больше зимой или летом?** + +Ваша команда находится на этапе [Анализа](README.md) в жизненном цикле Data Science, где вы отвечаете за проведение разведывательного анализа данных (EDA) на предоставленном наборе данных. Вам предоставлены ноутбук и набор данных, содержащий 200 транзакций такси за январь и июль 2019 года. + +## Инструкции + +В этой директории находятся [ноутбук](assignment.ipynb) и данные от [Комиссии по такси и лимузинам](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets). Ознакомьтесь с [словарем данных](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) и [руководством пользователя](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) для получения дополнительной информации о данных. + +Используйте некоторые из техник, рассмотренных в этом уроке, чтобы провести собственный EDA в ноутбуке (можете добавлять ячейки) и ответить на следующие вопросы: + +- Какие другие факторы в данных могут влиять на размер чаевых? +- Какие столбцы, скорее всего, не понадобятся для ответа на вопрос клиента? +- На основе предоставленных данных, есть ли какие-либо доказательства сезонного поведения при оставлении чаевых? + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | --- + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/16-communication/README.md b/translations/ru/4-Data-Science-Lifecycle/16-communication/README.md new file mode 100644 index 00000000..2964e0a7 --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/16-communication/README.md @@ -0,0 +1,222 @@ + +# Жизненный цикл Data Science: Коммуникация + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/16-Communicating.png)| +|:---:| +| Жизненный цикл Data Science: Коммуникация - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## [Предлекционный тест](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/30) + +Проверьте свои знания о предстоящем материале с помощью теста выше! + +# Введение + +### Что такое коммуникация? +Начнем этот урок с определения понятия коммуникации. **Коммуникация — это передача или обмен информацией.** Информация может быть идеями, мыслями, чувствами, сообщениями, скрытыми сигналами, данными — всем, что **_отправитель_** (тот, кто передает информацию) хочет, чтобы **_получатель_** (тот, кто принимает информацию) понял. В этом уроке мы будем называть отправителей коммуникаторами, а получателей — аудиторией. + +### Коммуникация данных и сторителлинг +Мы понимаем, что цель коммуникации — передача или обмен информацией. Но при коммуникации данных ваша цель не должна заключаться только в передаче чисел вашей аудитории. Ваша цель — рассказать историю, основанную на ваших данных. Эффективная коммуникация данных и сторителлинг идут рука об руку. Аудитория с большей вероятностью запомнит рассказанную вами историю, чем просто цифры. Позже в этом уроке мы рассмотрим несколько способов, которые помогут вам использовать сторителлинг для более эффективной передачи данных. + +### Типы коммуникации +В течение этого урока будут обсуждаться два разных типа коммуникации: односторонняя и двусторонняя. + +**Односторонняя коммуникация** происходит, когда отправитель передает информацию получателю без обратной связи или ответа. Примеры односторонней коммуникации мы видим каждый день — массовые рассылки, новости, которые передают последние события, или телевизионная реклама, которая рассказывает, почему их продукт хорош. В каждом из этих случаев отправитель не стремится к обмену информацией, а только к ее передаче. + +**Двусторонняя коммуникация** происходит, когда все участвующие стороны выступают как отправители и получатели. Отправитель начинает коммуникацию, а получатель предоставляет обратную связь или ответ. Двусторонняя коммуникация — это то, что мы традиционно подразумеваем под понятием коммуникации. Обычно это разговоры между людьми — лично, по телефону, в социальных сетях или через текстовые сообщения. + +При коммуникации данных будут случаи, когда вы будете использовать одностороннюю коммуникацию (например, презентация на конференции или перед большой группой, где вопросы не задаются сразу), и случаи, когда вы будете использовать двустороннюю коммуникацию (например, использование данных для убеждения нескольких заинтересованных сторон или для того, чтобы убедить коллегу в необходимости создания чего-то нового). + +# Эффективная коммуникация + +### Ваши обязанности как коммуникатора +Когда вы общаетесь, ваша задача — убедиться, что ваши получатели воспринимают ту информацию, которую вы хотите донести. При коммуникации данных вы хотите, чтобы аудитория воспринимала не просто цифры, а историю, основанную на ваших данных. Хороший коммуникатор данных — это хороший рассказчик. + +Как рассказать историю с помощью данных? Существует бесконечное количество способов, но ниже приведены 6, которые мы обсудим в этом уроке: +1. Понимание вашей аудитории, канала и метода коммуникации +2. Начало с конечной цели +3. Подход к данным как к настоящей истории +4. Использование значимых слов и фраз +5. Использование эмоций + +Каждая из этих стратегий будет подробно объяснена ниже. + +### 1. Понимание вашей аудитории, канала и метода коммуникации +То, как вы общаетесь с членами семьи, вероятно, отличается от того, как вы общаетесь с друзьями. Вы, скорее всего, используете разные слова и фразы, которые понятны вашей аудитории. Такой же подход следует применять при коммуникации данных. Подумайте, с кем вы общаетесь. Учитывайте их цели и контекст ситуации, которую вы объясняете. + +Большинство вашей аудитории можно разделить на категории. В статье _Harvard Business Review_ “[Как рассказать историю с помощью данных](http://blogs.hbr.org/2013/04/how-to-tell-a-story-with-data/)” стратег Джим Стикелезер из Dell выделяет пять категорий аудитории: + +- **Новичок**: впервые сталкивается с темой, но не хочет чрезмерного упрощения +- **Общий слушатель**: знаком с темой, но ищет обзорное понимание и основные идеи +- **Менеджер**: глубокое, практическое понимание сложностей и взаимосвязей с доступом к деталям +- **Эксперт**: больше исследования и открытия, меньше сторителлинга, с большим количеством деталей +- **Руководитель**: имеет время только для понимания значимости и выводов с учетом вероятностей + +Эти категории могут помочь вам определить, как представить данные вашей аудитории. + +Кроме того, важно учитывать канал, который вы используете для коммуникации. Ваш подход будет немного отличаться, если вы пишете меморандум или электронное письмо, проводите встречу или выступаете на конференции. + +Также важно понимать, используете ли вы одностороннюю или двустороннюю коммуникацию. + +Если вы общаетесь с аудиторией, состоящей преимущественно из новичков, и используете одностороннюю коммуникацию, сначала необходимо обучить аудиторию и дать ей контекст. Затем представьте свои данные, объясните их значение и важность. В этом случае важно сосредоточиться на ясности, так как аудитория не сможет задать вам прямые вопросы. + +Если вы общаетесь с аудиторией, состоящей преимущественно из менеджеров, и используете двустороннюю коммуникацию, вам, вероятно, не нужно обучать аудиторию или предоставлять много контекста. Вы можете сразу перейти к обсуждению собранных данных и их значимости. Однако в этом случае важно контролировать время и ход презентации. При двусторонней коммуникации (особенно с аудиторией менеджеров, которые ищут “практическое понимание сложностей и взаимосвязей с доступом к деталям”) вопросы могут возникать в процессе, что может отвлечь обсуждение от основной истории, которую вы пытаетесь рассказать. В таких случаях вы можете вернуть обсуждение к вашей истории. + +### 2. Начало с конечной цели +Начало с конечной цели означает понимание того, какие выводы вы хотите, чтобы ваша аудитория сделала, еще до начала коммуникации. Продуманное определение ключевых выводов заранее поможет вам создать историю, которую аудитория сможет понять. Этот подход подходит как для односторонней, так и для двусторонней коммуникации. + +Как начать с конечной цели? Перед тем как начать коммуникацию данных, запишите свои ключевые выводы. Затем на каждом этапе подготовки истории, которую вы хотите рассказать, задавайте себе вопрос: "Как это вписывается в историю, которую я рассказываю?" + +Будьте внимательны — хотя начало с конечной цели является идеальным, не стоит передавать только те данные, которые поддерживают ваши выводы. Это называется выборочным подходом, когда коммуникатор передает только те данные, которые подтверждают его точку зрения, игнорируя остальные. + +Если все собранные вами данные явно подтверждают ваши выводы — отлично. Но если есть данные, которые не поддерживают ваши выводы или даже противоречат им, их тоже следует передать. В таких случаях будьте честны с аудиторией и объясните, почему вы придерживаетесь своей истории, несмотря на то, что не все данные ее поддерживают. + +### 3. Подход к данным как к настоящей истории +Традиционная история состоит из 5 этапов. Вы могли слышать их как Экспозиция, Развитие действия, Кульминация, Спад действия и Развязка. Или более простую версию: Контекст, Конфликт, Кульминация, Закрытие, Вывод. При коммуникации данных и вашей истории можно использовать похожий подход. + +Начните с контекста, задайте сцену и убедитесь, что ваша аудитория находится на одной волне. Затем представьте конфликт. Почему вам нужно было собрать эти данные? Какие проблемы вы пытались решить? После этого кульминация. Какие данные вы собрали? Что они означают? Какие решения они предлагают? Затем переходите к закрытию, где вы можете повторить проблему и предложенные решения. И наконец, вывод, где вы можете подвести итоги и предложить следующие шаги. + +### 4. Использование значимых слов и фраз +Если бы мы работали вместе над продуктом, и я сказал вам: "Нашим пользователям требуется много времени, чтобы зарегистрироваться на нашей платформе," сколько времени вы бы оценили как "много"? Час? Неделя? Трудно сказать. А если я сказал бы это целой аудитории? Каждый человек в аудитории мог бы представить себе разное время. + +А что если я скажу: "Нашим пользователям требуется в среднем 3 минуты, чтобы зарегистрироваться и начать пользоваться нашей платформой." + +Такое сообщение более четкое. При коммуникации данных легко предположить, что все в вашей аудитории думают так же, как вы. Но это не всегда так. Обеспечение ясности данных и их значения — одна из ваших обязанностей как коммуникатора. Если данные или ваша история не ясны, аудитории будет сложно следовать за вами, и вероятность того, что они поймут ваши ключевые выводы, снижается. + +Вы можете сделать данные более понятными, используя значимые слова и фразы вместо расплывчатых. Вот несколько примеров: + +- У нас был *впечатляющий* год! + - Один человек может подумать, что впечатляющий означает увеличение дохода на 2% - 3%, а другой — на 50% - 60%. +- Уровень успеха наших пользователей увеличился *значительно*. + - Насколько велико увеличение, чтобы считать его значительным? +- Этот проект потребует *существенных* усилий. + - Сколько усилий считается существенными? + +Использование расплывчатых слов может быть полезным как введение к более подробным данным или как резюме рассказанной истории. Но убедитесь, что каждый аспект вашей презентации ясен для аудитории. + +### 5. Использование эмоций +Эмоции играют ключевую роль в сторителлинге. Они еще важнее, когда вы рассказываете историю с данными. При коммуникации данных все сосредоточено на выводах, которые вы хотите, чтобы ваша аудитория сделала. Эмоции помогают аудитории сопереживать и делают ее более склонной к действиям. Эмоции также увеличивают вероятность того, что аудитория запомнит ваше сообщение. + +Вы могли сталкиваться с этим в телевизионной рекламе. Некоторые рекламные ролики очень серьезные и используют грустные эмоции, чтобы привлечь внимание аудитории и подчеркнуть представленные данные. Другие, наоборот, веселые и позитивные, чтобы ассоциировать данные с радостными чувствами. + +Как использовать эмоции при коммуникации данных? Вот несколько способов: + +- Используйте отзывы и личные истории + - При сборе данных старайтесь собирать как количественные, так и качественные данные, и интегрируйте оба типа данных в свою коммуникацию. Если ваши данные преимущественно количественные, ищите истории от людей, чтобы узнать больше об их опыте. +- Используйте изображения + - Изображения помогают аудитории представить себя в ситуации. Используя изображения, вы можете направить аудиторию к эмоции, которую, по вашему мнению, она должна испытывать по отношению к вашим данным. +- Используйте цвет + - Разные цвета вызывают разные эмоции. Популярные цвета и их ассоциации: + - Синий обычно вызывает чувство мира и доверия + - Зеленый обычно ассоциируется с природой и окружающей средой + - Красный обычно символизирует страсть и возбуждение + - Желтый обычно ассоциируется с оптимизмом и счастьем + +# Пример коммуникации +Эмерсон — менеджер продукта мобильного приложения. Эмерсон заметил, что клиенты отправляют на 42% больше жалоб и сообщений об ошибках в выходные дни. Эмерсон также заметил, что клиенты, чьи жалобы остаются без ответа более 48 часов, на 32% чаще ставят приложению оценку 1 или 2 в магазине приложений. + +После проведения исследования Эмерсон нашел несколько решений, которые могут устранить проблему. Эмерсон организует 30-минутную встречу с тремя руководителями компании, чтобы передать данные и предложенные решения. + +Цель Эмерсона на этой встрече — убедить руководителей компании, что два решения ниже могут улучшить рейтинг приложения, что, вероятно, приведет к увеличению дохода. + +**Решение 1.** Нанять сотрудников службы поддержки для работы в выходные дни + +**Решение 2.** Приобрести новую систему управления заявками, которая позволит сотрудникам службы поддержки легко определять, какие жалобы находятся в очереди дольше всего, чтобы они могли решать их в первую очередь. +На встрече Эмерсон потратил 5 минут, объясняя, почему низкий рейтинг в магазине приложений — это плохо, 10 минут на объяснение процесса исследования и выявления тенденций, 10 минут на разбор недавних жалоб клиентов и последние 5 минут на краткий обзор двух потенциальных решений. + +Был ли это эффективный способ общения Эмерсона на этой встрече? + +Во время встречи один из руководителей компании сосредоточился на 10 минутах, посвященных жалобам клиентов, которые Эмерсон разобрал. После встречи эти жалобы были единственным, что этот руководитель запомнил. Другой руководитель компании в основном сосредоточился на описании Эмерсоном процесса исследования. Третий руководитель компании запомнил предложенные Эмерсоном решения, но не был уверен, как их можно реализовать. + +В приведенной выше ситуации видно, что существует значительный разрыв между тем, что Эмерсон хотел донести до руководителей, и тем, что они в итоге вынесли из встречи. Ниже представлен другой подход, который Эмерсон мог бы рассмотреть. + +Как Эмерсон мог бы улучшить этот подход? +Контекст, Конфликт, Кульминация, Завершение, Вывод +**Контекст** – Эмерсон мог бы потратить первые 5 минут на введение в ситуацию и убедиться, что руководители понимают, как проблемы влияют на ключевые для компании показатели, такие как доход. + +Это можно изложить следующим образом: "В настоящее время рейтинг нашего приложения в магазине приложений составляет 2.5. Рейтинги в магазине приложений критически важны для оптимизации в магазине приложений, что влияет на то, сколько пользователей видят наше приложение в поиске и как наше приложение воспринимается потенциальными пользователями. И, конечно, количество пользователей напрямую связано с доходом." + +**Конфликт** Эмерсон мог бы затем перейти к обсуждению конфликта в течение следующих 5 минут. + +Это могло бы звучать так: "Пользователи отправляют на 42% больше жалоб и сообщений об ошибках в выходные дни. Клиенты, которые отправляют жалобу, но не получают ответа в течение 48 часов, на 32% менее склонны поставить нашему приложению рейтинг выше 2 в магазине приложений. Улучшение рейтинга нашего приложения в магазине приложений до 4 увеличило бы нашу видимость на 20-30%, что, по моим прогнозам, увеличило бы доход на 10%." Конечно, Эмерсон должен быть готов обосновать эти цифры. + +**Кульминация** После того как основа будет заложена, Эмерсон мог бы перейти к кульминации на следующие 5 минут. + +Эмерсон мог бы представить предложенные решения, объяснить, как эти решения решат обозначенные проблемы, как их можно интегрировать в существующие рабочие процессы, сколько они будут стоить, каков будет их ROI, а также показать скриншоты или макеты того, как эти решения будут выглядеть после внедрения. Эмерсон мог бы также поделиться отзывами пользователей, которые ждали ответа на свою жалобу более 48 часов, и даже отзывом текущего представителя службы поддержки компании, который мог бы прокомментировать текущую систему обработки заявок. + +**Завершение** Теперь Эмерсон может потратить 5 минут на повторение проблем, с которыми сталкивается компания, возвращение к предложенным решениям и обзор причин, почему эти решения являются правильными. + +**Вывод** Поскольку это встреча с несколькими заинтересованными сторонами, где будет использоваться двусторонняя коммуникация, Эмерсон мог бы запланировать оставить 10 минут на вопросы, чтобы убедиться, что все, что было непонятно руководителям, будет прояснено до окончания встречи. + +Если Эмерсон выберет подход №2, гораздо более вероятно, что руководители вынесут из встречи именно то, что Эмерсон хотел донести до них — что процесс обработки жалоб и ошибок можно улучшить, и есть два решения, которые можно внедрить для достижения этого улучшения. Этот подход был бы гораздо более эффективным способом донесения данных и истории, которую Эмерсон хочет рассказать. + +# Вывод +### Резюме основных моментов +- Общение — это передача или обмен информацией. +- При передаче данных ваша цель не должна заключаться только в том, чтобы просто передать цифры вашей аудитории. Ваша цель должна заключаться в том, чтобы рассказать историю, основанную на ваших данных. +- Существует два типа общения: одностороннее общение (информация передается без намерения получить ответ) и двустороннее общение (информация передается в обе стороны). +- Существует множество стратегий, которые можно использовать для рассказа истории с помощью данных. Мы рассмотрели 5 стратегий: + - Понимание вашей аудитории, вашего медиума и вашего метода общения + - Начните с конечной цели + - Подходите к этому как к настоящей истории + - Используйте значимые слова и фразы + - Используйте эмоции + +### Рекомендуемые ресурсы для самостоятельного изучения +[The Five C's of Storytelling - Articulate Persuasion](http://articulatepersuasion.com/the-five-cs-of-storytelling/) + +[1.4 Your Responsibilities as a Communicator – Business Communication for Success (umn.edu)](https://open.lib.umn.edu/businesscommunication/chapter/1-4-your-responsibilities-as-a-communicator/) + +[How to Tell a Story with Data (hbr.org)](https://hbr.org/2013/04/how-to-tell-a-story-with-data) + +[Two-Way Communication: 4 Tips for a More Engaged Workplace (yourthoughtpartner.com)](https://www.yourthoughtpartner.com/blog/bid/59576/4-steps-to-increase-employee-engagement-through-two-way-communication) + +[6 succinct steps to great data storytelling - BarnRaisers, LLC (barnraisersllc.com)](https://barnraisersllc.com/2021/05/02/6-succinct-steps-to-great-data-storytelling/) + +[How to Tell a Story With Data | Lucidchart Blog](https://www.lucidchart.com/blog/how-to-tell-a-story-with-data) + +[6 Cs of Effective Storytelling on Social Media | Cooler Insights](https://coolerinsights.com/2018/06/effective-storytelling-social-media/) + +[The Importance of Emotions In Presentations | Ethos3 - A Presentation Training and Design Agency](https://ethos3.com/2015/02/the-importance-of-emotions-in-presentations/) + +[Data storytelling: linking emotions and rational decisions (toucantoco.com)](https://www.toucantoco.com/en/blog/data-storytelling-dataviz) + +[Emotional Advertising: How Brands Use Feelings to Get People to Buy (hubspot.com)](https://blog.hubspot.com/marketing/emotions-in-advertising-examples) + +[Choosing Colors for Your Presentation Slides | Think Outside The Slide](https://www.thinkoutsidetheslide.com/choosing-colors-for-your-presentation-slides/) + +[How To Present Data [10 Expert Tips] | ObservePoint](https://resources.observepoint.com/blog/10-tips-for-presenting-data) + +[Microsoft Word - Persuasive Instructions.doc (tpsnva.org)](https://www.tpsnva.org/teach/lq/016/persinstr.pdf) + +[The Power of Story for Your Data (thinkhdi.com)](https://www.thinkhdi.com/library/supportworld/2019/power-story-your-data.aspx) + +[Common Mistakes in Data Presentation (perceptualedge.com)](https://www.perceptualedge.com/articles/ie/data_presentation.pdf) + +[Infographic: Here are 15 Common Data Fallacies to Avoid (visualcapitalist.com)](https://www.visualcapitalist.com/here-are-15-common-data-fallacies-to-avoid/) + +[Cherry Picking: When People Ignore Evidence that They Dislike – Effectiviology](https://effectiviology.com/cherry-picking/#How_to_avoid_cherry_picking) + +[Tell Stories with Data: Communication in Data Science | by Sonali Verghese | Towards Data Science](https://towardsdatascience.com/tell-stories-with-data-communication-in-data-science-5266f7671d7) + +[1. Communicating Data - Communicating Data with Tableau [Book] (oreilly.com)](https://www.oreilly.com/library/view/communicating-data-with/9781449372019/ch01.html) + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/31) + +Проверьте, что вы только что узнали, с помощью теста после лекции выше! + +## Задание + +[Маркетинговое исследование](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/16-communication/assignment.md b/translations/ru/4-Data-Science-Lifecycle/16-communication/assignment.md new file mode 100644 index 00000000..1e7cff92 --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/16-communication/assignment.md @@ -0,0 +1,26 @@ + +# Расскажите историю + +## Инструкции + +Data Science — это искусство рассказывать истории. Выберите любой набор данных и напишите короткую статью о том, какую историю вы могли бы рассказать на его основе. Что вы надеетесь узнать из вашего набора данных? Что вы будете делать, если его выводы окажутся проблематичными? Что, если данные не раскроют свои секреты так легко? Подумайте о сценариях, которые может представить ваш набор данных, и запишите их. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | + +Эссе на одну страницу представлено в формате .doc, набор данных объяснен, задокументирован, указан источник, и представлена связная история с подробными примерами из данных.| Эссе короче и представлено в менее подробном формате | Эссе не соответствует одному из вышеуказанных критериев. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/4-Data-Science-Lifecycle/README.md b/translations/ru/4-Data-Science-Lifecycle/README.md new file mode 100644 index 00000000..79c65577 --- /dev/null +++ b/translations/ru/4-Data-Science-Lifecycle/README.md @@ -0,0 +1,30 @@ + +# Жизненный цикл Data Science + +![communication](../../../translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ru.jpg) +> Фото от Headway на Unsplash + +В этих уроках вы изучите некоторые аспекты жизненного цикла Data Science, включая анализ и коммуникацию, связанные с данными. + +### Темы + +1. [Введение](14-Introduction/README.md) +2. [Анализ](15-analyzing/README.md) +3. [Коммуникация](16-communication/README.md) + +### Благодарности + +Эти уроки были написаны с ❤️ [Джейленом МакГи](https://twitter.com/JalenMCG) и [Жасмин Гринауэй](https://twitter.com/paladique) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/17-Introduction/README.md b/translations/ru/5-Data-Science-In-Cloud/17-Introduction/README.md new file mode 100644 index 00000000..3de5e7a4 --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/17-Introduction/README.md @@ -0,0 +1,116 @@ + +# Введение в науку о данных в облаке + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| Наука о данных в облаке: Введение - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +В этом уроке вы узнаете основные принципы облачных технологий, поймете, почему использование облачных сервисов может быть полезным для ваших проектов в области науки о данных, а также рассмотрите примеры проектов, реализованных в облаке. + +## [Тест перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/32) + +## Что такое облако? + +Облако, или облачные вычисления, — это предоставление широкого спектра вычислительных услуг по модели "оплата по мере использования", размещенных на инфраструктуре через интернет. Услуги включают решения, такие как хранилище данных, базы данных, сети, программное обеспечение, аналитика и интеллектуальные сервисы. + +Обычно различают публичное, частное и гибридное облако следующим образом: + +* Публичное облако: публичное облако принадлежит и управляется сторонним поставщиком облачных услуг, который предоставляет свои вычислительные ресурсы через интернет для широкой аудитории. +* Частное облако: относится к облачным вычислительным ресурсам, используемым исключительно одной компанией или организацией, с услугами и инфраструктурой, поддерживаемыми в частной сети. +* Гибридное облако: гибридное облако — это система, которая объединяет публичные и частные облака. Пользователи выбирают локальный центр обработки данных, при этом позволяя данным и приложениям работать в одном или нескольких публичных облаках. + +Большинство облачных вычислительных услуг делятся на три категории: инфраструктура как услуга (IaaS), платформа как услуга (PaaS) и программное обеспечение как услуга (SaaS). + +* Инфраструктура как услуга (IaaS): пользователи арендуют ИТ-инфраструктуру, такую как серверы и виртуальные машины (VMs), хранилище, сети, операционные системы. +* Платформа как услуга (PaaS): пользователи арендуют среду для разработки, тестирования, доставки и управления программными приложениями. Пользователям не нужно беспокоиться о настройке или управлении базовой инфраструктурой серверов, хранилищ, сетей и баз данных, необходимых для разработки. +* Программное обеспечение как услуга (SaaS): пользователи получают доступ к программным приложениям через интернет, по запросу и обычно на основе подписки. Пользователям не нужно беспокоиться о размещении и управлении программным приложением, базовой инфраструктурой или обслуживании, таком как обновления программного обеспечения и исправления безопасности. + +Крупнейшими поставщиками облачных услуг являются Amazon Web Services, Google Cloud Platform и Microsoft Azure. + +## Почему стоит выбрать облако для науки о данных? + +Разработчики и ИТ-специалисты выбирают работу с облаком по многим причинам, включая следующие: + +* Инновации: вы можете интегрировать инновационные сервисы, созданные поставщиками облака, прямо в свои приложения. +* Гибкость: вы платите только за те услуги, которые вам нужны, и можете выбирать из широкого спектра сервисов. Обычно вы платите по мере использования и адаптируете услуги в соответствии с изменяющимися потребностями. +* Бюджет: вам не нужно делать первоначальные инвестиции в покупку оборудования и программного обеспечения, настройку и управление локальными центрами обработки данных — вы просто платите за то, что используете. +* Масштабируемость: ваши ресурсы могут масштабироваться в зависимости от потребностей проекта, что позволяет вашим приложениям использовать больше или меньше вычислительной мощности, хранилища и пропускной способности, адаптируясь к внешним факторам в любой момент времени. +* Производительность: вы можете сосредоточиться на своем бизнесе, а не тратить время на задачи, которые могут быть выполнены кем-то другим, например, управление центрами обработки данных. +* Надежность: облачные вычисления предлагают несколько способов непрерывного резервного копирования данных, а также позволяют настроить планы восстановления после сбоев, чтобы ваш бизнес и услуги продолжали работать даже в кризисные времена. +* Безопасность: вы можете воспользоваться политиками, технологиями и средствами контроля, которые усиливают безопасность вашего проекта. + +Это лишь некоторые из наиболее распространенных причин, почему люди выбирают облачные сервисы. Теперь, когда мы лучше понимаем, что такое облако и каковы его основные преимущества, давайте более подробно рассмотрим работу специалистов по данным и разработчиков, работающих с данными, а также то, как облако может помочь им справиться с различными вызовами: + +* Хранение больших объемов данных: вместо покупки, управления и защиты больших серверов вы можете хранить свои данные прямо в облаке, используя такие решения, как Azure Cosmos DB, Azure SQL Database и Azure Data Lake Storage. +* Интеграция данных: интеграция данных — важная часть науки о данных, которая позволяет перейти от сбора данных к принятию решений. С помощью облачных сервисов интеграции данных, таких как Data Factory, вы можете собирать, преобразовывать и интегрировать данные из различных источников в единое хранилище данных. +* Обработка данных: обработка больших объемов данных требует значительной вычислительной мощности, и не у всех есть доступ к достаточно мощным машинам. Именно поэтому многие выбирают использование огромной вычислительной мощности облака для запуска и развертывания своих решений. +* Использование аналитических сервисов: облачные сервисы, такие как Azure Synapse Analytics, Azure Stream Analytics и Azure Databricks, помогают преобразовать данные в полезные инсайты. +* Использование сервисов машинного обучения и интеллектуальных данных: вместо того чтобы начинать с нуля, вы можете использовать алгоритмы машинного обучения, предлагаемые облачным провайдером, такие как AzureML. Также доступны когнитивные сервисы, такие как преобразование речи в текст, текст в речь, компьютерное зрение и многое другое. + +## Примеры науки о данных в облаке + +Давайте сделаем это более наглядным, рассмотрев несколько сценариев. + +### Анализ настроений в социальных сетях в реальном времени + +Начнем с сценария, который часто изучают новички в машинном обучении: анализ настроений в социальных сетях в реальном времени. + +Предположим, вы управляете новостным сайтом и хотите использовать данные в реальном времени, чтобы понять, какой контент может заинтересовать ваших читателей. Чтобы узнать больше, вы можете создать программу, которая выполняет анализ настроений данных из публикаций в Twitter по темам, актуальным для ваших читателей. + +Ключевые показатели, которые вы будете изучать, — это объем твитов по определенным темам (хэштегам) и настроения, которые определяются с помощью аналитических инструментов, выполняющих анализ настроений по указанным темам. + +Шаги, необходимые для создания этого проекта: + +* Создать центр событий для потокового ввода, который будет собирать данные из Twitter. +* Настроить и запустить клиентское приложение Twitter, которое будет вызывать Streaming API Twitter. +* Создать задачу Stream Analytics. +* Указать входные данные и запрос для задачи. +* Создать выходной канал и указать выходные данные задачи. +* Запустить задачу. + +Чтобы увидеть полный процесс, ознакомьтесь с [документацией](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-77958-bethanycheum&ocid=AID30411099). + +### Анализ научных статей + +Рассмотрим другой пример проекта, созданного [Дмитрием Сошниковым](http://soshnikov.com), одним из авторов этой программы. + +Дмитрий создал инструмент для анализа статей о COVID. Изучив этот проект, вы увидите, как можно создать инструмент, который извлекает знания из научных статей, получает инсайты и помогает исследователям эффективно ориентироваться в больших коллекциях статей. + +Давайте рассмотрим шаги, использованные для этого: + +* Извлечение и предварительная обработка информации с помощью [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +* Использование [Azure ML](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) для параллельной обработки. +* Хранение и запрос информации с помощью [Cosmos DB](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +* Создание интерактивной панели для исследования и визуализации данных с использованием Power BI. + +Чтобы увидеть полный процесс, посетите [блог Дмитрия](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/). + +Как видите, облачные сервисы можно использовать множеством способов для выполнения задач науки о данных. + +## Примечание + +Источники: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## Тест после лекции + +[Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/33) + +## Задание + +[Исследование рынка](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/17-Introduction/assignment.md b/translations/ru/5-Data-Science-In-Cloud/17-Introduction/assignment.md new file mode 100644 index 00000000..50096b0b --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/17-Introduction/assignment.md @@ -0,0 +1,25 @@ + +# Исследование рынка + +## Инструкции + +В этом уроке вы узнали, что существует несколько важных облачных провайдеров. Проведите исследование рынка, чтобы выяснить, что каждый из них может предложить специалисту по данным. Сравнимы ли их предложения? Напишите статью, описывающую предложения трех или более этих облачных провайдеров. + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Одностраничная статья описывает предложения трех облачных провайдеров для специалистов по данным и выделяет различия между ними. | Представлена более короткая статья | Представлена статья без завершенного анализа + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/README.md b/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/README.md new file mode 100644 index 00000000..9d1fc258 --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/README.md @@ -0,0 +1,348 @@ + +# Data Science в облаке: подход "Low code/No code" + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/18-DataScience-Cloud.png)| +|:---:| +| Data Science в облаке: Low Code - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Содержание: + +- [Data Science в облаке: подход "Low code/No code"](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [Вопросы перед лекцией](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1. Введение](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.1 Что такое Azure Machine Learning?](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.2 Проект прогнозирования сердечной недостаточности:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.3 Набор данных о сердечной недостаточности:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2. Обучение модели в Azure ML Studio с использованием Low code/No code](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.1 Создание рабочей области Azure ML](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2 Вычислительные ресурсы](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.1 Выбор подходящих параметров для вычислительных ресурсов](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.2 Создание вычислительного кластера](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.3 Загрузка набора данных](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.4 Обучение с использованием AutoML (Low code/No code)](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3. Развертывание модели и использование конечных точек (Low code/No code)](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.1 Развертывание модели](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.2 Использование конечных точек](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [🚀 Задание](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [Вопросы после лекции](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [Обзор и самостоятельное изучение](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [Домашнее задание](../../../../5-Data-Science-In-Cloud/18-Low-Code) + +## [Вопросы перед лекцией](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/34) +## 1. Введение +### 1.1 Что такое Azure Machine Learning? + +Облачная платформа Azure включает более 200 продуктов и облачных сервисов, которые помогают воплощать новые решения в жизнь. +Данные ученые тратят много времени на исследование и предварительную обработку данных, а также на тестирование различных алгоритмов обучения моделей для получения точных результатов. Эти задачи занимают много времени и часто неэффективно используют дорогостоящие вычислительные ресурсы. + +[Azure ML](https://docs.microsoft.com/azure/machine-learning/overview-what-is-azure-machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) — это облачная платформа для создания и управления решениями машинного обучения в Azure. Она включает широкий спектр функций и возможностей, которые помогают ученым обрабатывать данные, обучать модели, публиковать предсказательные сервисы и отслеживать их использование. Самое главное, она повышает эффективность работы, автоматизируя многие трудоемкие задачи, связанные с обучением моделей, и позволяет использовать облачные вычислительные ресурсы, которые масштабируются для обработки больших объемов данных, при этом затраты возникают только при фактическом использовании. + +Azure ML предоставляет все необходимые инструменты для разработчиков и ученых данных для их рабочих процессов машинного обучения. Среди них: + +- **Azure Machine Learning Studio**: веб-портал в Azure Machine Learning для вариантов обучения моделей, развертывания, автоматизации, отслеживания и управления активами с использованием low-code и no-code подходов. Studio интегрируется с Azure Machine Learning SDK для бесшовного опыта. +- **Jupyter Notebooks**: быстрое прототипирование и тестирование моделей машинного обучения. +- **Azure Machine Learning Designer**: позволяет перетаскивать модули для создания экспериментов и развертывания конвейеров в среде low-code. +- **Автоматизированный интерфейс машинного обучения (AutoML)**: автоматизирует итеративные задачи разработки моделей машинного обучения, позволяя создавать модели с высокой масштабируемостью, эффективностью и продуктивностью, сохраняя при этом качество модели. +- **Маркировка данных**: инструмент с поддержкой машинного обучения для автоматической маркировки данных. +- **Расширение машинного обучения для Visual Studio Code**: предоставляет полноценную среду разработки для создания и управления проектами машинного обучения. +- **CLI для машинного обучения**: предоставляет команды для управления ресурсами Azure ML из командной строки. +- **Интеграция с фреймворками с открытым исходным кодом**, такими как PyTorch, TensorFlow, Scikit-learn и многими другими, для обучения, развертывания и управления процессом машинного обучения от начала до конца. +- **MLflow**: библиотека с открытым исходным кодом для управления жизненным циклом экспериментов машинного обучения. **MLFlow Tracking** — это компонент MLflow, который регистрирует и отслеживает метрики обучения и артефакты модели, независимо от среды эксперимента. + +### 1.2 Проект прогнозирования сердечной недостаточности: + +Нет сомнений в том, что создание и разработка проектов — лучший способ проверить свои навыки и знания. В этом уроке мы изучим два разных способа создания проекта по прогнозированию сердечной недостаточности в Azure ML Studio: с использованием подхода Low code/No code и с использованием Azure ML SDK, как показано на схеме ниже: + +![project-schema](../../../../translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ru.png) + +Каждый способ имеет свои плюсы и минусы. Подход Low code/No code проще для начала, так как он предполагает взаимодействие с графическим интерфейсом (GUI) и не требует предварительных знаний в программировании. Этот метод позволяет быстро протестировать жизнеспособность проекта и создать POC (Proof Of Concept). Однако, когда проект растет и требуется готовность к производству, создание ресурсов через GUI становится нецелесообразным. Необходимо программно автоматизировать все процессы — от создания ресурсов до развертывания модели. Именно здесь знание Azure ML SDK становится критически важным. + +| | Low code/No code | Azure ML SDK | +|-------------------|------------------|---------------------------| +| Знание кода | Не требуется | Требуется | +| Время разработки | Быстро и легко | Зависит от уровня знаний | +| Готовность к производству | Нет | Да | + +### 1.3 Набор данных о сердечной недостаточности: + +Сердечно-сосудистые заболевания (ССЗ) являются основной причиной смерти во всем мире, составляя 31% всех смертей. Экологические и поведенческие факторы риска, такие как употребление табака, нездоровое питание и ожирение, физическая неактивность и вредное употребление алкоголя, могут быть использованы в качестве признаков для моделей прогнозирования. Возможность оценить вероятность развития ССЗ может быть полезной для предотвращения приступов у людей с высоким риском. + +На платформе Kaggle доступен [набор данных о сердечной недостаточности](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data), который мы будем использовать для этого проекта. Вы можете скачать набор данных прямо сейчас. Это табличный набор данных с 13 столбцами (12 признаков и 1 целевая переменная) и 299 строками. + +| | Название переменной | Тип данных | Описание | Пример | +|----|---------------------------|-----------------|---------------------------------------------------------|-------------------| +| 1 | age | числовой | возраст пациента | 25 | +| 2 | anaemia | булевый | снижение уровня эритроцитов или гемоглобина | 0 или 1 | +| 3 | creatinine_phosphokinase | числовой | уровень фермента CPK в крови | 542 | +| 4 | diabetes | булевый | наличие диабета у пациента | 0 или 1 | +| 5 | ejection_fraction | числовой | процент крови, покидающей сердце при каждом сокращении | 45 | +| 6 | high_blood_pressure | булевый | наличие гипертонии у пациента | 0 или 1 | +| 7 | platelets | числовой | количество тромбоцитов в крови | 149000 | +| 8 | serum_creatinine | числовой | уровень сывороточного креатинина в крови | 0.5 | +| 9 | serum_sodium | числовой | уровень сывороточного натрия в крови | jun | +| 10 | sex | булевый | пол пациента | 0 или 1 | +| 11 | smoking | булевый | курит ли пациент | 0 или 1 | +| 12 | time | числовой | период наблюдения (дни) | 4 | +|----|---------------------------|-----------------|---------------------------------------------------------|-------------------| +| 21 | DEATH_EVENT [Цель] | булевый | умер ли пациент в течение периода наблюдения | 0 или 1 | + +После получения набора данных мы можем начать проект в Azure. + +## 2. Обучение модели в Azure ML Studio с использованием Low code/No code +### 2.1 Создание рабочей области Azure ML +Для обучения модели в Azure ML сначала необходимо создать рабочую область Azure ML. Рабочая область — это основной ресурс для Azure Machine Learning, предоставляющий централизованное место для работы со всеми артефактами, которые вы создаете при использовании Azure Machine Learning. Рабочая область сохраняет историю всех запусков обучения, включая журналы, метрики, результаты и снимки ваших скриптов. Вы используете эту информацию, чтобы определить, какой запуск обучения дал лучшую модель. [Подробнее](https://docs.microsoft.com/azure/machine-learning/concept-workspace?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +Рекомендуется использовать самый актуальный браузер, совместимый с вашей операционной системой. Поддерживаются следующие браузеры: + +- Microsoft Edge (новая версия Microsoft Edge, не устаревшая версия) +- Safari (последняя версия, только для Mac) +- Chrome (последняя версия) +- Firefox (последняя версия) + +Чтобы использовать Azure Machine Learning, создайте рабочую область в вашей подписке Azure. Затем вы можете использовать эту рабочую область для управления данными, вычислительными ресурсами, кодом, моделями и другими артефактами, связанными с вашими задачами машинного обучения. + +> **_Примечание:_** Ваша подписка Azure будет взимать небольшую плату за хранение данных, пока рабочая область Azure Machine Learning существует в вашей подписке, поэтому мы рекомендуем удалить рабочую область Azure Machine Learning, когда вы больше не будете ее использовать. + +1. Войдите в [портал Azure](https://ms.portal.azure.com/) с учетными данными Microsoft, связанными с вашей подпиской Azure. +2. Выберите **+Создать ресурс** + + ![workspace-1](../../../../translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ru.png) + + Найдите Machine Learning и выберите плитку Machine Learning. + + ![workspace-2](../../../../translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ru.png) + + Нажмите кнопку "Создать". + + ![workspace-3](../../../../translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ru.png) + + Заполните настройки следующим образом: + - Подписка: ваша подписка Azure + - Группа ресурсов: создайте или выберите группу ресурсов + - Имя рабочей области: введите уникальное имя для вашей рабочей области + - Регион: выберите ближайший к вам географический регион + - Учетная запись хранения: обратите внимание на новую учетную запись хранения, которая будет создана для вашей рабочей области + - Key vault: обратите внимание на новый key vault, который будет создан для вашей рабочей области + - Application insights: обратите внимание на новый ресурс Application Insights, который будет создан для вашей рабочей области + - Container registry: отсутствует (он будет создан автоматически при первом развертывании модели в контейнер) + + ![workspace-4](../../../../translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ru.png) + + - Нажмите "Создать + обзор", а затем кнопку "Создать". +3. Дождитесь создания вашей рабочей области (это может занять несколько минут). Затем перейдите к ней в портале. Вы можете найти ее через сервис Machine Learning в Azure. +4. На странице обзора вашей рабочей области запустите Azure Machine Learning Studio (или откройте новую вкладку браузера и перейдите на https://ml.azure.com), и войдите в Azure Machine Learning Studio, используя свою учетную запись Microsoft. Если будет предложено, выберите ваш каталог Azure, подписку и рабочую область Azure Machine Learning. + +![workspace-5](../../../../translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ru.png) + +5. В Azure Machine Learning Studio переключите значок ☰ в верхнем левом углу, чтобы просмотреть различные страницы интерфейса. Вы можете использовать эти страницы для управления ресурсами в вашей рабочей области. + +![workspace-6](../../../../translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ru.png) + +Вы можете управлять своей рабочей областью через портал Azure, но для ученых данных и инженеров по операциям машинного обучения Azure Machine Learning Studio предоставляет более удобный интерфейс для управления ресурсами рабочей области. + +### 2.2 Вычислительные ресурсы + +Вычислительные ресурсы — это облачные ресурсы, на которых вы можете запускать процессы обучения моделей и исследования данных. Существует четыре типа вычислительных ресурсов, которые вы можете создать: + +- **Compute Instances**: рабочие станции для разработки, которые ученые данных могут использовать для работы с данными и моделями. Это включает создание виртуальной машины (VM) и запуск экземпляра ноутбука. Затем вы можете обучить модель, вызвав вычислительный кластер из ноутбука. +- **Compute Clusters**: масштабируемые кластеры виртуальных машин для обработки экспериментального кода по запросу. Они необходимы для обучения модели. Вычислительные кластеры также могут использовать специализированные ресурсы GPU или CPU. +- **Inference Clusters**: цели развертывания для предсказательных сервисов, использующих ваши обученные модели. +- **Подключенные вычисления**: Ссылки на существующие вычислительные ресурсы Azure, такие как виртуальные машины или кластеры Azure Databricks. + +#### 2.2.1 Выбор подходящих параметров для ваших вычислительных ресурсов + +Некоторые ключевые факторы следует учитывать при создании вычислительного ресурса, и эти выборы могут быть критически важными. + +**Нужен ли вам CPU или GPU?** + +CPU (центральный процессор) — это электронная схема, которая выполняет инструкции, составляющие компьютерную программу. GPU (графический процессор) — это специализированная электронная схема, способная выполнять графически ориентированный код с очень высокой скоростью. + +Основное различие между архитектурой CPU и GPU заключается в том, что CPU предназначен для быстрого выполнения широкого спектра задач (измеряется тактовой частотой CPU), но ограничен в параллельности выполняемых задач. GPU разработаны для параллельных вычислений и поэтому гораздо лучше подходят для задач глубокого обучения. + +| CPU | GPU | +|-----------------------------------------|-----------------------------| +| Менее дорогой | Более дорогой | +| Низкий уровень параллельности | Высокий уровень параллельности | +| Медленнее при обучении моделей глубокого обучения | Оптимален для глубокого обучения | + +**Размер кластера** + +Большие кластеры дороже, но обеспечивают лучшую отзывчивость. Поэтому, если у вас есть время, но недостаточно средств, начните с небольшого кластера. Если же у вас есть средства, но мало времени, начните с большого кластера. + +**Размер виртуальной машины** + +В зависимости от ваших временных и бюджетных ограничений, вы можете варьировать размер оперативной памяти, диска, количество ядер и тактовую частоту. Увеличение всех этих параметров будет стоить дороже, но обеспечит лучшую производительность. + +**Выделенные или низкоприоритетные экземпляры?** + +Низкоприоритетный экземпляр означает, что он может быть прерван: Microsoft Azure может забрать эти ресурсы и назначить их другой задаче, прервав выполнение вашей работы. Выделенный экземпляр, или непрерываемый, означает, что работа никогда не будет завершена без вашего разрешения. Это еще один аспект выбора между временем и деньгами, так как прерываемые экземпляры дешевле выделенных. + +#### 2.2.2 Создание вычислительного кластера + +В [рабочей области Azure ML](https://ml.azure.com/), которую мы создали ранее, перейдите в раздел "Compute", и вы сможете увидеть различные вычислительные ресурсы, которые мы только что обсудили (например, вычислительные экземпляры, вычислительные кластеры, кластеры для вывода и подключенные вычисления). Для этого проекта нам понадобится вычислительный кластер для обучения модели. В Studio нажмите на меню "Compute", затем вкладку "Compute cluster" и нажмите кнопку "+ New", чтобы создать вычислительный кластер. + +![22](../../../../translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ru.png) + +1. Выберите параметры: выделенный или низкоприоритетный, CPU или GPU, размер виртуальной машины и количество ядер (вы можете оставить настройки по умолчанию для этого проекта). +2. Нажмите кнопку "Next". + +![23](../../../../translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ru.png) + +3. Дайте кластеру имя. +4. Выберите параметры: минимальное/максимальное количество узлов, время простоя перед уменьшением масштаба, доступ SSH. Обратите внимание, что если минимальное количество узлов равно 0, вы сэкономите деньги, когда кластер простаивает. Чем больше максимальное количество узлов, тем быстрее будет обучение. Рекомендуемое максимальное количество узлов — 3. +5. Нажмите кнопку "Create". Этот шаг может занять несколько минут. + +![29](../../../../translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ru.png) + +Отлично! Теперь, когда у нас есть вычислительный кластер, нам нужно загрузить данные в Azure ML Studio. + +### 2.3 Загрузка набора данных + +1. В [рабочей области Azure ML](https://ml.azure.com/), которую мы создали ранее, нажмите на "Datasets" в левом меню и нажмите кнопку "+ Create dataset", чтобы создать набор данных. Выберите опцию "From local files" и выберите набор данных Kaggle, который мы скачали ранее. + + ![24](../../../../translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ru.png) + +2. Дайте вашему набору данных имя, тип и описание. Нажмите "Next". Загрузите данные из файлов. Нажмите "Next". + + ![25](../../../../translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ru.png) + +3. В схеме измените тип данных на Boolean для следующих характеристик: анемия, диабет, высокое кровяное давление, пол, курение и DEATH_EVENT. Нажмите "Next" и "Create". + + ![26](../../../../translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ru.png) + +Отлично! Теперь, когда набор данных загружен и вычислительный кластер создан, мы можем начать обучение модели! + +### 2.4 Обучение с минимальным кодом/без кода с AutoML + +Традиционная разработка моделей машинного обучения требует значительных ресурсов, глубоких знаний предметной области и времени для создания и сравнения множества моделей. Автоматизированное машинное обучение (AutoML) — это процесс автоматизации трудоемких, итеративных задач разработки моделей машинного обучения. Оно позволяет ученым, аналитикам и разработчикам создавать модели ML с высокой масштабируемостью, эффективностью и производительностью, при этом поддерживая качество моделей. Это сокращает время, необходимое для получения готовых к производству моделей ML, с легкостью и эффективностью. [Узнать больше](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +1. В [рабочей области Azure ML](https://ml.azure.com/), которую мы создали ранее, нажмите на "Automated ML" в левом меню и выберите только что загруженный набор данных. Нажмите "Next". + + ![27](../../../../translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ru.png) + +2. Введите имя нового эксперимента, целевой столбец (DEATH_EVENT) и вычислительный кластер, который мы создали. Нажмите "Next". + + ![28](../../../../translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ru.png) + +3. Выберите "Classification" и нажмите "Finish". Этот шаг может занять от 30 минут до 1 часа, в зависимости от размера вашего вычислительного кластера. + + ![30](../../../../translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ru.png) + +4. После завершения выполнения нажмите на вкладку "Automated ML", выберите ваш запуск и нажмите на алгоритм в карточке "Best model summary". + + ![31](../../../../translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ru.png) + +Здесь вы можете увидеть подробное описание лучшей модели, созданной AutoML. Вы также можете изучить другие модели на вкладке "Models". Потратьте несколько минут на изучение моделей в разделе "Explanations (preview)". После того как вы выбрали модель, которую хотите использовать (в данном случае мы выберем лучшую модель, выбранную AutoML), мы увидим, как ее можно развернуть. + +## 3. Развертывание модели с минимальным кодом/без кода и использование конечной точки +### 3.1 Развертывание модели + +Интерфейс автоматизированного машинного обучения позволяет развернуть лучшую модель как веб-службу в несколько шагов. Развертывание — это интеграция модели, чтобы она могла делать прогнозы на основе новых данных и выявлять потенциальные области возможностей. Для этого проекта развертывание веб-службы означает, что медицинские приложения смогут использовать модель для выполнения прогнозов риска сердечного приступа у пациентов в реальном времени. + +В описании лучшей модели нажмите кнопку "Deploy". + +![deploy-1](../../../../translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ru.png) + +15. Дайте ей имя, описание, тип вычислений (Azure Container Instance), включите аутентификацию и нажмите "Deploy". Этот шаг может занять около 20 минут. Процесс развертывания включает несколько этапов, включая регистрацию модели, создание ресурсов и их настройку для веб-службы. Сообщение о статусе появляется под "Deploy status". Периодически нажимайте "Refresh", чтобы проверить статус развертывания. Оно завершено и работает, когда статус "Healthy". + +![deploy-2](../../../../translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ru.png) + +16. После развертывания нажмите на вкладку "Endpoint" и выберите конечную точку, которую вы только что развернули. Здесь вы найдете все детали, которые нужно знать о конечной точке. + +![deploy-3](../../../../translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ru.png) + +Потрясающе! Теперь, когда у нас есть развернутая модель, мы можем начать использование конечной точки. + +### 3.2 Использование конечной точки + +Нажмите на вкладку "Consume". Здесь вы найдете REST конечную точку и скрипт на Python в опции использования. Потратьте время на изучение кода Python. + +Этот скрипт можно запустить непосредственно с вашего локального компьютера, и он будет использовать вашу конечную точку. + +![35](../../../../translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ru.png) + +Обратите внимание на эти две строки кода: + +```python +url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score' +api_key = '' # Replace this with the API key for the web service +``` +Переменная `url` — это REST конечная точка, найденная на вкладке использования, а переменная `api_key` — это основной ключ, также найденный на вкладке использования (только если вы включили аутентификацию). Именно так скрипт может использовать конечную точку. + +18. Запустив скрипт, вы должны увидеть следующий вывод: + ```python + b'"{\\"result\\": [true]}"' + ``` +Это означает, что прогноз сердечной недостаточности для предоставленных данных — true. Это логично, потому что если вы внимательно посмотрите на данные, автоматически сгенерированные в скрипте, все значения равны 0 и false по умолчанию. Вы можете изменить данные на следующий пример ввода: + +```python +data = { + "data": + [ + { + 'age': "0", + 'anaemia': "false", + 'creatinine_phosphokinase': "0", + 'diabetes': "false", + 'ejection_fraction': "0", + 'high_blood_pressure': "false", + 'platelets': "0", + 'serum_creatinine': "0", + 'serum_sodium': "0", + 'sex': "false", + 'smoking': "false", + 'time': "0", + }, + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} +``` +Скрипт должен вернуть: + ```python + b'"{\\"result\\": [true, false]}"' + ``` + +Поздравляем! Вы только что использовали развернутую модель и обучили ее в Azure ML! + +> **_Примечание:_** После завершения проекта не забудьте удалить все ресурсы. +## 🚀 Задание + +Внимательно изучите объяснения модели и детали, которые AutoML сгенерировал для лучших моделей. Попробуйте понять, почему лучшая модель лучше других. Какие алгоритмы были сравнены? Какие различия между ними? Почему лучшая модель показывает лучшие результаты в данном случае? + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/35) + +## Обзор и самостоятельное изучение + +В этом уроке вы узнали, как обучить, развернуть и использовать модель для прогнозирования риска сердечной недостаточности с минимальным кодом/без кода в облаке. Если вы еще этого не сделали, углубитесь в объяснения модели, которые AutoML сгенерировал для лучших моделей, и попробуйте понять, почему лучшая модель лучше других. + +Вы можете углубиться в AutoML с минимальным кодом/без кода, прочитав эту [документацию](https://docs.microsoft.com/azure/machine-learning/tutorial-first-experiment-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## Задание + +[Проект по Data Science с минимальным кодом/без кода на Azure ML](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/assignment.md b/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/assignment.md new file mode 100644 index 00000000..11e7c934 --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/18-Low-Code/assignment.md @@ -0,0 +1,25 @@ + +# Проект Data Science с использованием Low code/No code на Azure ML + +## Инструкции + +Мы рассмотрели, как использовать платформу Azure ML для обучения, развертывания и использования модели в формате Low code/No code. Теперь найдите данные, которые вы могли бы использовать для обучения другой модели, её развертывания и использования. Вы можете искать наборы данных на [Kaggle](https://kaggle.com) и [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## Критерии оценки + +| Превосходно | Удовлетворительно | Требует улучшения | +|-------------|--------------------|-------------------| +|При загрузке данных вы позаботились о том, чтобы изменить типы признаков, если это необходимо. Вы также очистили данные, если это требовалось. Вы провели обучение на наборе данных с помощью AutoML и проверили объяснения модели. Вы развернули лучшую модель и смогли её использовать. | При загрузке данных вы позаботились о том, чтобы изменить типы признаков, если это необходимо. Вы провели обучение на наборе данных с помощью AutoML, развернули лучшую модель и смогли её использовать. | Вы развернули лучшую модель, обученную с помощью AutoML, и смогли её использовать. | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/19-Azure/README.md b/translations/ru/5-Data-Science-In-Cloud/19-Azure/README.md new file mode 100644 index 00000000..6eb3d885 --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/19-Azure/README.md @@ -0,0 +1,313 @@ + +# Наука о данных в облаке: подход "Azure ML SDK" + +|![ Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/19-DataScience-Cloud.png)| +|:---:| +| Наука о данных в облаке: Azure ML SDK - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +Содержание: + +- [Наука о данных в облаке: подход "Azure ML SDK"](../../../../5-Data-Science-In-Cloud/19-Azure) + - [Предварительный тест](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1. Введение](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.1 Что такое Azure ML SDK?](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.2 Проект прогнозирования сердечной недостаточности и введение в набор данных](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2. Обучение модели с помощью Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.1 Создание рабочей области Azure ML](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.2 Создание вычислительного экземпляра](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.3 Загрузка набора данных](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.4 Создание ноутбуков](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5 Обучение модели](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.1 Настройка рабочей области, эксперимента, вычислительного кластера и набора данных](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.2 Конфигурация AutoML и обучение](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3. Развертывание модели и использование конечной точки с Azure ML SDK](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.1 Сохранение лучшей модели](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.2 Развертывание модели](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.3 Использование конечной точки](../../../../5-Data-Science-In-Cloud/19-Azure) + - [🚀 Задание](../../../../5-Data-Science-In-Cloud/19-Azure) + - [Тест после лекции](../../../../5-Data-Science-In-Cloud/19-Azure) + - [Обзор и самостоятельное изучение](../../../../5-Data-Science-In-Cloud/19-Azure) + - [Домашнее задание](../../../../5-Data-Science-In-Cloud/19-Azure) + +## [Предварительный тест](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/36) + +## 1. Введение + +### 1.1 Что такое Azure ML SDK? + +Специалисты по данным и разработчики ИИ используют Azure Machine Learning SDK для создания и выполнения рабочих процессов машинного обучения с помощью сервиса Azure Machine Learning. Вы можете взаимодействовать с сервисом в любой среде Python, включая Jupyter Notebooks, Visual Studio Code или ваш любимый IDE для Python. + +Основные возможности SDK включают: + +- Исследование, подготовка и управление жизненным циклом наборов данных, используемых в экспериментах машинного обучения. +- Управление облачными ресурсами для мониторинга, ведения журналов и организации экспериментов машинного обучения. +- Обучение моделей локально или с использованием облачных ресурсов, включая обучение моделей с ускорением на GPU. +- Использование автоматизированного машинного обучения, которое принимает параметры конфигурации и данные для обучения. Оно автоматически перебирает алгоритмы и настройки гиперпараметров, чтобы найти лучшую модель для выполнения прогнозов. +- Развертывание веб-сервисов для преобразования обученных моделей в RESTful-сервисы, которые могут быть использованы в любом приложении. + +[Узнайте больше о Azure Machine Learning SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +В [предыдущем уроке](../18-Low-Code/README.md) мы рассмотрели, как обучать, развертывать и использовать модель в формате Low code/No code. Мы использовали набор данных о сердечной недостаточности для создания модели прогнозирования сердечной недостаточности. В этом уроке мы сделаем то же самое, но с использованием Azure Machine Learning SDK. + +![схема проекта](../../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ru.png) + +### 1.2 Проект прогнозирования сердечной недостаточности и введение в набор данных + +Посмотрите [здесь](../18-Low-Code/README.md) введение в проект прогнозирования сердечной недостаточности и набор данных. + +## 2. Обучение модели с помощью Azure ML SDK +### 2.1 Создание рабочей области Azure ML + +Для простоты мы будем работать в Jupyter Notebook. Это предполагает, что у вас уже есть рабочая область и вычислительный экземпляр. Если у вас уже есть рабочая область, вы можете сразу перейти к разделу 2.3 Создание ноутбука. + +Если нет, пожалуйста, следуйте инструкциям в разделе **2.1 Создание рабочей области Azure ML** в [предыдущем уроке](../18-Low-Code/README.md), чтобы создать рабочую область. + +### 2.2 Создание вычислительного экземпляра + +В [рабочей области Azure ML](https://ml.azure.com/), которую мы создали ранее, перейдите в меню Compute, и вы увидите доступные вычислительные ресурсы. + +![compute-instance-1](../../../../translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ru.png) + +Давайте создадим вычислительный экземпляр для работы с Jupyter Notebook. +1. Нажмите кнопку + New. +2. Дайте имя вашему вычислительному экземпляру. +3. Выберите параметры: CPU или GPU, размер виртуальной машины и количество ядер. +4. Нажмите кнопку Create. + +Поздравляем, вы только что создали вычислительный экземпляр! Мы будем использовать этот экземпляр для создания ноутбука в разделе [Создание ноутбуков](../../../../5-Data-Science-In-Cloud/19-Azure). + +### 2.3 Загрузка набора данных +Обратитесь к [предыдущему уроку](../18-Low-Code/README.md) в разделе **2.3 Загрузка набора данных**, если вы еще не загрузили набор данных. + +### 2.4 Создание ноутбуков + +> **_Примечание:_** На следующем шаге вы можете либо создать новый ноутбук с нуля, либо загрузить [ноутбук, который мы создали](notebook.ipynb) в вашу Azure ML Studio. Чтобы загрузить его, просто нажмите на меню "Notebook" и загрузите ноутбук. + +Ноутбуки играют важную роль в процессе науки о данных. Они могут использоваться для проведения разведочного анализа данных (EDA), вызова вычислительного кластера для обучения модели, вызова кластера для развертывания конечной точки. + +Чтобы создать ноутбук, нам нужен вычислительный узел, который обслуживает экземпляр Jupyter Notebook. Вернитесь в [рабочую область Azure ML](https://ml.azure.com/) и нажмите на Compute instances. В списке вычислительных экземпляров вы должны увидеть [вычислительный экземпляр, который мы создали ранее](../../../../5-Data-Science-In-Cloud/19-Azure). + +1. В разделе Applications нажмите на опцию Jupyter. +2. Отметьте поле "Yes, I understand" и нажмите кнопку Continue. +![notebook-1](../../../../translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ru.png) +3. Это должно открыть новую вкладку браузера с вашим экземпляром Jupyter Notebook. Нажмите кнопку "New", чтобы создать ноутбук. + +![notebook-2](../../../../translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ru.png) + +Теперь, когда у нас есть ноутбук, мы можем начать обучение модели с помощью Azure ML SDK. + +### 2.5 Обучение модели + +Прежде всего, если у вас возникнут сомнения, обратитесь к [документации Azure ML SDK](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). Она содержит всю необходимую информацию для понимания модулей, которые мы будем рассматривать в этом уроке. + +#### 2.5.1 Настройка рабочей области, эксперимента, вычислительного кластера и набора данных + +Вам нужно загрузить `workspace` из конфигурационного файла, используя следующий код: + +```python +from azureml.core import Workspace +ws = Workspace.from_config() +``` + +Это возвращает объект типа `Workspace`, который представляет рабочую область. Затем вам нужно создать `experiment`, используя следующий код: + +```python +from azureml.core import Experiment +experiment_name = 'aml-experiment' +experiment = Experiment(ws, experiment_name) +``` +Чтобы получить или создать эксперимент из рабочей области, вы запрашиваете эксперимент, используя его имя. Имя эксперимента должно содержать от 3 до 36 символов, начинаться с буквы или цифры и может содержать только буквы, цифры, подчеркивания и дефисы. Если эксперимент не найден в рабочей области, создается новый эксперимент. + +Теперь вам нужно создать вычислительный кластер для обучения, используя следующий код. Обратите внимание, что этот шаг может занять несколько минут. + +```python +from azureml.core.compute import AmlCompute + +aml_name = "heart-f-cluster" +try: + aml_compute = AmlCompute(ws, aml_name) + print('Found existing AML compute context.') +except: + print('Creating new AML compute context.') + aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3) + aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config) + aml_compute.wait_for_completion(show_output = True) + +cts = ws.compute_targets +compute_target = cts[aml_name] +``` + +Вы можете получить набор данных из рабочей области, используя имя набора данных следующим образом: + +```python +dataset = ws.datasets['heart-failure-records'] +df = dataset.to_pandas_dataframe() +df.describe() +``` +#### 2.5.2 Конфигурация AutoML и обучение + +Чтобы настроить конфигурацию AutoML, используйте [класс AutoMLConfig](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +Как описано в документации, существует множество параметров, с которыми можно работать. Для этого проекта мы будем использовать следующие параметры: + +- `experiment_timeout_minutes`: Максимальное количество времени (в минутах), которое эксперимент может выполняться, прежде чем он автоматически остановится, а результаты автоматически станут доступными. +- `max_concurrent_iterations`: Максимальное количество одновременных итераций обучения, разрешенных для эксперимента. +- `primary_metric`: Основной метрик, используемый для определения статуса эксперимента. +- `compute_target`: Целевой вычислительный ресурс Azure Machine Learning для выполнения эксперимента автоматизированного машинного обучения. +- `task`: Тип задачи для выполнения. Значения могут быть 'classification', 'regression' или 'forecasting' в зависимости от типа задачи автоматизированного машинного обучения. +- `training_data`: Данные для обучения, которые будут использоваться в эксперименте. Они должны содержать как обучающие признаки, так и столбец меток (опционально столбец весов выборки). +- `label_column_name`: Имя столбца меток. +- `path`: Полный путь к папке проекта Azure Machine Learning. +- `enable_early_stopping`: Включение раннего завершения, если оценка не улучшается в краткосрочной перспективе. +- `featurization`: Индикатор того, следует ли автоматически выполнять этап фичеризации или использовать настроенную фичеризацию. +- `debug_log`: Файл журнала для записи отладочной информации. + +```python +from azureml.train.automl import AutoMLConfig + +project_folder = './aml-project' + +automl_settings = { + "experiment_timeout_minutes": 20, + "max_concurrent_iterations": 3, + "primary_metric" : 'AUC_weighted' +} + +automl_config = AutoMLConfig(compute_target=compute_target, + task = "classification", + training_data=dataset, + label_column_name="DEATH_EVENT", + path = project_folder, + enable_early_stopping= True, + featurization= 'auto', + debug_log = "automl_errors.log", + **automl_settings + ) +``` +Теперь, когда конфигурация настроена, вы можете обучить модель, используя следующий код. Этот шаг может занять до часа, в зависимости от размера вашего кластера. + +```python +remote_run = experiment.submit(automl_config) +``` +Вы можете запустить виджет RunDetails, чтобы показать различные эксперименты. +```python +from azureml.widgets import RunDetails +RunDetails(remote_run).show() +``` +## 3. Развертывание модели и использование конечной точки с Azure ML SDK + +### 3.1 Сохранение лучшей модели + +`remote_run` — это объект типа [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). Этот объект содержит метод `get_output()`, который возвращает лучший запуск и соответствующую обученную модель. + +```python +best_run, fitted_model = remote_run.get_output() +``` +Вы можете увидеть параметры, использованные для лучшей модели, просто напечатав fitted_model, и посмотреть свойства лучшей модели, используя метод [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +```python +best_run.get_properties() +``` + +Теперь зарегистрируйте модель с помощью метода [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). +```python +model_name = best_run.properties['model_name'] +script_file_name = 'inference/score.py' +best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py') +description = "aml heart failure project sdk" +model = best_run.register_model(model_name = model_name, + model_path = './outputs/', + description = description, + tags = None) +``` +### 3.2 Развертывание модели + +После сохранения лучшей модели мы можем развернуть ее с помощью класса [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109). InferenceConfig представляет настройки конфигурации для пользовательской среды, используемой для развертывания. Класс [AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) представляет модель машинного обучения, развернутую как конечная точка веб-сервиса на Azure Container Instances. Развернутый сервис создается из модели, скрипта и связанных файлов. Полученный веб-сервис является балансированным HTTP-эндпоинтом с REST API. Вы можете отправить данные на этот API и получить прогноз, возвращенный моделью. + +Модель развертывается с помощью метода [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +```python +from azureml.core.model import InferenceConfig, Model +from azureml.core.webservice import AciWebservice + +inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment()) + +aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, + memory_gb = 1, + tags = {'type': "automl-heart-failure-prediction"}, + description = 'Sample service for AutoML Heart Failure Prediction') + +aci_service_name = 'automl-hf-sdk' +aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) +aci_service.wait_for_deployment(True) +print(aci_service.state) +``` +Этот шаг должен занять несколько минут. + +### 3.3 Использование конечной точки + +Вы можете использовать вашу конечную точку, создав пример входных данных: + +```python +data = { + "data": + [ + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} + +test_sample = str.encode(json.dumps(data)) +``` +А затем отправить эти данные в вашу модель для получения прогноза: +```python +response = aci_service.run(input_data=test_sample) +response +``` +Это должно вывести `'{"result": [false]}'`. Это означает, что данные пациента, которые мы отправили на конечную точку, сгенерировали предсказание `false`, что говорит о том, что этот человек, скорее всего, не подвержен риску сердечного приступа. + +Поздравляем! Вы только что использовали модель, развернутую и обученную на Azure ML с помощью Azure ML SDK! + + +> **_NOTE:_** После завершения проекта не забудьте удалить все ресурсы. + +## 🚀 Задание + +С помощью SDK можно сделать множество других вещей, к сожалению, мы не можем рассмотреть их все в этом уроке. Но хорошая новость: умение быстро находить нужную информацию в документации SDK может значительно помочь вам в самостоятельной работе. Ознакомьтесь с документацией Azure ML SDK и найдите класс `Pipeline`, который позволяет создавать конвейеры. Конвейер — это набор шагов, которые можно выполнить как единый рабочий процесс. + +**ПОДСКАЗКА:** Перейдите в [документацию SDK](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) и введите ключевые слова, такие как "Pipeline", в строку поиска. В результатах поиска должен появиться класс `azureml.pipeline.core.Pipeline`. + +## [Тест после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/37) + +## Обзор и самостоятельное изучение + +В этом уроке вы узнали, как обучить, развернуть и использовать модель для предсказания риска сердечной недостаточности с помощью Azure ML SDK в облаке. Ознакомьтесь с этой [документацией](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) для получения дополнительной информации о Azure ML SDK. Попробуйте создать свою собственную модель с помощью Azure ML SDK. + +## Задание + +[Проект по анализу данных с использованием Azure ML SDK](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/19-Azure/assignment.md b/translations/ru/5-Data-Science-In-Cloud/19-Azure/assignment.md new file mode 100644 index 00000000..df634192 --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/19-Azure/assignment.md @@ -0,0 +1,25 @@ + +# Проект Data Science с использованием Azure ML SDK + +## Инструкции + +Мы рассмотрели, как использовать платформу Azure ML для обучения, развертывания и использования модели с помощью Azure ML SDK. Теперь найдите данные, которые вы могли бы использовать для обучения другой модели, её развертывания и использования. Вы можете искать наборы данных на [Kaggle](https://kaggle.com) и [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109). + +## Критерии оценки + +| Превосходно | Удовлетворительно | Требует улучшений | +|-------------|--------------------|-------------------| +|При настройке AutoML вы изучили документацию SDK, чтобы понять, какие параметры можно использовать. Вы провели обучение на наборе данных с помощью AutoML, используя Azure ML SDK, и проверили объяснения модели. Вы развернули лучшую модель и смогли использовать её через Azure ML SDK. | Вы провели обучение на наборе данных с помощью AutoML, используя Azure ML SDK, и проверили объяснения модели. Вы развернули лучшую модель и смогли использовать её через Azure ML SDK. | Вы провели обучение на наборе данных с помощью AutoML, используя Azure ML SDK. Вы развернули лучшую модель и смогли использовать её через Azure ML SDK. | + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/5-Data-Science-In-Cloud/README.md b/translations/ru/5-Data-Science-In-Cloud/README.md new file mode 100644 index 00000000..92569f7d --- /dev/null +++ b/translations/ru/5-Data-Science-In-Cloud/README.md @@ -0,0 +1,35 @@ + +# Наука о данных в облаке + +![cloud-picture](../../../translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ru.jpg) + +> Фото [Jelleke Vanooteghem](https://unsplash.com/@ilumire) с [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) + +Когда речь идет о работе с большими данными в области науки о данных, облако может стать настоящим прорывом. В следующих трех уроках мы узнаем, что такое облако и почему оно может быть очень полезным. Мы также изучим набор данных о сердечной недостаточности и создадим модель, которая поможет оценить вероятность сердечной недостаточности у человека. Мы будем использовать возможности облака для обучения, развертывания и использования модели двумя различными способами. Один способ — используя только пользовательский интерфейс в стиле Low code/No code, другой — с помощью набора инструментов разработчика Azure Machine Learning (Azure ML SDK). + +![project-schema](../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ru.png) + +### Темы + +1. [Почему использовать облако для науки о данных?](17-Introduction/README.md) +2. [Наука о данных в облаке: подход "Low code/No code"](18-Low-Code/README.md) +3. [Наука о данных в облаке: подход "Azure ML SDK"](19-Azure/README.md) + +### Благодарности +Эти уроки были написаны с ☁️ и 💕 [Maud Levy](https://twitter.com/maudstweets) и [Tiffany Souterre](https://twitter.com/TiffanySouterre). + +Данные для проекта прогнозирования сердечной недостаточности взяты из [ +Larxel](https://www.kaggle.com/andrewmvd) на [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data). Лицензия: [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования этого перевода. \ No newline at end of file diff --git a/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/README.md b/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/README.md new file mode 100644 index 00000000..d14fee00 --- /dev/null +++ b/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/README.md @@ -0,0 +1,155 @@ + +# Наука о данных в реальном мире + +| ![ Sketchnote от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| Наука о данных в реальном мире - _Sketchnote от [@nitya](https://twitter.com/nitya)_ | + +Мы почти подошли к концу этого учебного путешествия! + +Мы начали с определений науки о данных и этики, изучили различные инструменты и методы анализа и визуализации данных, рассмотрели жизненный цикл науки о данных и узнали, как масштабировать и автоматизировать рабочие процессы с использованием облачных вычислительных сервисов. И теперь вы, вероятно, задаетесь вопросом: _"Как именно применить все эти знания в реальных условиях?"_ + +В этом уроке мы исследуем реальные приложения науки о данных в различных отраслях и углубимся в конкретные примеры в области исследований, цифровых гуманитарных наук и устойчивого развития. Мы также рассмотрим возможности студенческих проектов и завершим полезными ресурсами, которые помогут вам продолжить обучение! + +## Предварительный тест + +[Предварительный тест](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/38) + +## Наука о данных + Индустрия + +Благодаря демократизации ИИ разработчикам стало проще проектировать и интегрировать решения на основе ИИ и данные в пользовательские интерфейсы и рабочие процессы разработки. Вот несколько примеров того, как наука о данных применяется в реальных условиях в различных отраслях: + + * [Google Flu Trends](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) использовал науку о данных для корреляции поисковых запросов с тенденциями распространения гриппа. Хотя подход имел недостатки, он привлек внимание к возможностям (и вызовам) прогнозирования в здравоохранении на основе данных. + + * [Прогнозирование маршрутов UPS](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - объясняет, как UPS использует науку о данных и машинное обучение для прогнозирования оптимальных маршрутов доставки с учетом погодных условий, трафика, сроков доставки и других факторов. + + * [Визуализация маршрутов такси в Нью-Йорке](http://chriswhong.github.io/nyctaxi/) - данные, собранные с использованием [Законов о свободе информации](https://chriswhong.com/open-data/foil_nyc_taxi/), помогли визуализировать день из жизни такси Нью-Йорка, что позволило понять, как они передвигаются по городу, сколько зарабатывают и какова продолжительность поездок за 24 часа. + + * [Рабочая платформа данных Uber](https://eng.uber.com/dsw/) - использует данные (о местах посадки и высадки, продолжительности поездок, предпочтительных маршрутах и т.д.), собранные с миллионов поездок Uber ежедневно, для создания аналитического инструмента, который помогает в ценообразовании, обеспечении безопасности, обнаружении мошенничества и навигации. + + * [Аналитика в спорте](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - включает _предиктивную аналитику_ (анализ команд и игроков, как в [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/), и управление фанатами) и _визуализацию данных_ (дашборды команд и фанатов, игры и т.д.) с применением в таких областях, как поиск талантов, спортивные ставки и управление инвентарем/местами проведения. + + * [Наука о данных в банковской сфере](https://data-flair.training/blogs/data-science-in-banking/) - подчеркивает ценность науки о данных в финансовой отрасли с применением в моделировании рисков, обнаружении мошенничества, сегментации клиентов, прогнозировании в реальном времени и рекомендательных системах. Предиктивная аналитика также используется для таких критически важных показателей, как [кредитные рейтинги](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit). + + * [Наука о данных в здравоохранении](https://data-flair.training/blogs/data-science-in-healthcare/) - включает такие приложения, как медицинская визуализация (например, МРТ, рентген, КТ-сканирование), геномика (секвенирование ДНК), разработка лекарств (оценка рисков, прогнозирование успеха), предиктивная аналитика (уход за пациентами и логистика поставок), отслеживание и предотвращение заболеваний и т.д. + +![Приложения науки о данных в реальном мире](../../../../translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ru.png) Источник изображения: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +На рисунке показаны другие области и примеры применения методов науки о данных. Хотите изучить другие приложения? Ознакомьтесь с разделом [Обзор и самостоятельное изучение](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) ниже. + +## Наука о данных + Исследования + +| ![ Sketchnote от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Наука о данных и исследования - _Sketchnote от [@nitya](https://twitter.com/nitya)_ | + +Хотя реальные приложения часто сосредоточены на масштабных промышленных кейсах, _исследовательские_ проекты могут быть полезны с двух точек зрения: + +* _возможности для инноваций_ - исследование прототипирования передовых концепций и тестирование пользовательского опыта для приложений следующего поколения. +* _вызовы внедрения_ - изучение потенциального вреда или непредвиденных последствий технологий науки о данных в реальных условиях. + +Для студентов такие исследовательские проекты могут предоставить как возможности для обучения, так и для сотрудничества, что улучшит ваше понимание темы и расширит осведомленность и взаимодействие с людьми или командами, работающими в интересующих вас областях. Как выглядят исследовательские проекты и как они могут повлиять? + +Рассмотрим один пример - [Исследование Gender Shades от MIT](http://gendershades.org/overview.html) Джой Буоламвини (MIT Media Labs) с [знаковым исследовательским документом](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf), написанным в соавторстве с Тимнит Гебру (тогда в Microsoft Research), который сосредоточился на: + + * **Что:** Целью исследования было _оценить предвзятость в алгоритмах и наборах данных для автоматического анализа лиц_ на основе пола и типа кожи. + * **Почему:** Анализ лиц используется в таких областях, как правоохранительные органы, безопасность в аэропортах, системы найма и другие - в контекстах, где неточные классификации (например, из-за предвзятости) могут нанести экономический и социальный вред затронутым лицам или группам. Понимание (и устранение или смягчение) предвзятости является ключом к справедливости в использовании. + * **Как:** Исследователи заметили, что существующие эталоны в основном использовали светлокожих субъектов, и создали новый набор данных (1000+ изображений), который был _более сбалансирован_ по полу и типу кожи. Этот набор данных использовался для оценки точности трех продуктов для классификации пола (от Microsoft, IBM и Face++). + +Результаты показали, что, хотя общая точность классификации была хорошей, наблюдалась заметная разница в уровнях ошибок между различными подгруппами - с **ошибками определения пола**, которые были выше для женщин или людей с более темным цветом кожи, что указывает на предвзятость. + +**Ключевые результаты:** Исследование подчеркнуло необходимость более _репрезентативных наборов данных_ (сбалансированных подгрупп) и более _инклюзивных команд_ (разнообразных по происхождению), чтобы распознавать и устранять или смягчать такие предвзятости на ранних этапах разработки решений на основе ИИ. Такие исследования также способствуют формированию принципов и практик _ответственного ИИ_ в организациях для повышения справедливости их продуктов и процессов. + +**Хотите узнать о соответствующих исследованиях в Microsoft?** + +* Ознакомьтесь с [исследовательскими проектами Microsoft](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) в области искусственного интеллекта. +* Изучите студенческие проекты из [Летней школы науки о данных Microsoft Research](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/). +* Ознакомьтесь с проектом [Fairlearn](https://fairlearn.org/) и инициативами [Ответственного ИИ](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6). + +## Наука о данных + Гуманитарные науки + +| ![ Sketchnote от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Наука о данных и цифровые гуманитарные науки - _Sketchnote от [@nitya](https://twitter.com/nitya)_ | + +Цифровые гуманитарные науки [определяются](https://digitalhumanities.stanford.edu/about-dh-stanford) как "совокупность практик и подходов, объединяющих вычислительные методы с гуманитарным исследованием". [Проекты Стэнфорда](https://digitalhumanities.stanford.edu/projects), такие как _"перезагрузка истории"_ и _"поэтическое мышление"_, иллюстрируют связь между [цифровыми гуманитарными науками и наукой о данных](https://digitalhumanities.stanford.edu/digital-humanities-and-data-science), подчеркивая такие методы, как анализ сетей, визуализация информации, пространственный и текстовый анализ, которые помогают нам переосмыслить исторические и литературные наборы данных, чтобы получить новые инсайты и перспективы. + +*Хотите изучить и расширить проект в этой области?* + +Ознакомьтесь с ["Эмили Дикинсон и метром настроения"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) - отличным примером от [Джен Лупер](https://twitter.com/jenlooper), который задается вопросом, как мы можем использовать науку о данных, чтобы переосмыслить знакомую поэзию и переоценить ее значение и вклад автора в новых контекстах. Например, _можем ли мы предсказать сезон, в который было написано стихотворение, анализируя его тон или настроение_, и что это говорит нам о состоянии автора в соответствующий период? + +Чтобы ответить на этот вопрос, мы следуем этапам жизненного цикла науки о данных: + * [`Сбор данных`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - для сбора релевантного набора данных для анализа. Варианты включают использование API (например, [Poetry DB API](https://poetrydb.org/index.html)) или парсинг веб-страниц (например, [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) с помощью инструментов, таких как [Scrapy](https://scrapy.org/). + * [`Очистка данных`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - объясняет, как текст может быть отформатирован, очищен и упрощен с использованием базовых инструментов, таких как Visual Studio Code и Microsoft Excel. + * [`Анализ данных`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - объясняет, как мы можем импортировать набор данных в "ноутбуки" для анализа с использованием Python-библиотек (таких как pandas, numpy и matplotlib) для организации и визуализации данных. + * [`Анализ настроений`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - объясняет, как мы можем интегрировать облачные сервисы, такие как Text Analytics, используя инструменты с низким кодом, такие как [Power Automate](https://flow.microsoft.com/en-us/) для автоматизации рабочих процессов обработки данных. + +Используя этот рабочий процесс, мы можем исследовать сезонные влияния на настроение стихотворений и помочь нам сформировать собственные взгляды на автора. Попробуйте сами, а затем расширьте ноутбук, чтобы задать другие вопросы или визуализировать данные по-новому! + +> Вы можете использовать некоторые инструменты из [набор инструментов цифровых гуманитарных наук](https://github.com/Digital-Humanities-Toolkit) для изучения этих направлений. + +## Наука о данных + Устойчивое развитие + +| ![ Sketchnote от [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| Наука о данных и устойчивое развитие - _Sketchnote от [@nitya](https://twitter.com/nitya)_ | + +[Повестка дня на период до 2030 года в области устойчивого развития](https://sdgs.un.org/2030agenda), принятая всеми членами ООН в 2015 году, определяет 17 целей, включая те, которые направлены на **защиту планеты** от деградации и воздействия изменения климата. Инициатива [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) поддерживает эти цели, исследуя способы, с помощью которых технологические решения могут способствовать созданию более устойчивого будущего, с [фокусом на 4 цели](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh): стать углеродно-отрицательными, водоположительными, безотходными и биоразнообразными к 2030 году. + +Решение этих задач в масштабах и в срок требует облачного подхода и работы с большими объемами данных. Инициатива [Planetary Computer](https://planetarycomputer.microsoft.com/) предоставляет 4 компонента, которые помогут ученым данных и разработчикам в этом направлении: + + * [Каталог данных](https://planetarycomputer.microsoft.com/catalog) - с петабайтами данных о системах Земли (бесплатно и размещено в Azure). + * [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - для поиска релевантных данных по пространству и времени. + * [Хаб](https://planetarycomputer.microsoft.com/docs/overview/environment/) - управляемая среда для ученых для обработки массивных геопространственных наборов данных. + * [Приложения](https://planetarycomputer.microsoft.com/applications) - демонстрируют кейсы и инструменты для получения инсайтов в области устойчивого развития. +**Проект Planetary Computer в настоящее время находится в стадии предварительного просмотра (по состоянию на сентябрь 2021 года)** - вот как вы можете начать вносить вклад в устойчивые решения с помощью науки о данных. + +* [Запросите доступ](https://planetarycomputer.microsoft.com/account/request), чтобы начать исследование и наладить связь с единомышленниками. +* [Изучите документацию](https://planetarycomputer.microsoft.com/docs/overview/about), чтобы понять, какие наборы данных и API поддерживаются. +* Ознакомьтесь с приложениями, такими как [Мониторинг экосистем](https://analytics-lab.org/ecosystemmonitoring/), чтобы найти вдохновение для идей приложений. + +Подумайте, как вы можете использовать визуализацию данных, чтобы выявить или усилить важные инсайты в таких областях, как изменение климата и вырубка лесов. Или подумайте, как эти инсайты могут быть использованы для создания новых пользовательских опытов, которые мотивируют на изменения поведения для более устойчивого образа жизни. + +## Наука о данных + студенты + +Мы обсудили реальные приложения в индустрии и исследованиях, а также рассмотрели примеры применения науки о данных в цифровых гуманитарных науках и устойчивом развитии. Так как же вам развивать свои навыки и делиться своим опытом, если вы только начинаете изучать науку о данных? + +Вот несколько примеров студенческих проектов в области науки о данных, которые могут вас вдохновить. + +* [Летняя школа науки о данных MSR](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) с проектами на [GitHub](https://github.com/msr-ds3), посвященными таким темам, как: + - [Расовая предвзятость в применении силы полицией](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [Надежность системы метро Нью-Йорка](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [Оцифровка материальной культуры: исследование социально-экономических распределений в Сиркапе](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc) - проект [Орнеллы Алтуньян](https://twitter.com/ornelladotcom) и команды из Клермонта, выполненный с использованием [ArcGIS StoryMaps](https://storymaps.arcgis.com/). + +## 🚀 Задание + +Найдите статьи, которые рекомендуют проекты по науке о данных для начинающих, например, [эти 50 тем](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/), [эти 21 идею проекта](https://www.intellspot.com/data-science-project-ideas) или [эти 16 проектов с исходным кодом](https://data-flair.training/blogs/data-science-project-ideas/), которые вы можете разобрать и переработать. И не забудьте вести блог о своем обучении и делиться своими инсайтами с нами. + +## Викторина после лекции + +[Викторина после лекции](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/39) + +## Обзор и самостоятельное изучение + +Хотите изучить больше примеров использования? Вот несколько полезных статей: +* [17 приложений и примеров науки о данных](https://builtin.com/data-science/data-science-applications-examples) - июль 2021 +* [11 впечатляющих приложений науки о данных в реальном мире](https://myblindbird.com/data-science-applications-real-world/) - май 2021 +* [Наука о данных в реальном мире](https://towardsdatascience.com/data-science-in-the-real-world/home) - сборник статей +* Наука о данных в: [образовании](https://data-flair.training/blogs/data-science-in-education/), [сельском хозяйстве](https://data-flair.training/blogs/data-science-in-agriculture/), [финансах](https://data-flair.training/blogs/data-science-in-finance/), [кино](https://data-flair.training/blogs/data-science-at-movies/) и других областях. + +## Задание + +[Изучите набор данных Planetary Computer](assignment.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md b/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md new file mode 100644 index 00000000..3b3a2bf4 --- /dev/null +++ b/translations/ru/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md @@ -0,0 +1,50 @@ + +# Изучение набора данных Planetary Computer + +## Инструкции + +В этом уроке мы обсудили различные области применения науки о данных, углубившись в примеры, связанные с исследованиями, устойчивым развитием и цифровыми гуманитарными науками. В этом задании вам предстоит изучить один из этих примеров более подробно и применить свои знания о визуализации и анализе данных, чтобы получить инсайты из данных об устойчивом развитии. + +Проект [Planetary Computer](https://planetarycomputer.microsoft.com/) предоставляет наборы данных и API, доступ к которым можно получить, создав учетную запись. Запросите учетную запись, если хотите попробовать выполнить бонусный шаг задания. Сайт также предлагает функцию [Explorer](https://planetarycomputer.microsoft.com/explore), которой можно пользоваться без создания учетной записи. + +`Шаги:` +Интерфейс Explorer (показан на скриншоте ниже) позволяет выбрать набор данных (из предложенных вариантов), предустановленный запрос (для фильтрации данных) и вариант визуализации (для создания соответствующего графика). В рамках этого задания вам нужно: + + 1. Прочитать [документацию Explorer](https://planetarycomputer.microsoft.com/docs/overview/explorer/) — понять доступные опции. + 2. Изучить [каталог наборов данных](https://planetarycomputer.microsoft.com/catalog) — узнать назначение каждого набора. + 3. Использовать Explorer — выбрать интересующий набор данных, подходящий запрос и вариант визуализации. + +![The Planetary Computer Explorer](../../../../translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ru.png) + +`Ваше задание:` +Теперь изучите визуализацию, которая отображается в браузере, и ответьте на следующие вопросы: + * Какие _характеристики_ есть у набора данных? + * Какие _инсайты_ или результаты предоставляет визуализация? + * Каковы _последствия_ этих инсайтов для целей устойчивого развития проекта? + * Каковы _ограничения_ визуализации (т.е. какие инсайты вы не смогли получить)? + * Если бы у вас были исходные данные, какие _альтернативные визуализации_ вы бы создали и почему? + +`Бонусные баллы:` +Запросите учетную запись и войдите в систему после получения доступа. + * Используйте опцию _Launch Hub_, чтобы открыть исходные данные в Notebook. + * Изучите данные интерактивно и реализуйте альтернативные визуализации, которые вы придумали. + * Теперь проанализируйте свои собственные визуализации — удалось ли вам получить инсайты, которые вы пропустили ранее? + +## Критерии оценки + +Превосходно | Удовлетворительно | Требует улучшения +--- | --- | -- | +Все пять основных вопросов были отвечены. Студент четко определил, как текущие и альтернативные визуализации могут предоставить инсайты для целей или результатов устойчивого развития.| Студент ответил как минимум на три основных вопроса в деталях, показав, что имел практический опыт работы с Explorer.| Студент не ответил на несколько вопросов или предоставил недостаточно деталей, что указывает на отсутствие значимых попыток выполнить проект.| + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/6-Data-Science-In-Wild/README.md b/translations/ru/6-Data-Science-In-Wild/README.md new file mode 100644 index 00000000..000ce620 --- /dev/null +++ b/translations/ru/6-Data-Science-In-Wild/README.md @@ -0,0 +1,25 @@ + +# Data Science в реальном мире + +Применение науки о данных в различных отраслях. + +### Темы + +1. [Data Science в реальном мире](20-Real-World-Examples/README.md) + +### Благодарности + +Написано с ❤️ [Нитьей Нарасимхан](https://twitter.com/nitya) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/CODE_OF_CONDUCT.md b/translations/ru/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..9cd01865 --- /dev/null +++ b/translations/ru/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ + +# Кодекс поведения Microsoft для проектов с открытым исходным кодом + +Этот проект принял [Кодекс поведения Microsoft для проектов с открытым исходным кодом](https://opensource.microsoft.com/codeofconduct/). + +Ресурсы: + +- [Кодекс поведения Microsoft для проектов с открытым исходным кодом](https://opensource.microsoft.com/codeofconduct/) +- [Часто задаваемые вопросы о Кодексе поведения](https://opensource.microsoft.com/codeofconduct/faq/) +- Свяжитесь с [opencode@microsoft.com](mailto:opencode@microsoft.com) по вопросам или для обсуждения проблем + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/CONTRIBUTING.md b/translations/ru/CONTRIBUTING.md new file mode 100644 index 00000000..62a2a9c1 --- /dev/null +++ b/translations/ru/CONTRIBUTING.md @@ -0,0 +1,25 @@ + +# Участие в проекте + +Этот проект приветствует участие и предложения. Для большинства вкладов требуется, чтобы вы +согласились с Лицензионным соглашением участника (Contributor License Agreement, CLA), подтверждающим, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробности можно найти на сайте https://cla.microsoft.com. + +Когда вы отправляете запрос на слияние (pull request), бот CLA автоматически определит, нужно ли вам +предоставить CLA, и соответствующим образом оформит ваш запрос (например, добавит метку или комментарий). Просто следуйте инструкциям, предоставленным ботом. Вам нужно будет сделать это только один раз для всех репозиториев, использующих наше CLA. + +Этот проект принял [Кодекс поведения для проектов с открытым исходным кодом Microsoft](https://opensource.microsoft.com/codeofconduct/). +Для получения дополнительной информации ознакомьтесь с [Часто задаваемыми вопросами о Кодексе поведения](https://opensource.microsoft.com/codeofconduct/faq/) +или свяжитесь с нами по адресу [opencode@microsoft.com](mailto:opencode@microsoft.com), если у вас есть дополнительные вопросы или комментарии. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/README.md b/translations/ru/README.md new file mode 100644 index 00000000..04730423 --- /dev/null +++ b/translations/ru/README.md @@ -0,0 +1,164 @@ + +# Основы Data Science - Учебная программа + +Azure Cloud Advocates в Microsoft рады предложить 10-недельную учебную программу, состоящую из 20 уроков, посвященных Data Science. Каждый урок включает предварительные и итоговые тесты, письменные инструкции для выполнения задания, решение и домашнее задание. Наш проектный подход к обучению позволяет вам учиться, создавая проекты, что является проверенным способом закрепления новых навыков. + +**Огромная благодарность нашим авторам:** [Jasmine Greenaway](https://www.twitter.com/paladique), [Dmitry Soshnikov](http://soshnikov.com), [Nitya Narasimhan](https://twitter.com/nitya), [Jalen McGee](https://twitter.com/JalenMcG), [Jen Looper](https://twitter.com/jenlooper), [Maud Levy](https://twitter.com/maudstweets), [Tiffany Souterre](https://twitter.com/TiffanySouterre), [Christopher Harrison](https://www.twitter.com/geektrainer). + +**🙏 Особая благодарность 🙏 нашим [Microsoft Student Ambassador](https://studentambassadors.microsoft.com/) авторам, рецензентам и участникам контента,** включая Aaryan Arora, [Aditya Garg](https://github.com/AdityaGarg00), [Alondra Sanchez](https://www.linkedin.com/in/alondra-sanchez-molina/), [Ankita Singh](https://www.linkedin.com/in/ankitasingh007), [Anupam Mishra](https://www.linkedin.com/in/anupam--mishra/), [Arpita Das](https://www.linkedin.com/in/arpitadas01/), ChhailBihari Dubey, [Dibri Nsofor](https://www.linkedin.com/in/dibrinsofor), [Dishita Bhasin](https://www.linkedin.com/in/dishita-bhasin-7065281bb), [Majd Safi](https://www.linkedin.com/in/majd-s/), [Max Blum](https://www.linkedin.com/in/max-blum-6036a1186/), [Miguel Correa](https://www.linkedin.com/in/miguelmque/), [Mohamma Iftekher (Iftu) Ebne Jalal](https://twitter.com/iftu119), [Nawrin Tabassum](https://www.linkedin.com/in/nawrin-tabassum), [Raymond Wangsa Putra](https://www.linkedin.com/in/raymond-wp/), [Rohit Yadav](https://www.linkedin.com/in/rty2423), Samridhi Sharma, [Sanya Sinha](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200), [Sheena Narula](https://www.linkedin.com/in/sheena-narua-n/), [Tauqeer Ahmad](https://www.linkedin.com/in/tauqeerahmad5201/), Yogendrasingh Pawar, [Vidushi Gupta](https://www.linkedin.com/in/vidushi-gupta07/), [Jasleen Sondhi](https://www.linkedin.com/in/jasleen-sondhi/) + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](./sketchnotes/00-Title.png)| +|:---:| +| Data Science для начинающих - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +## Объявление - Новая учебная программа по генеративному ИИ уже доступна! + +Мы только что выпустили учебную программу из 12 уроков по генеративному ИИ. Узнайте о таких темах, как: + +- создание запросов и инженерия запросов +- генерация текстовых и графических приложений +- приложения для поиска + +Как обычно, каждый урок включает задания, проверки знаний и вызовы. + +Посмотрите: + +> https://aka.ms/genai-beginners + +# Вы студент? + +Начните с следующих ресурсов: + +- [Страница для студентов](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) На этой странице вы найдете ресурсы для начинающих, студенческие пакеты и даже способы получить бесплатный ваучер на сертификацию. Это страница, которую стоит добавить в закладки и проверять время от времени, так как мы обновляем контент как минимум раз в месяц. +- [Microsoft Learn Student Ambassadors](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) Присоединяйтесь к глобальному сообществу студенческих амбассадоров, это может стать вашим путем в Microsoft. + +# Начало работы + +> **Учителя**: мы [добавили несколько предложений](for-teachers.md) о том, как использовать эту учебную программу. Нам будет приятно получить ваш отзыв [в нашем форуме обсуждений](https://github.com/microsoft/Data-Science-For-Beginners/discussions)! + +> **[Студенты](https://aka.ms/student-page)**: чтобы использовать эту учебную программу самостоятельно, сделайте форк репозитория и выполните задания самостоятельно, начиная с предварительного теста. Затем прочитайте лекцию и выполните остальные задания. Постарайтесь создавать проекты, понимая уроки, а не копируя код решения; однако этот код доступен в папках /solutions в каждом проектно-ориентированном уроке. Еще одна идея — создать учебную группу с друзьями и изучать контент вместе. Для дальнейшего изучения мы рекомендуем [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum). + +## Знакомьтесь с командой + +[![Промо-видео](../../ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "Промо-видео") + +**Gif создан** [Mohit Jaisal](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 Нажмите на изображение выше, чтобы посмотреть видео о проекте и людях, которые его создали! + +## Педагогика + +При создании этой учебной программы мы выбрали два педагогических принципа: обеспечение проектного подхода и включение частых тестов. К концу этой серии студенты изучат основные принципы Data Science, включая этические концепции, подготовку данных, различные способы работы с данными, визуализацию данных, анализ данных, реальные примеры использования Data Science и многое другое. + +Кроме того, тест с низкими ставками перед занятием настраивает студента на изучение темы, а второй тест после занятия обеспечивает дальнейшее закрепление материала. Эта учебная программа была разработана как гибкая и увлекательная, и ее можно проходить полностью или частично. Проекты начинаются с простых и становятся все более сложными к концу 10-недельного цикла. + +> Ознакомьтесь с нашим [Кодексом поведения](CODE_OF_CONDUCT.md), [Руководством по внесению изменений](CONTRIBUTING.md), [Руководством по переводу](TRANSLATIONS.md). Мы будем рады вашему конструктивному отзыву! + +## Каждый урок включает: + +- Опциональный скетчноут +- Опциональное дополнительное видео +- Разогревающий тест перед уроком +- Письменный урок +- Для проектных уроков — пошаговые инструкции по созданию проекта +- Проверки знаний +- Вызов +- Дополнительное чтение +- Домашнее задание +- Итоговый тест после урока + +> **Примечание о тестах**: Все тесты находятся в папке Quiz-App, всего 40 тестов по три вопроса каждый. Они связаны с уроками, но приложение для тестов можно запустить локально или развернуть в Azure; следуйте инструкциям в папке `quiz-app`. Постепенно они переводятся на другие языки. + +## Уроки + +|![Скетчноут от [(@sketchthedocs)](https://sketchthedocs.dev)](./sketchnotes/00-Roadmap.png)| +|:---:| +| Data Science для начинающих: Дорожная карта - _Скетчноут от [@nitya](https://twitter.com/nitya)_ | + +| Номер урока | Тема | Группа уроков | Цели обучения | Связанный урок | Автор | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | Определение Data Science | [Введение](1-Introduction/README.md) | Изучите основные концепции Data Science и его связь с искусственным интеллектом, машинным обучением и большими данными. | [урок](1-Introduction/01-defining-data-science/README.md) [видео](https://youtu.be/beZ7Mb_oz9I) | [Dmitry](http://soshnikov.com) | +| 02 | Этика в Data Science | [Введение](1-Introduction/README.md) | Концепции этики данных, вызовы и рамки. | [урок](1-Introduction/02-ethics/README.md) | [Nitya](https://twitter.com/nitya) | +| 03 | Определение данных | [Введение](1-Introduction/README.md) | Как классифицируются данные и их основные источники. | [урок](1-Introduction/03-defining-data/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 04 | Введение в статистику и вероятность | [Введение](1-Introduction/README.md) | Математические методы вероятности и статистики для понимания данных. | [урок](1-Introduction/04-stats-and-probability/README.md) [видео](https://youtu.be/Z5Zy85g4Yjw) | [Dmitry](http://soshnikov.com) | +| 05 | Работа с реляционными данными | [Работа с данными](2-Working-With-Data/README.md) | Введение в реляционные данные и основы их изучения и анализа с использованием языка SQL (Structured Query Language). | [урок](2-Working-With-Data/05-relational-databases/README.md) | [Christopher](https://www.twitter.com/geektrainer) | | | +| 06 | Работа с данными NoSQL | [Работа с данными](2-Working-With-Data/README.md) | Введение в нереляционные данные, их различные типы и основы изучения и анализа документных баз данных. | [урок](2-Working-With-Data/06-non-relational/README.md) | [Jasmine](https://twitter.com/paladique)| +| 07 | Работа с Python | [Работа с данными](2-Working-With-Data/README.md) | Основы использования Python для изучения данных с библиотеками, такими как Pandas. Рекомендуется базовое понимание программирования на Python. | [урок](2-Working-With-Data/07-python/README.md) [видео](https://youtu.be/dZjWOGbsN4Y) | [Dmitry](http://soshnikov.com) | +| 08 | Подготовка данных | [Работа с данными](2-Working-With-Data/README.md) | Темы о методах очистки и преобразования данных для решения проблем, связанных с отсутствующими, неточными или неполными данными. | [урок](2-Working-With-Data/08-data-preparation/README.md) | [Jasmine](https://www.twitter.com/paladique) | +| 09 | Визуализация количеств | [Визуализация данных](3-Data-Visualization/README.md) | Узнайте, как использовать Matplotlib для визуализации данных о птицах 🦆 | [урок](3-Data-Visualization/09-visualization-quantities/README.md) | [Jen](https://twitter.com/jenlooper) | +| 10 | Визуализация распределений данных | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация наблюдений и тенденций в пределах интервала. | [урок](3-Data-Visualization/10-visualization-distributions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 11 | Визуализация пропорций | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация дискретных и сгруппированных процентов. | [урок](3-Data-Visualization/11-visualization-proportions/README.md) | [Jen](https://twitter.com/jenlooper) | +| 12 | Визуализация взаимосвязей | [Визуализация данных](3-Data-Visualization/README.md) | Визуализация связей и корреляций между наборами данных и их переменными. | [урок](3-Data-Visualization/12-visualization-relationships/README.md) | [Jen](https://twitter.com/jenlooper) | +| 13 | Значимые визуализации | [Визуализация данных](3-Data-Visualization/README.md) | Техники и рекомендации для создания визуализаций, которые помогают эффективно решать задачи и получать инсайты. | [урок](3-Data-Visualization/13-meaningful-visualizations/README.md) | [Jen](https://twitter.com/jenlooper) | +| 14 | Введение в жизненный цикл Data Science | [Жизненный цикл](4-Data-Science-Lifecycle/README.md) | Введение в жизненный цикл Data Science и его первый этап — получение и извлечение данных. | [урок](4-Data-Science-Lifecycle/14-Introduction/README.md) | [Jasmine](https://twitter.com/paladique) | +| 15 | Анализ | [Жизненный цикл](4-Data-Science-Lifecycle/README.md) | Этот этап жизненного цикла Data Science посвящен методам анализа данных. | [урок](4-Data-Science-Lifecycle/15-analyzing/README.md) | [Jasmine](https://twitter.com/paladique) | | | +| 16 | Коммуникация | [Жизненный цикл](4-Data-Science-Lifecycle/README.md) | Этот этап жизненного цикла Data Science посвящен представлению инсайтов из данных таким образом, чтобы они были понятны лицам, принимающим решения. | [урок](4-Data-Science-Lifecycle/16-communication/README.md) | [Jalen](https://twitter.com/JalenMcG) | | | +| 17 | Data Science в облаке | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Серия уроков, посвященная Data Science в облаке и его преимуществам. | [урок](5-Data-Science-In-Cloud/17-Introduction/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) и [Maud](https://twitter.com/maudstweets) | +| 18 | Data Science в облаке | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Обучение моделей с использованием инструментов Low Code. | [урок](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) и [Maud](https://twitter.com/maudstweets) | +| 19 | Data Science в облаке | [Облачные данные](5-Data-Science-In-Cloud/README.md) | Развертывание моделей с помощью Azure Machine Learning Studio. | [урок](5-Data-Science-In-Cloud/19-Azure/README.md) | [Tiffany](https://twitter.com/TiffanySouterre) и [Maud](https://twitter.com/maudstweets) | +| 20 | Data Science в реальном мире | [В реальном мире](6-Data-Science-In-Wild/README.md) | Проекты, основанные на Data Science, в реальных условиях. | [урок](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [Nitya](https://twitter.com/nitya) | + +## GitHub Codespaces + +Следуйте этим шагам, чтобы открыть этот пример в Codespace: +1. Нажмите на выпадающее меню Code и выберите опцию Open with Codespaces. +2. Выберите + New codespace внизу панели. +Для получения дополнительной информации ознакомьтесь с [документацией GitHub](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace). + +## VSCode Remote - Containers + +Следуйте этим шагам, чтобы открыть этот репозиторий в контейнере с использованием вашего локального компьютера и VSCode с расширением VS Code Remote - Containers: + +1. Если вы впервые используете контейнер для разработки, убедитесь, что ваша система соответствует требованиям (например, установлен Docker), указанным в [документации по началу работы](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started). + +Чтобы использовать этот репозиторий, вы можете либо открыть его в изолированном Docker-объеме: + +**Примечание**: Внутри будет использоваться команда Remote-Containers: **Clone Repository in Container Volume...**, чтобы клонировать исходный код в Docker-объем вместо локальной файловой системы. [Объемы](https://docs.docker.com/storage/volumes/) являются предпочтительным механизмом для сохранения данных контейнера. + +Или открыть локально клонированную или загруженную версию репозитория: + +- Клонируйте этот репозиторий на вашу локальную файловую систему. +- Нажмите F1 и выберите команду **Remote-Containers: Open Folder in Container...**. +- Выберите клонированную копию этой папки, дождитесь запуска контейнера и начните работу. + +## Оффлайн-доступ + +Вы можете запустить эту документацию оффлайн, используя [Docsify](https://docsify.js.org/#/). Форкните этот репозиторий, [установите Docsify](https://docsify.js.org/#/quickstart) на вашем локальном компьютере, затем в корневой папке этого репозитория введите `docsify serve`. Веб-сайт будет доступен на порту 3000 вашего localhost: `localhost:3000`. + +> Примечание: блокноты не будут отображаться через Docsify, поэтому, если вам нужно запустить блокнот, сделайте это отдельно в VS Code, используя Python-ядро. + +## Нужна помощь! + +Если вы хотите перевести весь учебный курс или его часть, пожалуйста, следуйте нашему руководству [Translations](TRANSLATIONS.md). + +## Другие учебные курсы + +Наша команда создает другие учебные курсы! Ознакомьтесь с: + +- [Generative AI для начинающих](https://aka.ms/genai-beginners) +- [Generative AI для начинающих .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) +- [Generative AI с JavaScript](https://github.com/microsoft/generative-ai-with-javascript) +- [Generative AI с Java](https://aka.ms/genaijava) +- [AI для начинающих](https://aka.ms/ai-beginners) +- [Data Science для начинающих](https://aka.ms/datascience-beginners) +- [ML для начинающих](https://aka.ms/ml-beginners) +- [Кибербезопасность для начинающих](https://github.com/microsoft/Security-101) +- [Веб-разработка для начинающих](https://aka.ms/webdev-beginners) +- [IoT для начинающих](https://aka.ms/iot-beginners) +- [XR-разработка для начинающих](https://github.com/microsoft/xr-development-for-beginners) +- [Мастерство GitHub Copilot для парного программирования](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) +- [Мастерство GitHub Copilot для разработчиков C#/.NET](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) +- [Выбери свое приключение с Copilot](https://github.com/microsoft/CopilotAdventures) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/SECURITY.md b/translations/ru/SECURITY.md new file mode 100644 index 00000000..4dfa6d53 --- /dev/null +++ b/translations/ru/SECURITY.md @@ -0,0 +1,51 @@ + +## Безопасность + +Microsoft серьезно относится к безопасности своих программных продуктов и услуг, включая все репозитории исходного кода, управляемые через наши организации на GitHub, такие как [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin) и [наши организации на GitHub](https://opensource.microsoft.com/). + +Если вы считаете, что обнаружили уязвимость безопасности в любом из репозиториев, принадлежащих Microsoft, которая соответствует [определению уязвимости безопасности Microsoft](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)), пожалуйста, сообщите нам об этом, следуя инструкциям ниже. + +## Сообщение об уязвимостях безопасности + +**Пожалуйста, не сообщайте об уязвимостях безопасности через публичные обсуждения на GitHub.** + +Вместо этого сообщите об уязвимостях в Центр реагирования на инциденты безопасности Microsoft (MSRC) по адресу [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +Если вы предпочитаете отправить сообщение без входа в систему, отправьте письмо на [secure@microsoft.com](mailto:secure@microsoft.com). Если возможно, зашифруйте ваше сообщение с помощью нашего PGP-ключа; его можно скачать на [странице PGP-ключа Центра реагирования на инциденты безопасности Microsoft](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +Вы должны получить ответ в течение 24 часов. Если по какой-либо причине вы не получили ответа, пожалуйста, свяжитесь с нами повторно по электронной почте, чтобы убедиться, что ваше первоначальное сообщение было получено. Дополнительную информацию можно найти на [microsoft.com/msrc](https://www.microsoft.com/msrc). + +Пожалуйста, включите в сообщение следующую информацию (насколько это возможно), чтобы помочь нам лучше понять природу и масштаб возможной проблемы: + + * Тип проблемы (например, переполнение буфера, SQL-инъекция, межсайтовый скриптинг и т. д.) + * Полные пути к исходным файлам, связанным с проявлением проблемы + * Местоположение затронутого исходного кода (тег/ветка/коммит или прямой URL) + * Любая специальная конфигурация, необходимая для воспроизведения проблемы + * Пошаговые инструкции для воспроизведения проблемы + * Код доказательства концепции или эксплойт (если возможно) + * Влияние проблемы, включая способы, которыми злоумышленник может использовать уязвимость + +Эта информация поможет нам быстрее обработать ваш отчет. + +Если вы сообщаете об уязвимости в рамках программы вознаграждений за обнаружение ошибок, более полные отчеты могут способствовать получению более высокого вознаграждения. Пожалуйста, посетите страницу [Программы вознаграждений Microsoft](https://microsoft.com/msrc/bounty) для получения дополнительной информации о наших активных программах. + +## Предпочтительные языки + +Мы предпочитаем, чтобы вся переписка велась на английском языке. + +## Политика + +Microsoft придерживается принципа [Координированного раскрытия уязвимостей](https://www.microsoft.com/en-us/msrc/cvd). + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/SUPPORT.md b/translations/ru/SUPPORT.md new file mode 100644 index 00000000..c9802383 --- /dev/null +++ b/translations/ru/SUPPORT.md @@ -0,0 +1,24 @@ + +# Поддержка +## Как сообщить о проблемах и получить помощь + +Этот проект использует GitHub Issues для отслеживания ошибок и запросов на новые функции. Пожалуйста, проверьте существующие проблемы перед созданием новой, чтобы избежать дублирования. Для новых проблем создайте новую запись с описанием ошибки или запросом на добавление функции. + +Если вам нужна помощь или у вас есть вопросы по использованию этого проекта, создайте запись в разделе Issues. + +## Политика поддержки Microsoft + +Поддержка для этого репозитория ограничивается перечисленными выше ресурсами. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/docs/_sidebar.md b/translations/ru/docs/_sidebar.md new file mode 100644 index 00000000..9b37bc61 --- /dev/null +++ b/translations/ru/docs/_sidebar.md @@ -0,0 +1,40 @@ + +- Введение + - [Определение науки о данных](../1-Introduction/01-defining-data-science/README.md) + - [Этика науки о данных](../1-Introduction/02-ethics/README.md) + - [Определение данных](../1-Introduction/03-defining-data/README.md) + - [Теория вероятностей и статистика](../1-Introduction/04-stats-and-probability/README.md) +- Работа с данными + - [Реляционные базы данных](../2-Working-With-Data/05-relational-databases/README.md) + - [Нереляционные базы данных](../2-Working-With-Data/06-non-relational/README.md) + - [Python](../2-Working-With-Data/07-python/README.md) + - [Подготовка данных](../2-Working-With-Data/08-data-preparation/README.md) +- Визуализация данных + - [Визуализация количеств](../3-Data-Visualization/09-visualization-quantities/README.md) + - [Визуализация распределений](../3-Data-Visualization/10-visualization-distributions/README.md) + - [Визуализация пропорций](../3-Data-Visualization/11-visualization-proportions/README.md) + - [Визуализация взаимосвязей](../3-Data-Visualization/12-visualization-relationships/README.md) + - [Осмысленные визуализации](../3-Data-Visualization/13-meaningful-visualizations/README.md) +- Жизненный цикл науки о данных + - [Введение](../4-Data-Science-Lifecycle/14-Introduction/README.md) + - [Анализ](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [Коммуникация](../4-Data-Science-Lifecycle/16-communication/README.md) +- Наука о данных в облаке + - [Введение](../5-Data-Science-In-Cloud/17-Introduction/README.md) + - [Малокодовые решения](../5-Data-Science-In-Cloud/18-Low-Code/README.md) + - [Azure](../5-Data-Science-In-Cloud/19-Azure/README.md) +- Наука о данных в реальном мире + - [Наука о данных в реальном мире](../6-Data-Science-In-Wild/README.md) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/for-teachers.md b/translations/ru/for-teachers.md new file mode 100644 index 00000000..ffb74a5e --- /dev/null +++ b/translations/ru/for-teachers.md @@ -0,0 +1,78 @@ + +## Для преподавателей + +Хотите использовать эту учебную программу в своем классе? Пожалуйста, не стесняйтесь! + +На самом деле, вы можете использовать ее прямо в GitHub, воспользовавшись GitHub Classroom. + +Для этого сделайте форк этого репозитория. Вам нужно будет создать отдельный репозиторий для каждого урока, поэтому извлеките каждую папку в отдельный репозиторий. Таким образом, [GitHub Classroom](https://classroom.github.com/classrooms) сможет обрабатывать каждый урок отдельно. + +Эти [подробные инструкции](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) помогут вам понять, как настроить ваш класс. + +## Использование репозитория как есть + +Если вы хотите использовать этот репозиторий в его текущем виде, без использования GitHub Classroom, это тоже возможно. Вам нужно будет сообщить своим студентам, какой урок изучать вместе. + +В онлайн-формате (Zoom, Teams или другие платформы) вы можете организовать комнаты для обсуждений, чтобы студенты могли проходить викторины, а также наставлять их, чтобы они были готовы к обучению. Затем пригласите студентов пройти викторины и отправить свои ответы в виде 'issues' в определенное время. Вы можете поступить так же с заданиями, если хотите, чтобы студенты работали совместно и открыто. + +Если вы предпочитаете более приватный формат, попросите студентов сделать форк учебной программы, урок за уроком, в свои собственные приватные репозитории на GitHub и предоставить вам доступ. Затем они смогут проходить викторины и выполнять задания приватно, отправляя их вам через 'issues' в вашем репозитории для класса. + +Существует множество способов организовать работу в онлайн-классе. Пожалуйста, сообщите нам, что лучше всего подходит для вас! + +## Включено в эту учебную программу: + +20 уроков, 40 викторин и 20 заданий. К урокам прилагаются скетчноты для визуальных учеников. Многие уроки доступны как на Python, так и на R и могут быть выполнены с использованием Jupyter notebooks в VS Code. Узнайте больше о том, как настроить ваш класс для использования этой технологической платформы: https://code.visualstudio.com/docs/datascience/jupyter-notebooks. + +Все скетчноты, включая постер большого формата, находятся в [этой папке](../../sketchnotes). + +Вся учебная программа доступна [в формате PDF](../../pdf/readme.pdf). + +Вы также можете запустить эту учебную программу как автономный, офлайн-дружественный веб-сайт, используя [Docsify](https://docsify.js.org/#/). [Установите Docsify](https://docsify.js.org/#/quickstart) на вашем локальном компьютере, затем в корневой папке локальной копии этого репозитория введите `docsify serve`. Веб-сайт будет доступен на порту 3000 вашего локального хоста: `localhost:3000`. + +Офлайн-версия учебной программы откроется как автономная веб-страница: https://localhost:3000 + +Уроки сгруппированы в 6 частей: + +- 1: Введение + - 1: Определение науки о данных + - 2: Этика + - 3: Определение данных + - 4: Обзор вероятности и статистики +- 2: Работа с данными + - 5: Реляционные базы данных + - 6: Нереляционные базы данных + - 7: Python + - 8: Подготовка данных +- 3: Визуализация данных + - 9: Визуализация количеств + - 10: Визуализация распределений + - 11: Визуализация пропорций + - 12: Визуализация взаимосвязей + - 13: Осмысленные визуализации +- 4: Жизненный цикл науки о данных + - 14: Введение + - 15: Анализ + - 16: Коммуникация +- 5: Наука о данных в облаке + - 17: Введение + - 18: Опции с низким уровнем кода + - 19: Azure +- 6: Наука о данных в реальном мире + - 20: Обзор + +## Пожалуйста, поделитесь своими мыслями! + +Мы хотим, чтобы эта учебная программа была полезной для вас и ваших студентов. Пожалуйста, оставьте свои отзывы на форумах обсуждений! Вы также можете создать раздел для вашего класса на форумах обсуждений для ваших студентов. + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/quiz-app/README.md b/translations/ru/quiz-app/README.md new file mode 100644 index 00000000..8dd604c2 --- /dev/null +++ b/translations/ru/quiz-app/README.md @@ -0,0 +1,139 @@ + +# Викторины + +Эти викторины являются предварительными и итоговыми тестами для учебной программы по науке о данных на https://aka.ms/datascience-beginners. + +## Добавление переведенного набора викторин + +Добавьте перевод викторины, создав соответствующие структуры викторин в папке `assets/translations`. Оригинальные викторины находятся в `assets/translations/en`. Викторины разделены на несколько групп. Убедитесь, что нумерация соответствует правильному разделу викторин. В этой учебной программе всего 40 викторин, начиная с номера 0. + +После редактирования переводов отредактируйте файл index.js в папке перевода, чтобы импортировать все файлы в соответствии с конвенциями в `en`. + +Отредактируйте файл `index.js` в `assets/translations`, чтобы импортировать новые переведенные файлы. + +Затем отредактируйте выпадающий список в `App.vue` в этом приложении, чтобы добавить ваш язык. Убедитесь, что локализованное сокращение соответствует названию папки для вашего языка. + +Наконец, отредактируйте все ссылки на викторины в переведенных уроках, если они существуют, чтобы включить эту локализацию в качестве параметра запроса: например, `?loc=fr`. + +## Настройка проекта + +``` +npm install +``` + +### Компиляция и горячая перезагрузка для разработки + +``` +npm run serve +``` + +### Компиляция и минимизация для продакшена + +``` +npm run build +``` + +### Линтинг и исправление файлов + +``` +npm run lint +``` + +### Настройка конфигурации + +См. [Справочник по конфигурации](https://cli.vuejs.org/config/). + +Благодарности: Спасибо за оригинальную версию этого приложения для викторин: https://github.com/arpan45/simple-quiz-vue. + +## Развертывание в Azure + +Вот пошаговое руководство, которое поможет вам начать: + +1. Форк репозитория GitHub +Убедитесь, что код вашего статического веб-приложения находится в вашем репозитории GitHub. Форкните этот репозиторий. + +2. Создайте статическое веб-приложение Azure +- Создайте [аккаунт Azure](http://azure.microsoft.com). +- Перейдите в [портал Azure](https://portal.azure.com). +- Нажмите «Создать ресурс» и найдите «Static Web App». +- Нажмите «Создать». + +3. Настройте статическое веб-приложение +- Основное: + - Подписка: Выберите вашу подписку Azure. + - Группа ресурсов: Создайте новую группу ресурсов или используйте существующую. + - Имя: Укажите имя для вашего статического веб-приложения. + - Регион: Выберите регион, ближайший к вашим пользователям. + +- #### Детали развертывания: + - Источник: Выберите «GitHub». + - Аккаунт GitHub: Авторизуйте Azure для доступа к вашему аккаунту GitHub. + - Организация: Выберите вашу организацию GitHub. + - Репозиторий: Выберите репозиторий, содержащий ваше статическое веб-приложение. + - Ветка: Выберите ветку, из которой вы хотите развернуть приложение. + +- #### Детали сборки: + - Пресеты сборки: Выберите фреймворк, на котором построено ваше приложение (например, React, Angular, Vue и т. д.). + - Расположение приложения: Укажите папку, содержащую код вашего приложения (например, /, если оно находится в корне). + - Расположение API: Если у вас есть API, укажите его расположение (опционально). + - Расположение вывода: Укажите папку, где генерируется результат сборки (например, build или dist). + +4. Проверьте и создайте +Проверьте настройки и нажмите «Создать». Azure настроит необходимые ресурсы и создаст файл рабочего процесса GitHub Actions в вашем репозитории. + +5. Рабочий процесс GitHub Actions +Azure автоматически создаст файл рабочего процесса GitHub Actions в вашем репозитории (.github/workflows/azure-static-web-apps-.yml). Этот рабочий процесс будет обрабатывать процесс сборки и развертывания. + +6. Мониторинг развертывания +Перейдите на вкладку «Actions» в вашем репозитории GitHub. +Вы должны увидеть запущенный рабочий процесс. Этот рабочий процесс соберет и развернет ваше статическое веб-приложение в Azure. +После завершения рабочего процесса ваше приложение будет доступно по предоставленному URL-адресу Azure. + +### Пример файла рабочего процесса + +Вот пример того, как может выглядеть файл рабочего процесса GitHub Actions: +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### Дополнительные ресурсы +- [Документация по статическим веб-приложениям Azure](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [Документация по GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникающие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ru/sketchnotes/README.md b/translations/ru/sketchnotes/README.md new file mode 100644 index 00000000..80f81695 --- /dev/null +++ b/translations/ru/sketchnotes/README.md @@ -0,0 +1,21 @@ + +Найдите все скетчноты здесь! + +## Благодарности + +Нития Нарасимхан, художник + +![скетчнота дорожной карты](../../../translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ru.png) + +--- + +**Отказ от ответственности**: +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, пожалуйста, имейте в виду, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/ur/1-Introduction/01-defining-data-science/README.md b/translations/ur/1-Introduction/01-defining-data-science/README.md new file mode 100644 index 00000000..5ff5755b --- /dev/null +++ b/translations/ur/1-Introduction/01-defining-data-science/README.md @@ -0,0 +1,78 @@ + +## ڈیٹا کی اقسام + +جیسا کہ ہم پہلے ذکر کر چکے ہیں، ڈیٹا ہر جگہ موجود ہے۔ ہمیں صرف اسے صحیح طریقے سے حاصل کرنے کی ضرورت ہے! یہ مفید ہے کہ ہم **منظم** اور **غیر منظم** ڈیٹا کے درمیان فرق کریں۔ منظم ڈیٹا عام طور پر کسی منظم شکل میں پیش کیا جاتا ہے، جیسے کہ ایک ٹیبل یا کئی ٹیبلز، جبکہ غیر منظم ڈیٹا صرف فائلز کا مجموعہ ہوتا ہے۔ بعض اوقات ہم **نیم منظم** ڈیٹا کی بھی بات کر سکتے ہیں، جس میں کچھ حد تک ساخت ہوتی ہے جو بہت مختلف ہو سکتی ہے۔ + +| منظم | نیم منظم | غیر منظم | +| ---------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ------------------------------------- | +| لوگوں کی فہرست ان کے فون نمبرز کے ساتھ | ویکیپیڈیا کے صفحات جن میں لنکس شامل ہیں | انسائیکلوپیڈیا برٹانیکا کا متن | +| پچھلے 20 سالوں میں ہر منٹ میں ایک عمارت کے تمام کمروں کا درجہ حرارت | سائنسی مقالوں کا مجموعہ JSON فارمیٹ میں، جس میں مصنفین، اشاعت کی تاریخ، اور خلاصہ شامل ہو | کارپوریٹ دستاویزات کے ساتھ فائل شیئر | +| عمارت میں داخل ہونے والے تمام لوگوں کی عمر اور جنس کا ڈیٹا | انٹرنیٹ کے صفحات | نگرانی کیمرے سے خام ویڈیو فیڈ | + +## ڈیٹا کہاں سے حاصل کریں + +ڈیٹا کے بہت سے ممکنہ ذرائع ہیں، اور ان سب کو فہرست میں شامل کرنا ناممکن ہوگا! تاہم، آئیے کچھ عام جگہوں کا ذکر کرتے ہیں جہاں سے آپ ڈیٹا حاصل کر سکتے ہیں: + +* **منظم** + - **انٹرنیٹ آف تھنگز** (IoT)، جس میں مختلف سینسرز جیسے درجہ حرارت یا دباؤ سینسرز سے ڈیٹا شامل ہے، بہت مفید ڈیٹا فراہم کرتا ہے۔ مثال کے طور پر، اگر ایک دفتر کی عمارت IoT سینسرز سے لیس ہو، تو ہم خودکار طور پر حرارت اور روشنی کو کنٹرول کر سکتے ہیں تاکہ اخراجات کم کیے جا سکیں۔ + - **سروے** جو ہم صارفین سے خریداری کے بعد یا ویب سائٹ دیکھنے کے بعد مکمل کرنے کو کہتے ہیں۔ + - **رویے کا تجزیہ**، جو ہمیں یہ سمجھنے میں مدد دے سکتا ہے کہ صارف ویب سائٹ پر کتنی گہرائی میں جاتا ہے، اور عام طور پر ویب سائٹ چھوڑنے کی وجہ کیا ہوتی ہے۔ +* **غیر منظم** + - **متن** ایک قیمتی ذریعہ ہو سکتا ہے، جیسے مجموعی **جذباتی اسکور**، یا کلیدی الفاظ اور معنوی مطلب نکالنا۔ + - **تصاویر** یا **ویڈیوز**۔ نگرانی کیمرے سے ویڈیو سڑک پر ٹریفک کا اندازہ لگانے کے لیے استعمال کی جا سکتی ہے، اور لوگوں کو ممکنہ ٹریفک جام کے بارے میں مطلع کر سکتی ہے۔ + - ویب سرور کے **لاگز** یہ سمجھنے کے لیے استعمال کیے جا سکتے ہیں کہ ہماری ویب سائٹ کے کون سے صفحات سب سے زیادہ دیکھے جاتے ہیں، اور کتنی دیر تک۔ +* **نیم منظم** + - **سوشل نیٹ ورک** گراف صارفین کی شخصیتوں اور معلومات پھیلانے کی ممکنہ تاثیر کے بارے میں ڈیٹا کے بہترین ذرائع ہو سکتے ہیں۔ + - جب ہمارے پاس کسی پارٹی کی تصاویر کا مجموعہ ہو، تو ہم **گروپ ڈائنامکس** کا ڈیٹا نکالنے کی کوشش کر سکتے ہیں، لوگوں کے ایک دوسرے کے ساتھ تصاویر لینے کے گراف بنا کر۔ + +مختلف ممکنہ ڈیٹا کے ذرائع کو جان کر، آپ مختلف منظرناموں کے بارے میں سوچ سکتے ہیں جہاں ڈیٹا سائنس کی تکنیکوں کو بہتر طور پر سمجھنے اور کاروباری عمل کو بہتر بنانے کے لیے لاگو کیا جا سکتا ہے۔ + +## ڈیٹا کے ساتھ کیا کیا جا سکتا ہے + +ڈیٹا سائنس میں، ہم ڈیٹا کے سفر کے درج ذیل مراحل پر توجہ مرکوز کرتے ہیں: + +## ڈیجیٹلائزیشن اور ڈیجیٹل ٹرانسفارمیشن + +پچھلی دہائی میں، بہت سے کاروباروں نے یہ سمجھنا شروع کیا کہ کاروباری فیصلے کرتے وقت ڈیٹا کی اہمیت کتنی زیادہ ہے۔ ڈیٹا سائنس کے اصولوں کو کاروبار چلانے پر لاگو کرنے کے لیے، سب سے پہلے کچھ ڈیٹا جمع کرنا ضروری ہے، یعنی کاروباری عمل کو ڈیجیٹل شکل میں تبدیل کرنا۔ اسے **ڈیجیٹلائزیشن** کہا جاتا ہے۔ اس ڈیٹا پر ڈیٹا سائنس کی تکنیکوں کا اطلاق کر کے فیصلوں کی رہنمائی کرنا پیداواریت میں نمایاں اضافہ (یا یہاں تک کہ کاروباری تبدیلی) کا باعث بن سکتا ہے، جسے **ڈیجیٹل ٹرانسفارمیشن** کہا جاتا ہے۔ + +آئیے ایک مثال پر غور کریں۔ فرض کریں کہ ہمارے پاس ایک ڈیٹا سائنس کورس ہے (جیسے یہ کورس) جو ہم آن لائن طلباء کو فراہم کرتے ہیں، اور ہم اسے بہتر بنانے کے لیے ڈیٹا سائنس کا استعمال کرنا چاہتے ہیں۔ ہم یہ کیسے کر سکتے ہیں؟ + +ہم یہ سوال پوچھ کر شروع کر سکتے ہیں کہ "کیا چیز ڈیجیٹلائز کی جا سکتی ہے؟" سب سے آسان طریقہ یہ ہوگا کہ ہم یہ ناپیں کہ ہر طالب علم کو ہر ماڈیول مکمل کرنے میں کتنا وقت لگتا ہے، اور ہر ماڈیول کے اختتام پر ایک ملٹی پل چوائس ٹیسٹ دے کر حاصل کردہ علم کو ناپیں۔ تمام طلباء کے درمیان اوسط وقت نکال کر، ہم یہ معلوم کر سکتے ہیں کہ کون سے ماڈیول طلباء کے لیے سب سے زیادہ مشکلات پیدا کرتے ہیں، اور ان کو آسان بنانے پر کام کر سکتے ہیں۔ +آپ یہ دلیل دے سکتے ہیں کہ یہ طریقہ مثالی نہیں ہے، کیونکہ ماڈیولز مختلف لمبائی کے ہو سکتے ہیں۔ شاید زیادہ مناسب یہ ہوگا کہ وقت کو ماڈیول کی لمبائی (حروف کی تعداد میں) کے حساب سے تقسیم کیا جائے، اور ان اقدار کا موازنہ کیا جائے۔ +جب ہم کثیر انتخابی ٹیسٹ کے نتائج کا تجزیہ شروع کرتے ہیں، تو ہم یہ جاننے کی کوشش کر سکتے ہیں کہ کون سے تصورات طلباء کے لیے سمجھنے میں مشکل ہیں، اور اس معلومات کو مواد کو بہتر بنانے کے لیے استعمال کر سکتے ہیں۔ ایسا کرنے کے لیے، ہمیں ٹیسٹ اس طرح ڈیزائن کرنے کی ضرورت ہے کہ ہر سوال کسی خاص تصور یا علم کے حصے سے منسلک ہو۔ + +اگر ہم مزید پیچیدگی میں جانا چاہیں، تو ہم ہر ماڈیول کے لیے لی گئی وقت کو طلباء کی عمر کے زمرے کے ساتھ موازنہ کر سکتے ہیں۔ ہمیں معلوم ہو سکتا ہے کہ کچھ عمر کے زمرے کے لیے ماڈیول مکمل کرنے میں غیر مناسب طور پر زیادہ وقت لگتا ہے، یا طلباء اسے مکمل کرنے سے پہلے ہی چھوڑ دیتے ہیں۔ یہ ہمیں ماڈیول کے لیے عمر کی سفارشات فراہم کرنے میں مدد دے سکتا ہے، اور غلط توقعات سے لوگوں کی ناخوشی کو کم کر سکتا ہے۔ + +## 🚀 چیلنج + +اس چیلنج میں، ہم ڈیٹا سائنس کے میدان سے متعلق تصورات کو تلاش کرنے کی کوشش کریں گے، متن کو دیکھ کر۔ ہم ڈیٹا سائنس پر ایک ویکیپیڈیا مضمون لیں گے، متن کو ڈاؤنلوڈ اور پراسیس کریں گے، اور پھر ایک ورڈ کلاؤڈ بنائیں گے، جیسے یہ: + +![ورڈ کلاؤڈ برائے ڈیٹا سائنس](../../../../translated_images/ds_wordcloud.664a7c07dca57de017c22bf0498cb40f898d48aa85b3c36a80620fea12fadd42.ur.png) + +[`notebook.ipynb`](../../../../../../../../../1-Introduction/01-defining-data-science/notebook.ipynb ':ignore') پر جائیں تاکہ کوڈ کو پڑھ سکیں۔ آپ کوڈ کو چلا بھی سکتے ہیں، اور دیکھ سکتے ہیں کہ یہ حقیقی وقت میں تمام ڈیٹا تبدیلیاں کیسے انجام دیتا ہے۔ + +> اگر آپ کو معلوم نہیں کہ جیوپیٹر نوٹ بک میں کوڈ کیسے چلایا جائے، تو [اس مضمون](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) کو دیکھیں۔ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/1) + +## اسائنمنٹس + +* **ٹاسک 1**: اوپر دیے گئے کوڈ میں ترمیم کریں تاکہ **بگ ڈیٹا** اور **مشین لرننگ** کے میدانوں کے لیے متعلقہ تصورات معلوم کیے جا سکیں۔ +* **ٹاسک 2**: [ڈیٹا سائنس کے منظرناموں پر غور کریں](assignment.md) + +## کریڈٹس + +یہ سبق ♥️ کے ساتھ [Dmitry Soshnikov](http://soshnikov.com) کے ذریعے تحریر کیا گیا ہے۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/01-defining-data-science/assignment.md b/translations/ur/1-Introduction/01-defining-data-science/assignment.md new file mode 100644 index 00000000..15751c22 --- /dev/null +++ b/translations/ur/1-Introduction/01-defining-data-science/assignment.md @@ -0,0 +1,46 @@ + +# اسائنمنٹ: ڈیٹا سائنس کے منظرنامے + +اس پہلے اسائنمنٹ میں، ہم آپ سے درخواست کرتے ہیں کہ آپ مختلف مسئلہ کے شعبوں میں کسی حقیقی زندگی کے عمل یا مسئلے کے بارے میں سوچیں، اور ڈیٹا سائنس کے عمل کو استعمال کرتے ہوئے اسے کیسے بہتر بنایا جا سکتا ہے۔ درج ذیل پر غور کریں: + +1. کون سا ڈیٹا آپ جمع کر سکتے ہیں؟ +1. آپ اسے کیسے جمع کریں گے؟ +1. آپ ڈیٹا کو کیسے محفوظ کریں گے؟ ڈیٹا کا حجم کتنا بڑا ہو سکتا ہے؟ +1. آپ اس ڈیٹا سے کون سی بصیرت حاصل کر سکتے ہیں؟ کون سے فیصلے ہم اس ڈیٹا کی بنیاد پر لے سکتے ہیں؟ + +کوشش کریں کہ 3 مختلف مسائل/عملوں کے بارے میں سوچیں اور ہر مسئلہ کے شعبے کے لیے اوپر دیے گئے نکات کو بیان کریں۔ + +یہاں کچھ مسئلہ کے شعبے اور مسائل ہیں جو آپ کو سوچنے میں مدد دے سکتے ہیں: + +1. آپ ڈیٹا کو استعمال کرتے ہوئے اسکولوں میں بچوں کی تعلیم کے عمل کو کیسے بہتر بنا سکتے ہیں؟ +1. آپ ڈیٹا کو استعمال کرتے ہوئے وبا کے دوران ویکسینیشن کو کیسے کنٹرول کر سکتے ہیں؟ +1. آپ ڈیٹا کو استعمال کرتے ہوئے یہ کیسے یقینی بنا سکتے ہیں کہ آپ کام پر مؤثر ہیں؟ + +## ہدایات + +درج ذیل جدول کو مکمل کریں (اگر ضرورت ہو تو تجویز کردہ مسئلہ کے شعبوں کو اپنے شعبوں سے بدل دیں): + +| مسئلہ کا شعبہ | مسئلہ | کون سا ڈیٹا جمع کرنا ہے | ڈیٹا کو کیسے محفوظ کریں | کون سی بصیرت/فیصلے ہم لے سکتے ہیں | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| تعلیم | | | | | +| ویکسینیشن | | | | | +| مؤثریت | | | | | + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام مسئلہ کے شعبوں کے لیے معقول ڈیٹا کے ذرائع، ڈیٹا کو محفوظ کرنے کے طریقے اور ممکنہ فیصلے/بصیرت کی شناخت کی گئی ہے | حل کے کچھ پہلو تفصیل سے بیان نہیں کیے گئے، ڈیٹا کو محفوظ کرنے پر بات نہیں کی گئی، کم از کم 2 مسئلہ کے شعبے بیان کیے گئے ہیں | صرف ڈیٹا حل کے کچھ حصے بیان کیے گئے ہیں، صرف ایک مسئلہ کا شعبہ زیر غور آیا ہے۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی مقامی زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/01-defining-data-science/solution/assignment.md b/translations/ur/1-Introduction/01-defining-data-science/solution/assignment.md new file mode 100644 index 00000000..632f1842 --- /dev/null +++ b/translations/ur/1-Introduction/01-defining-data-science/solution/assignment.md @@ -0,0 +1,48 @@ + +# ڈیٹا سائنس کے منظرنامے: اسائنمنٹ + +اس پہلے اسائنمنٹ میں، ہم آپ سے درخواست کرتے ہیں کہ آپ مختلف مسئلہ کے شعبوں میں کسی حقیقی زندگی کے عمل یا مسئلے کے بارے میں سوچیں، اور یہ کہ آپ ڈیٹا سائنس کے عمل کو استعمال کرتے ہوئے اسے کیسے بہتر بنا سکتے ہیں۔ درج ذیل پر غور کریں: + +1. کون سا ڈیٹا آپ جمع کر سکتے ہیں؟ +1. آپ اسے کیسے جمع کریں گے؟ +1. آپ ڈیٹا کو کیسے محفوظ کریں گے؟ ڈیٹا کا حجم کتنا بڑا ہو سکتا ہے؟ +1. آپ اس ڈیٹا سے کون سی بصیرت حاصل کر سکتے ہیں؟ کون سے فیصلے ہم اس ڈیٹا کی بنیاد پر لے سکتے ہیں؟ + +کوشش کریں کہ تین مختلف مسائل/عملوں کے بارے میں سوچیں اور ہر مسئلہ کے شعبے کے لیے اوپر دیے گئے نکات کو بیان کریں۔ + +یہاں کچھ مسئلہ کے شعبے اور مسائل ہیں جو آپ کو سوچنے میں مدد دے سکتے ہیں: + +1. آپ ڈیٹا کو استعمال کرتے ہوئے اسکولوں میں بچوں کے تعلیمی عمل کو کیسے بہتر بنا سکتے ہیں؟ +1. آپ ڈیٹا کو استعمال کرتے ہوئے وبا کے دوران ویکسینیشن کو کیسے کنٹرول کر سکتے ہیں؟ +1. آپ ڈیٹا کو استعمال کرتے ہوئے یہ کیسے یقینی بنا سکتے ہیں کہ آپ کام پر مؤثر ہیں؟ + +## ہدایات + +درج ذیل جدول کو مکمل کریں (اگر ضرورت ہو تو تجویز کردہ مسئلہ کے شعبوں کو اپنے شعبوں سے تبدیل کریں): + +| مسئلہ کا شعبہ | مسئلہ | کون سا ڈیٹا جمع کرنا ہے | ڈیٹا کو کیسے محفوظ کریں | کون سی بصیرت/فیصلے ہم لے سکتے ہیں | +|----------------|---------|-----------------------|-----------------------|--------------------------------------| +| تعلیم | یونیورسٹی میں، عام طور پر لیکچرز میں حاضری کم ہوتی ہے، اور ہمارا مفروضہ ہے کہ جو طلباء لیکچرز میں شرکت کرتے ہیں وہ امتحانات میں بہتر کارکردگی دکھاتے ہیں۔ ہم حاضری کو بڑھانا چاہتے ہیں اور مفروضے کو جانچنا چاہتے ہیں۔ | ہم حاضری کو کلاس میں سیکیورٹی کیمرے کے ذریعے لی گئی تصاویر یا کلاس میں طلباء کے موبائل فونز کے بلوٹوتھ/وائی فائی ایڈریسز کو ٹریک کرکے جمع کر سکتے ہیں۔ امتحان کا ڈیٹا پہلے ہی یونیورسٹی کے ڈیٹا بیس میں موجود ہے۔ | اگر ہم سیکیورٹی کیمرے کی تصاویر کو ٹریک کریں - ہمیں کلاس کے دوران چند (5-10) تصاویر محفوظ کرنی ہوں گی (غیر ساختہ ڈیٹا)، اور پھر AI کا استعمال کرتے ہوئے طلباء کے چہروں کی شناخت کرنی ہوگی (ڈیٹا کو ساختہ شکل میں تبدیل کریں)۔ | ہم ہر طالب علم کے لیے اوسط حاضری کا ڈیٹا شمار کر سکتے ہیں، اور دیکھ سکتے ہیں کہ امتحان کے گریڈز کے ساتھ کوئی تعلق ہے یا نہیں۔ ہم تعلق کے بارے میں مزید بات کریں گے [احتمال اور شماریات](../../04-stats-and-probability/README.md) سیکشن میں۔ طلباء کی حاضری کو بڑھانے کے لیے، ہم اسکول پورٹل پر ہفتہ وار حاضری کی درجہ بندی شائع کر سکتے ہیں، اور سب سے زیادہ حاضری والے طلباء کے درمیان انعامات تقسیم کر سکتے ہیں۔ | +| ویکسینیشن | | | | | +| مؤثریت | | | | | + +> *ہم صرف ایک جواب فراہم کرتے ہیں تاکہ آپ کو اس اسائنمنٹ میں مطلوبہ توقعات کا اندازہ ہو سکے۔* + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام مسئلہ کے شعبوں کے لیے معقول ڈیٹا کے ذرائع، ڈیٹا کو محفوظ کرنے کے طریقے اور ممکنہ فیصلے/بصیرت کی شناخت کی گئی | حل کے کچھ پہلو تفصیل سے بیان نہیں کیے گئے، ڈیٹا کو محفوظ کرنے پر بات نہیں کی گئی، کم از کم 2 مسئلہ کے شعبے بیان کیے گئے | صرف ڈیٹا حل کے کچھ حصے بیان کیے گئے، صرف ایک مسئلہ کا شعبہ زیر غور آیا۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/02-ethics/README.md b/translations/ur/1-Introduction/02-ethics/README.md new file mode 100644 index 00000000..ffd0ccd4 --- /dev/null +++ b/translations/ur/1-Introduction/02-ethics/README.md @@ -0,0 +1,264 @@ + +# ڈیٹا اخلاقیات کا تعارف + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/02-Ethics.png)| +|:---:| +| ڈیٹا سائنس اخلاقیات - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +--- + +ہم سب ایک ایسے دنیا میں رہتے ہیں جو مکمل طور پر ڈیٹا پر مبنی ہو چکی ہے۔ + +مارکیٹ کے رجحانات بتاتے ہیں کہ 2022 تک، ہر تین میں سے ایک بڑی تنظیم اپنا ڈیٹا آن لائن [مارکیٹ پلیسز اور ایکسچینجز](https://www.gartner.com/smarterwithgartner/gartner-top-10-trends-in-data-and-analytics-for-2020/) کے ذریعے خریدے گی اور بیچے گی۔ بطور **ایپ ڈویلپرز**، ہمارے لیے ڈیٹا پر مبنی بصیرتوں اور الگورتھم پر مبنی خودکار نظاموں کو روزمرہ کے صارف تجربات میں شامل کرنا آسان اور سستا ہو جائے گا۔ لیکن جیسے جیسے AI عام ہوتا جا رہا ہے، ہمیں یہ بھی سمجھنا ہوگا کہ بڑے پیمانے پر ان الگورتھمز کے [ہتھیار بننے](https://www.youtube.com/watch?v=TQHs8SA1qpk) سے کیا ممکنہ نقصانات ہو سکتے ہیں۔ + +رجحانات یہ بھی ظاہر کرتے ہیں کہ ہم 2025 تک [180 زیٹابائٹس](https://www.statista.com/statistics/871513/worldwide-data-created/) سے زیادہ ڈیٹا تخلیق اور استعمال کریں گے۔ بطور **ڈیٹا سائنسدان**، یہ ہمیں ذاتی ڈیٹا تک بے مثال رسائی فراہم کرتا ہے۔ اس کا مطلب یہ ہے کہ ہم صارفین کے رویوں کے پروفائل بنا سکتے ہیں اور فیصلہ سازی پر اثر ڈال سکتے ہیں، جس سے ایک [آزاد انتخاب کا دھوکہ](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) پیدا ہو سکتا ہے، جبکہ ممکنہ طور پر صارفین کو ان نتائج کی طرف دھکیل سکتے ہیں جو ہم چاہتے ہیں۔ یہ ڈیٹا کی پرائیویسی اور صارف کے تحفظات پر وسیع تر سوالات بھی اٹھاتا ہے۔ + +ڈیٹا اخلاقیات اب ڈیٹا سائنس اور انجینئرنگ کے لیے _ضروری حفاظتی اصول_ بن چکے ہیں، جو ہمیں ڈیٹا پر مبنی اقدامات سے ممکنہ نقصانات اور غیر ارادی نتائج کو کم کرنے میں مدد دیتے ہیں۔ [گارٹنر ہائپ سائیکل برائے AI](https://www.gartner.com/smarterwithgartner/2-megatrends-dominate-the-gartner-hype-cycle-for-artificial-intelligence-2020/) ڈیجیٹل اخلاقیات، ذمہ دار AI، اور AI گورننس میں رجحانات کو بڑے میگا رجحانات کے کلیدی ڈرائیورز کے طور پر شناخت کرتا ہے، جیسے کہ AI کی _جمہوریت سازی_ اور _صنعت کاری_۔ + +![گارٹنر کا ہائپ سائیکل برائے AI - 2020](https://images-cdn.newscred.com/Zz1mOWJhNzlkNDA2ZTMxMWViYjRiOGFiM2IyMjQ1YmMwZQ==) + +اس سبق میں، ہم ڈیٹا اخلاقیات کے دلچسپ میدان کو دریافت کریں گے - بنیادی تصورات اور چیلنجز سے لے کر کیس اسٹڈیز اور عملی AI تصورات جیسے گورننس تک - جو ان ٹیموں اور تنظیموں میں اخلاقیات کی ثقافت قائم کرنے میں مدد دیتے ہیں جو ڈیٹا اور AI کے ساتھ کام کرتی ہیں۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/2) 🎯 + +## بنیادی تعریفیں + +آئیے بنیادی اصطلاحات کو سمجھنے سے شروع کرتے ہیں۔ + +"اخلاقیات" کا لفظ [یونانی لفظ "ethikos"](https://en.wikipedia.org/wiki/Ethics) (اور اس کی جڑ "ethos") سے آیا ہے، جس کا مطلب ہے _کردار یا اخلاقی فطرت_۔ + +**اخلاقیات** ان مشترکہ اقدار اور اخلاقی اصولوں کے بارے میں ہیں جو معاشرے میں ہمارے رویے کو کنٹرول کرتے ہیں۔ اخلاقیات قوانین پر مبنی نہیں ہیں بلکہ اس بات پر مبنی ہیں کہ "صحیح اور غلط" کے بارے میں کیا وسیع پیمانے پر قبول کیا جاتا ہے۔ تاہم، اخلاقی غور و فکر کارپوریٹ گورننس کے اقدامات اور حکومتی ضوابط کو متاثر کر سکتے ہیں جو تعمیل کے لیے مزید ترغیبات پیدا کرتے ہیں۔ + +**ڈیٹا اخلاقیات** اخلاقیات کی ایک [نئی شاخ](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2016.0360#sec-1) ہے جو "_ڈیٹا، الگورتھمز اور متعلقہ طریقوں_" سے متعلق اخلاقی مسائل کا مطالعہ اور جائزہ لیتی ہے۔ یہاں، **"ڈیٹا"** ان اعمال پر مرکوز ہے جو تخلیق، ریکارڈنگ، کیوریشن، پروسیسنگ، تقسیم، اشتراک، اور استعمال سے متعلق ہیں، **"الگورتھمز"** AI، ایجنٹس، مشین لرننگ، اور روبوٹس پر مرکوز ہیں، اور **"طریقے"** ذمہ دارانہ جدت، پروگرامنگ، ہیکنگ، اور اخلاقیات کے ضابطوں جیسے موضوعات پر مرکوز ہیں۔ + +**عملی اخلاقیات** اخلاقی غور و فکر کے [عملی اطلاق](https://en.wikipedia.org/wiki/Applied_ethics) کا نام ہے۔ یہ _حقیقی دنیا کے اعمال، مصنوعات، اور عمل_ کے سیاق و سباق میں اخلاقی مسائل کی فعال طور پر تحقیق کرنے اور ان کو درست کرنے کے اقدامات کرنے کا عمل ہے تاکہ یہ یقینی بنایا جا سکے کہ یہ ہمارے بیان کردہ اخلاقی اقدار کے مطابق رہیں۔ + +**اخلاقیات کی ثقافت** [_عملی اخلاقیات کو عملی جامہ پہنانے_](https://hbr.org/2019/05/how-to-design-an-ethical-organization) کے بارے میں ہے تاکہ یہ یقینی بنایا جا سکے کہ ہمارے اخلاقی اصول اور طریقے پوری تنظیم میں مستقل اور قابل پیمائش انداز میں اپنائے جائیں۔ کامیاب اخلاقی ثقافتیں تنظیمی سطح پر اخلاقی اصولوں کی وضاحت کرتی ہیں، تعمیل کے لیے بامعنی ترغیبات فراہم کرتی ہیں، اور ہر سطح پر مطلوبہ رویوں کو فروغ دے کر اخلاقی اصولوں کو تقویت دیتی ہیں۔ + +## اخلاقیات کے تصورات + +اس حصے میں، ہم **مشترکہ اقدار** (اصول) اور **اخلاقی چیلنجز** (مسائل) جیسے تصورات پر بات کریں گے اور **کیس اسٹڈیز** کا جائزہ لیں گے جو آپ کو حقیقی دنیا کے سیاق و سباق میں ان تصورات کو سمجھنے میں مدد دیتے ہیں۔ + +### 1. اخلاقی اصول + +ہر ڈیٹا اخلاقیات کی حکمت عملی _اخلاقی اصولوں_ کی وضاحت سے شروع ہوتی ہے - وہ "مشترکہ اقدار" جو قابل قبول رویوں کو بیان کرتی ہیں اور ہمارے ڈیٹا اور AI منصوبوں میں تعمیل کے اقدامات کی رہنمائی کرتی ہیں۔ آپ ان کی وضاحت انفرادی یا ٹیم کی سطح پر کر سکتے ہیں۔ تاہم، زیادہ تر بڑی تنظیمیں ان کی وضاحت ایک _اخلاقی AI_ مشن بیان یا فریم ورک میں کرتی ہیں جو کارپوریٹ سطح پر بیان کیا جاتا ہے اور تمام ٹیموں میں مستقل طور پر نافذ کیا جاتا ہے۔ + +**مثال:** مائیکروسافٹ کا [ذمہ دار AI](https://www.microsoft.com/en-us/ai/responsible-ai) مشن بیان کہتا ہے: _"ہم AI کی ترقی کے لیے پرعزم ہیں جو اخلاقی اصولوں کے ذریعے لوگوں کو اولین ترجیح دیتا ہے"_ - جو نیچے دیے گئے فریم ورک میں 6 اخلاقی اصولوں کی نشاندہی کرتا ہے: + +![مائیکروسافٹ میں ذمہ دار AI](https://docs.microsoft.com/en-gb/azure/cognitive-services/personalizer/media/ethics-and-responsible-use/ai-values-future-computed.png) + +آئیے ان اصولوں کا مختصر جائزہ لیں۔ _شفافیت_ اور _جوابدہی_ بنیادی اقدار ہیں جن پر دیگر اصول تعمیر کیے گئے ہیں - تو آئیے یہاں سے شروع کرتے ہیں: + +* [**جوابدہی**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) پریکٹیشنرز کو ان کے ڈیٹا اور AI آپریشنز اور ان اخلاقی اصولوں کی تعمیل کے لیے _ذمہ دار_ بناتی ہے۔ +* [**شفافیت**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) اس بات کو یقینی بناتی ہے کہ ڈیٹا اور AI کے اقدامات صارفین کے لیے _سمجھے جانے کے قابل_ ہوں، فیصلوں کے پیچھے کیا اور کیوں کی وضاحت کرتے ہوئے۔ +* [**منصفانہ رویہ**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) - اس بات پر مرکوز ہے کہ AI تمام لوگوں کے ساتھ _منصفانہ_ سلوک کرے، ڈیٹا اور نظام میں کسی بھی نظامی یا مضمر سماجی-تکنیکی تعصبات کو حل کرے۔ +* [**قابل اعتماد اور حفاظت**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - اس بات کو یقینی بناتی ہے کہ AI _مستقل طور پر_ بیان کردہ اقدار کے مطابق برتاؤ کرے، ممکنہ نقصانات یا غیر ارادی نتائج کو کم کرے۔ +* [**پرائیویسی اور سیکیورٹی**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - ڈیٹا کے ماخذ کو سمجھنے اور صارفین کو _ڈیٹا پرائیویسی اور متعلقہ تحفظات_ فراہم کرنے کے بارے میں ہے۔ +* [**شمولیت**](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1:primaryr6) - AI حل کو ارادے کے ساتھ ڈیزائن کرنے کے بارے میں ہے، انہیں _وسیع انسانی ضروریات_ اور صلاحیتوں کو پورا کرنے کے لیے ڈھالنا۔ + +> 🚨 سوچیں کہ آپ کا ڈیٹا اخلاقیات کا مشن بیان کیا ہو سکتا ہے۔ دیگر تنظیموں کے اخلاقی AI فریم ورک کو دریافت کریں - یہاں [IBM](https://www.ibm.com/cloud/learn/ai-ethics)، [Google](https://ai.google/principles)، اور [Facebook](https://ai.facebook.com/blog/facebooks-five-pillars-of-responsible-ai/) کی مثالیں ہیں۔ ان میں کون سی مشترکہ اقدار ہیں؟ یہ اصول ان کے AI پروڈکٹ یا صنعت سے کیسے متعلق ہیں؟ + +### 2. اخلاقی چیلنجز + +جب ہم اخلاقی اصولوں کی وضاحت کر لیتے ہیں، تو اگلا قدم یہ ہے کہ ہم اپنے ڈیٹا اور AI کے اقدامات کا جائزہ لیں تاکہ یہ دیکھا جا سکے کہ آیا وہ ان مشترکہ اقدار کے مطابق ہیں۔ اپنے اقدامات کو دو زمروں میں سوچیں: _ڈیٹا اکٹھا کرنا_ اور _الگورتھم ڈیزائن_۔ + +ڈیٹا اکٹھا کرنے کے ساتھ، اقدامات ممکنہ طور پر **ذاتی ڈیٹا** یا ذاتی طور پر قابل شناخت معلومات (PII) پر مشتمل ہوں گے جو زندہ افراد کی شناخت کر سکتی ہیں۔ اس میں [غیر ذاتی ڈیٹا کی مختلف اشیاء](https://ec.europa.eu/info/law/law-topic/data-protection/reform/what-personal-data_en) شامل ہیں جو _اجتماعی طور پر_ کسی فرد کی شناخت کرتی ہیں۔ اخلاقی چیلنجز _ڈیٹا پرائیویسی_، _ڈیٹا کی ملکیت_، اور متعلقہ موضوعات جیسے _مطلع رضامندی_ اور صارفین کے لیے _دانشورانہ املاک کے حقوق_ سے متعلق ہو سکتے ہیں۔ + +الگورتھم ڈیزائن کے ساتھ، اقدامات میں **ڈیٹاسیٹس** کو جمع کرنا اور ترتیب دینا شامل ہوگا، پھر ان کا استعمال کرتے ہوئے **ڈیٹا ماڈلز** کو تربیت دینا اور تعینات کرنا جو حقیقی دنیا کے سیاق و سباق میں نتائج کی پیش گوئی کرتے ہیں یا فیصلے خودکار بناتے ہیں۔ اخلاقی چیلنجز _ڈیٹاسیٹ کے تعصب_، _ڈیٹا کے معیار_ کے مسائل، _غیر منصفانہ رویہ_، اور الگورتھمز میں _غلط بیانی_ سے پیدا ہو سکتے ہیں - بشمول کچھ مسائل جو نظامی نوعیت کے ہیں۔ + +دونوں صورتوں میں، اخلاقی چیلنجز ان علاقوں کو اجاگر کرتے ہیں جہاں ہمارے اقدامات ہمارے مشترکہ اقدار کے ساتھ تنازعہ پیدا کر سکتے ہیں۔ ان خدشات کا پتہ لگانے، ان کو کم کرنے، کم سے کم کرنے، یا ختم کرنے کے لیے - ہمیں اپنے اقدامات سے متعلق اخلاقی "ہاں/نہیں" سوالات پوچھنے کی ضرورت ہے، پھر ضرورت کے مطابق اصلاحی اقدامات کریں۔ آئیے کچھ اخلاقی چیلنجز اور ان کے اٹھائے گئے اخلاقی سوالات پر نظر ڈالیں: + +#### 2.1 ڈیٹا کی ملکیت + +ڈیٹا اکٹھا کرنا اکثر ذاتی ڈیٹا پر مشتمل ہوتا ہے جو ڈیٹا کے موضوعات کی شناخت کر سکتا ہے۔ [ڈیٹا کی ملکیت](https://permission.io/blog/data-ownership) ڈیٹا کی تخلیق، پروسیسنگ، اور تقسیم سے متعلق _کنٹرول_ اور [_صارف کے حقوق_](https://permission.io/blog/data-ownership) کے بارے میں ہے۔ + +ہمیں جو اخلاقی سوالات پوچھنے کی ضرورت ہے: +* ڈیٹا کا مالک کون ہے؟ (صارف یا تنظیم) +* ڈیٹا کے موضوعات کے کیا حقوق ہیں؟ (مثلاً: رسائی، حذف، پورٹیبلٹی) +* تنظیم کے کیا حقوق ہیں؟ (مثلاً: بدنیتی پر مبنی صارف کے جائزوں کو درست کرنا) + +#### 2.2 مطلع رضامندی + +[مطلع رضامندی](https://legaldictionary.net/informed-consent/) اس عمل کی وضاحت کرتی ہے جس میں صارفین کسی عمل (جیسے ڈیٹا اکٹھا کرنا) پر _مکمل معلومات_ کے ساتھ رضامندی دیتے ہیں، بشمول مقصد، ممکنہ خطرات، اور متبادلات۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا صارف (ڈیٹا کا موضوع) نے ڈیٹا کیپچر اور استعمال کی اجازت دی؟ +* کیا صارف نے سمجھا کہ یہ ڈیٹا کس مقصد کے لیے اکٹھا کیا گیا؟ +* کیا صارف نے اپنی شرکت سے ممکنہ خطرات کو سمجھا؟ + +#### 2.3 دانشورانہ املاک + +[دانشورانہ املاک](https://en.wikipedia.org/wiki/Intellectual_property) انسانی پہل سے پیدا ہونے والی غیر مادی تخلیقات کو کہتے ہیں، جو افراد یا کاروبار کے لیے _معاشی قدر_ رکھ سکتی ہیں۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا جمع کیا گیا ڈیٹا صارف یا کاروبار کے لیے معاشی قدر رکھتا ہے؟ +* کیا یہاں **صارف** کی دانشورانہ املاک موجود ہے؟ +* کیا یہاں **تنظیم** کی دانشورانہ املاک موجود ہے؟ +* اگر یہ حقوق موجود ہیں، تو ہم انہیں کیسے محفوظ کر رہے ہیں؟ + +#### 2.4 ڈیٹا پرائیویسی + +[ڈیٹا پرائیویسی](https://www.northeastern.edu/graduate/blog/what-is-data-privacy/) یا معلومات کی پرائیویسی صارف کی شناخت کے تحفظ اور ذاتی طور پر قابل شناخت معلومات کے تحفظ سے متعلق ہے۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا صارفین کا (ذاتی) ڈیٹا ہیکس اور لیکس سے محفوظ ہے؟ +* کیا صارفین کا ڈیٹا صرف مجاز صارفین اور سیاق و سباق تک رسائی رکھتا ہے؟ +* کیا صارفین کی گمنامی کو ڈیٹا کے اشتراک یا تقسیم کے وقت محفوظ رکھا گیا؟ +* کیا صارف کو گمنام ڈیٹاسیٹس سے دوبارہ شناخت کیا جا سکتا ہے؟ + +#### 2.5 بھول جانے کا حق + +[بھول جانے کا حق](https://en.wikipedia.org/wiki/Right_to_be_forgotten) یا [حذف کا حق](https://www.gdpreu.org/right-to-be-forgotten/) صارفین کو اضافی ذاتی ڈیٹا کے تحفظ فراہم کرتا ہے۔ خاص طور پر، یہ صارفین کو انٹرنیٹ تلاشوں اور دیگر مقامات سے ذاتی ڈیٹا کو حذف کرنے یا ہٹانے کی درخواست کرنے کا حق دیتا ہے، _مخصوص حالات کے تحت_ - انہیں آن لائن ایک نیا آغاز کرنے کی اجازت دیتا ہے بغیر ماضی کے اعمال کے ان کے خلاف استعمال ہونے کے۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا نظام ڈیٹا کے موضوعات کو حذف کی درخواست کرنے کی اجازت دیتا ہے؟ +* کیا صارف کی رضامندی کی واپسی خودکار حذف کو متحرک کرنی چاہیے؟ +* کیا ڈیٹا بغیر رضامندی یا غیر قانونی ذرائع سے اکٹھا کیا گیا؟ +* کیا ہم ڈیٹا پرائیویسی کے لیے حکومتی ضوابط کے مطابق ہیں؟ + +#### 2.6 ڈیٹاسیٹ کا تعصب + +ڈیٹاسیٹ یا [اکٹھا کرنے کا تعصب](http://researcharticles.com/index.php/bias-in-data-collection-in-research/) غیر نمائندہ ڈیٹا کے ذیلی سیٹ کو الگورتھم کی ترقی کے لیے منتخب کرنے کے بارے میں ہے، جو مختلف گروہوں کے لیے ممکنہ طور پر غیر منصفانہ نتائج پیدا کرتا ہے۔ تعصب کی اقسام میں انتخاب یا سیمپلنگ کا تعصب، رضاکارانہ تعصب، اور آلے کا تعصب شامل ہیں۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا ہم نے ڈیٹا کے موضوعات کا نمائندہ سیٹ بھرتی کیا؟ +* کیا ہم نے اپنے جمع کیے گئے یا ترتیب دیے گئے ڈیٹاسیٹ کو مختلف تعصبات کے لیے جانچا؟ +* کیا ہم دریافت شدہ تعصبات کو کم یا ختم کر سکتے ہیں؟ + +#### 2.7 ڈیٹا کا معیار + +[ڈیٹا کا معیار](https://lakefs.io/data-quality-testing/) اس ترتیب دیے گئے ڈیٹاسیٹ کی درستگی کو دیکھتا ہے جو ہمارے الگورتھمز کو تیار کرنے کے لیے استعمال کیا جاتا ہے، یہ چیک کرتے ہوئے کہ آیا خصوصیات اور ریکارڈز ہمارے AI مقصد کے لیے درکار درستگی اور مستقل مزاجی کی سطح کو پورا کرتے ہیں۔ + +یہاں دریافت کرنے کے لیے سوالات: +* کیا ہم نے اپنے استعمال کے کیس کے لیے درست _خصوصیات_ کو قید کیا؟ +* کیا مختلف ڈیٹا ذرائع کے درمیان ڈیٹا کو _مستقل طور پر_ قید کیا گیا؟ +* کیا +[الگورتھم کی منصفانہ جانچ](https://towardsdatascience.com/what-is-algorithm-fairness-3182e161cf9f) یہ دیکھتی ہے کہ آیا الگورتھم کا ڈیزائن مخصوص گروہوں کے خلاف منظم طور پر امتیاز کرتا ہے، جس کے نتیجے میں _وسائل کی تقسیم_ (جہاں وسائل کو اس گروہ سے انکار یا روکا جاتا ہے) اور _سروس کے معیار_ (جہاں AI کچھ گروہوں کے لیے اتنا درست نہیں جتنا دوسروں کے لیے ہے) میں [ممکنہ نقصان](https://docs.microsoft.com/en-us/azure/machine-learning/concept-fairness-ml) ہوتا ہے۔ + +یہاں غور کرنے کے سوالات: +* کیا ہم نے مختلف گروہوں اور حالات کے لیے ماڈل کی درستگی کا جائزہ لیا؟ +* کیا ہم نے ممکنہ نقصانات (جیسے دقیانوسی تصورات) کے لیے نظام کا بغور جائزہ لیا؟ +* کیا ہم ڈیٹا کو دوبارہ ترتیب دے سکتے ہیں یا ماڈلز کو دوبارہ تربیت دے سکتے ہیں تاکہ شناخت شدہ نقصانات کو کم کیا جا سکے؟ + +مزید جاننے کے لیے [AI Fairness چیک لسٹس](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4t6dA) جیسے وسائل کا جائزہ لیں۔ + +#### 2.9 غلط بیانی + +[ڈیٹا کی غلط بیانی](https://www.sciencedirect.com/topics/computer-science/misrepresentation) یہ سوال اٹھاتی ہے کہ آیا ہم دیانتداری سے رپورٹ کیے گئے ڈیٹا سے حاصل کردہ بصیرت کو دھوکہ دہی کے انداز میں پیش کر رہے ہیں تاکہ مطلوبہ بیانیہ کی حمایت کی جا سکے۔ + +یہاں غور کرنے کے سوالات: +* کیا ہم نامکمل یا غلط ڈیٹا رپورٹ کر رہے ہیں؟ +* کیا ہم ڈیٹا کو اس طرح سے بصری بنا رہے ہیں جو گمراہ کن نتائج کو جنم دیتا ہے؟ +* کیا ہم نتائج کو جوڑنے کے لیے منتخب شماریاتی تکنیک استعمال کر رہے ہیں؟ +* کیا متبادل وضاحتیں موجود ہیں جو مختلف نتیجہ پیش کر سکتی ہیں؟ + +#### 2.10 آزاد انتخاب +[آزاد انتخاب کا دھوکہ](https://www.datasciencecentral.com/profiles/blogs/the-illusion-of-choice) اس وقت ہوتا ہے جب نظام کے "انتخابی ڈھانچے" فیصلہ سازی کے الگورتھمز کا استعمال کرتے ہوئے لوگوں کو ایک ترجیحی نتیجہ کی طرف دھکیلتے ہیں، جبکہ انہیں اختیارات اور کنٹرول دینے کا تاثر دیتے ہیں۔ یہ [تاریک نمونے](https://www.darkpatterns.org/) صارفین کو سماجی اور اقتصادی نقصان پہنچا سکتے ہیں۔ چونکہ صارف کے فیصلے رویے کے پروفائلز پر اثر انداز ہوتے ہیں، یہ اقدامات ممکنہ طور پر مستقبل کے انتخاب کو بڑھا سکتے ہیں یا ان نقصانات کے اثرات کو بڑھا سکتے ہیں۔ + +یہاں غور کرنے کے سوالات: +* کیا صارف نے اس انتخاب کے اثرات کو سمجھا؟ +* کیا صارف کو (متبادل) انتخاب اور ہر ایک کے فوائد و نقصانات کا علم تھا؟ +* کیا صارف بعد میں خودکار یا متاثرہ انتخاب کو واپس لے سکتا ہے؟ + +### 3. کیس اسٹڈیز + +ان اخلاقی چیلنجز کو حقیقی دنیا کے سیاق و سباق میں رکھنے کے لیے، ایسے کیس اسٹڈیز کو دیکھنا مددگار ثابت ہوتا ہے جو ان اخلاقی خلاف ورزیوں کو نظر انداز کرنے پر افراد اور معاشرے کو ممکنہ نقصانات اور نتائج کو اجاگر کرتے ہیں۔ + +یہاں کچھ مثالیں ہیں: + +| اخلاقی چیلنج | کیس اسٹڈی | +|--- |--- | +| **مطلع رضامندی** | 1972 - [ٹسکیگی سیفلس اسٹڈی](https://en.wikipedia.org/wiki/Tuskegee_Syphilis_Study) - افریقی امریکی مردوں کو جو اس مطالعے میں شامل تھے، مفت طبی دیکھ بھال کا وعدہ کیا گیا تھا _لیکن دھوکہ دیا گیا_ کیونکہ محققین نے شرکاء کو ان کی تشخیص یا علاج کی دستیابی کے بارے میں مطلع کرنے میں ناکام رہے۔ کئی شرکاء فوت ہو گئے اور ان کے شریک حیات یا بچے متاثر ہوئے؛ مطالعہ 40 سال تک جاری رہا۔ | +| **ڈیٹا کی پرائیویسی** | 2007 - [نیٹ فلکس ڈیٹا انعام](https://www.wired.com/2007/12/why-anonymous-data-sometimes-isnt/) نے محققین کو _50K صارفین کے 10M گمنام فلمی درجہ بندی_ فراہم کی تاکہ سفارش الگورتھمز کو بہتر بنایا جا سکے۔ تاہم، محققین گمنام ڈیٹا کو _بیرونی ڈیٹاسیٹس_ (جیسے IMDb تبصرے) میں ذاتی طور پر شناختی ڈیٹا کے ساتھ جوڑنے میں کامیاب رہے - مؤثر طریقے سے کچھ نیٹ فلکس صارفین کو "ڈی-گمنام" کر دیا۔| +| **مجموعہ تعصب** | 2013 - بوسٹن شہر نے [اسٹریٹ بمپ](https://www.boston.gov/transportation/street-bump) تیار کیا، ایک ایپ جو شہریوں کو گڑھے رپورٹ کرنے دیتی ہے، جس سے شہر کو بہتر سڑک کے ڈیٹا حاصل کرنے میں مدد ملی۔ تاہم، [کم آمدنی والے گروہوں کے لوگوں کو کاروں اور فونز تک کم رسائی حاصل تھی](https://hbr.org/2013/04/the-hidden-biases-in-big-data)، جس سے ان کے سڑک کے مسائل اس ایپ میں پوشیدہ ہو گئے۔ ڈویلپرز نے منصفانہ رسائی اور ڈیجیٹل تقسیم کے مسائل کے لیے ماہرین کے ساتھ کام کیا۔ | +| **الگورتھم کی منصفانہ جانچ** | 2018 - MIT [جینڈر شیڈز اسٹڈی](http://gendershades.org/overview.html) نے صنفی درجہ بندی AI مصنوعات کی درستگی کا جائزہ لیا، خواتین اور رنگین افراد کے لیے درستگی میں فرق کو ظاہر کیا۔ ایک [2019 ایپل کارڈ](https://www.wired.com/story/the-apple-card-didnt-see-genderand-thats-the-problem/) نے مردوں کے مقابلے میں خواتین کو کم کریڈٹ پیش کیا۔ دونوں نے الگورتھم کے تعصب میں مسائل کو اجاگر کیا جو سماجی و اقتصادی نقصانات کا باعث بنتے ہیں۔| +| **ڈیٹا کی غلط بیانی** | 2020 - [جارجیا ڈیپارٹمنٹ آف پبلک ہیلتھ نے COVID-19 چارٹس جاری کیے](https://www.vox.com/covid-19-coronavirus-us-response-trump/2020/5/18/21262265/georgia-covid-19-cases-declining-reopening) جو شہریوں کو تصدیق شدہ کیسز کے رجحانات کے بارے میں گمراہ کرنے کے لیے x-axis پر غیر زمانی ترتیب کا استعمال کرتے ہوئے نظر آئے۔ یہ بصری چالوں کے ذریعے غلط بیانی کو ظاہر کرتا ہے۔ | +| **آزاد انتخاب کا دھوکہ** | 2020 - لرننگ ایپ [ABCmouse نے FTC شکایت کو حل کرنے کے لیے $10M ادا کیے](https://www.washingtonpost.com/business/2020/09/04/abcmouse-10-million-ftc-settlement/) جہاں والدین کو سبسکرپشنز کے لیے ادائیگی کرنے پر مجبور کیا گیا جسے وہ منسوخ نہیں کر سکتے تھے۔ یہ انتخابی ڈھانچوں میں تاریک نمونوں کو ظاہر کرتا ہے، جہاں صارفین کو ممکنہ طور پر نقصان دہ انتخاب کی طرف دھکیل دیا گیا۔ | +| **ڈیٹا کی پرائیویسی اور صارف کے حقوق** | 2021 - فیس بک [ڈیٹا لیک](https://www.npr.org/2021/04/09/986005820/after-data-breach-exposes-530-million-facebook-says-it-will-not-notify-users) نے 530M صارفین کا ڈیٹا افشا کیا، جس کے نتیجے میں FTC کو $5B کی ادائیگی ہوئی۔ تاہم، اس نے صارفین کو لیک کے بارے میں مطلع کرنے سے انکار کر دیا، صارف کے ڈیٹا کی شفافیت اور رسائی کے حقوق کی خلاف ورزی کی۔ | + +مزید کیس اسٹڈیز دریافت کرنا چاہتے ہیں؟ ان وسائل کو دیکھیں: +* [Ethics Unwrapped](https://ethicsunwrapped.utexas.edu/case-studies) - مختلف صنعتوں میں اخلاقی مسائل۔ +* [ڈیٹا سائنس اخلاقیات کورس](https://www.coursera.org/learn/data-science-ethics#syllabus) - اہم کیس اسٹڈیز کا جائزہ۔ +* [جہاں چیزیں غلط ہوئیں](https://deon.drivendata.org/examples/) - ڈیون چیک لسٹ کے ساتھ مثالیں۔ + +> 🚨 ان کیس اسٹڈیز کے بارے میں سوچیں جو آپ نے دیکھے ہیں - کیا آپ نے اپنی زندگی میں اسی طرح کے اخلاقی چیلنج کا سامنا کیا ہے یا متاثر ہوئے ہیں؟ کیا آپ کم از کم ایک اور کیس اسٹڈی کے بارے میں سوچ سکتے ہیں جو اس سیکشن میں زیر بحث اخلاقی چیلنجز میں سے ایک کو ظاہر کرتا ہو؟ + +## اطلاقی اخلاقیات + +ہم نے اخلاقیات کے تصورات، چیلنجز، اور حقیقی دنیا کے سیاق و سباق میں کیس اسٹڈیز پر بات کی۔ لیکن ہم اپنے منصوبوں میں اخلاقی اصولوں اور طریقوں کو _لاگو_ کرنے کا آغاز کیسے کریں؟ اور ہم بہتر حکمرانی کے لیے ان طریقوں کو _عملی شکل_ کیسے دے سکتے ہیں؟ آئیے کچھ حقیقی دنیا کے حل دریافت کریں: + +### 1. پیشہ ورانہ ضابطے + +پیشہ ورانہ ضابطے تنظیموں کو اپنے اخلاقی اصولوں اور مشن بیان کی حمایت کرنے کے لیے اراکین کو "حوصلہ افزائی" کرنے کا ایک آپشن پیش کرتے ہیں۔ ضابطے پیشہ ورانہ رویے کے لیے _اخلاقی رہنما خطوط_ ہیں، جو ملازمین یا اراکین کو ایسے فیصلے کرنے میں مدد دیتے ہیں جو ان کی تنظیم کے اصولوں کے مطابق ہوں۔ یہ صرف اراکین کی رضاکارانہ تعمیل کے طور پر اچھے ہیں؛ تاہم، بہت سی تنظیمیں اراکین کی تعمیل کو متحرک کرنے کے لیے اضافی انعامات اور سزائیں پیش کرتی ہیں۔ + +مثالیں شامل ہیں: + +* [آکسفورڈ میونخ](http://www.code-of-ethics.org/code-of-conduct/) اخلاقیات کا ضابطہ +* [ڈیٹا سائنس ایسوسی ایشن](http://datascienceassn.org/code-of-conduct.html) ضابطہ اخلاق (2013 میں تخلیق کیا گیا) +* [ACM ضابطہ اخلاق اور پیشہ ورانہ طرز عمل](https://www.acm.org/code-of-ethics) (1993 سے) + +> 🚨 کیا آپ کسی پیشہ ور انجینئرنگ یا ڈیٹا سائنس تنظیم کے رکن ہیں؟ ان کی ویب سائٹ کو دیکھیں کہ آیا وہ پیشہ ورانہ اخلاقیات کا ضابطہ بیان کرتے ہیں۔ یہ ان کے اخلاقی اصولوں کے بارے میں کیا کہتا ہے؟ وہ اراکین کو ضابطے پر عمل کرنے کے لیے کیسے "حوصلہ افزائی" کر رہے ہیں؟ + +### 2. اخلاقیات چیک لسٹس + +جبکہ پیشہ ورانہ ضابطے پریکٹیشنرز سے مطلوبہ _اخلاقی رویے_ کی وضاحت کرتے ہیں، ان کے نفاذ میں [معلوم حدود](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md) ہیں، خاص طور پر بڑے پیمانے پر منصوبوں میں۔ اس کے بجائے، بہت سے ڈیٹا سائنس ماہرین [چیک لسٹس کی وکالت کرتے ہیں](https://resources.oreilly.com/examples/0636920203964/blob/master/of_oaths_and_checklists.md)، جو **اصولوں کو عملی طریقوں سے جوڑ سکتے ہیں**۔ + +چیک لسٹس سوالات کو "ہاں/نہیں" کاموں میں تبدیل کرتی ہیں جنہیں عملی شکل دی جا سکتی ہے، جس سے انہیں معیاری پروڈکٹ ریلیز ورک فلو کے حصے کے طور پر ٹریک کیا جا سکتا ہے۔ + +مثالیں شامل ہیں: +* [ڈیون](https://deon.drivendata.org/) - صنعت کی سفارشات سے تخلیق کردہ ایک عمومی مقصد ڈیٹا اخلاقیات چیک لسٹ [کمانڈ لائن ٹول](https://deon.drivendata.org/#checklist-citations) کے ساتھ آسان انضمام کے لیے۔ +* [پرائیویسی آڈٹ چیک لسٹ](https://cyber.harvard.edu/ecommerce/privacyaudit.html) - قانونی اور سماجی نمائش کے نقطہ نظر سے معلوماتی ہینڈلنگ کے طریقوں کے لیے عمومی رہنمائی فراہم کرتی ہے۔ +* [AI منصفانہ چیک لسٹ](https://www.microsoft.com/en-us/research/project/ai-fairness-checklist/) - AI پریکٹیشنرز کے ذریعہ تخلیق کردہ، AI ترقیاتی سائیکلوں میں منصفانہ چیکوں کو اپنانے اور انضمام کی حمایت کے لیے۔ +* [ڈیٹا اور AI میں اخلاقیات کے لیے 22 سوالات](https://medium.com/the-organization/22-questions-for-ethics-in-data-and-ai-efb68fd19429) - زیادہ کھلے ڈھانچے کا فریم ورک، ڈیزائن، نفاذ، اور تنظیمی سیاق و سباق میں اخلاقی مسائل کی ابتدائی تلاش کے لیے۔ + +### 3. اخلاقیات کے ضوابط + +اخلاقیات مشترکہ اقدار کی وضاحت کرنے اور _رضاکارانہ طور پر_ صحیح کام کرنے کے بارے میں ہیں۔ **تعمیل** اس بارے میں ہے کہ _قانون کی پیروی کرنا_ اگر اور جہاں بیان کیا گیا ہو۔ **حکمرانی** وسیع پیمانے پر ان تمام طریقوں کا احاطہ کرتی ہے جن کے ذریعے تنظیمیں اخلاقی اصولوں کو نافذ کرنے اور قائم کردہ قوانین کی تعمیل کرنے کے لیے کام کرتی ہیں۔ + +آج، حکمرانی تنظیموں کے اندر دو شکلیں اختیار کرتی ہے۔ پہلے، یہ **اخلاقی AI** اصولوں کی وضاحت کرنے اور تنظیم میں تمام AI سے متعلق منصوبوں میں اپنانے کو عملی شکل دینے کے طریقوں کو قائم کرنے کے بارے میں ہے۔ دوسرا، یہ ان تمام حکومت کی طرف سے لازمی **ڈیٹا تحفظ کے ضوابط** کی تعمیل کے بارے میں ہے جن علاقوں میں یہ کام کرتی ہے۔ + +ڈیٹا تحفظ اور پرائیویسی ضوابط کی مثالیں: + +* `1974`, [امریکی پرائیویسی ایکٹ](https://www.justice.gov/opcl/privacy-act-1974) - _وفاقی حکومت_ کے ذاتی معلومات کے جمع کرنے، استعمال، اور انکشاف کو منظم کرتا ہے۔ +* `1996`, [امریکی ہیلتھ انشورنس پورٹیبلٹی اور احتساب ایکٹ (HIPAA)](https://www.cdc.gov/phlp/publications/topic/hipaa.html) - ذاتی صحت کے ڈیٹا کی حفاظت کرتا ہے۔ +* `1998`, [امریکی بچوں کا آن لائن پرائیویسی تحفظ ایکٹ (COPPA)](https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-reform-proceedings/childrens-online-privacy-protection-rule) - 13 سال سے کم عمر بچوں کے ڈیٹا کی پرائیویسی کی حفاظت کرتا ہے۔ +* `2018`, [جنرل ڈیٹا پروٹیکشن ریگولیشن (GDPR)](https://gdpr-info.eu/) - صارف کے حقوق، ڈیٹا تحفظ، اور پرائیویسی فراہم کرتا ہے۔ +* `2018`, [کیلیفورنیا کنزیومر پرائیویسی ایکٹ (CCPA)](https://www.oag.ca.gov/privacy/ccpa) صارفین کو ان کے (ذاتی) ڈیٹا پر زیادہ _حقوق_ دیتا ہے۔ +* `2021`, چین کا [ذاتی معلومات کا تحفظ قانون](https://www.reuters.com/world/china/china-passes-new-personal-data-privacy-law-take-effect-nov-1-2021-08-20/) ابھی پاس ہوا، دنیا میں آن لائن ڈیٹا پرائیویسی کے سب سے مضبوط ضوابط میں سے ایک تخلیق کرتا ہے۔ + +> 🚨 یورپی یونین کی طرف سے بیان کردہ GDPR (جنرل ڈیٹا پروٹیکشن ریگولیشن) آج ڈیٹا پرائیویسی کے سب سے زیادہ اثر انگیز ضوابط میں سے ایک ہے۔ کیا آپ جانتے ہیں کہ یہ [8 صارف کے حقوق](https://www.freeprivacypolicy.com/blog/8-user-rights-gdpr) بھی بیان کرتا ہے تاکہ شہریوں کی ڈیجیٹل پرائیویسی اور ذاتی ڈیٹا کی حفاظت کی جا سکے؟ ان کے بارے میں جانیں کہ یہ کیا ہیں اور کیوں اہم ہیں۔ + +### 4. اخلاقیات کی ثقافت + +نوٹ کریں کہ _تعمیل_ (قانون کے "حرف" کو پورا کرنے کے لیے کافی کرنا) اور [نظامی مسائل](https://www.coursera.org/learn/data-science-ethics/home/week/4) (جیسے جمود، معلوماتی عدم توازن، اور تقسیماتی غیر منصفانہ) کو حل کرنے کے درمیان ایک غیر محسوس فرق موجود ہے جو AI کے ہتھیاروں کو تیز کر سکتا ہے۔ + +بعد والے کو [اخلاقیات کی ثقافتوں کی وضاحت کے لیے تعاون پر مبنی نقطہ نظر](https://towardsdatascience.com/why-ai-ethics-requires-a-culture-driven-approach-26f451afa29f) کی ضرورت ہوتی ہے جو صنعت میں _تنظیموں_ کے درمیان جذباتی تعلقات اور مستقل مشترکہ اقدار کو تشکیل دیتے ہیں۔ اس کے لیے تنظیموں میں زیادہ [باضابطہ ڈیٹا اخلاقیات کی ثقافتیں](https://www.codeforamerica.org/news/formalizing-an-ethical-data-culture/) بنانے کی ضرورت ہوتی ہے - جس سے _کوئی بھی_ [اینڈن کورڈ کھینچ سکتا ہے](https://en.wikipedia.org/wiki/Andon_(manufacturing)) (عمل کے ابتدائی مرحلے میں اخلاقیات کے خدشات کو اٹھانے کے لیے) اور _اخلاقی تشخیصات_ (جیسے، بھرتی میں) کو AI منصوبوں میں ٹیم کی تشکیل کے لیے ایک بنیادی معیار بنا سکتا ہے۔ + +--- +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/3) 🎯 +## جائزہ اور خود مطالعہ + +کورسز اور کتابیں اخلاقیات کے بنیادی تصورات اور چیلنجز کو سمجھنے میں مدد کرتی ہیں، جبکہ کیس اسٹڈیز اور ٹولز حقیقی دنیا کے سیاق و سباق میں اطلاقی اخلاقیات کے طریقوں میں مدد کرتے ہیں۔ شروع کرنے کے لیے یہاں کچھ وسائل ہیں۔ + +* [ +* [ذمہ دار مصنوعی ذہانت کے اصول](https://docs.microsoft.com/en-us/learn/modules/responsible-ai-principles/) - مائیکروسافٹ لرن سے مفت تعلیمی راستہ۔ +* [اخلاقیات اور ڈیٹا سائنس](https://resources.oreilly.com/examples/0636920203964) - او'ریلی ای بک (ایم لوکائیڈز، ایچ میسن وغیرہ) +* [ڈیٹا سائنس اخلاقیات](https://www.coursera.org/learn/data-science-ethics#syllabus) - مشی گن یونیورسٹی کا آن لائن کورس۔ +* [اخلاقیات ان ریپڈ](https://ethicsunwrapped.utexas.edu/case-studies) - ٹیکساس یونیورسٹی کے کیس اسٹڈیز۔ + +# اسائنمنٹ + +[ڈیٹا اخلاقیات کا کیس اسٹڈی لکھیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/02-ethics/assignment.md b/translations/ur/1-Introduction/02-ethics/assignment.md new file mode 100644 index 00000000..1b174027 --- /dev/null +++ b/translations/ur/1-Introduction/02-ethics/assignment.md @@ -0,0 +1,34 @@ + +## ڈیٹا اخلاقیات کا کیس اسٹڈی لکھیں + +## ہدایات + +آپ نے مختلف [ڈیٹا اخلاقیات کے چیلنجز](README.md#2-ethics-challenges) کے بارے میں سیکھا ہے اور کچھ [کیس اسٹڈیز](README.md#3-case-studies) کی مثالیں دیکھی ہیں جو حقیقی دنیا کے سیاق و سباق میں ڈیٹا اخلاقیات کے چیلنجز کو ظاہر کرتی ہیں۔ + +اس اسائنمنٹ میں، آپ اپنے تجربے یا کسی متعلقہ حقیقی دنیا کے سیاق و سباق سے ایک ڈیٹا اخلاقیات کے چیلنج کو ظاہر کرنے کے لیے اپنا کیس اسٹڈی لکھیں گے۔ بس ان مراحل کی پیروی کریں: + +1. `ڈیٹا اخلاقیات کا چیلنج منتخب کریں`۔ [سبق کی مثالوں](README.md#2-ethics-challenges) کو دیکھیں یا آن لائن مثالوں جیسے [Deon Checklist](https://deon.drivendata.org/examples/) کو دیکھ کر تحریک حاصل کریں۔ + +2. `حقیقی دنیا کی مثال بیان کریں`۔ کسی ایسی صورتحال کے بارے میں سوچیں جس کے بارے میں آپ نے سنا ہو (خبریں، تحقیقی مطالعہ وغیرہ) یا تجربہ کیا ہو (مقامی کمیونٹی)، جہاں یہ مخصوص چیلنج پیش آیا ہو۔ اس چیلنج سے متعلق ڈیٹا اخلاقیات کے سوالات کے بارے میں سوچیں - اور ان ممکنہ نقصانات یا غیر ارادی نتائج پر بات کریں جو اس مسئلے کی وجہ سے پیدا ہوتے ہیں۔ اضافی پوائنٹس: ممکنہ حل یا عمل کے بارے میں سوچیں جو یہاں لاگو کیے جا سکتے ہیں تاکہ اس چیلنج کے منفی اثرات کو ختم یا کم کیا جا سکے۔ + +3. `متعلقہ وسائل کی فہرست فراہم کریں`۔ ایک یا زیادہ وسائل (کسی مضمون کا لنک، ذاتی بلاگ پوسٹ یا تصویر، آن لائن تحقیقی مقالہ وغیرہ) شیئر کریں تاکہ یہ ثابت ہو سکے کہ یہ حقیقی دنیا کا واقعہ تھا۔ اضافی پوائنٹس: ایسے وسائل شیئر کریں جو واقعے سے پیدا ہونے والے ممکنہ نقصانات اور نتائج کو بھی ظاہر کریں، یا اس کے دوبارہ ہونے سے بچنے کے لیے کیے گئے مثبت اقدامات کو اجاگر کریں۔ + + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +ایک یا زیادہ ڈیٹا اخلاقیات کے چیلنجز کی نشاندہی کی گئی ہے۔

کیس اسٹڈی واضح طور پر ایک حقیقی دنیا کے واقعے کو بیان کرتی ہے جو اس چیلنج کو ظاہر کرتا ہے، اور ان ناپسندیدہ نتائج یا نقصانات کو اجاگر کرتی ہے جو اس کی وجہ سے ہوئے۔

کم از کم ایک لنک شدہ وسیلہ موجود ہے جو یہ ثابت کرتا ہے کہ یہ واقعہ پیش آیا۔ | ایک ڈیٹا اخلاقیات کا چیلنج کی نشاندہی کی گئی ہے۔

کم از کم ایک متعلقہ نقصان یا نتیجہ مختصر طور پر زیر بحث آیا ہے۔

تاہم بحث محدود ہے یا حقیقی دنیا کے واقعے کا ثبوت نہیں ہے۔ | ایک ڈیٹا چیلنج کی نشاندہی کی گئی ہے۔

تاہم وضاحت یا وسائل چیلنج کو مناسب طریقے سے ظاہر نہیں کرتے یا اس کے حقیقی دنیا کے واقعے کا ثبوت فراہم نہیں کرتے۔ | + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/03-defining-data/README.md b/translations/ur/1-Introduction/03-defining-data/README.md new file mode 100644 index 00000000..389b1dbe --- /dev/null +++ b/translations/ur/1-Introduction/03-defining-data/README.md @@ -0,0 +1,85 @@ + +# ڈیٹا کی تعریف + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/03-DefiningData.png)| +|:---:| +|ڈیٹا کی تعریف - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ڈیٹا حقائق، معلومات، مشاہدات اور پیمائشوں کا مجموعہ ہے جو دریافتیں کرنے اور باخبر فیصلے کرنے میں مدد فراہم کرتا ہے۔ ایک ڈیٹا پوائنٹ ڈیٹا سیٹ میں موجود ڈیٹا کی ایک واحد اکائی ہوتی ہے، جبکہ ڈیٹا سیٹ ڈیٹا پوائنٹس کا مجموعہ ہوتا ہے۔ ڈیٹا سیٹس مختلف فارمیٹس اور ڈھانچوں میں آ سکتے ہیں اور عام طور پر ان کے ماخذ یا جہاں سے وہ حاصل کیے گئے ہیں، پر مبنی ہوتے ہیں۔ مثال کے طور پر، کسی کمپنی کی ماہانہ آمدنی اسپریڈشیٹ میں ہو سکتی ہے، لیکن اسمارٹ واچ سے حاصل کردہ گھنٹہ وار دل کی دھڑکن کا ڈیٹا [JSON](https://stackoverflow.com/a/383699) فارمیٹ میں ہو سکتا ہے۔ ڈیٹا سائنسدانوں کے لیے یہ عام بات ہے کہ وہ ایک ڈیٹا سیٹ میں مختلف اقسام کے ڈیٹا کے ساتھ کام کریں۔ + +یہ سبق ڈیٹا کو اس کی خصوصیات اور ماخذ کے مطابق شناخت کرنے اور درجہ بندی کرنے پر مرکوز ہے۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/4) + +## ڈیٹا کو کیسے بیان کیا جاتا ہے + +### خام ڈیٹا +خام ڈیٹا وہ ڈیٹا ہے جو اپنے ماخذ سے اپنی ابتدائی حالت میں آیا ہو اور جس کا تجزیہ یا تنظیم نہ کی گئی ہو۔ کسی ڈیٹا سیٹ میں موجود معلومات کو سمجھنے کے لیے، اسے ایک ایسے فارمیٹ میں ترتیب دینا ضروری ہے جو انسانوں اور ان کی استعمال کردہ ٹیکنالوجی دونوں کے لیے قابل فہم ہو۔ ڈیٹا سیٹ کا ڈھانچہ اس کی تنظیم کو بیان کرتا ہے اور اسے ساختی، غیر ساختی اور نیم ساختی کے طور پر درجہ بندی کیا جا سکتا ہے۔ یہ ڈھانچے ماخذ کے لحاظ سے مختلف ہو سکتے ہیں لیکن بالآخر ان تین زمروں میں فٹ ہوں گے۔ + +### مقداری ڈیٹا +مقداری ڈیٹا وہ عددی مشاہدات ہیں جو کسی ڈیٹا سیٹ میں موجود ہوتے ہیں اور عام طور پر ان کا تجزیہ، پیمائش اور ریاضیاتی طور پر استعمال کیا جا سکتا ہے۔ مقداری ڈیٹا کی کچھ مثالیں ہیں: کسی ملک کی آبادی، کسی شخص کا قد یا کسی کمپنی کی سہ ماہی آمدنی۔ اضافی تجزیے کے ساتھ، مقداری ڈیٹا کو موسمی رجحانات جیسے ایئر کوالٹی انڈیکس (AQI) یا عام کام کے دن کے دوران رش کے اوقات کی امکانات کا اندازہ لگانے کے لیے استعمال کیا جا سکتا ہے۔ + +### معیاری ڈیٹا +معیاری ڈیٹا، جسے زمرہ بندی ڈیٹا بھی کہا جاتا ہے، وہ ڈیٹا ہے جسے مقداری ڈیٹا کی طرح معروضی طور پر ناپا نہیں جا سکتا۔ یہ عام طور پر مختلف فارمیٹس میں موجود موضوعی ڈیٹا ہوتا ہے جو کسی چیز کے معیار کو ظاہر کرتا ہے، جیسے کسی پروڈکٹ یا عمل کا معیار۔ کبھی کبھار، معیاری ڈیٹا عددی بھی ہو سکتا ہے لیکن عام طور پر ریاضیاتی طور پر استعمال نہیں کیا جاتا، جیسے فون نمبر یا ٹائم اسٹیمپ۔ معیاری ڈیٹا کی کچھ مثالیں ہیں: ویڈیو کے تبصرے، کسی گاڑی کا ماڈل یا آپ کے قریبی دوستوں کا پسندیدہ رنگ۔ معیاری ڈیٹا کو یہ سمجھنے کے لیے استعمال کیا جا سکتا ہے کہ صارفین کو کون سی مصنوعات زیادہ پسند ہیں یا ملازمت کی درخواستوں میں مقبول کلیدی الفاظ کی شناخت کے لیے۔ + +### ساختی ڈیٹا +ساختی ڈیٹا وہ ڈیٹا ہے جو قطاروں اور کالموں میں منظم ہوتا ہے، جہاں ہر قطار میں ایک ہی سیٹ کے کالمز ہوتے ہیں۔ کالمز کسی خاص قسم کی قدر کی نمائندگی کرتے ہیں اور ان کا نام اس بات کی وضاحت کے لیے رکھا جاتا ہے کہ وہ قدر کیا ظاہر کرتی ہے، جبکہ قطاروں میں اصل قدریں ہوتی ہیں۔ کالمز پر اکثر مخصوص قواعد یا پابندیاں لاگو ہوتی ہیں تاکہ یہ یقینی بنایا جا سکے کہ قدریں کالم کی درست نمائندگی کرتی ہیں۔ مثال کے طور پر، گاہکوں کی ایک اسپریڈشیٹ کا تصور کریں جہاں ہر قطار میں ایک فون نمبر ہونا ضروری ہے اور فون نمبروں میں کبھی بھی حروف تہجی کے کردار شامل نہ ہوں۔ فون نمبر کالم پر ایسے قواعد لاگو ہو سکتے ہیں جو یہ یقینی بنائیں کہ یہ کبھی خالی نہ ہو اور صرف اعداد پر مشتمل ہو۔ + +ساختی ڈیٹا کا ایک فائدہ یہ ہے کہ اسے اس طرح منظم کیا جا سکتا ہے کہ اسے دوسرے ساختی ڈیٹا کے ساتھ مربوط کیا جا سکے۔ تاہم، چونکہ ڈیٹا کو ایک خاص طریقے سے منظم کرنے کے لیے ڈیزائن کیا گیا ہے، اس کی مجموعی ساخت میں تبدیلی کرنا کافی محنت طلب ہو سکتا ہے۔ مثال کے طور پر، گاہکوں کی اسپریڈشیٹ میں ایک ای میل کالم شامل کرنا جو خالی نہ ہو، اس کا مطلب یہ ہوگا کہ آپ کو یہ معلوم کرنا ہوگا کہ موجودہ قطاروں میں ان قدروں کو کیسے شامل کیا جائے۔ + +ساختی ڈیٹا کی مثالیں: اسپریڈشیٹس، رشتہ دار ڈیٹا بیس، فون نمبر، بینک اسٹیٹمنٹس + +### غیر ساختی ڈیٹا +غیر ساختی ڈیٹا عام طور پر قطاروں یا کالموں میں درجہ بندی نہیں کیا جا سکتا اور اس میں کسی فارمیٹ یا قواعد کا سیٹ نہیں ہوتا جس کی پیروی کی جائے۔ چونکہ غیر ساختی ڈیٹا پر اس کی ساخت کے حوالے سے کم پابندیاں ہوتی ہیں، اس میں نئی معلومات شامل کرنا ساختی ڈیٹا سیٹ کے مقابلے میں آسان ہوتا ہے۔ اگر کوئی سینسر جو ہر 2 منٹ میں بارومیٹرک پریشر کا ڈیٹا ریکارڈ کرتا ہے، ایک اپ ڈیٹ حاصل کرتا ہے جو اب اسے درجہ حرارت کو ماپنے اور ریکارڈ کرنے کی اجازت دیتا ہے، تو اگر یہ غیر ساختی ہے تو موجودہ ڈیٹا کو تبدیل کرنے کی ضرورت نہیں ہوگی۔ تاہم، اس قسم کے ڈیٹا کا تجزیہ یا جانچ کرنا زیادہ وقت لے سکتا ہے۔ مثال کے طور پر، ایک سائنسدان جو سینسر کے ڈیٹا سے پچھلے مہینے کے اوسط درجہ حرارت کا پتہ لگانا چاہتا ہے، لیکن یہ دریافت کرتا ہے کہ سینسر نے اپنے کچھ ریکارڈ شدہ ڈیٹا میں "e" درج کیا ہے تاکہ یہ ظاہر کیا جا سکے کہ یہ خراب تھا، جس کا مطلب ہے کہ ڈیٹا نامکمل ہے۔ + +غیر ساختی ڈیٹا کی مثالیں: ٹیکسٹ فائلز، ٹیکسٹ میسجز، ویڈیو فائلز + +### نیم ساختی ڈیٹا +نیم ساختی ڈیٹا میں وہ خصوصیات ہوتی ہیں جو اسے ساختی اور غیر ساختی ڈیٹا کا امتزاج بناتی ہیں۔ یہ عام طور پر قطاروں اور کالموں کے فارمیٹ کے مطابق نہیں ہوتا لیکن اس طرح منظم ہوتا ہے جسے ساختی سمجھا جاتا ہے اور یہ ایک مقررہ فارمیٹ یا قواعد کے سیٹ کی پیروی کر سکتا ہے۔ ساخت ماخذ کے لحاظ سے مختلف ہو سکتی ہے، جیسے کہ ایک اچھی طرح سے متعین درجہ بندی سے لے کر کچھ زیادہ لچکدار چیز تک جو نئی معلومات کے آسان انضمام کی اجازت دیتی ہو۔ میٹا ڈیٹا وہ اشارے ہیں جو یہ فیصلہ کرنے میں مدد کرتے ہیں کہ ڈیٹا کو کیسے منظم اور ذخیرہ کیا جائے اور ان کے مختلف نام ہو سکتے ہیں، ڈیٹا کی قسم پر مبنی۔ میٹا ڈیٹا کے کچھ عام نام ٹیگز، عناصر، ادارے اور صفات ہیں۔ مثال کے طور پر، ایک عام ای میل پیغام میں ایک موضوع، متن اور وصول کنندگان کا ایک سیٹ ہوگا اور اسے اس کے بھیجنے والے یا بھیجے جانے کے وقت کے لحاظ سے منظم کیا جا سکتا ہے۔ + +نیم ساختی ڈیٹا کی مثالیں: HTML، CSV فائلز، جاوا اسکرپٹ آبجیکٹ نوٹیشن (JSON) + +## ڈیٹا کے ذرائع + +ڈیٹا کا ماخذ وہ ابتدائی مقام ہے جہاں ڈیٹا پیدا ہوا یا "موجود" ہے اور یہ اس کے جمع کیے جانے کے طریقے اور وقت کے لحاظ سے مختلف ہوگا۔ صارفین کے ذریعے پیدا کیا گیا ڈیٹا بنیادی ڈیٹا کہلاتا ہے جبکہ ثانوی ڈیٹا وہ ہوتا ہے جو کسی ایسے ماخذ سے آتا ہے جس نے عام استعمال کے لیے ڈیٹا جمع کیا ہو۔ مثال کے طور پر، سائنسدانوں کا ایک گروپ جو کسی بارانی جنگل میں مشاہدات جمع کر رہا ہو، اسے بنیادی ڈیٹا سمجھا جائے گا اور اگر وہ اسے دوسرے سائنسدانوں کے ساتھ شیئر کرنے کا فیصلہ کرتے ہیں تو یہ ان کے لیے ثانوی ڈیٹا ہوگا جو اسے استعمال کرتے ہیں۔ + +ڈیٹا بیس ایک عام ذریعہ ہیں اور ڈیٹا بیس مینجمنٹ سسٹم پر انحصار کرتے ہیں تاکہ ڈیٹا کی میزبانی اور دیکھ بھال کی جا سکے، جہاں صارفین کمانڈز کو "کوئریز" کہتے ہیں تاکہ ڈیٹا کو دریافت کیا جا سکے۔ فائلز بطور ڈیٹا ذرائع آڈیو، امیج، اور ویڈیو فائلز کے ساتھ ساتھ اسپریڈشیٹس جیسے ایکسل بھی ہو سکتی ہیں۔ انٹرنیٹ ذرائع ڈیٹا کی میزبانی کے لیے ایک عام مقام ہیں، جہاں ڈیٹا بیسز اور فائلز دونوں کو پایا جا سکتا ہے۔ ایپلیکیشن پروگرامنگ انٹرفیسز، جنہیں APIs بھی کہا جاتا ہے، پروگرامرز کو انٹرنیٹ کے ذریعے بیرونی صارفین کے ساتھ ڈیٹا شیئر کرنے کے طریقے بنانے کی اجازت دیتے ہیں، جبکہ ویب اسکریپنگ کے عمل سے ویب پیج سے ڈیٹا نکالا جاتا ہے۔ [ڈیٹا کے ساتھ کام کرنے کے اسباق](../../../../../../../../../2-Working-With-Data) مختلف ڈیٹا ذرائع کو استعمال کرنے کے طریقے پر مرکوز ہیں۔ + +## نتیجہ + +اس سبق میں ہم نے سیکھا: + +- ڈیٹا کیا ہے +- ڈیٹا کو کیسے بیان کیا جاتا ہے +- ڈیٹا کو کیسے درجہ بندی اور زمرہ بندی کی جاتی ہے +- ڈیٹا کہاں پایا جا سکتا ہے + +## 🚀 چیلنج + +Kaggle کھلے ڈیٹا سیٹس کا ایک بہترین ذریعہ ہے۔ [ڈیٹا سیٹ سرچ ٹول](https://www.kaggle.com/datasets) کا استعمال کریں تاکہ کچھ دلچسپ ڈیٹا سیٹس تلاش کریں اور 3-5 ڈیٹا سیٹس کو اس معیار کے مطابق درجہ بندی کریں: + +- کیا ڈیٹا مقداری ہے یا معیاری؟ +- کیا ڈیٹا ساختی، غیر ساختی، یا نیم ساختی ہے؟ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/5) + +## جائزہ اور خود مطالعہ + +- یہ Microsoft Learn یونٹ، جس کا عنوان ہے [اپنے ڈیٹا کو درجہ بندی کریں](https://docs.microsoft.com/en-us/learn/modules/choose-storage-approach-in-azure/2-classify-data)، ساختی، نیم ساختی، اور غیر ساختی ڈیٹا کا تفصیلی تجزیہ فراہم کرتا ہے۔ + +## اسائنمنٹ + +[ڈیٹا سیٹس کی درجہ بندی](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/03-defining-data/assignment.md b/translations/ur/1-Introduction/03-defining-data/assignment.md new file mode 100644 index 00000000..69815c5c --- /dev/null +++ b/translations/ur/1-Introduction/03-defining-data/assignment.md @@ -0,0 +1,79 @@ + +# ڈیٹا سیٹس کی درجہ بندی + +## ہدایات + +اس اسائنمنٹ میں دیے گئے سوالات کے مطابق ڈیٹا کی شناخت کریں اور اسے درج ذیل ڈیٹا اقسام میں سے ایک کے ساتھ درجہ بند کریں: + +**ساخت کی اقسام**: منظم، نیم منظم، یا غیر منظم + +**قدر کی اقسام**: معیاری یا مقداری + +**ماخذ کی اقسام**: بنیادی یا ثانوی + +1. ایک کمپنی کو حاصل کر لیا گیا ہے اور اب اس کا ایک پیرنٹ کمپنی ہے۔ ڈیٹا سائنسدانوں کو پیرنٹ کمپنی سے کسٹمر کے فون نمبرز کا اسپریڈشیٹ موصول ہوا ہے۔ + +ساخت کی قسم: + +قدر کی قسم: + +ماخذ کی قسم: + +--- + +2. ایک اسمارٹ واچ اپنے پہننے والے کی دل کی دھڑکن کا ڈیٹا جمع کر رہی ہے، اور خام ڈیٹا JSON فارمیٹ میں ہے۔ + +ساخت کی قسم: + +قدر کی قسم: + +ماخذ کی قسم: + +--- + +3. ملازمین کے حوصلے کے بارے میں ایک ورک پلیس سروے جو CSV فائل میں محفوظ ہے۔ + +ساخت کی قسم: + +قدر کی قسم: + +ماخذ کی قسم: + +--- + +4. فلکیاتی سائنسدان ایک ڈیٹا بیس تک رسائی حاصل کر رہے ہیں جس میں کہکشاؤں کا ڈیٹا موجود ہے جو ایک خلائی پروب کے ذریعے جمع کیا گیا ہے۔ ڈیٹا میں ہر کہکشاں میں موجود سیاروں کی تعداد شامل ہے۔ + +ساخت کی قسم: + +قدر کی قسم: + +ماخذ کی قسم: + +--- + +5. ایک ذاتی مالیاتی ایپ APIs کا استعمال کرتے ہوئے صارف کے مالیاتی اکاؤنٹس سے جڑتی ہے تاکہ ان کی مجموعی مالیت کا حساب لگایا جا سکے۔ صارف اپنی تمام ٹرانزیکشنز کو قطاروں اور کالموں کی شکل میں دیکھ سکتا ہے جو اسپریڈشیٹ جیسا دکھائی دیتا ہے۔ + +ساخت کی قسم: + +قدر کی قسم: + +ماخذ کی قسم: + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام ساخت، قدر، اور ماخذ کو درست طریقے سے شناخت کرتا ہے | 3 ساخت، قدر، اور ماخذ کو درست طریقے سے شناخت کرتا ہے | 2 یا اس سے کم ساخت، قدر، اور ماخذ کو درست طریقے سے شناخت کرتا ہے | + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/04-stats-and-probability/README.md b/translations/ur/1-Introduction/04-stats-and-probability/README.md new file mode 100644 index 00000000..f023b553 --- /dev/null +++ b/translations/ur/1-Introduction/04-stats-and-probability/README.md @@ -0,0 +1,276 @@ + +# شماریات اور احتمال کا مختصر تعارف + +|![ اسکیچ نوٹ [(@sketchthedocs)](https://sketchthedocs.dev) کی طرف سے ](../../sketchnotes/04-Statistics-Probability.png)| +|:---:| +| شماریات اور احتمال - _اسکیچ نوٹ [@nitya](https://twitter.com/nitya) کی طرف سے_ | + +شماریات اور احتمال کا نظریہ ریاضی کے دو ایسے شعبے ہیں جو ڈیٹا سائنس کے لیے بہت اہم ہیں۔ ڈیٹا کے ساتھ کام کرنا ممکن ہے بغیر ریاضی کی گہری معلومات کے، لیکن کچھ بنیادی تصورات جاننا بہتر ہے۔ یہاں ہم ایک مختصر تعارف پیش کریں گے جو آپ کو شروع کرنے میں مدد دے گا۔ + +[![تعارفی ویڈیو](../../../../translated_images/video-prob-and-stats.e4282e5efa2f2543400843ed98b1057065c9600cebfc8a728e8931b5702b2ae4.ur.png)](https://youtu.be/Z5Zy85g4Yjw) + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/6) + +## احتمال اور بے ترتیب متغیرات + +**احتمال** 0 اور 1 کے درمیان ایک عدد ہے جو کسی **واقعہ** کے ہونے کے امکان کو ظاہر کرتا ہے۔ یہ مثبت نتائج کی تعداد (جو واقعہ کی طرف لے جاتے ہیں) کو کل نتائج کی تعداد سے تقسیم کر کے بیان کیا جاتا ہے، بشرطیکہ تمام نتائج برابر احتمال رکھتے ہوں۔ مثال کے طور پر، جب ہم ایک ڈائس پھینکتے ہیں، تو ایک جفت عدد حاصل کرنے کا احتمال 3/6 = 0.5 ہے۔ + +جب ہم واقعات کی بات کرتے ہیں، تو ہم **بے ترتیب متغیرات** استعمال کرتے ہیں۔ مثال کے طور پر، وہ بے ترتیب متغیر جو ڈائس پھینکنے پر حاصل ہونے والے عدد کو ظاہر کرتا ہے، وہ 1 سے 6 تک کے عدد لے سکتا ہے۔ 1 سے 6 تک کے عددوں کا مجموعہ **نمونہ جگہ** کہلاتا ہے۔ ہم بے ترتیب متغیر کے کسی خاص عدد لینے کے احتمال کے بارے میں بات کر سکتے ہیں، جیسے P(X=3)=1/6۔ + +پچھلی مثال میں بے ترتیب متغیر کو **منقطع** کہا جاتا ہے، کیونکہ اس کی نمونہ جگہ گنی جا سکتی ہے، یعنی الگ الگ عدد ہیں جنہیں شمار کیا جا سکتا ہے۔ کچھ صورتوں میں نمونہ جگہ حقیقی عددوں کی حد ہوتی ہے، یا حقیقی عددوں کا پورا مجموعہ۔ ایسے متغیرات کو **مسلسل** کہا جاتا ہے۔ ایک اچھی مثال بس کے پہنچنے کا وقت ہے۔ + +## احتمال کی تقسیم + +منقطع بے ترتیب متغیرات کے معاملے میں، ہر واقعہ کے احتمال کو ایک فنکشن P(X) کے ذریعے بیان کرنا آسان ہے۔ نمونہ جگہ *S* کے ہر عدد *s* کے لیے یہ 0 سے 1 تک کا عدد دے گا، اس طرح کہ تمام واقعات کے لیے P(X=s) کے تمام عددوں کا مجموعہ 1 ہوگا۔ + +سب سے مشہور منقطع تقسیم **یکساں تقسیم** ہے، جس میں نمونہ جگہ کے N عناصر ہوتے ہیں، اور ہر ایک کے لیے برابر احتمال 1/N ہوتا ہے۔ + +مسلسل متغیر کی احتمال تقسیم کو بیان کرنا زیادہ مشکل ہے، جس کے عدد کسی وقفہ [a,b] یا حقیقی عددوں کے پورے مجموعہ ℝ سے لیے جاتے ہیں۔ بس کے پہنچنے کے وقت کے معاملے پر غور کریں۔ حقیقت میں، کسی خاص وقت *t* پر بس کے بالکل اسی وقت پہنچنے کا احتمال 0 ہے! + +> اب آپ جانتے ہیں کہ 0 احتمال والے واقعات ہوتے ہیں، اور اکثر ہوتے ہیں! کم از کم ہر بار جب بس پہنچتی ہے! + +ہم صرف کسی متغیر کے کسی دیے گئے وقفہ میں عدد لینے کے احتمال کے بارے میں بات کر سکتے ہیں، جیسے P(t1≤X2)۔ اس صورت میں، احتمال تقسیم کو **احتمال کثافت فنکشن** p(x) کے ذریعے بیان کیا جاتا ہے، اس طرح کہ + +![P(t_1\le X1, x2, ..., xn۔ ہم ترتیب کی **اوسط** (یا **حسابی اوسط**) کو روایتی طریقے سے (x1+x2+xn)/n کے طور پر بیان کر سکتے ہیں۔ جیسے جیسے ہم نمونہ کا سائز بڑھاتے ہیں (یعنی n→∞ کی حد لیتے ہیں)، ہم تقسیم کی اوسط (جسے **توقع** بھی کہا جاتا ہے) حاصل کریں گے۔ ہم توقع کو **E**(x) سے ظاہر کریں گے۔ + +> یہ دکھایا جا سکتا ہے کہ کسی بھی منقطع تقسیم کے لیے جس کے عدد {x1, x2, ..., xN} اور متعلقہ احتمالات p1, p2, ..., pN ہوں، توقع E(X)=x1p1+x2p2+...+xNpN کے برابر ہوگی۔ + +یہ معلوم کرنے کے لیے کہ عدد کتنے دور تک پھیلے ہوئے ہیں، ہم تغیر σ2 = ∑(xi - μ)2/n کا حساب لگا سکتے ہیں، جہاں μ ترتیب کی اوسط ہے۔ عدد σ کو **معیاری انحراف** کہا جاتا ہے، اور σ2 کو **تغیر** کہا جاتا ہے۔ + +## موڈ، میڈین اور کوارٹائلز + +کبھی کبھی، اوسط ڈیٹا کے "عام" عدد کو مناسب طریقے سے ظاہر نہیں کرتی۔ مثال کے طور پر، جب کچھ انتہائی عدد ہوتے ہیں جو مکمل طور پر حد سے باہر ہوتے ہیں، وہ اوسط کو متاثر کر سکتے ہیں۔ ایک اور اچھا اشارہ **میڈین** ہے، ایک عدد ایسا کہ آدھے ڈیٹا پوائنٹس اس سے کم ہوں، اور باقی آدھے - زیادہ۔ + +ڈیٹا کی تقسیم کو سمجھنے میں مدد کے لیے، **کوارٹائلز** کے بارے میں بات کرنا مفید ہے: + +* پہلا کوارٹائل، یا Q1، ایک عدد ہے، جس کے نیچے 25% ڈیٹا آتا ہے +* تیسرا کوارٹائل، یا Q3، ایک عدد ہے جس کے نیچے 75% ڈیٹا آتا ہے + +گرافک طور پر ہم میڈین اور کوارٹائلز کے تعلق کو ایک ڈایاگرام میں ظاہر کر سکتے ہیں جسے **باکس پلاٹ** کہا جاتا ہے: + + + +یہاں ہم **انٹر-کوارٹائل رینج** IQR=Q3-Q1 کا حساب لگاتے ہیں، اور نام نہاد **آؤٹ لائرز** - عدد جو حدود [Q1-1.5*IQR,Q3+1.5*IQR] سے باہر ہوتے ہیں۔ + +محدود تقسیم جو ممکنہ عدد کی ایک چھوٹی تعداد پر مشتمل ہو، ایک اچھا "عام" عدد وہ ہوتا ہے جو سب سے زیادہ بار ظاہر ہوتا ہے، جسے **موڈ** کہا جاتا ہے۔ یہ اکثر زمرہ جاتی ڈیٹا پر لاگو ہوتا ہے، جیسے رنگ۔ تصور کریں کہ ہمارے پاس لوگوں کے دو گروپ ہیں - کچھ جو سرخ کو بہت پسند کرتے ہیں، اور دوسرے جو نیلے کو پسند کرتے ہیں۔ اگر ہم رنگوں کو عددوں سے کوڈ کریں، تو پسندیدہ رنگ کے لیے اوسط عدد کہیں نارنجی-سبز اسپیکٹرم میں ہوگا، جو کسی بھی گروپ کی اصل پسند کو ظاہر نہیں کرتا۔ تاہم، موڈ یا تو ایک رنگ ہوگا، یا دونوں رنگ، اگر ان کے لیے ووٹ دینے والے لوگوں کی تعداد برابر ہو (اس صورت میں ہم نمونہ کو **ملٹی موڈل** کہتے ہیں)۔ + +## حقیقی دنیا کا ڈیٹا + +جب ہم حقیقی زندگی کے ڈیٹا کا تجزیہ کرتے ہیں، تو وہ اکثر بے ترتیب متغیرات کی طرح نہیں ہوتے، اس معنی میں کہ ہم نامعلوم نتیجے کے ساتھ تجربات نہیں کرتے۔ مثال کے طور پر، بیس بال کھلاڑیوں کی ایک ٹیم پر غور کریں، اور ان کے جسمانی ڈیٹا، جیسے قد، وزن اور عمر۔ یہ عدد بالکل بے ترتیب نہیں ہیں، لیکن ہم پھر بھی وہی ریاضیاتی تصورات لاگو کر سکتے ہیں۔ مثال کے طور پر، لوگوں کے وزن کی ترتیب کو کسی بے ترتیب متغیر سے لیے گئے عددوں کی ترتیب سمجھا جا سکتا ہے۔ نیچے [میجر لیگ بیس بال](http://mlb.mlb.com/index.jsp) کے حقیقی بیس بال کھلاڑیوں کے وزن کی ترتیب دی گئی ہے، جو [اس ڈیٹا سیٹ](http://wiki.stat.ucla.edu/socr/index.php/SOCR_Data_MLB_HeightsWeights) سے لی گئی ہے (آپ کی سہولت کے لیے، صرف پہلے 20 عدد دکھائے گئے ہیں): + +``` +[180.0, 215.0, 210.0, 210.0, 188.0, 176.0, 209.0, 200.0, 231.0, 180.0, 188.0, 180.0, 185.0, 160.0, 180.0, 185.0, 197.0, 189.0, 185.0, 219.0] +``` + +> **نوٹ**: اس ڈیٹا سیٹ کے ساتھ کام کرنے کی مثال دیکھنے کے لیے، [ساتھ والے نوٹ بک](notebook.ipynb) پر نظر ڈالیں۔ اس سبق میں کئی چیلنجز بھی ہیں، اور آپ انہیں اس نوٹ بک میں کچھ کوڈ شامل کر کے مکمل کر سکتے ہیں۔ اگر آپ کو ڈیٹا پر کام کرنے کا طریقہ معلوم نہیں ہے، تو فکر نہ کریں - ہم بعد میں پائتھن کا استعمال کرتے ہوئے ڈیٹا پر کام کرنے پر واپس آئیں گے۔ اگر آپ کو جیوپیٹر نوٹ بک میں کوڈ چلانے کا طریقہ معلوم نہیں ہے، تو [اس مضمون](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) پر نظر ڈالیں۔ + +یہاں ہمارے ڈیٹا کے لیے اوسط، میڈین اور کوارٹائلز کو ظاہر کرنے والا باکس پلاٹ ہے: + +![وزن کا باکس پلاٹ](../../../../translated_images/weight-boxplot.1dbab1c03af26f8a008fff4e17680082c8ab147d6df646cbac440bbf8f5b9c42.ur.png) + +چونکہ ہمارے ڈیٹا میں مختلف کھلاڑیوں کے **کردار** کے بارے میں معلومات شامل ہیں، ہم کردار کے لحاظ سے بھی باکس پلاٹ بنا سکتے ہیں - یہ ہمیں یہ سمجھنے کی اجازت دے گا کہ پیرامیٹرز کے عدد کرداروں کے لحاظ سے کیسے مختلف ہیں۔ اس بار ہم قد پر غور کریں گے: + +![کردار کے لحاظ سے باکس پلاٹ](../../../../translated_images/boxplot_byrole.036b27a1c3f52d42f66fba2324ec5cde0a1bca6a01a619eeb0ce7cd054b2527b.ur.png) + +یہ ڈایاگرام تجویز کرتا ہے کہ، اوسطاً، پہلے بیس مین کا قد دوسرے بیس مین کے قد سے زیادہ ہے۔ اس سبق میں بعد میں ہم سیکھیں گے کہ ہم اس مفروضے کو زیادہ رسمی طور پر کیسے جانچ سکتے ہیں، اور یہ کیسے ظاہر کر سکتے ہیں کہ ہمارا ڈیٹا شماریاتی طور پر اہم ہے۔ + +> جب ہم حقیقی دنیا کے ڈیٹا پر کام کرتے ہیں، تو ہم فرض کرتے ہیں کہ تمام ڈیٹا پوائنٹس کسی احتمال تقسیم سے لیے گئے نمونے ہیں۔ یہ مفروضہ ہمیں مشین لرننگ تکنیکوں کو لاگو کرنے اور کام کرنے والے پیش گوئی ماڈلز بنانے کی اجازت دیتا ہے۔ + +اپنے ڈیٹا کی تقسیم کو دیکھنے کے لیے، ہم ایک گراف بنا سکتے ہیں جسے **ہسٹوگرام** کہا جاتا ہے۔ X-محور مختلف وزن کے وقفوں (نام نہاد **بِنز**) کی تعداد پر مشتمل ہوگا، اور عمودی محور یہ ظاہر کرے گا کہ ہمارا بے ترتیب متغیر نمونہ دیے گئے وقفے میں کتنی بار آیا۔ + +![حقیقی دنیا کے ڈیٹا کا ہسٹوگرام](../../../../translated_images/weight-histogram.bfd00caf7fc30b145b21e862dba7def41c75635d5280de25d840dd7f0b00545e.ur.png) + +اس ہسٹوگرام سے آپ دیکھ سکتے ہیں کہ تمام عدد ایک خاص اوسط وزن کے ارد گرد مرکوز ہیں، اور جیسے جیسے ہم اس وزن سے دور جاتے ہیں - اس وزن کے عدد کم ملتے ہیں۔ یعنی، یہ بہت غیر ممکن ہے کہ کسی بیس بال کھلاڑی کا وزن اوسط وزن سے بہت مختلف ہو۔ وزن کا تغیر یہ ظاہر کرتا ہے کہ وزن اوسط سے کتنے مختلف ہونے کا امکان ہے۔ + +> اگر ہم دوسرے لوگوں کے وزن لیں، جو بیس بال لیگ سے نہیں ہیں، تو تقسیم مختلف ہونے کا امکان ہے۔ تاہم، تقسیم کی شکل وہی ہوگی، لیکن اوسط اور تغیر بدل جائیں گے۔ لہذا، اگر ہم اپنے ماڈل کو بیس بال کھلاڑیوں پر تربیت دیں، تو یہ ممکن ہے کہ جب اسے کسی یونیورسٹی کے طلباء پر لاگو کیا جائے تو غلط نتائج دے، کیونکہ بنیادی تقسیم مختلف ہے۔ + +## معمولی تقسیم + +وزن کی تقسیم جو ہم نے اوپر دیکھی، بہت عام ہے، اور حقیقی دنیا سے بہت سی پیمائشیں اسی قسم کی تقسیم کی پیروی کرتی ہیں، لیکن مختلف اوسط اور تغیر کے ساتھ۔ اس تقسیم کو **معمولی تقسیم** کہا جاتا ہے، اور یہ شماریات میں بہت اہم کردار ادا کرتی ہے۔ + +معمولی تقسیم کا استعمال ممکنہ بیس بال کھلاڑیوں کے بے ترتیب وزن پیدا کرنے کا صحیح طریقہ ہے۔ ایک بار جب ہم اوسط وزن `mean` اور معیاری انحراف `std` جان لیں، تو ہم 1000 وزن کے نمونے درج ذیل طریقے سے پیدا کر سکتے ہیں: +```python +samples = np.random.normal(mean,std,1000) +``` + +اگر ہم پیدا کردہ نمونوں کا ہسٹوگرام بنائیں، تو ہمیں اوپر دکھائی گئی تصویر سے بہت ملتی جلتی تصویر نظر آئے گی۔ اور اگر ہم نمونوں کی تعداد اور بِنز کی تعداد بڑھائیں، تو ہم معمولی تقسیم کی ایک تصویر پیدا کر سکتے ہیں جو مثالی کے قریب ہو: + +![معمولی تقسیم اوسط=0 اور معیاری انحراف=1 کے ساتھ](../../../../translated_images/normal-histogram.dfae0d67c202137d552d0015fb87581eca263925e512404f3c12d8885315432e.ur.png) + +*معمولی تقسیم اوسط=0 اور معیاری انحراف=1 کے ساتھ* + +## اعتماد کے وقفے + +جب ہم بیس بال کھلاڑیوں کے وزن کی بات کرتے ہیں، تو ہم فرض کرتے ہیں کہ ایک **بے ترتیب متغیر W** ہے جو تمام بیس بال کھلاڑیوں کے وزن کی مثالی احتمال تقسیم سے مطابقت رکھتا ہے (نام نہاد **آبادی**). ہمارا وزن کا نمونہ تمام بیس بال کھلاڑیوں کے ایک ذیلی مجموعہ سے مطابقت رکھتا ہے جسے ہم **نمونہ** کہتے ہیں۔ ایک دلچسپ سوال یہ ہے کہ کیا ہم W کی تقسیم کے پیرامیٹرز، یعنی آبادی کی اوسط اور تغیر، جان سکتے ہیں؟ + +سب سے آسان جواب یہ ہوگا کہ ہمارے نمونہ کی اوسط اور تغیر کا حساب لگائیں۔ تاہم، یہ ممکن ہے کہ ہمارا بے ترتیب نمونہ مکمل آبادی کی درست نمائندگی نہ کرے۔ لہذا اعتماد کے وقفے کے بارے میں بات کرنا معنی رکھتا ہے۔ +> **اعتمادی وقفہ** ہماری نمونے کی بنیاد پر آبادی کے حقیقی اوسط کا اندازہ ہے، جو ایک خاص امکان (یا **اعتماد کی سطح**) کے ساتھ درست ہوتا ہے۔ +فرض کریں کہ ہمارے پاس X1, ..., Xn کا نمونہ ہے جو ہماری تقسیم سے لیا گیا ہے۔ ہر بار جب ہم اپنی تقسیم سے نمونہ لیتے ہیں، تو ہمیں مختلف اوسط قدر μ ملے گی۔ اس طرح μ کو ایک تصادفی متغیر سمجھا جا سکتا ہے۔ **اعتماد وقفہ** جس کا اعتماد p ہو، دو قدروں (Lp,Rp) کا جوڑا ہوتا ہے، اس طرح کہ **P**(Lp≤μ≤Rp) = p، یعنی ماپے گئے اوسط قدر کے وقفے میں آنے کا امکان p کے برابر ہوتا ہے۔ + +یہ مختصر تعارف سے آگے بڑھ کر تفصیل سے بحث کرنا ممکن نہیں کہ یہ اعتماد وقفے کیسے حساب کیے جاتے ہیں۔ مزید تفصیلات [ویکیپیڈیا](https://en.wikipedia.org/wiki/Confidence_interval) پر مل سکتی ہیں۔ مختصراً، ہم نمونے کی اوسط کی تقسیم کو آبادی کی حقیقی اوسط کے لحاظ سے بیان کرتے ہیں، جسے **طالب علم کی تقسیم** کہا جاتا ہے۔ + +> **دلچسپ حقیقت**: طالب علم کی تقسیم کا نام ریاضی دان ولیم سیلی گوسٹ کے نام پر رکھا گیا ہے، جنہوں نے اپنا مقالہ "طالب علم" کے قلمی نام سے شائع کیا۔ وہ گینیس بریوری میں کام کرتے تھے، اور ایک روایت کے مطابق، ان کے آجر نہیں چاہتے تھے کہ عام عوام کو معلوم ہو کہ وہ خام مال کے معیار کا تعین کرنے کے لیے شماریاتی ٹیسٹ استعمال کر رہے ہیں۔ + +اگر ہم اپنی آبادی کی اوسط μ کو اعتماد p کے ساتھ اندازہ لگانا چاہتے ہیں، تو ہمیں طالب علم کی تقسیم A کا *(1-p)/2 واں پرسنٹائل* لینا ہوگا، جو یا تو جدولوں سے لیا جا سکتا ہے، یا شماریاتی سافٹ ویئر (جیسے Python، R، وغیرہ) کے کچھ بلٹ ان فنکشنز کا استعمال کرتے ہوئے حساب کیا جا سکتا ہے۔ پھر μ کے لیے وقفہ X±A*D/√n ہوگا، جہاں X نمونے کی حاصل شدہ اوسط ہے، اور D معیاری انحراف ہے۔ + +> **نوٹ**: ہم [آزادی کے درجات](https://en.wikipedia.org/wiki/Degrees_of_freedom_(statistics)) کے ایک اہم تصور پر بحث کو بھی چھوڑ دیتے ہیں، جو طالب علم کی تقسیم کے حوالے سے اہم ہے۔ اس تصور کو گہرائی سے سمجھنے کے لیے آپ شماریات پر مکمل کتابوں کا حوالہ دے سکتے ہیں۔ + +وزن اور قد کے لیے اعتماد وقفہ کا حساب لگانے کی ایک مثال [ساتھ والے نوٹ بکس](notebook.ipynb) میں دی گئی ہے۔ + +| p | وزن کی اوسط | +|-----|-----------| +| 0.85 | 201.73±0.94 | +| 0.90 | 201.73±1.08 | +| 0.95 | 201.73±1.28 | + +نوٹ کریں کہ جتنا زیادہ اعتماد کا امکان ہوگا، اتنا ہی وسیع اعتماد وقفہ ہوگا۔ + +## مفروضہ ٹیسٹنگ + +ہمارے بیس بال کھلاڑیوں کے ڈیٹا سیٹ میں مختلف کھلاڑیوں کے کردار ہیں، جنہیں نیچے خلاصہ کیا جا سکتا ہے (دیکھیں [ساتھ والا نوٹ بک](notebook.ipynb) کہ یہ جدول کیسے حساب کیا جا سکتا ہے): + +| کردار | قد | وزن | تعداد | +|------|--------|--------|-------| +| کیچر | 72.723684 | 204.328947 | 76 | +| نامزد ہٹر | 74.222222 | 220.888889 | 18 | +| فرسٹ بیس مین | 74.000000 | 213.109091 | 55 | +| آؤٹ فیلڈر | 73.010309 | 199.113402 | 194 | +| ریلیف پچر | 74.374603 | 203.517460 | 315 | +| سیکنڈ بیس مین | 71.362069 | 184.344828 | 58 | +| شارٹ اسٹاپ | 71.903846 | 182.923077 | 52 | +| اسٹارٹنگ پچر | 74.719457 | 205.163636 | 221 | +| تھرڈ بیس مین | 73.044444 | 200.955556 | 45 | + +ہم دیکھ سکتے ہیں کہ فرسٹ بیس مین کی اوسط قد سیکنڈ بیس مین سے زیادہ ہے۔ اس طرح، ہم یہ نتیجہ اخذ کرنے کی طرف مائل ہو سکتے ہیں کہ **فرسٹ بیس مین سیکنڈ بیس مین سے زیادہ قد والے ہیں**۔ + +> اس بیان کو **مفروضہ** کہا جاتا ہے، کیونکہ ہمیں معلوم نہیں کہ یہ حقیقت میں درست ہے یا نہیں۔ + +تاہم، یہ ہمیشہ واضح نہیں ہوتا کہ آیا ہم یہ نتیجہ اخذ کر سکتے ہیں۔ اوپر کی بحث سے ہم جانتے ہیں کہ ہر اوسط کے ساتھ ایک متعلقہ اعتماد وقفہ ہوتا ہے، اور اس فرق کو محض ایک شماریاتی غلطی سمجھا جا سکتا ہے۔ ہمیں اپنے مفروضے کو جانچنے کے لیے کچھ زیادہ رسمی طریقہ کی ضرورت ہے۔ + +آئیے فرسٹ اور سیکنڈ بیس مین کے قد کے لیے اعتماد وقفے الگ الگ حساب کرتے ہیں: + +| اعتماد | فرسٹ بیس مین | سیکنڈ بیس مین | +|------------|---------------|----------------| +| 0.85 | 73.62..74.38 | 71.04..71.69 | +| 0.90 | 73.56..74.44 | 70.99..71.73 | +| 0.95 | 73.47..74.53 | 70.92..71.81 | + +ہم دیکھ سکتے ہیں کہ کسی بھی اعتماد کے تحت وقفے ایک دوسرے سے اوورلیپ نہیں کرتے۔ یہ ہمارے مفروضے کو ثابت کرتا ہے کہ فرسٹ بیس مین سیکنڈ بیس مین سے زیادہ قد والے ہیں۔ + +زیادہ رسمی طور پر، مسئلہ جو ہم حل کر رہے ہیں وہ یہ دیکھنا ہے کہ **دو احتمال تقسیم ایک جیسی ہیں**، یا کم از کم ان کے پیرامیٹرز ایک جیسے ہیں۔ تقسیم کے لحاظ سے، ہمیں اس کے لیے مختلف ٹیسٹ استعمال کرنے کی ضرورت ہے۔ اگر ہمیں معلوم ہو کہ ہماری تقسیم نارمل ہے، تو ہم **[طالب علم ٹی-ٹیسٹ](https://en.wikipedia.org/wiki/Student%27s_t-test)** کا اطلاق کر سکتے ہیں۔ + +طالب علم ٹی-ٹیسٹ میں، ہم نام نہاد **t-value** کا حساب لگاتے ہیں، جو اوسط کے فرق کو ظاہر کرتا ہے، انحراف کو مدنظر رکھتے ہوئے۔ یہ دکھایا گیا ہے کہ t-value **طالب علم کی تقسیم** کی پیروی کرتا ہے، جو ہمیں دیے گئے اعتماد سطح **p** کے لیے حد قدر حاصل کرنے کی اجازت دیتا ہے (یہ حساب کیا جا سکتا ہے، یا عددی جدولوں میں دیکھا جا سکتا ہے)۔ پھر ہم t-value کو اس حد سے موازنہ کرتے ہیں تاکہ مفروضے کو منظور یا مسترد کریں۔ + +Python میں، ہم **SciPy** پیکیج استعمال کر سکتے ہیں، جس میں `ttest_ind` فنکشن شامل ہے (بہت سے دیگر مفید شماریاتی فنکشنز کے علاوہ!)۔ یہ ہمارے لیے t-value کا حساب لگاتا ہے، اور اعتماد p-value کا ریورس لک اپ بھی کرتا ہے، تاکہ ہم صرف اعتماد کو دیکھ کر نتیجہ اخذ کر سکیں۔ + +مثال کے طور پر، فرسٹ اور سیکنڈ بیس مین کے قد کے موازنہ سے ہمیں درج ذیل نتائج ملتے ہیں: +```python +from scipy.stats import ttest_ind + +tval, pval = ttest_ind(df.loc[df['Role']=='First_Baseman',['Height']], df.loc[df['Role']=='Designated_Hitter',['Height']],equal_var=False) +print(f"T-value = {tval[0]:.2f}\nP-value: {pval[0]}") +``` +``` +T-value = 7.65 +P-value: 9.137321189738925e-12 +``` +ہمارے معاملے میں، p-value بہت کم ہے، جس کا مطلب ہے کہ فرسٹ بیس مین کے زیادہ قد ہونے کے حق میں مضبوط ثبوت موجود ہیں۔ + +مفروضہ ٹیسٹنگ کے دیگر مختلف اقسام بھی ہیں، جیسے: +* یہ ثابت کرنا کہ دیا گیا نمونہ کسی تقسیم کی پیروی کرتا ہے۔ ہمارے معاملے میں ہم نے فرض کیا ہے کہ قد نارمل تقسیم شدہ ہیں، لیکن اس کی رسمی شماریاتی تصدیق کی ضرورت ہے۔ +* یہ ثابت کرنا کہ نمونے کی اوسط قدر کسی پہلے سے طے شدہ قدر کے مطابق ہے۔ +* مختلف نمونوں کی اوسط کا موازنہ کرنا (مثلاً مختلف عمر کے گروپوں میں خوشی کی سطح میں فرق کیا ہے) + +## بڑے نمبروں کا قانون اور مرکزی حد نظریہ + +نارمل تقسیم اتنی اہم ہونے کی ایک وجہ **مرکزی حد نظریہ** ہے۔ فرض کریں کہ ہمارے پاس آزاد N قدروں X1, ..., XN کا بڑا نمونہ ہے، جو کسی بھی تقسیم سے لیا گیا ہے جس کی اوسط μ اور انحراف σ2 ہے۔ پھر، کافی بڑے N کے لیے (دوسرے الفاظ میں، جب N→∞)، اوسط ΣiXi نارمل تقسیم شدہ ہوگا، جس کی اوسط μ اور انحراف σ2/N ہوگا۔ + +> مرکزی حد نظریہ کو دوسرے طریقے سے بیان کیا جا سکتا ہے کہ قطع نظر تقسیم کے، جب آپ کسی تصادفی متغیر قدروں کے مجموعے کی اوسط کا حساب لگاتے ہیں تو آپ نارمل تقسیم کے ساتھ ختم ہوتے ہیں۔ + +مرکزی حد نظریہ سے یہ بھی معلوم ہوتا ہے کہ، جب N→∞، نمونے کی اوسط کے μ کے برابر ہونے کا امکان 1 بن جاتا ہے۔ یہ **بڑے نمبروں کا قانون** کے نام سے جانا جاتا ہے۔ + +## کوورینس اور تعلق + +ڈیٹا سائنس کا ایک کام ڈیٹا کے درمیان تعلقات تلاش کرنا ہے۔ ہم کہتے ہیں کہ دو سلسلے **تعلق رکھتے ہیں** جب وہ ایک ہی وقت میں ایک جیسا رویہ ظاہر کرتے ہیں، یعنی وہ یا تو ایک ساتھ بڑھتے/گرتے ہیں، یا ایک سلسلہ بڑھتا ہے جب دوسرا گرتا ہے اور اس کے برعکس۔ دوسرے الفاظ میں، دو سلسلوں کے درمیان کچھ تعلق معلوم ہوتا ہے۔ + +> تعلق ضروری نہیں کہ دو سلسلوں کے درمیان سببی تعلق کی نشاندہی کرے؛ کبھی کبھی دونوں متغیرات کسی بیرونی وجہ پر منحصر ہو سکتے ہیں، یا یہ محض اتفاقیہ ہو سکتا ہے کہ دونوں سلسلے تعلق رکھتے ہیں۔ تاہم، مضبوط ریاضیاتی تعلق اس بات کی اچھی نشاندہی ہے کہ دو متغیرات کسی نہ کسی طرح جڑے ہوئے ہیں۔ + +ریاضیاتی طور پر، دو تصادفی متغیرات کے درمیان تعلق ظاہر کرنے والا بنیادی تصور **کوورینس** ہے، جسے اس طرح حساب کیا جاتا ہے: Cov(X,Y) = **E**\[(X-**E**(X))(Y-**E**(Y))\]۔ ہم دونوں متغیرات کے ان کی اوسط قدروں سے انحراف کا حساب لگاتے ہیں، اور پھر ان انحرافات کی پیداوار لیتے ہیں۔ اگر دونوں متغیرات ایک ساتھ انحراف کرتے ہیں، تو پیداوار ہمیشہ ایک مثبت قدر ہوگی، جو مثبت کوورینس میں شامل ہوگی۔ اگر دونوں متغیرات غیر مطابقت سے انحراف کرتے ہیں (یعنی ایک اوسط سے نیچے گرتا ہے جب دوسرا اوسط سے اوپر بڑھتا ہے)، تو ہمیں ہمیشہ منفی نمبر ملیں گے، جو منفی کوورینس میں شامل ہوں گے۔ اگر انحرافات غیر متعلق ہوں، تو وہ تقریباً صفر میں شامل ہوں گے۔ + +کوورینس کی مطلق قدر ہمیں یہ نہیں بتاتی کہ تعلق کتنا بڑا ہے، کیونکہ یہ اصل قدروں کی شدت پر منحصر ہے۔ اسے معمول پر لانے کے لیے، ہم کوورینس کو دونوں متغیرات کے معیاری انحراف سے تقسیم کر سکتے ہیں، تاکہ **تعلق** حاصل ہو۔ اچھی بات یہ ہے کہ تعلق ہمیشہ [-1,1] کی حد میں ہوتا ہے، جہاں 1 قدروں کے درمیان مضبوط مثبت تعلق کی نشاندہی کرتا ہے، -1 - مضبوط منفی تعلق، اور 0 - کوئی تعلق نہیں (متغیرات آزاد ہیں)۔ + +**مثال**: ہم بیس بال کھلاڑیوں کے وزن اور قد کے درمیان تعلق کا حساب لگا سکتے ہیں: +```python +print(np.corrcoef(weights,heights)) +``` +نتیجے کے طور پر، ہمیں **تعلق میٹرکس** اس طرح ملتا ہے: +``` +array([[1. , 0.52959196], + [0.52959196, 1. ]]) +``` + +> تعلق میٹرکس C کسی بھی تعداد کے ان پٹ سلسلوں S1, ..., Sn کے لیے حساب کیا جا سکتا ہے۔ Cij کی قدر Si اور Sj کے درمیان تعلق ہے، اور قطر کے عناصر ہمیشہ 1 ہوتے ہیں (جو Si کی خود تعلق بھی ہے)۔ + +ہمارے معاملے میں، قدر 0.53 اس بات کی نشاندہی کرتی ہے کہ کسی شخص کے وزن اور قد کے درمیان کچھ تعلق ہے۔ ہم ایک قدر کے خلاف دوسرے کی اسکیٹر پلاٹ بھی بنا سکتے ہیں تاکہ تعلق کو بصری طور پر دیکھ سکیں: + +![وزن اور قد کے درمیان تعلق](../../../../translated_images/weight-height-relationship.3f06bde4ca2aba9974182c4ef037ed602acd0fbbbbe2ca91cefd838a9e66bcf9.ur.png) + +> تعلق اور کوورینس کی مزید مثالیں [ساتھ والے نوٹ بک](notebook.ipynb) میں مل سکتی ہیں۔ + +## نتیجہ + +اس سیکشن میں، ہم نے سیکھا: + +* ڈیٹا کی بنیادی شماریاتی خصوصیات، جیسے اوسط، انحراف، موڈ اور کوارٹائلز +* تصادفی متغیرات کی مختلف تقسیم، بشمول نارمل تقسیم +* مختلف خصوصیات کے درمیان تعلق کیسے تلاش کریں +* کچھ مفروضوں کو ثابت کرنے کے لیے ریاضی اور شماریات کے مضبوط آلات کا استعمال کیسے کریں +* دیے گئے ڈیٹا نمونے کے لیے تصادفی متغیر کے اعتماد وقفے کیسے حساب کریں + +جبکہ یہ احتمال اور شماریات کے اندر موجود موضوعات کی مکمل فہرست نہیں ہے، یہ اس کورس میں آپ کو اچھی شروعات دینے کے لیے کافی ہونا چاہیے۔ + +## 🚀 چیلنج + +نوٹ بک میں دیے گئے نمونے کے کوڈ کا استعمال کریں تاکہ دیگر مفروضوں کو ٹیسٹ کریں: +1. فرسٹ بیس مین سیکنڈ بیس مین سے زیادہ عمر کے ہیں۔ +2. فرسٹ بیس مین تھرڈ بیس مین سے زیادہ قد والے ہیں۔ +3. شارٹ اسٹاپ سیکنڈ بیس مین سے زیادہ قد والے ہیں۔ + +## [لیکچر کے بعد کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/7) + +## جائزہ اور خود مطالعہ + +احتمال اور شماریات ایک اتنا وسیع موضوع ہے کہ یہ اپنے کورس کا مستحق ہے۔ اگر آپ نظریہ میں مزید گہرائی میں جانا چاہتے ہیں، تو آپ درج ذیل کتابوں کو پڑھنا جاری رکھ سکتے ہیں: + +1. [کارلوس فرنانڈیز-گرینڈا](https://cims.nyu.edu/~cfgranda/) نیویارک یونیورسٹی سے، کے عظیم لیکچر نوٹس [Probability and Statistics for Data Science](https://cims.nyu.edu/~cfgranda/pages/stuff/probability_stats_for_DS.pdf) (آن لائن دستیاب) +1. [پیٹر اور اینڈریو بروس۔ عملی شماریات برائے ڈیٹا سائنسدان۔](https://www.oreilly.com/library/view/practical-statistics-for/9781491952955/) [[R میں نمونہ کوڈ](https://github.com/andrewgbruce/statistics-for-data-scientists)]۔ +1. [جیمز ڈی. ملر۔ ڈیٹا سائنس کے لیے شماریات](https://www.packtpub.com/product/statistics-for-data-science/9781788290678) [[R میں نمونہ کوڈ](https://github.com/PacktPublishing/Statistics-for-Data-Science)]۔ + +## اسائنمنٹ + +[چھوٹا ذیابیطس مطالعہ](assignment.md) + +## کریڈٹس + +یہ سبق [دمیتری سوشنیکوف](http://soshnikov.com) کے ♥️ کے ساتھ تحریر کیا گیا ہے۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/04-stats-and-probability/assignment.md b/translations/ur/1-Introduction/04-stats-and-probability/assignment.md new file mode 100644 index 00000000..5226beae --- /dev/null +++ b/translations/ur/1-Introduction/04-stats-and-probability/assignment.md @@ -0,0 +1,40 @@ + +# چھوٹا ذیابیطس مطالعہ + +اس اسائنمنٹ میں، ہم ذیابیطس کے مریضوں کے ایک چھوٹے ڈیٹا سیٹ کے ساتھ کام کریں گے جو [یہاں](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html) سے لیا گیا ہے۔ + +| | عمر | جنس | BMI | BP | S1 | S2 | S3 | S4 | S5 | S6 | Y | +|---|-----|-----|-----|----|----|----|----|----|----|----|----| +| 0 | 59 | 2 | 32.1 | 101. | 157 | 93.2 | 38.0 | 4. | 4.8598 | 87 | 151 | +| 1 | 48 | 1 | 21.6 | 87.0 | 183 | 103.2 | 70. | 3. | 3.8918 | 69 | 75 | +| 2 | 72 | 2 | 30.5 | 93.0 | 156 | 93.6 | 41.0 | 4.0 | 4. | 85 | 141 | +| ... | ... | ... | ... | ...| ...| ...| ...| ...| ...| ...| ... | + +## ہدایات + +* [اسائنمنٹ نوٹ بک](assignment.ipynb) کو جیوپیٹر نوٹ بک ماحول میں کھولیں +* نوٹ بک میں درج تمام کام مکمل کریں، یعنی: + * [ ] تمام اقدار کے لیے اوسط اور تغیر کا حساب لگائیں + * [ ] BMI، BP اور Y کے لیے جنس کے لحاظ سے باکس پلاٹس بنائیں + * [ ] عمر، جنس، BMI اور Y متغیرات کی تقسیم کیا ہے؟ + * [ ] مختلف متغیرات اور بیماری کی ترقی (Y) کے درمیان تعلق کا ٹیسٹ کریں + * [ ] اس مفروضے کا ٹیسٹ کریں کہ ذیابیطس کی ترقی کی سطح مردوں اور عورتوں کے درمیان مختلف ہے + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام مطلوبہ کام مکمل، گرافک طور پر دکھائے گئے اور وضاحت کی گئی | زیادہ تر کام مکمل، گراف اور/یا حاصل شدہ اقدار سے وضاحت یا نتائج غائب ہیں | صرف بنیادی کام جیسے اوسط/تغیر کا حساب اور بنیادی پلاٹس مکمل، ڈیٹا سے کوئی نتائج اخذ نہیں کیے گئے + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/1-Introduction/README.md b/translations/ur/1-Introduction/README.md new file mode 100644 index 00000000..284838b8 --- /dev/null +++ b/translations/ur/1-Introduction/README.md @@ -0,0 +1,31 @@ + +# ڈیٹا سائنس کا تعارف + +![عملی ڈیٹا](../../../translated_images/data.48e22bb7617d8d92188afbc4c48effb920ba79f5cebdc0652cd9f34bbbd90c18.ur.jpg) +> تصویر از اسٹیفن ڈاسن، Unsplash پر + +ان اسباق میں، آپ جانیں گے کہ ڈیٹا سائنس کو کیسے بیان کیا جاتا ہے اور ان اخلاقی پہلوؤں کے بارے میں سیکھیں گے جنہیں ایک ڈیٹا سائنسدان کو مدنظر رکھنا چاہیے۔ آپ یہ بھی سیکھیں گے کہ ڈیٹا کو کیسے بیان کیا جاتا ہے اور شماریات اور احتمال کے بارے میں کچھ جانیں گے، جو کہ ڈیٹا سائنس کے بنیادی تعلیمی شعبے ہیں۔ + +### موضوعات + +1. [ڈیٹا سائنس کی تعریف](01-defining-data-science/README.md) +2. [ڈیٹا سائنس کی اخلاقیات](02-ethics/README.md) +3. [ڈیٹا کی تعریف](03-defining-data/README.md) +4. [شماریات اور احتمال کا تعارف](04-stats-and-probability/README.md) + +### کریڈٹس + +یہ اسباق ❤️ کے ساتھ [نیتیا نرسمہن](https://twitter.com/nitya) اور [دیمتری سوشنیکوف](https://twitter.com/shwars) نے لکھے ہیں۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/05-relational-databases/README.md b/translations/ur/2-Working-With-Data/05-relational-databases/README.md new file mode 100644 index 00000000..6c149861 --- /dev/null +++ b/translations/ur/2-Working-With-Data/05-relational-databases/README.md @@ -0,0 +1,195 @@ + +# ڈیٹا کے ساتھ کام کرنا: ریلیشنل ڈیٹا بیسز + +|![ اسکیچ نوٹ از [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/05-RelationalData.png)| +|:---:| +| ڈیٹا کے ساتھ کام کرنا: ریلیشنل ڈیٹا بیسز - _اسکیچ نوٹ از [@nitya](https://twitter.com/nitya)_ | + +امکان ہے کہ آپ نے ماضی میں معلومات ذخیرہ کرنے کے لیے اسپریڈشیٹ کا استعمال کیا ہو۔ آپ کے پاس قطاروں اور کالموں کا ایک سیٹ تھا، جہاں قطاروں میں معلومات (یا ڈیٹا) موجود تھیں، اور کالم معلومات کی وضاحت کرتے تھے (جسے کبھی کبھار میٹا ڈیٹا کہا جاتا ہے)۔ ریلیشنل ڈیٹا بیس اسی بنیادی اصول پر مبنی ہے، جہاں ٹیبلز میں کالمز اور قطاریں ہوتی ہیں، جو آپ کو معلومات کو متعدد ٹیبلز میں تقسیم کرنے کی اجازت دیتی ہیں۔ یہ آپ کو پیچیدہ ڈیٹا کے ساتھ کام کرنے، نقل سے بچنے، اور ڈیٹا کو مختلف طریقوں سے دریافت کرنے میں لچک فراہم کرتا ہے۔ آئیے ریلیشنل ڈیٹا بیس کے تصورات کو دریافت کرتے ہیں۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/8) + +## سب کچھ ٹیبلز سے شروع ہوتا ہے + +ریلیشنل ڈیٹا بیس کی بنیاد ٹیبلز پر ہوتی ہے۔ بالکل اسپریڈشیٹ کی طرح، ایک ٹیبل کالمز اور قطاروں کا مجموعہ ہوتا ہے۔ قطار میں وہ ڈیٹا یا معلومات ہوتی ہیں جن کے ساتھ ہم کام کرنا چاہتے ہیں، جیسے کسی شہر کا نام یا بارش کی مقدار۔ کالم اس ڈیٹا کی وضاحت کرتے ہیں جو وہ ذخیرہ کرتے ہیں۔ + +آئیے اپنی دریافت کا آغاز ایک ٹیبل بنا کر کرتے ہیں جو شہروں کے بارے میں معلومات ذخیرہ کرے۔ ہم ان کے نام اور ملک سے شروعات کر سکتے ہیں۔ آپ اسے درج ذیل ٹیبل میں ذخیرہ کر سکتے ہیں: + +| شہر | ملک | +| -------- | ------------- | +| ٹوکیو | جاپان | +| اٹلانٹا | امریکہ | +| آکلینڈ | نیوزی لینڈ | + +نوٹ کریں کہ **شہر**، **ملک** اور **آبادی** کے کالم نام اس ڈیٹا کی وضاحت کرتے ہیں جو ذخیرہ کیا جا رہا ہے، اور ہر قطار میں ایک شہر کے بارے میں معلومات موجود ہیں۔ + +## ایک ٹیبل کے طریقہ کار کی خامیاں + +امکان ہے کہ اوپر دیا گیا ٹیبل آپ کو کافی مانوس لگ رہا ہو۔ آئیے اپنی بڑھتی ہوئی ڈیٹا بیس میں کچھ اضافی ڈیٹا شامل کرتے ہیں - سالانہ بارش (ملی میٹر میں)۔ ہم 2018، 2019 اور 2020 کے سالوں پر توجہ مرکوز کریں گے۔ اگر ہم اسے ٹوکیو کے لیے شامل کریں، تو یہ کچھ اس طرح نظر آئے گا: + +| شہر | ملک | سال | مقدار | +| ----- | ------- | ---- | ------ | +| ٹوکیو | جاپان | 2020 | 1690 | +| ٹوکیو | جاپان | 2019 | 1874 | +| ٹوکیو | جاپان | 2018 | 1445 | + +آپ ہمارے ٹیبل میں کیا نوٹ کرتے ہیں؟ آپ دیکھ سکتے ہیں کہ ہم شہر اور ملک کا نام بار بار دہرا رہے ہیں۔ یہ کافی زیادہ اسٹوریج لے سکتا ہے، اور یہ غیر ضروری ہے کہ ایک ہی معلومات کی متعدد کاپیاں ہوں۔ آخرکار، ٹوکیو کا صرف ایک ہی نام ہے جو ہمیں دلچسپی دیتا ہے۔ + +ٹھیک ہے، آئیے کچھ اور کوشش کرتے ہیں۔ ہر سال کے لیے نئے کالمز شامل کرتے ہیں: + +| شہر | ملک | 2018 | 2019 | 2020 | +| -------- | ------------- | ---- | ---- | ---- | +| ٹوکیو | جاپان | 1445 | 1874 | 1690 | +| اٹلانٹا | امریکہ | 1779 | 1111 | 1683 | +| آکلینڈ | نیوزی لینڈ | 1386 | 942 | 1176 | + +اگرچہ یہ قطاروں کی نقل سے بچاتا ہے، لیکن یہ کچھ اور چیلنجز پیدا کرتا ہے۔ ہمیں ہر بار ایک نیا سال آنے پر اپنے ٹیبل کی ساخت کو تبدیل کرنا ہوگا۔ مزید یہ کہ، جیسے جیسے ہمارا ڈیٹا بڑھتا ہے، سالوں کو کالمز کے طور پر رکھنا ڈیٹا کو بازیافت کرنے اور اس پر حساب کتاب کرنے کو مزید مشکل بنا دے گا۔ + +اسی لیے ہمیں متعدد ٹیبلز اور تعلقات کی ضرورت ہوتی ہے۔ اپنے ڈیٹا کو تقسیم کرکے ہم نقل سے بچ سکتے ہیں اور اپنے ڈیٹا کے ساتھ کام کرنے میں زیادہ لچک حاصل کر سکتے ہیں۔ + +## تعلقات کے تصورات + +آئیے اپنے ڈیٹا پر واپس آتے ہیں اور طے کرتے ہیں کہ ہم اسے کیسے تقسیم کرنا چاہتے ہیں۔ ہم جانتے ہیں کہ ہم اپنے شہروں کے نام اور ملک کو ذخیرہ کرنا چاہتے ہیں، لہذا یہ شاید ایک ٹیبل میں بہترین کام کرے گا۔ + +| شہر | ملک | +| -------- | ------------- | +| ٹوکیو | جاپان | +| اٹلانٹا | امریکہ | +| آکلینڈ | نیوزی لینڈ | + +لیکن اگلا ٹیبل بنانے سے پہلے، ہمیں یہ معلوم کرنا ہوگا کہ ہر شہر کا حوالہ کیسے دیا جائے۔ ہمیں کسی قسم کے شناخت کنندہ، ID یا (تکنیکی ڈیٹا بیس کی اصطلاح میں) ایک پرائمری کی کی ضرورت ہے۔ پرائمری کی ایک ایسی ویلیو ہے جو ٹیبل میں ایک مخصوص قطار کی شناخت کے لیے استعمال ہوتی ہے۔ اگرچہ یہ خود ایک ویلیو پر مبنی ہو سکتی ہے (مثال کے طور پر ہم شہر کے نام کو استعمال کر سکتے ہیں)، لیکن یہ تقریباً ہمیشہ ایک نمبر یا دوسرا شناخت کنندہ ہونا چاہیے۔ ہم نہیں چاہتے کہ ID کبھی تبدیل ہو، کیونکہ یہ تعلق کو توڑ دے گا۔ زیادہ تر معاملات میں آپ دیکھیں گے کہ پرائمری کی یا ID ایک خودکار طور پر تیار کردہ نمبر ہوگا۔ + +> ✅ پرائمری کی کو اکثر PK کے طور پر مختصر کیا جاتا ہے + +### شہروں کا ٹیبل + +| city_id | شہر | ملک | +| ------- | -------- | ------------- | +| 1 | ٹوکیو | جاپان | +| 2 | اٹلانٹا | امریکہ | +| 3 | آکلینڈ | نیوزی لینڈ | + +> ✅ آپ نوٹ کریں گے کہ ہم اس سبق کے دوران "id" اور "پرائمری کی" کی اصطلاحات کو ایک دوسرے کے ساتھ استعمال کرتے ہیں۔ یہ تصورات ڈیٹا فریمز پر بھی لاگو ہوتے ہیں، جنہیں آپ بعد میں دریافت کریں گے۔ ڈیٹا فریمز "پرائمری کی" کی اصطلاح استعمال نہیں کرتے، تاہم آپ دیکھیں گے کہ وہ تقریباً اسی طرح کام کرتے ہیں۔ + +جب ہمارا شہروں کا ٹیبل تیار ہو گیا، تو آئیے بارش کا ڈیٹا ذخیرہ کریں۔ مکمل معلومات کو دہرانے کے بجائے، ہم ID کا استعمال کر سکتے ہیں۔ ہمیں یہ بھی یقینی بنانا چاہیے کہ نئے بنائے گئے ٹیبل میں بھی ایک *id* کالم ہو، کیونکہ تمام ٹیبلز میں ایک ID یا پرائمری کی ہونی چاہیے۔ + +### بارش کا ٹیبل + +| rainfall_id | city_id | سال | مقدار | +| ----------- | ------- | ---- | ------ | +| 1 | 1 | 2018 | 1445 | +| 2 | 1 | 2019 | 1874 | +| 3 | 1 | 2020 | 1690 | +| 4 | 2 | 2018 | 1779 | +| 5 | 2 | 2019 | 1111 | +| 6 | 2 | 2020 | 1683 | +| 7 | 3 | 2018 | 1386 | +| 8 | 3 | 2019 | 942 | +| 9 | 3 | 2020 | 1176 | + +نوٹ کریں کہ **city_id** کالم نئے بنائے گئے **rainfall** ٹیبل کے اندر موجود ہے۔ یہ کالم ان IDs کی قدریں رکھتا ہے جو **cities** ٹیبل میں موجود ہیں۔ تکنیکی ریلیشنل ڈیٹا کی اصطلاح میں، اسے **foreign key** کہا جاتا ہے؛ یہ کسی دوسرے ٹیبل سے پرائمری کی ہے۔ آپ اسے ایک حوالہ یا پوائنٹر کے طور پر سوچ سکتے ہیں۔ **city_id** 1 ٹوکیو کا حوالہ دیتا ہے۔ + +> [!NOTE] فارن کی کو اکثر FK کے طور پر مختصر کیا جاتا ہے + +## ڈیٹا بازیافت کرنا + +جب ہمارا ڈیٹا دو ٹیبلز میں تقسیم ہو گیا ہے، تو آپ سوچ رہے ہوں گے کہ ہم اسے کیسے بازیافت کریں۔ اگر ہم MySQL، SQL Server یا Oracle جیسے ریلیشنل ڈیٹا بیس کا استعمال کر رہے ہیں، تو ہم ایک زبان استعمال کر سکتے ہیں جسے Structured Query Language یا SQL کہا جاتا ہے۔ SQL (کبھی کبھار "سیکوئل" کے طور پر بولا جاتا ہے) ایک معیاری زبان ہے جو ریلیشنل ڈیٹا بیس میں ڈیٹا کو بازیافت اور تبدیل کرنے کے لیے استعمال کی جاتی ہے۔ + +ڈیٹا بازیافت کرنے کے لیے آپ `SELECT` کمانڈ استعمال کرتے ہیں۔ بنیادی طور پر، آپ ان کالمز کو **منتخب** کرتے ہیں جنہیں آپ دیکھنا چاہتے ہیں، اور وہ ٹیبل **سے** جہاں وہ موجود ہیں۔ اگر آپ صرف شہروں کے نام دکھانا چاہتے ہیں، تو آپ درج ذیل استعمال کر سکتے ہیں: + +```sql +SELECT city +FROM cities; + +-- Output: +-- Tokyo +-- Atlanta +-- Auckland +``` + +`SELECT` وہ جگہ ہے جہاں آپ کالمز کی فہرست دیتے ہیں، اور `FROM` وہ جگہ ہے جہاں آپ ٹیبلز کی فہرست دیتے ہیں۔ + +> [NOTE] SQL کی سنٹیکس کیس انسینسیٹو ہے، یعنی `select` اور `SELECT` ایک ہی چیز ہیں۔ تاہم، آپ جس قسم کے ڈیٹا بیس کا استعمال کر رہے ہیں اس پر منحصر ہے، کالمز اور ٹیبلز کیس سینسیٹو ہو سکتے ہیں۔ نتیجتاً، یہ ایک بہترین عمل ہے کہ پروگرامنگ میں ہر چیز کو کیس سینسیٹو سمجھا جائے۔ SQL کوئریز لکھتے وقت عام روایت یہ ہے کہ کی ورڈز کو تمام بڑے حروف میں لکھا جائے۔ + +اوپر دی گئی کوئری تمام شہروں کو دکھائے گی۔ آئیے تصور کریں کہ ہم صرف نیوزی لینڈ کے شہروں کو دکھانا چاہتے ہیں۔ ہمیں کسی قسم کے فلٹر کی ضرورت ہے۔ SQL میں اس کے لیے کی ورڈ `WHERE` ہے، یا "جہاں کچھ سچ ہو"۔ + +```sql +SELECT city +FROM cities +WHERE country = 'New Zealand'; + +-- Output: +-- Auckland +``` + +## ڈیٹا کو جوڑنا + +اب تک ہم نے ایک ہی ٹیبل سے ڈیٹا بازیافت کیا ہے۔ اب ہم **cities** اور **rainfall** دونوں سے ڈیٹا کو اکٹھا کرنا چاہتے ہیں۔ یہ انہیں *جوڑ* کر کیا جاتا ہے۔ آپ مؤثر طریقے سے دو ٹیبلز کے درمیان ایک سیون بنائیں گے، اور ہر ٹیبل کے ایک کالم سے قدروں کو ملائیں گے۔ + +ہمارے مثال میں، ہم **rainfall** کے **city_id** کالم کو **cities** کے **city_id** کالم کے ساتھ ملائیں گے۔ یہ بارش کی مقدار کو اس کے متعلقہ شہر کے ساتھ ملائے گا۔ ہم جو جوائن کریں گے وہ ایک *اندرونی* جوائن کہلاتا ہے، جس کا مطلب ہے کہ اگر کسی قطار کا دوسرے ٹیبل سے کوئی میل نہ ہو تو وہ ظاہر نہیں ہوگی۔ ہمارے معاملے میں ہر شہر کی بارش موجود ہے، لہذا سب کچھ ظاہر ہوگا۔ + +آئیے 2019 کے لیے تمام شہروں کی بارش بازیافت کریں۔ + +ہم یہ مرحلہ وار کریں گے۔ پہلا مرحلہ ڈیٹا کو جوڑنا ہے، ان کالمز کو ظاہر کرکے جنہیں ہم سیون کے لیے استعمال کرنا چاہتے ہیں - جیسا کہ پہلے نمایاں کیا گیا **city_id**۔ + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +``` + +ہم نے ان دو کالمز کو نمایاں کیا جنہیں ہم چاہتے ہیں، اور یہ حقیقت کہ ہم ٹیبلز کو **city_id** کے ذریعے جوڑنا چاہتے ہیں۔ اب ہم `WHERE` اسٹیٹمنٹ شامل کر سکتے ہیں تاکہ صرف 2019 کا سال فلٹر ہو۔ + +```sql +SELECT cities.city + rainfall.amount +FROM cities + INNER JOIN rainfall ON cities.city_id = rainfall.city_id +WHERE rainfall.year = 2019 + +-- Output + +-- city | amount +-- -------- | ------ +-- Tokyo | 1874 +-- Atlanta | 1111 +-- Auckland | 942 +``` + +## خلاصہ + +ریلیشنل ڈیٹا بیسز کا مرکز معلومات کو متعدد ٹیبلز میں تقسیم کرنا ہے، جسے پھر ڈسپلے اور تجزیے کے لیے دوبارہ اکٹھا کیا جاتا ہے۔ یہ حساب کتاب کرنے اور ڈیٹا کو مختلف طریقوں سے جوڑنے میں اعلیٰ درجے کی لچک فراہم کرتا ہے۔ آپ نے ریلیشنل ڈیٹا بیس کے بنیادی تصورات دیکھے، اور دو ٹیبلز کے درمیان جوائن کرنے کا طریقہ سیکھا۔ + +## 🚀 چیلنج + +انٹرنیٹ پر متعدد ریلیشنل ڈیٹا بیسز دستیاب ہیں۔ آپ ان ڈیٹا کو دریافت کر سکتے ہیں جو آپ نے اوپر سیکھی گئی مہارتوں کا استعمال کرتے ہوئے۔ + +## لیکچر کے بعد کا کوئز + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/9) + +## جائزہ اور خود مطالعہ + +[Microsoft Learn](https://docs.microsoft.com/learn?WT.mc_id=academic-77958-bethanycheum) پر کئی وسائل دستیاب ہیں تاکہ آپ SQL اور ریلیشنل ڈیٹا بیس کے تصورات کی مزید دریافت کر سکیں۔ + +- [ریلیشنل ڈیٹا کے تصورات کی وضاحت کریں](https://docs.microsoft.com//learn/modules/describe-concepts-of-relational-data?WT.mc_id=academic-77958-bethanycheum) +- [Transact-SQL کے ساتھ کوئرینگ شروع کریں](https://docs.microsoft.com//learn/paths/get-started-querying-with-transact-sql?WT.mc_id=academic-77958-bethanycheum) (Transact-SQL SQL کا ایک ورژن ہے) +- [Microsoft Learn پر SQL مواد](https://docs.microsoft.com/learn/browse/?products=azure-sql-database%2Csql-server&expanded=azure&WT.mc_id=academic-77958-bethanycheum) + +## اسائنمنٹ + +[اسائنمنٹ کا عنوان](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/05-relational-databases/assignment.md b/translations/ur/2-Working-With-Data/05-relational-databases/assignment.md new file mode 100644 index 00000000..104d28cd --- /dev/null +++ b/translations/ur/2-Working-With-Data/05-relational-databases/assignment.md @@ -0,0 +1,73 @@ + +# ہوائی اڈوں کے ڈیٹا کو ظاہر کرنا + +آپ کو ایک [ڈیٹا بیس](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) فراہم کیا گیا ہے جو [SQLite](https://sqlite.org/index.html) پر مبنی ہے اور اس میں ہوائی اڈوں کی معلومات شامل ہیں۔ اس کا اسکیما نیچے دکھایا گیا ہے۔ آپ [Visual Studio Code](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) میں [SQLite extension](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) کا استعمال کرتے ہوئے مختلف شہروں کے ہوائی اڈوں کی معلومات ظاہر کریں گے۔ + +## ہدایات + +اس اسائنمنٹ کو شروع کرنے کے لیے، آپ کو چند اقدامات کرنے ہوں گے۔ آپ کو کچھ ٹولز انسٹال کرنے اور نمونہ ڈیٹا بیس ڈاؤن لوڈ کرنے کی ضرورت ہوگی۔ + +### اپنے سسٹم کو سیٹ اپ کریں + +آپ Visual Studio Code اور SQLite extension کا استعمال کرتے ہوئے ڈیٹا بیس کے ساتھ تعامل کر سکتے ہیں۔ + +1. [code.visualstudio.com](https://code.visualstudio.com?WT.mc_id=academic-77958-bethanycheum) پر جائیں اور Visual Studio Code انسٹال کرنے کے لیے ہدایات پر عمل کریں۔ +1. [SQLite extension](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) کو انسٹال کریں جیسا کہ مارکیٹ پلیس صفحے پر ہدایت دی گئی ہے۔ + +### ڈیٹا بیس ڈاؤن لوڈ کریں اور کھولیں + +اب آپ ڈیٹا بیس کو ڈاؤن لوڈ کریں گے اور کھولیں گے۔ + +1. [GitHub سے ڈیٹا بیس فائل](https://raw.githubusercontent.com/Microsoft/Data-Science-For-Beginners/main/2-Working-With-Data/05-relational-databases/airports.db) ڈاؤن لوڈ کریں اور اسے کسی ڈائریکٹری میں محفوظ کریں۔ +1. Visual Studio Code کھولیں۔ +1. SQLite extension میں ڈیٹا بیس کھولنے کے لیے **Ctl-Shift-P** (یا میک پر **Cmd-Shift-P**) دبائیں اور `SQLite: Open database` ٹائپ کریں۔ +1. **Choose database from file** منتخب کریں اور وہ **airports.db** فائل کھولیں جو آپ نے پہلے ڈاؤن لوڈ کی تھی۔ +1. ڈیٹا بیس کھولنے کے بعد (آپ کو اسکرین پر کوئی اپ ڈیٹ نظر نہیں آئے گا)، ایک نیا کوئری ونڈو بنانے کے لیے **Ctl-Shift-P** (یا میک پر **Cmd-Shift-P**) دبائیں اور `SQLite: New query` ٹائپ کریں۔ + +ایک بار کھلنے کے بعد، نیا کوئری ونڈو ڈیٹا بیس کے خلاف SQL اسٹیٹمنٹس چلانے کے لیے استعمال کیا جا سکتا ہے۔ آپ **Ctl-Shift-Q** (یا میک پر **Cmd-Shift-Q**) کمانڈ کا استعمال کرتے ہوئے ڈیٹا بیس کے خلاف کوئریز چلا سکتے ہیں۔ + +> [!NOTE] SQLite extension کے بارے میں مزید معلومات کے لیے، آپ [دستاویزات](https://marketplace.visualstudio.com/items?itemName=alexcvzz.vscode-sqlite&WT.mc_id=academic-77958-bethanycheum) کا حوالہ دے سکتے ہیں۔ + +## ڈیٹا بیس اسکیما + +ڈیٹا بیس کا اسکیما اس کی ٹیبل ڈیزائن اور ساخت ہے۔ **airports** ڈیٹا بیس میں دو ٹیبلز ہیں، `cities`، جس میں برطانیہ اور آئرلینڈ کے شہروں کی فہرست شامل ہے، اور `airports`، جس میں تمام ہوائی اڈوں کی فہرست شامل ہے۔ چونکہ کچھ شہروں میں ایک سے زیادہ ہوائی اڈے ہو سکتے ہیں، اس معلومات کو محفوظ کرنے کے لیے دو ٹیبلز بنائی گئیں۔ اس مشق میں آپ مختلف شہروں کے لیے معلومات ظاہر کرنے کے لیے جوائنز کا استعمال کریں گے۔ + +| Cities | +| ---------------- | +| id (PK, integer) | +| city (text) | +| country (text) | + +| Airports | +| -------------------------------- | +| id (PK, integer) | +| name (text) | +| code (text) | +| city_id (FK to id in **Cities**) | + +## اسائنمنٹ + +ایسی کوئریز بنائیں جو درج ذیل معلومات واپس کریں: + +1. `Cities` ٹیبل میں تمام شہروں کے نام +1. `Cities` ٹیبل میں آئرلینڈ کے تمام شہر +1. تمام ہوائی اڈوں کے نام ان کے شہر اور ملک کے ساتھ +1. لندن، برطانیہ کے تمام ہوائی اڈے + +## روبریک + +| مثالی | مناسب | بہتری کی ضرورت | +| ----------- | ----------- | --------------- | + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ماخذ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/06-non-relational/README.md b/translations/ur/2-Working-With-Data/06-non-relational/README.md new file mode 100644 index 00000000..50ddac46 --- /dev/null +++ b/translations/ur/2-Working-With-Data/06-non-relational/README.md @@ -0,0 +1,158 @@ + +# ڈیٹا کے ساتھ کام کرنا: غیر تعلقاتی ڈیٹا + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/06-NoSQL.png)| +|:---:| +|NoSQL ڈیٹا کے ساتھ کام کرنا - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/10) + +ڈیٹا صرف تعلقاتی ڈیٹا بیس تک محدود نہیں ہے۔ یہ سبق غیر تعلقاتی ڈیٹا پر مرکوز ہے اور اسپریڈشیٹس اور NoSQL کی بنیادی باتوں کا احاطہ کرے گا۔ + +## اسپریڈشیٹس + +اسپریڈشیٹس ڈیٹا کو محفوظ کرنے اور اس کا جائزہ لینے کا ایک مقبول طریقہ ہیں کیونکہ اسے ترتیب دینے اور شروع کرنے میں کم محنت درکار ہوتی ہے۔ اس سبق میں آپ اسپریڈشیٹ کے بنیادی اجزاء، فارمولے اور فنکشنز کے بارے میں سیکھیں گے۔ مثالیں مائیکروسافٹ ایکسل کے ساتھ بیان کی جائیں گی، لیکن زیادہ تر حصے اور موضوعات دیگر اسپریڈشیٹ سافٹ ویئر کے ساتھ مشابہ ہوں گے۔ + +![ایک خالی مائیکروسافٹ ایکسل ورک بک جس میں دو ورک شیٹس ہیں](../../../../translated_images/parts-of-spreadsheet.120711c82aa18a45c3e62a491a15bba0a31ab0e9db407ec022702fed8ffd89bf.ur.png) + +اسپریڈشیٹ ایک فائل ہوتی ہے جو کمپیوٹر، ڈیوائس، یا کلاؤڈ بیسڈ فائل سسٹم میں دستیاب ہوتی ہے۔ سافٹ ویئر خود براؤزر بیسڈ ہو سکتا ہے یا ایک ایپلیکیشن جو کمپیوٹر پر انسٹال کی جاتی ہے یا ایپ کے طور پر ڈاؤن لوڈ کی جاتی ہے۔ ایکسل میں ان فائلوں کو **ورک بکس** کہا جاتا ہے، اور اس سبق کے باقی حصے میں یہی اصطلاح استعمال کی جائے گی۔ + +ایک ورک بک میں ایک یا زیادہ **ورک شیٹس** ہوتی ہیں، جنہیں ٹیبز کے ذریعے لیبل کیا جاتا ہے۔ ہر ورک شیٹ میں مستطیلیں ہوتی ہیں جنہیں **سیلز** کہا جاتا ہے، جو اصل ڈیٹا پر مشتمل ہوتی ہیں۔ ایک سیل قطار اور کالم کے سنگم پر ہوتا ہے، جہاں کالمز کو حروف تہجی کے حروف سے اور قطاروں کو عددی طور پر لیبل کیا جاتا ہے۔ کچھ اسپریڈشیٹس میں پہلے چند قطاروں میں ہیڈرز ہوتے ہیں جو سیل میں موجود ڈیٹا کو بیان کرتے ہیں۔ + +ایکسل ورک بک کے ان بنیادی عناصر کے ساتھ، ہم [مائیکروسافٹ ٹیمپلیٹس](https://templates.office.com/) سے ایک انوینٹری پر مبنی مثال استعمال کریں گے تاکہ اسپریڈشیٹ کے کچھ اضافی حصوں کا جائزہ لیا جا سکے۔ + +### انوینٹری کا انتظام + +"InventoryExample" نامی اسپریڈشیٹ فائل انوینٹری میں موجود اشیاء کی ایک فارمیٹڈ اسپریڈشیٹ ہے جس میں تین ورک شیٹس ہیں، جن کے ٹیبز "Inventory List"، "Inventory Pick List" اور "Bin Lookup" کے طور پر لیبل کیے گئے ہیں۔ انوینٹری لسٹ ورک شیٹ کی چوتھی قطار ہیڈر ہے، جو ہیڈر کالم میں ہر سیل کی قدر کو بیان کرتی ہے۔ + +![مائیکروسافٹ ایکسل میں انوینٹری لسٹ کی ایک مثال سے ایک نمایاں فارمولہ](../../../../translated_images/formula-excel.ad1068c220892f5ead570d12f2394897961d31a5043a1dd4e6fc5d7690c7a14e.ur.png) + +ایسے مواقع ہوتے ہیں جب ایک سیل اپنی قدر پیدا کرنے کے لیے دیگر سیلز کی قدروں پر منحصر ہوتا ہے۔ انوینٹری لسٹ اسپریڈشیٹ اپنی انوینٹری میں موجود ہر آئٹم کی لاگت کا حساب رکھتی ہے، لیکن اگر ہمیں انوینٹری میں موجود ہر چیز کی کل قیمت جاننے کی ضرورت ہو تو کیا ہوگا؟ [**فارمولے**](https://support.microsoft.com/en-us/office/overview-of-formulas-34519a4e-1e8d-4f4b-84d4-d642c4f63263) سیل ڈیٹا پر کارروائی کرتے ہیں اور اس مثال میں انوینٹری کی لاگت کا حساب لگانے کے لیے استعمال کیے جاتے ہیں۔ اس اسپریڈشیٹ نے انوینٹری ویلیو کالم میں ایک فارمولہ استعمال کیا ہے تاکہ مقدار (QTY ہیڈر کے تحت) اور لاگت (COST ہیڈر کے تحت) کو ضرب دے کر ہر آئٹم کی قیمت کا حساب لگایا جا سکے۔ کسی سیل پر ڈبل کلک کرنے یا اسے نمایاں کرنے سے فارمولہ ظاہر ہوگا۔ آپ دیکھیں گے کہ فارمولے ایک مساوات کے نشان (=) سے شروع ہوتے ہیں، اس کے بعد حساب یا آپریشن ہوتا ہے۔ + +![مائیکروسافٹ ایکسل میں انوینٹری لسٹ کی ایک مثال سے ایک نمایاں فنکشن](../../../../translated_images/function-excel.be2ae4feddc10ca089f3d4363040d93b7fd046c8d4f83ba975ec46483ee99895.ur.png) + +ہم انوینٹری ویلیو کی تمام قدروں کو شامل کرنے کے لیے ایک اور فارمولہ استعمال کر سکتے ہیں تاکہ اس کی کل قیمت حاصل کی جا سکے۔ یہ ہر سیل کو شامل کرکے حساب کیا جا سکتا ہے، لیکن یہ ایک تھکا دینے والا کام ہو سکتا ہے۔ ایکسل میں [**فنکشنز**](https://support.microsoft.com/en-us/office/sum-function-043e1c7d-7726-4e80-8f32-07b23e057f89) یا پہلے سے طے شدہ فارمولے موجود ہیں جو سیل قدروں پر حساب لگانے کے لیے استعمال کیے جاتے ہیں۔ فنکشنز کو دلائل (arguments) کی ضرورت ہوتی ہے، جو حساب لگانے کے لیے درکار قدریں ہوتی ہیں۔ جب فنکشنز کو ایک سے زیادہ دلائل کی ضرورت ہوتی ہے، تو انہیں ایک خاص ترتیب میں درج کرنا ضروری ہوتا ہے ورنہ فنکشن صحیح قدر کا حساب نہیں لگا سکتا۔ اس مثال میں SUM فنکشن استعمال کیا گیا ہے، اور انوینٹری ویلیو کی قدروں کو دلیل کے طور پر استعمال کیا گیا ہے تاکہ کل قیمت کو B3 (تیسری قطار، کالم B) میں درج کیا جا سکے۔ + +## NoSQL + +NoSQL ایک چھتری اصطلاح ہے جو غیر تعلقاتی ڈیٹا کو ذخیرہ کرنے کے مختلف طریقوں کے لیے استعمال ہوتی ہے اور اسے "non-SQL"، "non-relational" یا "not only SQL" کے طور پر سمجھا جا سکتا ہے۔ اس قسم کے ڈیٹا بیس سسٹمز کو چار اقسام میں تقسیم کیا جا سکتا ہے۔ + +![ایک کلیدی-قدر ڈیٹا اسٹور کی گرافیکل نمائندگی، جس میں 4 منفرد عددی کلیدیں 4 مختلف قدروں کے ساتھ منسلک ہیں](../../../../translated_images/kv-db.e8f2b75686bbdfcba0c827b9272c10ae0821611ea0fe98429b9d13194383afa6.ur.png) +> ماخذ: [Michał Białecki Blog](https://www.michalbialecki.com/2018/03/18/azure-cosmos-db-key-value-database-cloud/) + +[کلیدی-قدر](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#keyvalue-data-stores) ڈیٹا بیسز منفرد کلیدوں کو قدروں کے ساتھ جوڑتے ہیں، جو ایک منفرد شناخت کنندہ ہوتا ہے۔ یہ جوڑے [ہیش ٹیبل](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/) کے ذریعے محفوظ کیے جاتے ہیں، جس میں ایک مناسب ہیشنگ فنکشن استعمال ہوتا ہے۔ + +![ایک گراف ڈیٹا اسٹور کی گرافیکل نمائندگی، جو لوگوں، ان کی دلچسپیوں اور مقامات کے درمیان تعلقات کو ظاہر کرتی ہے](../../../../translated_images/graph-db.d13629152f79a9dac895b20fa7d841d4d4d6f6008b1382227c3bbd200fd4cfa1.ur.png) +> ماخذ: [Microsoft](https://docs.microsoft.com/en-us/azure/cosmos-db/graph/graph-introduction#graph-database-by-example) + +[گراف](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#graph-data-stores) ڈیٹا بیسز ڈیٹا میں تعلقات کو بیان کرتے ہیں اور نوڈز اور ایجز کے مجموعے کے طور پر پیش کیے جاتے ہیں۔ نوڈ ایک ہستی کی نمائندگی کرتا ہے، جیسے کہ ایک طالب علم یا بینک اسٹیٹمنٹ۔ ایجز دو ہستیوں کے درمیان تعلق کو ظاہر کرتے ہیں۔ ہر نوڈ اور ایج میں اضافی معلومات فراہم کرنے کے لیے خصوصیات ہوتی ہیں۔ + +![ایک کالمی ڈیٹا اسٹور کی گرافیکل نمائندگی، جس میں ایک کسٹمر ڈیٹا بیس دو کالم خاندانوں "Identity" اور "Contact Info" کے ساتھ دکھایا گیا ہے](../../../../translated_images/columnar-db.ffcfe73c3e9063a8c8f93f8ace85e1200863584b1e324eb5159d8ca10f62ec04.ur.png) + +[کالمی](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#columnar-data-stores) ڈیٹا اسٹورز ڈیٹا کو کالمز اور قطاروں میں منظم کرتے ہیں، جیسے تعلقاتی ڈیٹا ڈھانچہ، لیکن ہر کالم کو کالم خاندانوں میں تقسیم کیا جاتا ہے، جہاں ایک کالم کے تحت تمام ڈیٹا متعلقہ ہوتا ہے اور ایک یونٹ میں بازیافت اور تبدیل کیا جا سکتا ہے۔ + +### Azure Cosmos DB کے ساتھ دستاویزی ڈیٹا اسٹورز + +[دستاویزی](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data#document-data-stores) ڈیٹا اسٹورز کلیدی-قدر ڈیٹا اسٹور کے تصور پر مبنی ہوتے ہیں اور فیلڈز اور اشیاء کی ایک سیریز پر مشتمل ہوتے ہیں۔ اس سیکشن میں Cosmos DB ایمولیٹر کے ساتھ دستاویزی ڈیٹا بیسز کا جائزہ لیا جائے گا۔ + +Cosmos DB ڈیٹا بیس "Not Only SQL" کی تعریف پر پورا اترتا ہے، جہاں Cosmos DB کا دستاویزی ڈیٹا بیس SQL پر انحصار کرتا ہے تاکہ ڈیٹا کو کوئری کیا جا سکے۔ [پچھلے سبق](../05-relational-databases/README.md) میں SQL کی بنیادی باتوں کا احاطہ کیا گیا ہے، اور ہم یہاں دستاویزی ڈیٹا بیس پر کچھ وہی کوئریز لاگو کر سکیں گے۔ ہم Cosmos DB ایمولیٹر استعمال کریں گے، جو ہمیں کمپیوٹر پر مقامی طور پر ایک دستاویزی ڈیٹا بیس بنانے اور دریافت کرنے کی اجازت دیتا ہے۔ ایمولیٹر کے بارے میں مزید پڑھیں [یہاں](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21)۔ + +ایک دستاویز فیلڈز اور اشیاء کی قدروں کا مجموعہ ہوتی ہے، جہاں فیلڈز اس بات کی وضاحت کرتے ہیں کہ اشیاء کی قدریں کیا ظاہر کرتی ہیں۔ نیچے ایک دستاویز کی مثال دی گئی ہے۔ + +```json +{ + "firstname": "Eva", + "age": 44, + "id": "8c74a315-aebf-4a16-bb38-2430a9896ce5", + "_rid": "bHwDAPQz8s0BAAAAAAAAAA==", + "_self": "dbs/bHwDAA==/colls/bHwDAPQz8s0=/docs/bHwDAPQz8s0BAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f95-010a691e01d7\"", + "_attachments": "attachments/", + "_ts": 1630544034 +} +``` + +اس دستاویز میں دلچسپی کے فیلڈز یہ ہیں: `firstname`, `id`, اور `age`۔ باقی فیلڈز، جن میں انڈر اسکورز ہیں، Cosmos DB نے خودکار طور پر تیار کیے ہیں۔ + +#### Cosmos DB ایمولیٹر کے ساتھ ڈیٹا کا جائزہ لینا + +آپ ایمولیٹر کو [ونڈوز کے لیے یہاں](https://aka.ms/cosmosdb-emulator) ڈاؤن لوڈ اور انسٹال کر سکتے ہیں۔ macOS اور Linux پر ایمولیٹر چلانے کے اختیارات کے لیے اس [دستاویز](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=ssl-netstd21#run-on-linux-macos) کا حوالہ دیں۔ + +ایمولیٹر ایک براؤزر ونڈو لانچ کرتا ہے، جہاں ایکسپلورر ویو آپ کو دستاویزات کا جائزہ لینے کی اجازت دیتا ہے۔ + +![Cosmos DB ایمولیٹر کا ایکسپلورر ویو](../../../../translated_images/cosmosdb-emulator-explorer.a1c80b1347206fe2f30f88fc123821636587d04fc5a56a9eb350c7da6b31f361.ur.png) + +اگر آپ ساتھ ساتھ چل رہے ہیں، تو "Start with Sample" پر کلک کریں تاکہ ایک نمونہ ڈیٹا بیس جسے SampleDB کہا جاتا ہے، تیار کیا جا سکے۔ اگر آپ SampleDB کو بڑھائیں تو آپ کو ایک کنٹینر `Persons` کے نام سے ملے گا۔ ایک کنٹینر اشیاء کے مجموعے کو رکھتا ہے، جو کنٹینر کے اندر موجود دستاویزات ہیں۔ آپ `Items` کے تحت چار انفرادی دستاویزات کا جائزہ لے سکتے ہیں۔ + +![Cosmos DB ایمولیٹر میں نمونہ ڈیٹا کا جائزہ لینا](../../../../translated_images/cosmosdb-emulator-persons.bf640586a7077c8985dfd3071946465c8e074c722c7c202d6d714de99a93b90a.ur.png) + +#### Cosmos DB ایمولیٹر کے ساتھ دستاویزی ڈیٹا پر کوئری کرنا + +ہم نمونہ ڈیٹا پر کوئری بھی چلا سکتے ہیں۔ نیا SQL کوئری بٹن (بائیں سے دوسرا بٹن) پر کلک کریں۔ + +`SELECT * FROM c` کنٹینر میں موجود تمام دستاویزات کو واپس کرتا ہے۔ آئیے ایک where clause شامل کریں اور ان تمام افراد کو تلاش کریں جن کی عمر 40 سے کم ہے۔ + +`SELECT * FROM c where c.age < 40` + +![Cosmos DB ایمولیٹر میں نمونہ ڈیٹا پر SELECT کوئری چلانا تاکہ وہ دستاویزات تلاش کی جا سکیں جن کی عمر کا فیلڈ 40 سے کم ہے](../../../../translated_images/cosmosdb-emulator-persons-query.6905ebb497e3cd047cd96e55a0a03f69ce1b91b2b3d8c147e617b746b22b7e33.ur.png) + +کوئری دو دستاویزات واپس کرتی ہے، نوٹ کریں کہ ہر دستاویز کے لیے عمر کی قدر 40 سے کم ہے۔ + +#### JSON اور دستاویزات + +اگر آپ جاوا اسکرپٹ آبجیکٹ نوٹیشن (JSON) سے واقف ہیں تو آپ دیکھیں گے کہ دستاویزات JSON سے مشابہت رکھتی ہیں۔ اس ڈائریکٹری میں `PersonsData.json` نامی ایک فائل موجود ہے جسے آپ ایمولیٹر میں `Persons` کنٹینر میں اپ لوڈ کر سکتے ہیں، `Upload Item` بٹن کے ذریعے۔ + +زیادہ تر مواقع پر، APIs جو JSON ڈیٹا واپس کرتے ہیں، انہیں براہ راست دستاویزی ڈیٹا بیسز میں منتقل اور محفوظ کیا جا سکتا ہے۔ نیچے ایک اور دستاویز ہے، یہ مائیکروسافٹ کے ٹویٹر اکاؤنٹ سے ٹویٹس کی نمائندگی کرتی ہے، جو ٹویٹر API کا استعمال کرتے ہوئے حاصل کی گئی اور پھر Cosmos DB میں شامل کی گئی۔ + +```json +{ + "created_at": "2021-08-31T19:03:01.000Z", + "id": "1432780985872142341", + "text": "Blank slate. Like this tweet if you’ve ever painted in Microsoft Paint before. https://t.co/cFeEs8eOPK", + "_rid": "dhAmAIUsA4oHAAAAAAAAAA==", + "_self": "dbs/dhAmAA==/colls/dhAmAIUsA4o=/docs/dhAmAIUsA4oHAAAAAAAAAA==/", + "_etag": "\"00000000-0000-0000-9f84-a0958ad901d7\"", + "_attachments": "attachments/", + "_ts": 1630537000 +``` + +اس دستاویز میں دلچسپی کے فیلڈز یہ ہیں: `created_at`, `id`, اور `text`۔ + +## 🚀 چیلنج + +ایک `TwitterData.json` فائل موجود ہے جسے آپ SampleDB ڈیٹا بیس میں اپ لوڈ کر سکتے ہیں۔ تجویز کی جاتی ہے کہ آپ اسے ایک علیحدہ کنٹینر میں شامل کریں۔ یہ درج ذیل طریقے سے کیا جا سکتا ہے: + +1. اوپر دائیں جانب نیا کنٹینر بٹن پر کلک کریں +1. موجودہ ڈیٹا بیس (SampleDB) کو منتخب کریں اور کنٹینر کے لیے ایک id بنائیں +1. پارٹیشن کلید کو `/id` پر سیٹ کریں +1. OK پر کلک کریں (آپ اس ویو میں باقی معلومات کو نظر انداز کر سکتے ہیں کیونکہ یہ ایک چھوٹا ڈیٹا سیٹ ہے جو آپ کے کمپیوٹر پر مقامی طور پر چل رہا ہے) +1. اپنے نئے کنٹینر کو کھولیں اور `Upload Item` بٹن کے ذریعے ٹویٹر ڈیٹا فائل اپ لوڈ کریں + +کچھ SELECT کوئریز چلانے کی کوشش کریں تاکہ وہ دستاویزات تلاش کی جا سکیں جن کے text فیلڈ میں "Microsoft" موجود ہو۔ اشارہ: [LIKE کلیدی لفظ](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/sql-query-keywords#using-like-with-the--wildcard-character) استعمال کرنے کی کوشش کریں۔ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/11) + +## جائزہ اور خود مطالعہ + +- اس اسپریڈشیٹ میں کچھ اضافی فارمیٹنگ اور خصوصیات شامل ہیں جن کا اس سبق میں احاطہ نہیں کیا گیا۔ اگر آپ مزید سیکھنے میں دلچسپی رکھتے ہیں تو مائیکروسافٹ کے پاس ایک [وسیع لائبریری](https://support.microsoft.com/excel) ہے جس میں ایکسل پر دستاویزات اور ویڈیوز شامل ہیں۔ + +- اس آرکیٹیکچرل دستاویز میں غیر تعلقاتی ڈیٹا کی مختلف اقسام کی خصوصیات کی تفصیلات دی گئی ہیں: [غیر تعلقاتی ڈیٹا اور NoSQL](https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data) + +- Cosmos DB ایک کلاؤڈ بیسڈ غیر تعلقاتی ڈیٹا بیس ہے جو اس سبق میں ذکر کردہ مختلف NoSQL اقسام کو بھی محفوظ کر سکتا ہے۔ ان اقسام کے بارے میں مزید جاننے کے لیے اس [Cosmos DB Microsoft Learn Module](https://docs.microsoft.com/en-us/learn/paths/work-with-nosql-data-in-azure-cosmos-db/) کو دیکھیں۔ + +## اسائنمنٹ + +[Soda Profits](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/06-non-relational/assignment.md b/translations/ur/2-Working-With-Data/06-non-relational/assignment.md new file mode 100644 index 00000000..6162dd2d --- /dev/null +++ b/translations/ur/2-Working-With-Data/06-non-relational/assignment.md @@ -0,0 +1,33 @@ + +# سوڈا منافع + +## ہدایات + +[Coca Cola Co spreadsheet](../../../../2-Working-With-Data/06-non-relational/CocaColaCo.xlsx) میں کچھ حسابات کی کمی ہے۔ آپ کا کام یہ ہے کہ: + +1. FY '15, '16, '17، اور '18 کے مجموعی منافع کا حساب لگائیں + - مجموعی منافع = نیٹ آپریٹنگ آمدنی - فروخت شدہ سامان کی قیمت +1. تمام مجموعی منافع کا اوسط نکالیں۔ کوشش کریں کہ یہ کام کسی فنکشن کے ذریعے کریں۔ + - اوسط = مجموعی منافع کا مجموعہ تقسیم مالی سالوں کی تعداد (10) + - [AVERAGE function](https://support.microsoft.com/en-us/office/average-function-047bac88-d466-426c-a32b-8f33eb960cf6) پر دستاویزات +1. یہ ایک ایکسل فائل ہے، لیکن یہ کسی بھی اسپریڈشیٹ پلیٹ فارم میں قابل تدوین ہونی چاہیے + +[ڈیٹا سورس کا کریڈٹ Yiyi Wang کو](https://www.kaggle.com/yiyiwang0826/cocacola-excel) + +## معیار + +مثالی | مناسب | بہتری کی ضرورت +--- | --- | --- | + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/07-python/README.md b/translations/ur/2-Working-With-Data/07-python/README.md new file mode 100644 index 00000000..9a19b35e --- /dev/null +++ b/translations/ur/2-Working-With-Data/07-python/README.md @@ -0,0 +1,290 @@ + +# ڈیٹا کے ساتھ کام کرنا: پائتھون اور پانڈاز لائبریری + +| ![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/07-WorkWithPython.png) | +| :-------------------------------------------------------------------------------------------------------: | +| پائتھون کے ساتھ کام کرنا - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +[![تعارفی ویڈیو](../../../../translated_images/video-ds-python.245247dc811db8e4d5ac420246de8a118c63fd28f6a56578d08b630ae549f260.ur.png)](https://youtu.be/dZjWOGbsN4Y) + +ڈیٹا بیسز ڈیٹا کو محفوظ کرنے اور انہیں کوئری زبانوں کے ذریعے تلاش کرنے کے لیے بہت مؤثر طریقے فراہم کرتے ہیں، لیکن ڈیٹا پروسیسنگ کا سب سے لچکدار طریقہ اپنا پروگرام لکھ کر ڈیٹا کو تبدیل کرنا ہے۔ اکثر اوقات، ڈیٹا بیس کوئری کرنا زیادہ مؤثر ہوتا ہے۔ لیکن کچھ معاملات میں جب زیادہ پیچیدہ ڈیٹا پروسیسنگ کی ضرورت ہو، تو یہ کام SQL کے ذریعے آسانی سے نہیں کیا جا سکتا۔ +ڈیٹا پروسیسنگ کسی بھی پروگرامنگ زبان میں کی جا سکتی ہے، لیکن کچھ زبانیں ڈیٹا کے ساتھ کام کرنے کے لحاظ سے زیادہ اعلیٰ سطح کی ہوتی ہیں۔ ڈیٹا سائنسدان عام طور پر درج ذیل زبانوں میں سے ایک کو ترجیح دیتے ہیں: + +* **[پائتھون](https://www.python.org/)**، ایک عمومی مقصد کی پروگرامنگ زبان، جو اپنی سادگی کی وجہ سے اکثر ابتدائی افراد کے لیے بہترین آپشن سمجھی جاتی ہے۔ پائتھون میں بہت سی اضافی لائبریریاں موجود ہیں جو آپ کو عملی مسائل حل کرنے میں مدد دے سکتی ہیں، جیسے کہ ZIP آرکائیو سے ڈیٹا نکالنا یا تصویر کو گرے اسکیل میں تبدیل کرنا۔ ڈیٹا سائنس کے علاوہ، پائتھون ویب ڈیولپمنٹ کے لیے بھی اکثر استعمال ہوتی ہے۔ +* **[آر](https://www.r-project.org/)** ایک روایتی ٹول باکس ہے جو شماریاتی ڈیٹا پروسیسنگ کے لیے بنایا گیا ہے۔ اس میں لائبریریوں کا بڑا ذخیرہ (CRAN) موجود ہے، جو اسے ڈیٹا پروسیسنگ کے لیے ایک اچھا انتخاب بناتا ہے۔ تاہم، آر ایک عمومی مقصد کی پروگرامنگ زبان نہیں ہے اور ڈیٹا سائنس کے دائرے سے باہر شاذ و نادر ہی استعمال ہوتی ہے۔ +* **[جولیا](https://julialang.org/)** ایک اور زبان ہے جو خاص طور پر ڈیٹا سائنس کے لیے تیار کی گئی ہے۔ یہ پائتھون سے بہتر کارکردگی فراہم کرنے کے لیے بنائی گئی ہے، جو اسے سائنسی تجربات کے لیے ایک بہترین ٹول بناتی ہے۔ + +اس سبق میں، ہم پائتھون کا استعمال کرتے ہوئے سادہ ڈیٹا پروسیسنگ پر توجہ مرکوز کریں گے۔ ہم زبان کی بنیادی واقفیت فرض کریں گے۔ اگر آپ پائتھون کا گہرا جائزہ لینا چاہتے ہیں، تو آپ درج ذیل وسائل میں سے کسی ایک کا حوالہ دے سکتے ہیں: + +* [پائتھون کو تفریحی طریقے سے سیکھیں: ٹرٹل گرافکس اور فرکٹلز کے ساتھ](https://github.com/shwars/pycourse) - پائتھون پروگرامنگ کا ایک مختصر تعارفی کورس +* [پائتھون کے ساتھ اپنے پہلے قدم اٹھائیں](https://docs.microsoft.com/en-us/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) پر لرننگ پاتھ + +ڈیٹا مختلف شکلوں میں آ سکتا ہے۔ اس سبق میں، ہم ڈیٹا کی تین شکلوں پر غور کریں گے - **ٹیبلر ڈیٹا**، **متن** اور **تصاویر**۔ + +ہم آپ کو تمام متعلقہ لائبریریوں کا مکمل جائزہ دینے کے بجائے ڈیٹا پروسیسنگ کی چند مثالوں پر توجہ مرکوز کریں گے۔ اس سے آپ کو یہ سمجھنے میں مدد ملے گی کہ کیا ممکن ہے، اور جب آپ کو ضرورت ہو تو اپنے مسائل کے حل تلاش کرنے کے لیے کہاں جانا ہے۔ + +> **سب سے مفید مشورہ**۔ جب آپ کو ڈیٹا پر کوئی خاص آپریشن کرنے کی ضرورت ہو اور آپ کو معلوم نہ ہو کہ اسے کیسے کرنا ہے، تو انٹرنیٹ پر تلاش کرنے کی کوشش کریں۔ [Stackoverflow](https://stackoverflow.com/) عام طور پر پائتھون میں بہت سے عام کاموں کے لیے مفید کوڈ نمونے فراہم کرتا ہے۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/12) + +## ٹیبلر ڈیٹا اور ڈیٹا فریمز + +آپ پہلے ہی ٹیبلر ڈیٹا سے واقف ہو چکے ہیں جب ہم نے ریلیشنل ڈیٹا بیسز کے بارے میں بات کی تھی۔ جب آپ کے پاس بہت زیادہ ڈیٹا ہو، اور یہ مختلف جڑی ہوئی ٹیبلز میں موجود ہو، تو اس کے ساتھ کام کرنے کے لیے SQL کا استعمال کرنا یقینی طور پر معنی رکھتا ہے۔ تاہم، بہت سے معاملات میں جب ہمارے پاس ڈیٹا کی ایک ٹیبل ہو، اور ہمیں اس ڈیٹا کے بارے میں کچھ **سمجھ** یا **بصیرت** حاصل کرنی ہو، جیسے کہ تقسیم، اقدار کے درمیان تعلق، وغیرہ۔ ڈیٹا سائنس میں، بہت سے معاملات میں ہمیں اصل ڈیٹا کی کچھ تبدیلیاں کرنے کی ضرورت ہوتی ہے، جس کے بعد بصری نمائندگی کی جاتی ہے۔ یہ دونوں مراحل پائتھون کا استعمال کرتے ہوئے آسانی سے کیے جا سکتے ہیں۔ + +پائتھون میں دو سب سے مفید لائبریریاں ہیں جو آپ کو ٹیبلر ڈیٹا کے ساتھ کام کرنے میں مدد دے سکتی ہیں: +* **[پانڈاز](https://pandas.pydata.org/)** آپ کو **ڈیٹا فریمز** کے ساتھ کام کرنے کی اجازت دیتا ہے، جو ریلیشنل ٹیبلز کے مترادف ہیں۔ آپ نامزد کالمز رکھ سکتے ہیں، اور قطاروں، کالمز اور ڈیٹا فریمز پر مختلف آپریشنز انجام دے سکتے ہیں۔ +* **[نمپائی](https://numpy.org/)** ایک لائبریری ہے جو **ٹینسرز**، یعنی کثیر جہتی **ارے** کے ساتھ کام کرنے کے لیے استعمال ہوتی ہے۔ ارے میں ایک ہی بنیادی قسم کی اقدار ہوتی ہیں، اور یہ ڈیٹا فریم سے زیادہ سادہ ہوتا ہے، لیکن یہ زیادہ ریاضیاتی آپریشنز فراہم کرتا ہے اور کم اوور ہیڈ پیدا کرتا ہے۔ + +کچھ دیگر لائبریریاں بھی ہیں جن کے بارے میں آپ کو معلوم ہونا چاہیے: +* **[میٹپلاٹلب](https://matplotlib.org/)** ڈیٹا کی بصری نمائندگی اور گراف بنانے کے لیے استعمال ہونے والی لائبریری ہے +* **[سائپائی](https://www.scipy.org/)** کچھ اضافی سائنسی فنکشنز کے ساتھ ایک لائبریری ہے۔ ہم پہلے ہی اس لائبریری سے واقف ہو چکے ہیں جب ہم نے احتمال اور شماریات کے بارے میں بات کی تھی + +یہاں ایک کوڈ کا ٹکڑا ہے جو آپ عام طور پر اپنے پائتھون پروگرام کے آغاز میں ان لائبریریوں کو درآمد کرنے کے لیے استعمال کریں گے: +```python +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt +from scipy import ... # you need to specify exact sub-packages that you need +``` + +پانڈاز چند بنیادی تصورات کے گرد مرکوز ہے۔ + +### سیریز + +**سیریز** اقدار کا ایک سلسلہ ہے، جو فہرست یا نمپائی ارے کی طرح ہے۔ بنیادی فرق یہ ہے کہ سیریز میں ایک **انڈیکس** بھی ہوتا ہے، اور جب ہم سیریز پر آپریشن کرتے ہیں (جیسے، انہیں جمع کرتے ہیں)، تو انڈیکس کو مدنظر رکھا جاتا ہے۔ انڈیکس اتنا سادہ ہو سکتا ہے جتنا کہ عددی قطار نمبر (یہ وہ انڈیکس ہے جو فہرست یا ارے سے سیریز بناتے وقت ڈیفالٹ کے طور پر استعمال ہوتا ہے)، یا اس کی پیچیدہ ساخت ہو سکتی ہے، جیسے کہ تاریخ کا وقفہ۔ + +> **نوٹ**: اس کے ساتھ موجود نوٹ بک [`notebook.ipynb`](notebook.ipynb) میں پانڈاز کا کچھ ابتدائی کوڈ موجود ہے۔ ہم یہاں صرف چند مثالیں پیش کرتے ہیں، اور آپ کو مکمل نوٹ بک دیکھنے کی دعوت دیتے ہیں۔ + +ایک مثال پر غور کریں: ہم اپنی آئس کریم کی دکان کی فروخت کا تجزیہ کرنا چاہتے ہیں۔ آئیے کچھ وقت کے لیے فروخت کے نمبروں (ہر دن فروخت ہونے والی اشیاء کی تعداد) کی ایک سیریز بنائیں: + +```python +start_date = "Jan 1, 2020" +end_date = "Mar 31, 2020" +idx = pd.date_range(start_date,end_date) +print(f"Length of index is {len(idx)}") +items_sold = pd.Series(np.random.randint(25,50,size=len(idx)),index=idx) +items_sold.plot() +``` +![ٹائم سیریز گراف](../../../../translated_images/timeseries-1.80de678ab1cf727e50e00bcf24009fa2b0a8b90ebc43e34b99a345227d28e467.ur.png) + +اب فرض کریں کہ ہر ہفتے ہم دوستوں کے لیے ایک پارٹی کا اہتمام کرتے ہیں، اور پارٹی کے لیے آئس کریم کے اضافی 10 پیک لیتے ہیں۔ ہم ایک اور سیریز بنا سکتے ہیں، جو ہفتے کے انڈیکس کے ذریعے ظاہر کی جائے: +```python +additional_items = pd.Series(10,index=pd.date_range(start_date,end_date,freq="W")) +``` +جب ہم دو سیریز کو جمع کرتے ہیں، تو ہمیں کل تعداد ملتی ہے: +```python +total_items = items_sold.add(additional_items,fill_value=0) +total_items.plot() +``` +![ٹائم سیریز گراف](../../../../translated_images/timeseries-2.aae51d575c55181ceda81ade8c546a2fc2024f9136934386d57b8a189d7570ff.ur.png) + +> **نوٹ** کہ ہم سادہ نحو `total_items+additional_items` استعمال نہیں کر رہے ہیں۔ اگر ہم ایسا کرتے، تو ہمیں نتیجہ میں بہت سے `NaN` (*Not a Number*) اقدار ملتی۔ اس کی وجہ یہ ہے کہ `additional_items` سیریز میں کچھ انڈیکس پوائنٹس کے لیے اقدار موجود نہیں ہیں، اور کسی بھی چیز میں `NaN` شامل کرنے سے نتیجہ `NaN` ہوتا ہے۔ اس لیے ہمیں جمع کرتے وقت `fill_value` پیرامیٹر کی وضاحت کرنی ہوتی ہے۔ + +ٹائم سیریز کے ساتھ، ہم مختلف وقت کے وقفوں کے ساتھ سیریز کو **دوبارہ نمونہ** بنا سکتے ہیں۔ مثال کے طور پر، فرض کریں کہ ہم ماہانہ اوسط فروخت کا حجم حساب کرنا چاہتے ہیں۔ ہم درج ذیل کوڈ استعمال کر سکتے ہیں: +```python +monthly = total_items.resample("1M").mean() +ax = monthly.plot(kind='bar') +``` +![ماہانہ ٹائم سیریز اوسط](../../../../translated_images/timeseries-3.f3147cbc8c624881008564bc0b5d9fcc15e7374d339da91766bd0e1c6bd9e3af.ur.png) + +### ڈیٹا فریم + +ڈیٹا فریم بنیادی طور پر ایک ہی انڈیکس کے ساتھ سیریز کا مجموعہ ہے۔ ہم کئی سیریز کو ایک ساتھ ڈیٹا فریم میں جمع کر سکتے ہیں: +```python +a = pd.Series(range(1,10)) +b = pd.Series(["I","like","to","play","games","and","will","not","change"],index=range(0,9)) +df = pd.DataFrame([a,b]) +``` +یہ ہمیں ایک افقی ٹیبل دے گا جیسے کہ یہ: +| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | +| --- | --- | ---- | --- | --- | ------ | --- | ------ | ---- | ---- | +| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | +| 1 | I | like | to | use | Python | and | Pandas | very | much | + +ہم سیریز کو کالمز کے طور پر بھی استعمال کر سکتے ہیں، اور لغت کا استعمال کرتے ہوئے کالم کے ناموں کی وضاحت کر سکتے ہیں: +```python +df = pd.DataFrame({ 'A' : a, 'B' : b }) +``` +یہ ہمیں ایک ٹیبل دے گا جیسے کہ یہ: + +| | A | B | +| --- | --- | ------ | +| 0 | 1 | I | +| 1 | 2 | like | +| 2 | 3 | to | +| 3 | 4 | use | +| 4 | 5 | Python | +| 5 | 6 | and | +| 6 | 7 | Pandas | +| 7 | 8 | very | +| 8 | 9 | much | + +**نوٹ** کہ ہم پچھلے ٹیبل کو ٹرانسپوز کر کے بھی یہ ٹیبل لے آ سکتے ہیں، جیسے کہ لکھ کر +```python +df = pd.DataFrame([a,b]).T..rename(columns={ 0 : 'A', 1 : 'B' }) +``` +یہاں `.T` ڈیٹا فریم کو ٹرانسپوز کرنے کا آپریشن ہے، یعنی قطاروں اور کالمز کو تبدیل کرنا، اور `rename` آپریشن ہمیں کالمز کو پچھلی مثال سے ملانے کے لیے نام تبدیل کرنے کی اجازت دیتا ہے۔ + +یہاں ڈیٹا فریمز پر انجام دی جانے والی چند اہم ترین آپریشنز ہیں: + +**کالم کا انتخاب**۔ ہم انفرادی کالمز کو `df['A']` لکھ کر منتخب کر سکتے ہیں - یہ آپریشن ایک سیریز واپس کرتا ہے۔ ہم کالمز کے ایک ذیلی سیٹ کو دوسرے ڈیٹا فریم میں منتخب کر سکتے ہیں `df[['B','A']]` لکھ کر - یہ ایک اور ڈیٹا فریم واپس کرتا ہے۔ + +**فلٹرنگ** صرف مخصوص قطاروں کو معیار کے مطابق۔ مثال کے طور پر، کالم `A` کے ساتھ صرف وہ قطاریں چھوڑنے کے لیے جو 5 سے زیادہ ہوں، ہم لکھ سکتے ہیں `df[df['A']>5]`۔ + +> **نوٹ**: فلٹرنگ کا کام کرنے کا طریقہ درج ذیل ہے۔ اظہار `df['A']<5` ایک بولین سیریز واپس کرتا ہے، جو ظاہر کرتا ہے کہ آیا اظہار اصل سیریز `df['A']` کے ہر عنصر کے لیے `True` یا `False` ہے۔ جب بولین سیریز کو انڈیکس کے طور پر استعمال کیا جاتا ہے، تو یہ ڈیٹا فریم میں قطاروں کا ذیلی سیٹ واپس کرتا ہے۔ اس لیے کسی بھی بے ترتیب پائتھون بولین اظہار کا استعمال ممکن نہیں ہے، مثال کے طور پر، لکھنا `df[df['A']>5 and df['A']<7]` غلط ہوگا۔ اس کے بجائے، آپ کو بولین سیریز پر خاص `&` آپریشن استعمال کرنا چاہیے، لکھ کر `df[(df['A']>5) & (df['A']<7)]` (*بریکٹس یہاں اہم ہیں*)۔ + +**نئے قابل حساب کالمز بنانا**۔ ہم اپنے ڈیٹا فریم کے لیے نئے قابل حساب کالمز آسانی سے بنا سکتے ہیں، جیسے کہ یہ: +```python +df['DivA'] = df['A']-df['A'].mean() +``` +یہ مثال A کی اس کی اوسط قدر سے انحراف کا حساب لگاتی ہے۔ یہاں جو اصل میں ہوتا ہے وہ یہ ہے کہ ہم ایک سیریز کا حساب لگا رہے ہیں، اور پھر اس سیریز کو بائیں طرف تفویض کر رہے ہیں، ایک اور کالم بنا رہے ہیں۔ اس لیے، ہم کسی بھی آپریشنز کا استعمال نہیں کر سکتے جو سیریز کے ساتھ مطابقت نہیں رکھتے، مثال کے طور پر، نیچے دیا گیا کوڈ غلط ہے: +```python +# Wrong code -> df['ADescr'] = "Low" if df['A'] < 5 else "Hi" +df['LenB'] = len(df['B']) # <- Wrong result +``` +آخری مثال، جبکہ نحوی طور پر درست ہے، ہمیں غلط نتیجہ دیتی ہے، کیونکہ یہ سیریز `B` کی لمبائی کو کالم میں تمام اقدار پر تفویض کرتی ہے، اور انفرادی عناصر کی لمبائی نہیں جیسا کہ ہم نے ارادہ کیا تھا۔ + +اگر ہمیں اس طرح کے پیچیدہ اظہار کا حساب لگانے کی ضرورت ہو، تو ہم `apply` فنکشن استعمال کر سکتے ہیں۔ آخری مثال کو درج ذیل کے طور پر لکھا جا سکتا ہے: +```python +df['LenB'] = df['B'].apply(lambda x : len(x)) +# or +df['LenB'] = df['B'].apply(len) +``` + +اوپر دیے گئے آپریشنز کے بعد، ہم درج ذیل ڈیٹا فریم کے ساتھ ختم ہوں گے: + +| | A | B | DivA | LenB | +| --- | --- | ------ | ---- | ---- | +| 0 | 1 | I | -4.0 | 1 | +| 1 | 2 | like | -3.0 | 4 | +| 2 | 3 | to | -2.0 | 2 | +| 3 | 4 | use | -1.0 | 3 | +| 4 | 5 | Python | 0.0 | 6 | +| 5 | 6 | and | 1.0 | 3 | +| 6 | 7 | Pandas | 2.0 | 6 | +| 7 | 8 | very | 3.0 | 4 | +| 8 | 9 | much | 4.0 | 4 | + +**نمبرز کی بنیاد پر قطاروں کا انتخاب** `iloc` کنسٹرکٹ کا استعمال کرتے ہوئے کیا جا سکتا ہے۔ مثال کے طور پر، ڈیٹا فریم سے پہلی 5 قطاروں کو منتخب کرنے کے لیے: +```python +df.iloc[:5] +``` + +**گروپنگ** اکثر *پیوٹ ٹیبلز* جیسا نتیجہ حاصل کرنے کے لیے استعمال ہوتی ہے جیسا کہ ایکسل میں۔ فرض کریں کہ ہم `LenB` کی دی گئی تعداد کے لیے کالم `A` کی اوسط قدر کا حساب لگانا چاہتے ہیں۔ پھر ہم اپنے ڈیٹا فریم کو `LenB` کے ذریعے گروپ کر سکتے ہیں، اور `mean` کال کر سکتے ہیں: +```python +df.groupby(by='LenB').mean() +``` +اگر ہمیں گروپ میں اوسط اور عناصر کی تعداد کا حساب لگانے کی ضرورت ہو، تو ہم زیادہ پیچیدہ `aggregate` فنکشن استعمال کر سکتے ہیں: +```python +df.groupby(by='LenB') \ + .aggregate({ 'DivA' : len, 'A' : lambda x: x.mean() }) \ + .rename(columns={ 'DivA' : 'Count', 'A' : 'Mean'}) +``` +یہ ہمیں درج ذیل ٹیبل دیتا ہے: + +| LenB | Count | Mean | +| ---- | ----- | -------- | +| 1 | 1 | 1.000000 | +| 2 | 1 | 3.000000 | +| 3 | 2 | 5.000000 | +| 4 | 3 | 6.333333 | +| 6 | 2 | 6.000000 | + +### ڈیٹا حاصل کرنا +ہم نے دیکھا کہ Python اشیاء سے Series اور DataFrames بنانا کتنا آسان ہے۔ تاہم، ڈیٹا عام طور پر ٹیکسٹ فائل یا Excel ٹیبل کی شکل میں آتا ہے۔ خوش قسمتی سے، Pandas ہمیں ڈسک سے ڈیٹا لوڈ کرنے کا ایک آسان طریقہ فراہم کرتا ہے۔ مثال کے طور پر، CSV فائل پڑھنا اتنا ہی آسان ہے: +```python +df = pd.read_csv('file.csv') +``` +ہم ڈیٹا لوڈ کرنے کی مزید مثالیں دیکھیں گے، بشمول اسے بیرونی ویب سائٹس سے حاصل کرنا، "Challenge" سیکشن میں۔ + +### پرنٹنگ اور پلاٹنگ + +ایک Data Scientist کو اکثر ڈیٹا کا جائزہ لینا پڑتا ہے، اس لیے اسے بصری طور پر دیکھنا ضروری ہے۔ جب DataFrame بڑا ہو، تو اکثر ہم صرف یہ یقینی بنانا چاہتے ہیں کہ ہم سب کچھ صحیح طریقے سے کر رہے ہیں، اور اس کے لیے ابتدائی چند قطاریں پرنٹ کرتے ہیں۔ یہ `df.head()` کال کرکے کیا جا سکتا ہے۔ اگر آپ اسے Jupyter Notebook سے چلا رہے ہیں، تو یہ DataFrame کو ایک خوبصورت جدول کی شکل میں پرنٹ کرے گا۔ + +ہم نے `plot` فنکشن کا استعمال بھی دیکھا ہے تاکہ کچھ کالمز کو بصری طور پر دکھایا جا سکے۔ جبکہ `plot` بہت سے کاموں کے لیے مفید ہے اور `kind=` پیرامیٹر کے ذریعے مختلف قسم کے گرافز کو سپورٹ کرتا ہے، آپ ہمیشہ خام `matplotlib` لائبریری استعمال کر سکتے ہیں تاکہ کچھ زیادہ پیچیدہ چیزیں پلاٹ کریں۔ ہم ڈیٹا کی بصری نمائندگی کو الگ کورس کے اسباق میں تفصیل سے کور کریں گے۔ + +یہ جائزہ Pandas کے سب سے اہم تصورات کو کور کرتا ہے، تاہم، یہ لائبریری بہت وسیع ہے، اور آپ اس کے ساتھ جو کچھ کر سکتے ہیں اس کی کوئی حد نہیں ہے! آئیے اب اس علم کو مخصوص مسئلے کو حل کرنے کے لیے استعمال کریں۔ + +## 🚀 چیلنج 1: COVID کے پھیلاؤ کا تجزیہ + +پہلا مسئلہ جس پر ہم توجہ مرکوز کریں گے وہ COVID-19 کے وبائی پھیلاؤ کی ماڈلنگ ہے۔ ایسا کرنے کے لیے، ہم مختلف ممالک میں متاثرہ افراد کی تعداد کے ڈیٹا کا استعمال کریں گے، جو [Center for Systems Science and Engineering](https://systems.jhu.edu/) (CSSE) نے [Johns Hopkins University](https://jhu.edu/) میں فراہم کیا ہے۔ ڈیٹا سیٹ [اس GitHub Repository](https://github.com/CSSEGISandData/COVID-19) میں دستیاب ہے۔ + +چونکہ ہم یہ دکھانا چاہتے ہیں کہ ڈیٹا کے ساتھ کیسے کام کیا جائے، ہم آپ کو دعوت دیتے ہیں کہ [`notebook-covidspread.ipynb`](notebook-covidspread.ipynb) کھولیں اور اسے شروع سے آخر تک پڑھیں۔ آپ سیلز کو چلا سکتے ہیں اور کچھ چیلنجز کر سکتے ہیں جو ہم نے آپ کے لیے آخر میں چھوڑے ہیں۔ + +![COVID Spread](../../../../translated_images/covidspread.f3d131c4f1d260ab0344d79bac0abe7924598dd754859b165955772e1bd5e8a2.ur.png) + +> اگر آپ کو Jupyter Notebook میں کوڈ چلانے کا طریقہ معلوم نہیں ہے، تو [اس مضمون](https://soshnikov.com/education/how-to-execute-notebooks-from-github/) کو دیکھیں۔ + +## غیر ساختہ ڈیٹا کے ساتھ کام کرنا + +جبکہ ڈیٹا اکثر جدول کی شکل میں آتا ہے، کچھ معاملات میں ہمیں کم ساختہ ڈیٹا کے ساتھ کام کرنا پڑتا ہے، جیسے کہ متن یا تصاویر۔ اس صورت میں، اوپر دیکھے گئے ڈیٹا پروسیسنگ تکنیکوں کو لاگو کرنے کے لیے، ہمیں کسی طرح **ساختہ** ڈیٹا نکالنا ہوگا۔ یہاں کچھ مثالیں ہیں: + +* متن سے کلیدی الفاظ نکالنا، اور یہ دیکھنا کہ وہ کلیدی الفاظ کتنی بار ظاہر ہوتے ہیں۔ +* نیورل نیٹ ورکس کا استعمال کرتے ہوئے تصویر میں موجود اشیاء کے بارے میں معلومات نکالنا۔ +* ویڈیو کیمرہ فیڈ پر لوگوں کے جذبات کے بارے میں معلومات حاصل کرنا۔ + +## 🚀 چیلنج 2: COVID کے مقالوں کا تجزیہ + +اس چیلنج میں، ہم COVID وبائی مرض کے موضوع کو جاری رکھیں گے اور اس موضوع پر سائنسی مقالوں کی پروسیسنگ پر توجہ مرکوز کریں گے۔ [CORD-19 Dataset](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) میں COVID پر 7000 سے زیادہ (لکھنے کے وقت) مقالے دستیاب ہیں، جن میں میٹا ڈیٹا اور خلاصے شامل ہیں (اور ان میں سے تقریباً نصف کے لیے مکمل متن بھی فراہم کیا گیا ہے)۔ + +اس ڈیٹا سیٹ کا تجزیہ کرنے کی ایک مکمل مثال [Text Analytics for Health](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health/?WT.mc_id=academic-77958-bethanycheum) کوگنیٹو سروس کا استعمال کرتے ہوئے [اس بلاگ پوسٹ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) میں بیان کی گئی ہے۔ ہم اس تجزیے کا ایک آسان ورژن پر بات کریں گے۔ + +> **NOTE**: ہم اس ریپوزٹری کے حصے کے طور پر ڈیٹا سیٹ کی کاپی فراہم نہیں کرتے۔ آپ کو پہلے [`metadata.csv`](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv) فائل [Kaggle کے اس ڈیٹا سیٹ](https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge) سے ڈاؤن لوڈ کرنے کی ضرورت ہو سکتی ہے۔ Kaggle کے ساتھ رجسٹریشن کی ضرورت ہو سکتی ہے۔ آپ رجسٹریشن کے بغیر [یہاں سے](https://ai2-semanticscholar-cord-19.s3-us-west-2.amazonaws.com/historical_releases.html) ڈیٹا سیٹ ڈاؤن لوڈ کر سکتے ہیں، لیکن اس میں میٹا ڈیٹا فائل کے علاوہ تمام مکمل متن شامل ہوں گے۔ + +[`notebook-papers.ipynb`](notebook-papers.ipynb) کھولیں اور اسے شروع سے آخر تک پڑھیں۔ آپ سیلز کو چلا سکتے ہیں اور کچھ چیلنجز کر سکتے ہیں جو ہم نے آپ کے لیے آخر میں چھوڑے ہیں۔ + +![Covid Medical Treatment](../../../../translated_images/covidtreat.b2ba59f57ca45fbcda36e0ddca3f8cfdddeeed6ca879ea7f866d93fa6ec65791.ur.png) + +## تصویری ڈیٹا کی پروسیسنگ + +حال ہی میں، بہت طاقتور AI ماڈلز تیار کیے گئے ہیں جو ہمیں تصاویر کو سمجھنے کی اجازت دیتے ہیں۔ بہت سے کام ہیں جو پری ٹرینڈ نیورل نیٹ ورکس یا کلاؤڈ سروسز کا استعمال کرتے ہوئے حل کیے جا سکتے ہیں۔ کچھ مثالیں شامل ہیں: + +* **تصویری درجہ بندی**، جو آپ کو تصویر کو پہلے سے طے شدہ کلاسز میں سے کسی ایک میں تقسیم کرنے میں مدد دے سکتی ہے۔ آپ آسانی سے [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) جیسی سروسز کا استعمال کرتے ہوئے اپنے تصویری درجہ بندی کرنے والے ماڈلز بنا سکتے ہیں۔ +* **آبجیکٹ ڈیٹیکشن**، جو تصویر میں مختلف اشیاء کا پتہ لگانے میں مدد کرتا ہے۔ [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) جیسی سروسز عام اشیاء کا پتہ لگا سکتی ہیں، اور آپ [Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77958-bethanycheum) ماڈل کو مخصوص اشیاء کا پتہ لگانے کے لیے تربیت دے سکتے ہیں۔ +* **چہرے کا پتہ لگانا**، بشمول عمر، جنس اور جذبات کا پتہ لگانا۔ یہ [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) کے ذریعے کیا جا سکتا ہے۔ + +یہ تمام کلاؤڈ سروسز [Python SDKs](https://docs.microsoft.com/samples/azure-samples/cognitive-services-python-sdk-samples/cognitive-services-python-sdk-samples/?WT.mc_id=academic-77958-bethanycheum) کا استعمال کرتے ہوئے کال کی جا سکتی ہیں، اور اس طرح آپ کے ڈیٹا ایکسپلوریشن ورک فلو میں آسانی سے شامل کی جا سکتی ہیں۔ + +یہاں تصویری ڈیٹا ذرائع سے ڈیٹا کو دریافت کرنے کی کچھ مثالیں ہیں: +* بلاگ پوسٹ [How to Learn Data Science without Coding](https://soshnikov.com/azure/how-to-learn-data-science-without-coding/) میں ہم Instagram تصاویر کا جائزہ لیتے ہیں، یہ سمجھنے کی کوشش کرتے ہیں کہ کون سی چیز لوگوں کو تصویر پر زیادہ لائکس دینے پر مجبور کرتی ہے۔ ہم پہلے [computer vision](https://azure.microsoft.com/services/cognitive-services/computer-vision/?WT.mc_id=academic-77958-bethanycheum) کا استعمال کرتے ہوئے تصاویر سے زیادہ سے زیادہ معلومات نکالتے ہیں، اور پھر [Azure Machine Learning AutoML](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml/?WT.mc_id=academic-77958-bethanycheum) کا استعمال کرتے ہوئے ایک قابل وضاحت ماڈل بناتے ہیں۔ +* [Facial Studies Workshop](https://github.com/CloudAdvocacy/FaceStudies) میں ہم [Face API](https://azure.microsoft.com/services/cognitive-services/face/?WT.mc_id=academic-77958-bethanycheum) کا استعمال کرتے ہوئے ایونٹس کی تصاویر میں لوگوں کے جذبات نکالتے ہیں، تاکہ یہ سمجھ سکیں کہ کون سی چیز لوگوں کو خوش کرتی ہے۔ + +## نتیجہ + +چاہے آپ کے پاس پہلے سے ساختہ یا غیر ساختہ ڈیٹا ہو، Python کا استعمال کرتے ہوئے آپ ڈیٹا پروسیسنگ اور سمجھنے سے متعلق تمام مراحل انجام دے سکتے ہیں۔ یہ ڈیٹا پروسیسنگ کا سب سے لچکدار طریقہ ہے، اور یہی وجہ ہے کہ زیادہ تر ڈیٹا سائنسدان Python کو اپنا بنیادی ٹول کے طور پر استعمال کرتے ہیں۔ اگر آپ اپنے ڈیٹا سائنس کے سفر میں سنجیدہ ہیں تو Python کو گہرائی سے سیکھنا شاید ایک اچھا خیال ہے! + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/13) + +## جائزہ اور خود مطالعہ + +**کتب** +* [Wes McKinney. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython](https://www.amazon.com/gp/product/1491957662) + +**آن لائن وسائل** +* Pandas کا آفیشل [10 منٹ کا ٹیوٹوریل](https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html) +* [Pandas Visualization پر دستاویزات](https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html) + +**Python سیکھنا** +* [Learn Python in a Fun Way with Turtle Graphics and Fractals](https://github.com/shwars/pycourse) +* [Python کے ساتھ اپنے پہلے قدم اٹھائیں](https://docs.microsoft.com/learn/paths/python-first-steps/?WT.mc_id=academic-77958-bethanycheum) Microsoft Learn پر لرننگ پاتھ [Microsoft Learn](http://learn.microsoft.com/?WT.mc_id=academic-77958-bethanycheum) + +## اسائنمنٹ + +[اوپر دیے گئے چیلنجز کے لیے مزید تفصیلی ڈیٹا اسٹڈی کریں](assignment.md) + +## کریڈٹس + +یہ سبق [Dmitry Soshnikov](http://soshnikov.com) کے ذریعے ♥️ کے ساتھ لکھا گیا ہے۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/07-python/assignment.md b/translations/ur/2-Working-With-Data/07-python/assignment.md new file mode 100644 index 00000000..67e7f74b --- /dev/null +++ b/translations/ur/2-Working-With-Data/07-python/assignment.md @@ -0,0 +1,37 @@ + +# ڈیٹا پروسیسنگ کے لیے پائتھون میں اسائنمنٹ + +اس اسائنمنٹ میں، ہم آپ سے درخواست کریں گے کہ آپ ان کوڈز پر تفصیل سے کام کریں جو ہم نے اپنے چیلنجز میں شروع کیے ہیں۔ اس اسائنمنٹ کے دو حصے ہیں: + +## COVID-19 کے پھیلاؤ کی ماڈلنگ + + - [ ] 5-6 مختلف ممالک کے لیے *R* گرافز ایک ہی گراف میں موازنہ کے لیے یا کئی گرافز کو ساتھ ساتھ دکھائیں۔ + - [ ] دیکھیں کہ اموات اور صحت یابی کی تعداد متاثرہ کیسز کی تعداد کے ساتھ کیسے تعلق رکھتی ہے۔ + - [ ] معلوم کریں کہ ایک عام بیماری کتنے دن تک رہتی ہے، انفیکشن ریٹ اور اموات کی شرح کو بصری طور پر موازنہ کر کے اور کچھ غیر معمولی چیزوں کو دیکھ کر۔ آپ کو مختلف ممالک کا جائزہ لینا پڑ سکتا ہے۔ + - [ ] اموات کی شرح کا حساب لگائیں اور دیکھیں کہ وقت کے ساتھ یہ کیسے تبدیل ہوتی ہے۔ *آپ بیماری کے دنوں کی طوالت کو مدنظر رکھتے ہوئے ایک وقت کی سیریز کو شفٹ کر کے حساب لگا سکتے ہیں۔* + +## COVID-19 پیپرز کا تجزیہ + +- [ ] مختلف ادویات کے کو-اوکرنس میٹرکس بنائیں اور دیکھیں کہ کون سی ادویات اکثر ایک ساتھ ظاہر ہوتی ہیں (یعنی ایک ہی خلاصے میں ذکر کی گئی ہیں)۔ آپ ادویات اور تشخیص کے لیے کو-اوکرنس میٹرکس بنانے کے کوڈ میں ترمیم کر سکتے ہیں۔ +- [ ] اس میٹرکس کو ہیٹ میپ کے ذریعے بصری طور پر دکھائیں۔ +- [ ] ایک اضافی ہدف کے طور پر، ادویات کے کو-اوکرنس کو [chord diagram](https://en.wikipedia.org/wiki/Chord_diagram) کے ذریعے بصری طور پر دکھائیں۔ [یہ لائبریری](https://pypi.org/project/chord/) آپ کو chord diagram بنانے میں مدد دے سکتی ہے۔ +- [ ] ایک اور اضافی ہدف کے طور پر، مختلف ادویات کی خوراکیں (جیسے **400mg** میں *روزانہ 400mg کلوروکوئن لیں*) ریگولر ایکسپریشنز کے ذریعے نکالیں، اور ایک ڈیٹا فریم بنائیں جو مختلف ادویات کے لیے مختلف خوراکیں دکھائے۔ **نوٹ**: ان عددی قدروں پر غور کریں جو دوا کے نام کے قریب متن میں موجود ہوں۔ + +## روبریک + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام کام مکمل، گرافک طور پر دکھائے گئے اور وضاحت کیے گئے، بشمول کم از کم ایک اضافی ہدف | 5 سے زیادہ کام مکمل، اضافی اہداف کی کوشش نہیں کی گئی، یا نتائج واضح نہیں ہیں | 5 سے کم (لیکن 3 سے زیادہ) کام مکمل، بصریات نقطہ واضح کرنے میں مدد نہیں کرتی + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/08-data-preparation/README.md b/translations/ur/2-Working-With-Data/08-data-preparation/README.md new file mode 100644 index 00000000..e203dbf3 --- /dev/null +++ b/translations/ur/2-Working-With-Data/08-data-preparation/README.md @@ -0,0 +1,343 @@ + +# ڈیٹا کے ساتھ کام کرنا: ڈیٹا کی تیاری + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/08-DataPreparation.png)| +|:---:| +|ڈیٹا کی تیاری - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/14) + +ڈیٹا کے ماخذ پر منحصر ہے، خام ڈیٹا میں کچھ بے ترتیبی ہو سکتی ہے جو تجزیہ اور ماڈلنگ میں مشکلات پیدا کرے گی۔ دوسرے الفاظ میں، اس ڈیٹا کو "گندا" کہا جا سکتا ہے اور اسے صاف کرنے کی ضرورت ہوگی۔ یہ سبق ڈیٹا کو صاف کرنے اور تبدیل کرنے کی تکنیکوں پر توجہ مرکوز کرتا ہے تاکہ گمشدہ، غلط، یا نامکمل ڈیٹا کے چیلنجز سے نمٹا جا سکے۔ اس سبق میں شامل موضوعات Python اور Pandas لائبریری کا استعمال کریں گے اور [نوٹ بک میں مظاہرہ کیا جائے گا](notebook.ipynb) جو اس ڈائریکٹری میں موجود ہے۔ + +## ڈیٹا صاف کرنے کی اہمیت + +- **استعمال اور دوبارہ استعمال میں آسانی**: جب ڈیٹا مناسب طریقے سے منظم اور نارملائز ہو تو اسے تلاش کرنا، استعمال کرنا، اور دوسروں کے ساتھ شیئر کرنا آسان ہو جاتا ہے۔ + +- **مطابقت**: ڈیٹا سائنس میں اکثر ایک سے زیادہ ڈیٹا سیٹس کے ساتھ کام کرنا شامل ہوتا ہے، جہاں مختلف ذرائع سے ڈیٹا سیٹس کو ایک ساتھ جوڑنے کی ضرورت ہوتی ہے۔ یہ یقینی بنانا کہ ہر انفرادی ڈیٹا سیٹ میں ایک جیسی معیاری کاری ہو، اس بات کو یقینی بنائے گا کہ جب وہ سب ایک ڈیٹا سیٹ میں ضم ہو جائیں تو ڈیٹا اب بھی کارآمد رہے۔ + +- **ماڈل کی درستگی**: صاف کیا گیا ڈیٹا ان ماڈلز کی درستگی کو بہتر بناتا ہے جو اس پر انحصار کرتے ہیں۔ + +## عام صفائی کے اہداف اور حکمت عملیاں + +- **ڈیٹا سیٹ کی تلاش**: ڈیٹا کی تلاش، جو [بعد کے سبق](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/4-Data-Science-Lifecycle/15-analyzing) میں شامل ہے، آپ کو وہ ڈیٹا دریافت کرنے میں مدد دے سکتی ہے جسے صاف کرنے کی ضرورت ہے۔ ڈیٹا سیٹ میں موجود اقدار کو بصری طور پر دیکھنا اس بات کی توقعات قائم کر سکتا ہے کہ باقی ڈیٹا کیسا نظر آئے گا، یا ان مسائل کا اندازہ فراہم کر سکتا ہے جنہیں حل کیا جا سکتا ہے۔ تلاش میں بنیادی سوالات، بصریات، اور سیمپلنگ شامل ہو سکتی ہے۔ + +- **فارمیٹنگ**: ماخذ پر منحصر ہے، ڈیٹا کی پیشکش میں بے ترتیبی ہو سکتی ہے۔ یہ ڈیٹا کی تلاش اور اس کی نمائندگی میں مسائل پیدا کر سکتا ہے، جہاں یہ ڈیٹا سیٹ میں نظر آتا ہے لیکن بصریات یا سوالات کے نتائج میں مناسب طریقے سے ظاہر نہیں ہوتا۔ عام فارمیٹنگ کے مسائل میں خالی جگہوں، تاریخوں، اور ڈیٹا کی اقسام کو حل کرنا شامل ہے۔ فارمیٹنگ کے مسائل کو حل کرنا عام طور پر ان لوگوں پر منحصر ہوتا ہے جو ڈیٹا استعمال کر رہے ہیں۔ مثال کے طور پر، تاریخوں اور نمبروں کی پیشکش کے معیارات ملک کے لحاظ سے مختلف ہو سکتے ہیں۔ + +- **ڈپلیکیشنز**: ایسا ڈیٹا جو ایک سے زیادہ بار موجود ہو، غلط نتائج پیدا کر سکتا ہے اور عام طور پر اسے ہٹا دینا چاہیے۔ یہ عام طور پر اس وقت ہوتا ہے جب دو یا زیادہ ڈیٹا سیٹس کو ایک ساتھ جوڑا جاتا ہے۔ تاہم، ایسے مواقع بھی ہو سکتے ہیں جہاں جوڑے گئے ڈیٹا سیٹس میں ڈپلیکیشنز ایسی معلومات فراہم کر سکتی ہیں جو محفوظ رکھنے کی ضرورت ہو۔ + +- **گمشدہ ڈیٹا**: گمشدہ ڈیٹا غلطیوں کے ساتھ ساتھ کمزور یا متعصب نتائج کا سبب بن سکتا ہے۔ کبھی کبھار یہ ڈیٹا کو دوبارہ لوڈ کرنے، گمشدہ اقدار کو Python جیسے کوڈ کے ذریعے بھرنے، یا صرف اس قدر اور متعلقہ ڈیٹا کو ہٹانے سے حل کیا جا سکتا ہے۔ ڈیٹا کے گم ہونے کی متعدد وجوہات ہو سکتی ہیں، اور ان گمشدہ اقدار کو حل کرنے کے لیے کیے گئے اقدامات اس بات پر منحصر ہو سکتے ہیں کہ وہ کیوں اور کیسے غائب ہوئیں۔ + +## ڈیٹا فریم کی معلومات کا جائزہ لینا +> **سیکھنے کا مقصد:** اس حصے کے اختتام تک، آپ pandas DataFrames میں محفوظ ڈیٹا کے بارے میں عمومی معلومات تلاش کرنے میں آرام دہ ہوں گے۔ + +جب آپ نے اپنا ڈیٹا pandas میں لوڈ کر لیا ہے، تو یہ زیادہ تر امکان ہے کہ یہ ایک DataFrame میں ہوگا (پچھلے [سبق](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/07-python#dataframe) کا حوالہ دیں تفصیلی جائزہ کے لیے)۔ تاہم، اگر آپ کے DataFrame میں 60,000 قطاریں اور 400 کالم ہیں، تو آپ یہ سمجھنا کیسے شروع کریں گے کہ آپ کس کے ساتھ کام کر رہے ہیں؟ خوش قسمتی سے، [pandas](https://pandas.pydata.org/) کچھ آسان ٹولز فراہم کرتا ہے تاکہ DataFrame کے بارے میں مجموعی معلومات کو جلدی سے دیکھا جا سکے، اس کے علاوہ پہلی اور آخری چند قطاریں بھی۔ + +اس فعالیت کو دریافت کرنے کے لیے، ہم Python scikit-learn لائبریری کو درآمد کریں گے اور ایک مشہور ڈیٹا سیٹ استعمال کریں گے: **Iris ڈیٹا سیٹ**۔ + +```python +import pandas as pd +from sklearn.datasets import load_iris + +iris = load_iris() +iris_df = pd.DataFrame(data=iris['data'], columns=iris['feature_names']) +``` +| |sepal length (cm)|sepal width (cm)|petal length (cm)|petal width (cm)| +|----------------------------------------|-----------------|----------------|-----------------|----------------| +|0 |5.1 |3.5 |1.4 |0.2 | +|1 |4.9 |3.0 |1.4 |0.2 | +|2 |4.7 |3.2 |1.3 |0.2 | +|3 |4.6 |3.1 |1.5 |0.2 | +|4 |5.0 |3.6 |1.4 |0.2 | + +- **DataFrame.info**: شروع کرنے کے لیے، `info()` طریقہ استعمال کیا جاتا ہے تاکہ `DataFrame` میں موجود مواد کا خلاصہ پرنٹ کیا جا سکے۔ آئیے اس ڈیٹا سیٹ کو دیکھتے ہیں تاکہ معلوم ہو کہ ہمارے پاس کیا ہے: +```python +iris_df.info() +``` +``` +RangeIndex: 150 entries, 0 to 149 +Data columns (total 4 columns): + # Column Non-Null Count Dtype +--- ------ -------------- ----- + 0 sepal length (cm) 150 non-null float64 + 1 sepal width (cm) 150 non-null float64 + 2 petal length (cm) 150 non-null float64 + 3 petal width (cm) 150 non-null float64 +dtypes: float64(4) +memory usage: 4.8 KB +``` +اس سے ہمیں معلوم ہوتا ہے کہ *Iris* ڈیٹا سیٹ میں چار کالموں میں 150 اندراجات ہیں جن میں کوئی null اندراجات نہیں ہیں۔ تمام ڈیٹا 64-bit فلوٹنگ پوائنٹ نمبروں کے طور پر محفوظ ہے۔ + +- **DataFrame.head()**: اگلا، `DataFrame` کے اصل مواد کو چیک کرنے کے لیے، ہم `head()` طریقہ استعمال کرتے ہیں۔ آئیے دیکھتے ہیں کہ ہمارے `iris_df` کی پہلی چند قطاریں کیسی نظر آتی ہیں: +```python +iris_df.head() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +0 5.1 3.5 1.4 0.2 +1 4.9 3.0 1.4 0.2 +2 4.7 3.2 1.3 0.2 +3 4.6 3.1 1.5 0.2 +4 5.0 3.6 1.4 0.2 +``` +- **DataFrame.tail()**: اس کے برعکس، `DataFrame` کی آخری چند قطاروں کو چیک کرنے کے لیے، ہم `tail()` طریقہ استعمال کرتے ہیں: +```python +iris_df.tail() +``` +``` + sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) +145 6.7 3.0 5.2 2.3 +146 6.3 2.5 5.0 1.9 +147 6.5 3.0 5.2 2.0 +148 6.2 3.4 5.4 2.3 +149 5.9 3.0 5.1 1.8 +``` +> **نتیجہ:** صرف DataFrame میں موجود معلومات کے میٹا ڈیٹا یا اس میں موجود پہلی اور آخری چند اقدار کو دیکھ کر، آپ فوری طور پر اس ڈیٹا کے سائز، شکل، اور مواد کے بارے میں ایک خیال حاصل کر سکتے ہیں جس کے ساتھ آپ کام کر رہے ہیں۔ + +## گمشدہ ڈیٹا سے نمٹنا +> **سیکھنے کا مقصد:** اس حصے کے اختتام تک، آپ کو DataFrames سے null اقدار کو تبدیل یا ہٹانے کا طریقہ معلوم ہونا چاہیے۔ + +زیادہ تر وقت، وہ ڈیٹا سیٹس جو آپ استعمال کرنا چاہتے ہیں (یا استعمال کرنا پڑتے ہیں) ان میں گمشدہ اقدار ہوتی ہیں۔ گمشدہ ڈیٹا کو ہینڈل کرنے کے ساتھ ایسے نازک سمجھوتے ہوتے ہیں جو آپ کے حتمی تجزیے اور حقیقی دنیا کے نتائج کو متاثر کر سکتے ہیں۔ + +Pandas گمشدہ اقدار کو دو طریقوں سے ہینڈل کرتا ہے۔ پہلا آپ نے پچھلے حصوں میں دیکھا ہے: `NaN`، یا Not a Number۔ یہ دراصل ایک خاص قدر ہے جو IEEE فلوٹنگ پوائنٹ وضاحت کا حصہ ہے اور یہ صرف گمشدہ فلوٹنگ پوائنٹ اقدار کی نشاندہی کرنے کے لیے استعمال ہوتی ہے۔ + +فلوٹس کے علاوہ گمشدہ اقدار کے لیے، pandas Python کے `None` آبجیکٹ کا استعمال کرتا ہے۔ اگرچہ یہ الجھن پیدا کر سکتا ہے کہ آپ کو دو مختلف قسم کی اقدار کا سامنا کرنا پڑے گا جو بنیادی طور پر ایک ہی بات کہتی ہیں، لیکن اس ڈیزائن کے انتخاب کے لیے مضبوط پروگراماتی وجوہات ہیں اور عملی طور پر، اس راستے پر جانے سے pandas زیادہ تر معاملات کے لیے ایک اچھا سمجھوتہ فراہم کرتا ہے۔ اس کے باوجود، `None` اور `NaN` دونوں میں پابندیاں ہیں جن کے بارے میں آپ کو ان کے استعمال کے طریقے کے حوالے سے محتاط رہنے کی ضرورت ہے۔ + +`NaN` اور `None` کے بارے میں مزید جاننے کے لیے [نوٹ بک](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/4-Data-Science-Lifecycle/15-analyzing/notebook.ipynb) دیکھیں! + +- **null اقدار کا پتہ لگانا**: `pandas` میں، `isnull()` اور `notnull()` طریقے null ڈیٹا کا پتہ لگانے کے لیے آپ کے بنیادی طریقے ہیں۔ دونوں آپ کے ڈیٹا پر Boolean ماسک واپس کرتے ہیں۔ ہم `NaN` اقدار کے لیے `numpy` استعمال کریں گے: +```python +import numpy as np + +example1 = pd.Series([0, np.nan, '', None]) +example1.isnull() +``` +``` +0 False +1 True +2 False +3 True +dtype: bool +``` +آؤٹ پٹ کو غور سے دیکھیں۔ کیا اس میں سے کچھ آپ کو حیران کرتا ہے؟ اگرچہ `0` ایک ریاضیاتی null ہے، یہ پھر بھی ایک مکمل عدد ہے اور pandas اسے اسی طرح سمجھتا ہے۔ `''` تھوڑا زیادہ پیچیدہ ہے۔ اگرچہ ہم نے اسے سیکشن 1 میں ایک خالی سٹرنگ ویلیو کی نمائندگی کے لیے استعمال کیا، یہ پھر بھی ایک سٹرنگ آبجیکٹ ہے اور pandas کے مطابق null کی نمائندگی نہیں ہے۔ + +اب، آئیے اس کو پلٹتے ہیں اور ان طریقوں کو اس انداز میں استعمال کرتے ہیں جیسے آپ عملی طور پر کریں گے۔ آپ Boolean ماسک کو براہ راست ایک ``Series`` یا ``DataFrame`` انڈیکس کے طور پر استعمال کر سکتے ہیں، جو گمشدہ (یا موجود) اقدار کے ساتھ کام کرنے کی کوشش کرتے وقت مفید ہو سکتا ہے۔ + +> **نتیجہ:** `isnull()` اور `notnull()` دونوں طریقے جب آپ انہیں `DataFrame`s میں استعمال کرتے ہیں تو اسی طرح کے نتائج پیدا کرتے ہیں: وہ نتائج اور ان نتائج کے انڈیکس دکھاتے ہیں، جو آپ کے ڈیٹا کے ساتھ کام کرتے وقت آپ کے لیے بے حد مددگار ہوں گے۔ + +- **null اقدار کو ہٹانا**: گمشدہ اقدار کی نشاندہی کرنے کے علاوہ، pandas `Series` اور `DataFrame`s سے null اقدار کو ہٹانے کا ایک آسان ذریعہ فراہم کرتا ہے۔ (خاص طور پر بڑے ڈیٹا سیٹس پر، تجزیے سے گمشدہ [NA] اقدار کو ہٹانا اکثر زیادہ مشورہ دیا جاتا ہے بجائے اس کے کہ انہیں دوسرے طریقوں سے ہینڈل کیا جائے۔) آئیے `example1` پر واپس آتے ہیں تاکہ یہ عمل میں دیکھیں: +```python +example1 = example1.dropna() +example1 +``` +``` +0 0 +2 +dtype: object +``` +نوٹ کریں کہ یہ آپ کے آؤٹ پٹ کی طرح نظر آنا چاہیے `example3[example3.notnull()]`۔ فرق یہ ہے کہ، صرف ماسک شدہ اقدار پر انڈیکسنگ کرنے کے بجائے، `dropna` نے `Series` `example1` سے ان گمشدہ اقدار کو ہٹا دیا ہے۔ + +چونکہ `DataFrame`s کے دو ابعاد ہیں، وہ ڈیٹا کو ہٹانے کے لیے مزید اختیارات فراہم کرتے ہیں۔ + +```python +example2 = pd.DataFrame([[1, np.nan, 7], + [2, 5, 8], + [np.nan, 6, 9]]) +example2 +``` +| | 0 | 1 | 2 | +|------|---|---|---| +|0 |1.0|NaN|7 | +|1 |2.0|5.0|8 | +|2 |NaN|6.0|9 | + +(کیا آپ نے دیکھا کہ pandas نے دو کالمز کو `NaN`s کو ایڈجسٹ کرنے کے لیے فلوٹس میں اپ کاسٹ کیا؟) + +آپ `DataFrame` سے ایک واحد قدر کو ہٹا نہیں سکتے، اس لیے آپ کو مکمل قطاریں یا کالمز ہٹانے ہوں گے۔ آپ جو کچھ کر رہے ہیں اس پر منحصر ہے، آپ ایک یا دوسرے کو ہٹانا چاہیں گے، اور اس لیے pandas آپ کو دونوں کے لیے اختیارات دیتا ہے۔ چونکہ ڈیٹا سائنس میں، کالمز عام طور پر متغیرات کی نمائندگی کرتے ہیں اور قطاریں مشاہدات کی نمائندگی کرتی ہیں، آپ زیادہ تر ڈیٹا کی قطاریں ہٹانے کا امکان رکھتے ہیں؛ `dropna()` کے لیے ڈیفالٹ سیٹنگ یہ ہے کہ وہ تمام قطاریں ہٹا دے جن میں کوئی null اقدار موجود ہوں: + +```python +example2.dropna() +``` +``` + 0 1 2 +1 2.0 5.0 8 +``` +اگر ضروری ہو، تو آپ کالمز سے NA اقدار کو ہٹا سکتے ہیں۔ ایسا کرنے کے لیے `axis=1` استعمال کریں: +```python +example2.dropna(axis='columns') +``` +``` + 2 +0 7 +1 8 +2 9 +``` +نوٹ کریں کہ یہ بہت سا ڈیٹا ہٹا سکتا ہے جسے آپ رکھنا چاہتے ہیں، خاص طور پر چھوٹے ڈیٹا سیٹس میں۔ اگر آپ صرف ان قطاروں یا کالمز کو ہٹانا چاہتے ہیں جن میں کئی یا صرف تمام null اقدار موجود ہوں؟ آپ `dropna` میں `how` اور `thresh` پیرامیٹرز کے ساتھ ان ترتیبات کو مخصوص کر سکتے ہیں۔ + +ڈیفالٹ کے طور پر، `how='any'` (اگر آپ خود چیک کرنا چاہتے ہیں یا دیکھنا چاہتے ہیں کہ اس طریقے کے دوسرے پیرامیٹرز کیا ہیں، تو کوڈ سیل میں `example4.dropna?` چلائیں)۔ آپ متبادل طور پر `how='all'` مخصوص کر سکتے ہیں تاکہ صرف ان قطاروں یا کالمز کو ہٹایا جا سکے جن میں تمام null اقدار موجود ہوں۔ آئیے اپنے مثال کے `DataFrame` کو بڑھاتے ہیں تاکہ یہ عمل میں دیکھیں۔ + +```python +example2[3] = np.nan +example2 +``` +| |0 |1 |2 |3 | +|------|---|---|---|---| +|0 |1.0|NaN|7 |NaN| +|1 |2.0|5.0|8 |NaN| +|2 |NaN|6.0|9 |NaN| + +`thresh` پیرامیٹر آپ کو زیادہ باریک بینی سے کنٹرول فراہم کرتا ہے: آپ ان غیر-null اقدار کی تعداد مقرر کرتے ہیں جو کسی قطار یا کالم کو برقرار رکھنے کے لیے ضروری ہیں: +```python +example2.dropna(axis='rows', thresh=3) +``` +``` + 0 1 2 3 +1 2.0 5.0 8 NaN +``` +یہاں، پہلی اور آخری قطار کو ہٹا دیا گیا ہے، کیونکہ ان میں صرف دو غیر-null اقدار موجود ہیں۔ + +- **null اقدار کو بھرنا**: آپ کے ڈیٹا سیٹ پر منحصر ہے، بعض اوقات null اقدار کو درست اقدار سے بھرنا زیادہ معنی خیز ہو سکتا ہے بجائے اس کے کہ انہیں ہٹا دیا جائے۔ آپ `isnull` کو جگہ میں ایسا کرنے کے لیے استعمال کر سکتے ہیں، لیکن یہ محنت طلب ہو سکتا ہے، خاص طور پر اگر آپ کے پاس بھرنے کے لیے بہت سی اقدار ہوں۔ چونکہ یہ ڈیٹا سائنس میں ایک عام کام ہے، pandas `fillna` فراہم کرتا ہے، جو `Series` یا `DataFrame` کی ایک کاپی واپس کرتا ہے جس میں گمشدہ اقدار کو آپ کی پسند کی کسی ایک سے تبدیل کر دیا گیا ہو۔ آئیے ایک اور مثال `Series` بناتے ہیں تاکہ یہ عمل میں دیکھیں۔ + +```python +example3 = pd.Series([1, np.nan, 2, None, 3], index=list('abcde')) +example3 +``` +``` +a 1.0 +b NaN +c 2.0 +d NaN +e 3.0 +dtype: float64 +``` +آپ تمام null اندراجات کو ایک واحد قدر، جیسے `0` سے بھر سکتے ہیں: +```python +example3.fillna(0) +``` +``` +a 1.0 +b 0.0 +c 2.0 +d 0.0 +e 3.0 +dtype: float64 +``` +آپ null اقدار کو **آگے بھر سکتے ہیں**، یعنی آخری درست قدر کو null کو بھرنے کے لیے استعمال کریں: +```python +example3.fillna(method='ffill') +``` +``` +a 1.0 +b 1.0 +c 2.0 +d 2.0 +e 3.0 +dtype: float64 +``` +آپ null اقدار کو **پیچھے بھر سکتے ہیں** تاکہ اگلی درست قدر کو null کو بھرنے کے لیے پیچھے کی طرف پھیلایا جا سکے: +```python +example3.fillna(method='bfill') +``` +``` +a 1.0 +b 2.0 +c 2.0 +d 3.0 +e 3.0 +dtype: float64 +``` +جیسا کہ آپ اندازہ لگا سکتے ہیں، یہ `DataFrame`s کے ساتھ بھی اسی طرح کام کرتا ہے، لیکن آپ null اقدار کو بھرنے کے لیے ایک `axis` بھی مخصوص کر سکتے ہیں۔ پہلے استعمال شدہ `example2` کو دوبارہ لیتے ہوئے: +```python +example2.fillna(method='ffill', axis=1) +``` +``` + 0 1 2 3 +0 1.0 1.0 7.0 7.0 +1 2.0 5.0 8.0 8.0 +2 NaN 6.0 9.0 9.0 +``` +نوٹ کریں کہ جب آگے بھرنے کے لیے پچھلی قدر دستیاب نہ ہو، تو null قدر برقرار رہتی ہے۔ +> **خلاصہ:** اپنے ڈیٹا سیٹس میں موجود گمشدہ اقدار سے نمٹنے کے کئی طریقے ہیں۔ آپ جو خاص حکمت عملی اپناتے ہیں (انہیں ہٹانا، تبدیل کرنا، یا یہاں تک کہ کس طرح تبدیل کرنا) وہ ڈیٹا کی نوعیت پر منحصر ہونا چاہیے۔ جتنا زیادہ آپ ڈیٹا سیٹس کے ساتھ کام کریں گے، اتنا ہی بہتر آپ کو گمشدہ اقدار کو سنبھالنے کا تجربہ ہوگا۔ + +## ڈپلیکیٹ ڈیٹا کو ہٹانا + +> **سیکھنے کا مقصد:** اس حصے کے اختتام تک، آپ کو DataFrames میں ڈپلیکیٹ اقدار کی شناخت اور انہیں ہٹانے میں مہارت حاصل ہو جانی چاہیے۔ + +گمشدہ ڈیٹا کے علاوہ، آپ کو حقیقی دنیا کے ڈیٹا سیٹس میں اکثر ڈپلیکیٹ ڈیٹا کا سامنا ہوگا۔ خوش قسمتی سے، `pandas` ڈپلیکیٹ اندراجات کی شناخت اور انہیں ہٹانے کا ایک آسان طریقہ فراہم کرتا ہے۔ + +- **ڈپلیکیٹس کی شناخت: `duplicated`:** آپ pandas کے `duplicated` میتھڈ کا استعمال کرتے ہوئے آسانی سے ڈپلیکیٹ اقدار کو دیکھ سکتے ہیں، جو ایک Boolean ماسک واپس کرتا ہے جو ظاہر کرتا ہے کہ آیا `DataFrame` میں کوئی اندراج پہلے والے کا ڈپلیکیٹ ہے۔ آئیے ایک اور مثال کے طور پر `DataFrame` بناتے ہیں تاکہ اسے عملی طور پر دیکھ سکیں۔ +```python +example4 = pd.DataFrame({'letters': ['A','B'] * 2 + ['B'], + 'numbers': [1, 2, 1, 3, 3]}) +example4 +``` +| |letters|numbers| +|------|-------|-------| +|0 |A |1 | +|1 |B |2 | +|2 |A |1 | +|3 |B |3 | +|4 |B |3 | + +```python +example4.duplicated() +``` +``` +0 False +1 False +2 True +3 False +4 True +dtype: bool +``` +- **ڈپلیکیٹس کو ہٹانا: `drop_duplicates`:** یہ صرف ان ڈیٹا کی ایک کاپی واپس کرتا ہے جن کے تمام `duplicated` اقدار `False` ہیں: +```python +example4.drop_duplicates() +``` +``` + letters numbers +0 A 1 +1 B 2 +3 B 3 +``` +`duplicated` اور `drop_duplicates` دونوں کا ڈیفالٹ یہ ہے کہ وہ تمام کالمز کو مدنظر رکھتے ہیں، لیکن آپ یہ وضاحت کر سکتے ہیں کہ وہ آپ کے `DataFrame` میں صرف ایک مخصوص کالمز کے سب سیٹ کا جائزہ لیں: +```python +example4.drop_duplicates(['letters']) +``` +``` +letters numbers +0 A 1 +1 B 2 +``` + +> **خلاصہ:** ڈپلیکیٹ ڈیٹا کو ہٹانا تقریباً ہر ڈیٹا سائنس پروجیکٹ کا ایک لازمی حصہ ہے۔ ڈپلیکیٹ ڈیٹا آپ کے تجزیے کے نتائج کو تبدیل کر سکتا ہے اور آپ کو غلط نتائج فراہم کر سکتا ہے! + +## 🚀 چیلنج + +تمام زیر بحث مواد ایک [Jupyter Notebook](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/2-Working-With-Data/08-data-preparation/notebook.ipynb) کی صورت میں فراہم کیا گیا ہے۔ مزید برآں، ہر سیکشن کے بعد مشقیں موجود ہیں، انہیں ضرور آزمائیں! + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/15) + +## جائزہ اور خود مطالعہ + +ڈیٹا کو تجزیے اور ماڈلنگ کے لیے تیار کرنے کے کئی طریقے ہیں، اور ڈیٹا کی صفائی ایک اہم قدم ہے جو عملی تجربے کا تقاضا کرتا ہے۔ Kaggle کے ان چیلنجز کو آزمائیں تاکہ ان تکنیکوں کو دریافت کریں جو اس سبق میں شامل نہیں کی گئیں۔ + +- [ڈیٹا صفائی چیلنج: تاریخوں کو پارس کرنا](https://www.kaggle.com/rtatman/data-cleaning-challenge-parsing-dates/) + +- [ڈیٹا صفائی چیلنج: ڈیٹا کو اسکیل اور نارملائز کرنا](https://www.kaggle.com/rtatman/data-cleaning-challenge-scale-and-normalize-data) + +## اسائنمنٹ + +[فارم سے ڈیٹا کا جائزہ لینا](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/08-data-preparation/assignment.md b/translations/ur/2-Working-With-Data/08-data-preparation/assignment.md new file mode 100644 index 00000000..67a963c5 --- /dev/null +++ b/translations/ur/2-Working-With-Data/08-data-preparation/assignment.md @@ -0,0 +1,28 @@ + +# فارم سے ڈیٹا کا جائزہ لینا + +ایک کلائنٹ نے اپنے صارفین کے بارے میں بنیادی معلومات جمع کرنے کے لیے ایک [چھوٹا فارم](../../../../2-Working-With-Data/08-data-preparation/index.html) کا تجربہ کیا ہے۔ وہ اپنے نتائج آپ کے پاس لائے ہیں تاکہ آپ ان کے جمع کردہ ڈیٹا کی تصدیق کریں۔ آپ براؤزر میں `index.html` صفحہ کھول کر فارم دیکھ سکتے ہیں۔ + +آپ کو ایک [csv ریکارڈز کا ڈیٹاسیٹ](../../../../data/form.csv) فراہم کیا گیا ہے جس میں فارم کے اندراجات اور کچھ بنیادی بصریات شامل ہیں۔ کلائنٹ نے نشاندہی کی ہے کہ کچھ بصریات غلط نظر آتی ہیں لیکن وہ انہیں ٹھیک کرنے کے طریقے کے بارے میں غیر یقینی ہیں۔ آپ اسے [assignment notebook](assignment.ipynb) میں دیکھ سکتے ہیں۔ + +## ہدایات + +اس سبق میں دی گئی تکنیکوں کا استعمال کریں تاکہ فارم کے بارے میں سفارشات دی جا سکیں تاکہ یہ درست اور مستقل معلومات جمع کرے۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت +--- | --- | --- | + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/2-Working-With-Data/README.md b/translations/ur/2-Working-With-Data/README.md new file mode 100644 index 00000000..54b4b7c1 --- /dev/null +++ b/translations/ur/2-Working-With-Data/README.md @@ -0,0 +1,31 @@ + +# ڈیٹا کے ساتھ کام کرنا + +![data love](../../../translated_images/data-love.a22ef29e6742c852505ada062920956d3d7604870b281a8ca7c7ac6f37381d5a.ur.jpg) +> تصویر از الیکزینڈر سن on Unsplash + +ان اسباق میں، آپ سیکھیں گے کہ ڈیٹا کو کس طرح منظم، تبدیل، اور ایپلیکیشنز میں استعمال کیا جا سکتا ہے۔ آپ ریلیشنل اور نان ریلیشنل ڈیٹا بیسز کے بارے میں جانیں گے اور یہ کہ ڈیٹا ان میں کس طرح محفوظ کیا جا سکتا ہے۔ آپ Python کے ساتھ ڈیٹا کو منظم کرنے کے بنیادی اصول سیکھیں گے، اور آپ دریافت کریں گے کہ Python کے ذریعے ڈیٹا کو منظم اور مائن کرنے کے کئی طریقے موجود ہیں۔ + +### موضوعات + +1. [ریلیشنل ڈیٹا بیسز](05-relational-databases/README.md) +2. [نان ریلیشنل ڈیٹا بیسز](06-non-relational/README.md) +3. [Python کے ساتھ کام کرنا](07-python/README.md) +4. [ڈیٹا کی تیاری](08-data-preparation/README.md) + +### کریڈٹس + +یہ اسباق ❤️ کے ساتھ [کرسٹوفر ہیریسن](https://twitter.com/geektrainer)، [دیمتری سوشنیکوف](https://twitter.com/shwars) اور [جیسمن گریناوے](https://twitter.com/paladique) نے لکھے ہیں۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/09-visualization-quantities/README.md b/translations/ur/3-Data-Visualization/09-visualization-quantities/README.md new file mode 100644 index 00000000..23e60ae7 --- /dev/null +++ b/translations/ur/3-Data-Visualization/09-visualization-quantities/README.md @@ -0,0 +1,217 @@ + +# مقداروں کی بصری نمائندگی + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| مقداروں کی بصری نمائندگی - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +اس سبق میں آپ سیکھیں گے کہ کس طرح پائتھون کی مختلف لائبریریوں میں سے ایک کا استعمال کرتے ہوئے مقدار کے تصور کے گرد دلچسپ بصری نمائندگی بنائی جا سکتی ہے۔ منیسوٹا کے پرندوں کے بارے میں صاف شدہ ڈیٹا سیٹ کا استعمال کرتے ہوئے، آپ مقامی جنگلی حیات کے بارے میں کئی دلچسپ حقائق جان سکتے ہیں۔ +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## Matplotlib کے ساتھ پروں کے پھیلاؤ کا مشاہدہ کریں + +[Matplotlib](https://matplotlib.org/stable/index.html) ایک شاندار لائبریری ہے جو مختلف قسم کے سادہ اور پیچیدہ گراف اور چارٹس بنانے کے لیے استعمال ہوتی ہے۔ عمومی طور پر، ان لائبریریوں کے ذریعے ڈیٹا کو گراف میں پیش کرنے کا عمل ان حصوں کی نشاندہی سے شروع ہوتا ہے جنہیں آپ اپنے ڈیٹا فریم میں ہدف بنانا چاہتے ہیں، اس ڈیٹا پر ضروری تبدیلیاں کرنا، اس کے x اور y محور کی قدریں تفویض کرنا، گراف کی قسم کا انتخاب کرنا، اور پھر گراف کو دکھانا۔ Matplotlib مختلف قسم کی بصری نمائندگی پیش کرتا ہے، لیکن اس سبق میں ہم ان پر توجہ مرکوز کریں گے جو مقدار کو ظاہر کرنے کے لیے سب سے زیادہ موزوں ہیں: لائن چارٹس، اسکیٹر پلاٹس، اور بار پلاٹس۔ + +> ✅ اپنے ڈیٹا کی ساخت اور کہانی کے مطابق بہترین چارٹ کا انتخاب کریں۔ +> - وقت کے ساتھ رجحانات کا تجزیہ کرنے کے لیے: لائن +> - قدروں کا موازنہ کرنے کے لیے: بار، کالم، پائی، اسکیٹر پلاٹ +> - یہ دکھانے کے لیے کہ حصے کل سے کیسے تعلق رکھتے ہیں: پائی +> - ڈیٹا کی تقسیم کو ظاہر کرنے کے لیے: اسکیٹر پلاٹ، بار +> - رجحانات دکھانے کے لیے: لائن، کالم +> - قدروں کے درمیان تعلقات ظاہر کرنے کے لیے: لائن، اسکیٹر پلاٹ، ببل + +اگر آپ کے پاس ایک ڈیٹا سیٹ ہے اور آپ کو یہ جاننے کی ضرورت ہے کہ کسی خاص آئٹم کی کتنی مقدار شامل ہے، تو آپ کا پہلا کام اس کی قدروں کا معائنہ کرنا ہوگا۔ + +✅ Matplotlib کے لیے بہت اچھے 'چیٹ شیٹس' [یہاں](https://matplotlib.org/cheatsheets/cheatsheets.pdf) دستیاب ہیں۔ + +## پرندوں کے پروں کے پھیلاؤ کے بارے میں لائن گراف بنائیں + +سبق کے فولڈر کے روٹ میں موجود `notebook.ipynb` فائل کھولیں اور ایک سیل شامل کریں۔ + +> نوٹ: ڈیٹا اس ریپو کے روٹ میں `/data` فولڈر میں محفوظ ہے۔ + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` +یہ ڈیٹا متن اور اعداد کا مرکب ہے: + +| | نام | سائنسی نام | زمرہ | آرڈر | خاندان | جینس | تحفظ کی حالت | کم از کم لمبائی | زیادہ سے زیادہ لمبائی | کم از کم جسمانی وزن | زیادہ سے زیادہ جسمانی وزن | کم از کم پروں کا پھیلاؤ | زیادہ سے زیادہ پروں کا پھیلاؤ | +| ---: | :--------------------------- | :--------------------- | :------------------- | :----------- | :------- | :--------- | :----------------- | -------------: | -------------: | ----------------: | ----------------: | ----------------: | ----------------: | +| 0 | بلیک بیلیڈ وسلنگ ڈک | Dendrocygna autumnalis | بطخ/ہنس/آبی پرندے | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | فلویس وسلنگ ڈک | Dendrocygna bicolor | بطخ/ہنس/آبی پرندے | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | سنو گوز | Anser caerulescens | بطخ/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | روس کا گوز | Anser rossii | بطخ/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | گریٹر وائٹ فرنٹڈ گوز | Anser albifrons | بطخ/ہنس/آبی پرندے | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +آئیے ان دلچسپ پرندوں کے زیادہ سے زیادہ پروں کے پھیلاؤ کی ایک بنیادی لائن گراف بنا کر کچھ عددی ڈیٹا پیش کرتے ہیں۔ + +```python +wingspan = birds['MaxWingspan'] +wingspan.plot() +``` +![زیادہ سے زیادہ پروں کا پھیلاؤ](../../../../translated_images/max-wingspan-02.e79fd847b2640b89e21e340a3a9f4c5d4b224c4fcd65f54385e84f1c9ed26d52.ur.png) + +آپ نے فوراً کیا نوٹ کیا؟ ایسا لگتا ہے کہ کم از کم ایک آؤٹ لائر موجود ہے - یہ کافی بڑا پروں کا پھیلاؤ ہے! 2300 سینٹی میٹر پروں کا پھیلاؤ 23 میٹر کے برابر ہے - کیا منیسوٹا میں پیٹروڈیکٹائلز گھوم رہے ہیں؟ آئیے اس کی تحقیق کریں۔ + +اگرچہ آپ ایکسل میں جلدی سے آؤٹ لائرز کو ترتیب دے سکتے ہیں، لیکن گراف کے اندر سے کام جاری رکھتے ہوئے بصری نمائندگی کے عمل کو جاری رکھیں۔ + +x محور پر لیبلز شامل کریں تاکہ یہ دکھایا جا سکے کہ سوال میں کون سے پرندے ہیں: + +``` +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.xticks(rotation=45) +x = birds['Name'] +y = birds['MaxWingspan'] + +plt.plot(x, y) + +plt.show() +``` +![لیبلز کے ساتھ پروں کا پھیلاؤ](../../../../translated_images/max-wingspan-labels-02.aa90e826ca49a9d1dde78075e9755c1849ef56a4e9ec60f7e9f3806daf9283e2.ur.png) + +یہاں تک کہ لیبلز کو 45 ڈگری پر گھمانے کے باوجود، انہیں پڑھنا مشکل ہے۔ آئیے ایک مختلف حکمت عملی آزمائیں: صرف ان آؤٹ لائرز کو لیبل کریں اور چارٹ کے اندر لیبلز سیٹ کریں۔ آپ لیبلنگ کے لیے مزید جگہ بنانے کے لیے اسکیٹر چارٹ استعمال کر سکتے ہیں: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) + +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + plt.plot(x, y, 'bo') + if birds['MaxWingspan'][i] > 500: + plt.text(x, y * (1 - 0.05), birds['Name'][i], fontsize=12) + +plt.show() +``` +یہاں کیا ہو رہا ہے؟ آپ نے `tick_params` کا استعمال کرتے ہوئے نیچے کے لیبلز کو چھپایا اور پھر اپنے پرندوں کے ڈیٹا سیٹ پر ایک لوپ بنایا۔ چھوٹے نیلے نقطوں کے ساتھ چارٹ کو `bo` کا استعمال کرتے ہوئے بنایا، آپ نے کسی بھی پرندے کو چیک کیا جس کا زیادہ سے زیادہ پروں کا پھیلاؤ 500 سے زیادہ ہو اور اگر ایسا ہو تو اس کے نقطے کے ساتھ اس کا لیبل دکھایا۔ آپ نے y محور پر لیبلز کو تھوڑا سا آفسیٹ کیا (`y * (1 - 0.05)`) اور پرندے کے نام کو لیبل کے طور پر استعمال کیا۔ + +آپ نے کیا دریافت کیا؟ + +![آؤٹ لائرز](../../../../translated_images/labeled-wingspan-02.6110e2d2401cd5238ccc24dfb6d04a6c19436101f6cec151e3992e719f9f1e1f.ur.png) +## اپنے ڈیٹا کو فلٹر کریں + +بالڈ ایگل اور پریری فالکن، اگرچہ شاید بہت بڑے پرندے ہیں، لیکن ان کے زیادہ سے زیادہ پروں کے پھیلاؤ میں ایک اضافی `0` شامل ہونے کی وجہ سے غلط لیبل لگے ہوئے معلوم ہوتے ہیں۔ یہ ممکن نہیں ہے کہ آپ 25 میٹر پروں کے پھیلاؤ والے بالڈ ایگل سے ملیں، لیکن اگر ایسا ہو تو براہ کرم ہمیں بتائیں! آئیے ان دو آؤٹ لائرز کے بغیر ایک نیا ڈیٹا فریم بنائیں: + +```python +plt.title('Max Wingspan in Centimeters') +plt.ylabel('Wingspan (CM)') +plt.xlabel('Birds') +plt.tick_params(axis='both',which='both',labelbottom=False,bottom=False) +for i in range(len(birds)): + x = birds['Name'][i] + y = birds['MaxWingspan'][i] + if birds['Name'][i] not in ['Bald eagle', 'Prairie falcon']: + plt.plot(x, y, 'bo') +plt.show() +``` + +آؤٹ لائرز کو فلٹر کرنے سے، آپ کا ڈیٹا اب زیادہ مربوط اور سمجھنے میں آسان ہو گیا ہے۔ + +![پروں کے پھیلاؤ کا اسکیٹر پلاٹ](../../../../translated_images/scatterplot-wingspan-02.1c33790094ce36a75f5fb45b25ed2cf27f0356ea609e43c11e97a2cedd7011a4.ur.png) + +اب جب کہ ہمارے پاس پروں کے پھیلاؤ کے لحاظ سے کم از کم ایک صاف ستھرا ڈیٹا سیٹ ہے، آئیے ان پرندوں کے بارے میں مزید دریافت کریں۔ + +اگرچہ لائن اور اسکیٹر پلاٹس ڈیٹا کی قدروں اور ان کی تقسیم کے بارے میں معلومات ظاہر کر سکتے ہیں، ہم اس ڈیٹا سیٹ میں موجود قدروں کے بارے میں سوچنا چاہتے ہیں۔ آپ مقدار کے بارے میں درج ذیل سوالات کے جوابات دینے کے لیے بصری نمائندگی بنا سکتے ہیں: + +> پرندوں کے کتنے زمرے ہیں، اور ان کی تعداد کیا ہے؟ +> کتنے پرندے معدوم، خطرے میں، نایاب، یا عام ہیں؟ +> لینیس کے اصطلاحات میں مختلف جینس اور آرڈرز کی تعداد کتنی ہے؟ +## بار چارٹس کا جائزہ لیں + +جب آپ کو ڈیٹا کے گروپنگز دکھانے کی ضرورت ہو تو بار چارٹس عملی ہوتے ہیں۔ آئیے اس ڈیٹا سیٹ میں موجود پرندوں کے زمرے کا جائزہ لیں تاکہ یہ دیکھ سکیں کہ تعداد کے لحاظ سے کون سا سب سے عام ہے۔ + +نوٹ بک فائل میں ایک بنیادی بار چارٹ بنائیں۔ + +✅ نوٹ کریں، آپ یا تو پچھلے حصے میں شناخت کیے گئے دو آؤٹ لائر پرندوں کو فلٹر کر سکتے ہیں، ان کے پروں کے پھیلاؤ میں ٹائپو کو درست کر سکتے ہیں، یا انہیں ان مشقوں کے لیے چھوڑ سکتے ہیں جو پروں کے پھیلاؤ کی قدروں پر انحصار نہیں کرتے۔ + +اگر آپ بار چارٹ بنانا چاہتے ہیں، تو آپ اس ڈیٹا کو منتخب کر سکتے ہیں جس پر آپ توجہ مرکوز کرنا چاہتے ہیں۔ بار چارٹس خام ڈیٹا سے بنائے جا سکتے ہیں: + +```python +birds.plot(x='Category', + kind='bar', + stacked=True, + title='Birds of Minnesota') + +``` +![مکمل ڈیٹا بطور بار چارٹ](../../../../translated_images/full-data-bar-02.aaa3fda71c63ed564b917841a1886c177dd9a26424142e510c0c0498fd6ca160.ur.png) + +یہ بار چارٹ، تاہم، ناقابل پڑھائی ہے کیونکہ اس میں بہت زیادہ غیر گروپ شدہ ڈیٹا ہے۔ آپ کو صرف اس ڈیٹا کا انتخاب کرنے کی ضرورت ہے جسے آپ گراف میں پیش کرنا چاہتے ہیں، تو آئیے پرندے کے زمرے کی بنیاد پر لمبائی دیکھیں۔ + +اپنے ڈیٹا کو صرف پرندے کے زمرے تک محدود کریں۔ + +✅ نوٹ کریں کہ آپ ڈیٹا کو منظم کرنے کے لیے Pandas کا استعمال کرتے ہیں، اور پھر چارٹنگ کے لیے Matplotlib کا استعمال کرتے ہیں۔ + +چونکہ زمرے بہت زیادہ ہیں، آپ اس چارٹ کو عمودی طور پر دکھا سکتے ہیں اور تمام ڈیٹا کو ایڈجسٹ کرنے کے لیے اس کی اونچائی کو ایڈجسٹ کر سکتے ہیں: + +```python +category_count = birds.value_counts(birds['Category'].values, sort=True) +plt.rcParams['figure.figsize'] = [6, 12] +category_count.plot.barh() +``` +![زمرہ اور لمبائی](../../../../translated_images/category-counts-02.0b9a0a4de42275ae5096d0f8da590d8bf520d9e7e40aad5cc4fc8d276480cc32.ur.png) + +یہ بار چارٹ ہر زمرے میں پرندوں کی تعداد کا ایک اچھا نظارہ پیش کرتا ہے۔ ایک نظر میں، آپ دیکھ سکتے ہیں کہ اس علاقے میں سب سے زیادہ تعداد بطخ/ہنس/آبی پرندے کے زمرے میں ہے۔ منیسوٹا '10,000 جھیلوں کی سرزمین' ہے، لہذا یہ حیرت کی بات نہیں ہے! + +✅ اس ڈیٹا سیٹ پر کچھ اور گنتیاں آزمائیں۔ کیا کچھ آپ کو حیران کرتا ہے؟ + +## ڈیٹا کا موازنہ + +آپ نئے محور بنا کر گروپ شدہ ڈیٹا کے مختلف موازنات آزما سکتے ہیں۔ پرندے کے زمرے کی بنیاد پر پرندے کی زیادہ سے زیادہ لمبائی کا موازنہ آزمائیں: + +```python +maxlength = birds['MaxLength'] +plt.barh(y=birds['Category'], width=maxlength) +plt.rcParams['figure.figsize'] = [6, 12] +plt.show() +``` +![ڈیٹا کا موازنہ](../../../../translated_images/category-length-02.7304bf519375c9807d8165cc7ec60dd2a60f7b365b23098538e287d89adb7d76.ur.png) + +یہاں کچھ حیران کن نہیں ہے: ہمینگ برڈز کی زیادہ سے زیادہ لمبائی پیلکنز یا ہنسوں کے مقابلے میں سب سے کم ہے۔ یہ اچھا ہے جب ڈیٹا منطقی طور پر سمجھ میں آتا ہے! + +آپ بار چارٹس کی مزید دلچسپ بصری نمائندگی بنا سکتے ہیں ڈیٹا کو اوورلیپ کر کے۔ آئیے کسی دیے گئے پرندے کے زمرے پر کم از کم اور زیادہ سے زیادہ لمبائی کو اوورلیپ کریں: + +```python +minLength = birds['MinLength'] +maxLength = birds['MaxLength'] +category = birds['Category'] + +plt.barh(category, maxLength) +plt.barh(category, minLength) + +plt.show() +``` +اس گراف میں، آپ پرندے کے زمرے کے لحاظ سے کم از کم اور زیادہ سے زیادہ لمبائی کی حد دیکھ سکتے ہیں۔ آپ محفوظ طریقے سے کہہ سکتے ہیں کہ، اس ڈیٹا کے مطابق، جتنا بڑا پرندہ، اتنی ہی اس کی لمبائی کی حد زیادہ ہوتی ہے۔ دلچسپ! + +![اوورلیپ شدہ قدریں](../../../../translated_images/superimposed-02.f03058536baeb2ed7864f01102538464d4c2fd7ade881ddd7d5ba74dc5d2fdae.ur.png) + +## 🚀 چیلنج + +یہ پرندوں کا ڈیٹا سیٹ کسی خاص ماحولیاتی نظام کے اندر مختلف قسم کے پرندوں کے بارے میں معلومات کا خزانہ پیش کرتا ہے۔ انٹرنیٹ پر تلاش کریں اور دیکھیں کہ کیا آپ پرندوں پر مبنی دیگر ڈیٹا سیٹس تلاش کر سکتے ہیں۔ ان پرندوں کے گرد گراف اور چارٹس بنانے کی مشق کریں تاکہ وہ حقائق دریافت کریں جن کا آپ کو اندازہ نہ تھا۔ +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## جائزہ اور خود مطالعہ + +اس پہلے سبق نے آپ کو یہ معلومات دی ہے کہ مقداروں کو بصری طور پر پیش کرنے کے لیے Matplotlib کا استعمال کیسے کیا جائے۔ بصری نمائندگی کے لیے ڈیٹا سیٹس کے ساتھ کام کرنے کے دیگر طریقوں کے بارے میں تحقیق کریں۔ [Plotly](https://github.com/plotly/plotly.py) ایک ایسا ذریعہ ہے جسے ہم ان اسباق میں شامل نہیں کریں گے، لہذا دیکھیں کہ یہ کیا پیش کر سکتا ہے۔ +## اسائنمنٹ + +[لائنز، اسکیٹرز، اور بارز](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/09-visualization-quantities/assignment.md b/translations/ur/3-Data-Visualization/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..c5c8298f --- /dev/null +++ b/translations/ur/3-Data-Visualization/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# لکیریں، اسکیٹرز اور بارز + +## ہدایات + +اس سبق میں، آپ نے لائن چارٹس، اسکیٹرپلاٹس، اور بار چارٹس کے ساتھ کام کیا تاکہ اس ڈیٹا سیٹ کے بارے میں دلچسپ حقائق دکھائے جا سکیں۔ اس اسائنمنٹ میں، ڈیٹا سیٹ میں مزید گہرائی میں جائیں تاکہ کسی دیے گئے پرندے کی قسم کے بارے میں ایک حقیقت دریافت کریں۔ مثال کے طور پر، ایک نوٹ بک بنائیں جو اسنو گیز کے بارے میں تمام دلچسپ ڈیٹا کو بصری طور پر پیش کرے۔ اپنی نوٹ بک میں کہانی سنانے کے لیے اوپر ذکر کیے گئے تین گرافز کا استعمال کریں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- | +ایک نوٹ بک پیش کی گئی ہے جس میں عمدہ تشریحات، مضبوط کہانی سنانے کا انداز، اور دلکش گرافز شامل ہیں | نوٹ بک میں ان عناصر میں سے ایک کی کمی ہے | نوٹ بک میں ان عناصر میں سے دو کی کمی ہے + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ماخذ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/10-visualization-distributions/README.md b/translations/ur/3-Data-Visualization/10-visualization-distributions/README.md new file mode 100644 index 00000000..60343f86 --- /dev/null +++ b/translations/ur/3-Data-Visualization/10-visualization-distributions/README.md @@ -0,0 +1,218 @@ + +# تقسیمات کو بصری بنانا + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| تقسیمات کو بصری بنانا - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +پچھلے سبق میں، آپ نے منیسوٹا کے پرندوں کے بارے میں ایک ڈیٹا سیٹ کے کچھ دلچسپ حقائق سیکھے۔ آپ نے آؤٹ لائرز کو بصری بنا کر کچھ غلط ڈیٹا دریافت کیا اور پرندوں کی اقسام کے درمیان زیادہ سے زیادہ لمبائی کے فرق کو دیکھا۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## پرندوں کے ڈیٹا سیٹ کو دریافت کریں + +ڈیٹا کو سمجھنے کا ایک اور طریقہ یہ ہے کہ اس کی تقسیم کو دیکھیں، یعنی ڈیٹا کسی محور کے ساتھ کیسے ترتیب دیا گیا ہے۔ مثال کے طور پر، آپ یہ جاننا چاہیں گے کہ اس ڈیٹا سیٹ میں منیسوٹا کے پرندوں کے زیادہ سے زیادہ پروں کے پھیلاؤ یا زیادہ سے زیادہ جسمانی وزن کی عمومی تقسیم کیا ہے۔ + +آئیے اس ڈیٹا سیٹ میں موجود ڈیٹا کی تقسیم کے بارے میں کچھ حقائق دریافت کریں۔ اس سبق کے فولڈر کی جڑ میں موجود _notebook.ipynb_ فائل میں، Pandas، Matplotlib، اور اپنے ڈیٹا کو درآمد کریں: + +```python +import pandas as pd +import matplotlib.pyplot as plt +birds = pd.read_csv('../../data/birds.csv') +birds.head() +``` + +| | Name | ScientificName | Category | Order | Family | Genus | ConservationStatus | MinLength | MaxLength | MinBodyMass | MaxBodyMass | MinWingspan | MaxWingspan | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | Black-bellied whistling-duck | Dendrocygna autumnalis | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | Fulvous whistling-duck | Dendrocygna bicolor | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | Snow goose | Anser caerulescens | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | Ross's goose | Anser rossii | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | Greater white-fronted goose | Anser albifrons | Ducks/Geese/Waterfowl | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +عمومی طور پر، آپ ڈیٹا کی تقسیم کو جلدی سے دیکھ سکتے ہیں جیسا کہ ہم نے پچھلے سبق میں ایک اسکیٹر پلاٹ کے ذریعے کیا: + +```python +birds.plot(kind='scatter',x='MaxLength',y='Order',figsize=(12,8)) + +plt.title('Max Length per Order') +plt.ylabel('Order') +plt.xlabel('Max Length') + +plt.show() +``` +![max length per order](../../../../translated_images/scatter-wb.9d98b0ed7f0388af979441853361a11df5f518f5307938a503ca7913e986111b.ur.png) + +یہ پرندوں کے آرڈر کے مطابق جسمانی لمبائی کی عمومی تقسیم کا جائزہ دیتا ہے، لیکن یہ حقیقی تقسیمات کو ظاہر کرنے کا بہترین طریقہ نہیں ہے۔ یہ کام عام طور پر ہسٹوگرام بنا کر کیا جاتا ہے۔ + +## ہسٹوگرام کے ساتھ کام کرنا + +Matplotlib ہسٹوگرامز کے ذریعے ڈیٹا کی تقسیم کو بصری بنانے کے بہترین طریقے فراہم کرتا ہے۔ یہ چارٹ بار چارٹ کی طرح ہوتا ہے جہاں تقسیم کو بارز کے اتار چڑھاؤ کے ذریعے دیکھا جا سکتا ہے۔ ہسٹوگرام بنانے کے لیے، آپ کو عددی ڈیٹا کی ضرورت ہوتی ہے۔ ہسٹوگرام بنانے کے لیے، آپ ایک چارٹ بنا سکتے ہیں جس میں قسم کو 'hist' کے طور پر بیان کیا گیا ہو۔ یہ چارٹ پورے ڈیٹا سیٹ کی عددی ڈیٹا کی حد کے لیے MaxBodyMass کی تقسیم کو ظاہر کرتا ہے۔ ڈیٹا کے صف کو چھوٹے حصوں میں تقسیم کر کے، یہ ڈیٹا کی قدروں کی تقسیم کو ظاہر کر سکتا ہے: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 10, figsize = (12,12)) +plt.show() +``` +![distribution over the entire dataset](../../../../translated_images/dist1-wb.0d0cac82e2974fbbec635826fefead401af795f82e2279e2e2678bf2c117d827.ur.png) + +جیسا کہ آپ دیکھ سکتے ہیں، اس ڈیٹا سیٹ میں موجود 400+ پرندوں میں سے زیادہ تر کا زیادہ سے زیادہ جسمانی وزن 2000 سے کم ہے۔ `bins` پیرامیٹر کو زیادہ تعداد، جیسے 30، پر تبدیل کر کے ڈیٹا کے بارے میں مزید بصیرت حاصل کریں: + +```python +birds['MaxBodyMass'].plot(kind = 'hist', bins = 30, figsize = (12,12)) +plt.show() +``` +![distribution over the entire dataset with larger bins param](../../../../translated_images/dist2-wb.2c0a7a3499b2fbf561e9f93b69f265dfc538dc78f6de15088ba84a88152e26ba.ur.png) + +یہ چارٹ تقسیم کو تھوڑا زیادہ تفصیلی انداز میں دکھاتا ہے۔ ایک کم بائیں طرف جھکا ہوا چارٹ اس وقت بنایا جا سکتا ہے جب آپ صرف ایک دی گئی حد کے اندر ڈیٹا منتخب کریں: + +اپنے ڈیٹا کو فلٹر کریں تاکہ صرف وہ پرندے شامل ہوں جن کا جسمانی وزن 60 سے کم ہو، اور 40 `bins` دکھائیں: + +```python +filteredBirds = birds[(birds['MaxBodyMass'] > 1) & (birds['MaxBodyMass'] < 60)] +filteredBirds['MaxBodyMass'].plot(kind = 'hist',bins = 40,figsize = (12,12)) +plt.show() +``` +![filtered histogram](../../../../translated_images/dist3-wb.64b88db7f9780200bd486a2c2a3252548dd439672dbd3f778193db7f654b100c.ur.png) + +✅ کچھ دوسرے فلٹرز اور ڈیٹا پوائنٹس آزمائیں۔ ڈیٹا کی مکمل تقسیم دیکھنے کے لیے، `['MaxBodyMass']` فلٹر کو ہٹا دیں تاکہ لیبل شدہ تقسیمات دکھائی دیں۔ + +ہسٹوگرام کچھ خوبصورت رنگ اور لیبلنگ کی بہتریاں بھی پیش کرتا ہے: + +دو تقسیمات کے درمیان تعلق کا موازنہ کرنے کے لیے ایک 2D ہسٹوگرام بنائیں۔ آئیے `MaxBodyMass` اور `MaxLength` کا موازنہ کریں۔ Matplotlib ایک بلٹ ان طریقہ فراہم کرتا ہے جو روشن رنگوں کے ذریعے ہم آہنگی کو ظاہر کرتا ہے: + +```python +x = filteredBirds['MaxBodyMass'] +y = filteredBirds['MaxLength'] + +fig, ax = plt.subplots(tight_layout=True) +hist = ax.hist2d(x, y) +``` +ایسا لگتا ہے کہ ان دو عناصر کے درمیان ایک متوقع محور کے ساتھ ایک متوقع تعلق ہے، جس میں ہم آہنگی کا ایک خاص طور پر مضبوط نقطہ موجود ہے: + +![2D plot](../../../../translated_images/2D-wb.ae22fdd33936507a41e3af22e11e4903b04a9be973b23a4e05214efaccfd66c8.ur.png) + +ہسٹوگرام عددی ڈیٹا کے لیے ڈیفالٹ طور پر اچھا کام کرتے ہیں۔ اگر آپ کو متن پر مبنی ڈیٹا کے مطابق تقسیمات دیکھنے کی ضرورت ہو تو کیا ہوگا؟ + +## متن پر مبنی ڈیٹا کے ذریعے ڈیٹا سیٹ کی تقسیم کو دریافت کریں + +اس ڈیٹا سیٹ میں پرندوں کی اقسام، ان کے جینس، انواع، خاندان، اور ان کے تحفظ کی حیثیت کے بارے میں بھی اچھی معلومات شامل ہیں۔ آئیے اس تحفظ کی معلومات کو دریافت کریں۔ پرندوں کی تقسیم ان کے تحفظ کی حیثیت کے مطابق کیا ہے؟ + +> ✅ اس ڈیٹا سیٹ میں تحفظ کی حیثیت کو بیان کرنے کے لیے کئی مخففات استعمال کیے گئے ہیں۔ یہ مخففات [IUCN Red List Categories](https://www.iucnredlist.org/) سے آتے ہیں، جو انواع کی حیثیت کو کیٹلاگ کرنے والی ایک تنظیم ہے۔ +> +> - CR: شدید خطرے میں +> - EN: خطرے میں +> - EX: معدوم +> - LC: کم سے کم تشویش +> - NT: قریب خطرے میں +> - VU: کمزور + +یہ متن پر مبنی قدریں ہیں، لہذا آپ کو ہسٹوگرام بنانے کے لیے ایک تبدیلی کرنے کی ضرورت ہوگی۔ فلٹر شدہ پرندوں کے ڈیٹا فریم کا استعمال کرتے ہوئے، اس کی تحفظ کی حیثیت کو اس کے کم از کم پروں کے پھیلاؤ کے ساتھ دکھائیں۔ آپ کیا دیکھتے ہیں؟ + +```python +x1 = filteredBirds.loc[filteredBirds.ConservationStatus=='EX', 'MinWingspan'] +x2 = filteredBirds.loc[filteredBirds.ConservationStatus=='CR', 'MinWingspan'] +x3 = filteredBirds.loc[filteredBirds.ConservationStatus=='EN', 'MinWingspan'] +x4 = filteredBirds.loc[filteredBirds.ConservationStatus=='NT', 'MinWingspan'] +x5 = filteredBirds.loc[filteredBirds.ConservationStatus=='VU', 'MinWingspan'] +x6 = filteredBirds.loc[filteredBirds.ConservationStatus=='LC', 'MinWingspan'] + +kwargs = dict(alpha=0.5, bins=20) + +plt.hist(x1, **kwargs, color='red', label='Extinct') +plt.hist(x2, **kwargs, color='orange', label='Critically Endangered') +plt.hist(x3, **kwargs, color='yellow', label='Endangered') +plt.hist(x4, **kwargs, color='green', label='Near Threatened') +plt.hist(x5, **kwargs, color='blue', label='Vulnerable') +plt.hist(x6, **kwargs, color='gray', label='Least Concern') + +plt.gca().set(title='Conservation Status', ylabel='Min Wingspan') +plt.legend(); +``` + +![wingspan and conservation collation](../../../../translated_images/histogram-conservation-wb.3c40450eb072c14de7a1a3ec5c0fcba4995531024760741b392911b567fd8b70.ur.png) + +کم از کم پروں کے پھیلاؤ اور تحفظ کی حیثیت کے درمیان کوئی اچھا تعلق نظر نہیں آتا۔ اس طریقے کا استعمال کرتے ہوئے ڈیٹا سیٹ کے دیگر عناصر کو آزمائیں۔ آپ مختلف فلٹرز بھی آزما سکتے ہیں۔ کیا آپ کو کوئی تعلق نظر آتا ہے؟ + +## کثافت کے پلاٹس + +آپ نے محسوس کیا ہوگا کہ اب تک دیکھے گئے ہسٹوگرام 'سیڑھی دار' ہیں اور ہموار آرک میں نہیں بہتے۔ ایک ہموار کثافت چارٹ دکھانے کے لیے، آپ کثافت پلاٹ آزما سکتے ہیں۔ + +کثافت پلاٹس کے ساتھ کام کرنے کے لیے، ایک نئی پلاٹنگ لائبریری، [Seaborn](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) سے واقف ہوں۔ + +Seaborn کو لوڈ کریں اور ایک بنیادی کثافت پلاٹ آزمائیں: + +```python +import seaborn as sns +import matplotlib.pyplot as plt +sns.kdeplot(filteredBirds['MinWingspan']) +plt.show() +``` +![Density plot](../../../../translated_images/density1.8801043bd4af2567b0f706332b5853c7614e5e4b81b457acc27eb4e092a65cbd.ur.png) + +آپ دیکھ سکتے ہیں کہ یہ پلاٹ کم از کم پروں کے پھیلاؤ کے ڈیٹا کے لیے پچھلے پلاٹ کی عکاسی کرتا ہے؛ یہ صرف تھوڑا زیادہ ہموار ہے۔ Seaborn کی دستاویزات کے مطابق، "ہسٹوگرام کے مقابلے میں، KDE ایک ایسا پلاٹ تیار کر سکتا ہے جو کم الجھا ہوا اور زیادہ قابل فہم ہو، خاص طور پر جب متعدد تقسیمات کو کھینچتے ہیں۔ لیکن اگر بنیادی تقسیم محدود یا ہموار نہ ہو تو اس میں بگاڑ پیدا کرنے کی صلاحیت ہوتی ہے۔" [ماخذ](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) دوسرے الفاظ میں، آؤٹ لائرز ہمیشہ آپ کے چارٹس کو خراب کر سکتے ہیں۔ + +اگر آپ اس سیڑھی دار MaxBodyMass لائن کو دوبارہ دیکھنا چاہتے ہیں جو آپ نے دوسرا چارٹ بنایا تھا، تو آپ اسے اس طریقے کا استعمال کرتے ہوئے بہت اچھی طرح ہموار کر سکتے ہیں: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass']) +plt.show() +``` +![smooth bodymass line](../../../../translated_images/density2.8e7647257060ff544a1aaded57e8dd1887586bfe340139e9b77ac1e5287f7977.ur.png) + +اگر آپ ایک ہموار، لیکن زیادہ ہموار نہ ہونے والی لائن چاہتے ہیں، تو `bw_adjust` پیرامیٹر میں ترمیم کریں: + +```python +sns.kdeplot(filteredBirds['MaxBodyMass'], bw_adjust=.2) +plt.show() +``` +![less smooth bodymass line](../../../../translated_images/density3.84ae27da82f31e6b83ad977646f029a1d21186574d7581facd70123b3eb257ee.ur.png) + +✅ اس قسم کے پلاٹ کے لیے دستیاب پیرامیٹرز کے بارے میں پڑھیں اور تجربہ کریں! + +یہ قسم کے چارٹس خوبصورت وضاحتی بصریات پیش کرتے ہیں۔ مثال کے طور پر، چند لائنوں کے کوڈ کے ساتھ، آپ پرندوں کے آرڈر کے مطابق زیادہ سے زیادہ جسمانی وزن کی کثافت دکھا سکتے ہیں: + +```python +sns.kdeplot( + data=filteredBirds, x="MaxBodyMass", hue="Order", + fill=True, common_norm=False, palette="crest", + alpha=.5, linewidth=0, +) +``` + +![bodymass per order](../../../../translated_images/density4.e9d6c033f15c500fd33df94cb592b9f5cf1ed2a3d213c448a3f9e97ba39573ce.ur.png) + +آپ ایک چارٹ میں کئی متغیرات کی کثافت کو بھی نقشہ بنا سکتے ہیں۔ پرندے کی زیادہ سے زیادہ لمبائی اور کم از کم لمبائی کا ان کے تحفظ کی حیثیت کے ساتھ موازنہ کریں: + +```python +sns.kdeplot(data=filteredBirds, x="MinLength", y="MaxLength", hue="ConservationStatus") +``` + +![multiple densities, superimposed](../../../../translated_images/multi.56548caa9eae8d0fd9012a8586295538c7f4f426e2abc714ba070e2e4b1fc2c1.ur.png) + +شاید یہ تحقیق کرنے کے قابل ہو کہ آیا لمبائی کے مطابق 'کمزور' پرندوں کا کلسٹر معنی خیز ہے یا نہیں۔ + +## 🚀 چیلنج + +ہسٹوگرامز بنیادی اسکیٹر پلاٹس، بار چارٹس، یا لائن چارٹس کے مقابلے میں زیادہ نفیس قسم کے چارٹس ہیں۔ انٹرنیٹ پر تلاش کریں اور ہسٹوگرامز کے استعمال کی اچھی مثالیں تلاش کریں۔ یہ کیسے استعمال کیے جاتے ہیں، کیا ظاہر کرتے ہیں، اور کن شعبوں یا تحقیق کے علاقوں میں ان کا رجحان ہوتا ہے؟ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## جائزہ اور خود مطالعہ + +اس سبق میں، آپ نے Matplotlib کا استعمال کیا اور زیادہ نفیس چارٹس دکھانے کے لیے Seaborn کے ساتھ کام کرنا شروع کیا۔ Seaborn میں `kdeplot` پر تحقیق کریں، جو "ایک یا زیادہ جہتوں میں مسلسل احتمال کثافت کا منحنی خط" ہے۔ [دستاویزات](https://seaborn.pydata.org/generated/seaborn.kdeplot.html) کو پڑھیں تاکہ یہ سمجھ سکیں کہ یہ کیسے کام کرتا ہے۔ + +## اسائنمنٹ + +[اپنی مہارتوں کا اطلاق کریں](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/10-visualization-distributions/assignment.md b/translations/ur/3-Data-Visualization/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..00f63dc3 --- /dev/null +++ b/translations/ur/3-Data-Visualization/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# اپنی مہارتوں کا اطلاق کریں + +## ہدایات + +اب تک، آپ نے مینیسوٹا پرندوں کے ڈیٹا سیٹ کے ساتھ کام کیا ہے تاکہ پرندوں کی تعداد اور آبادی کی کثافت کے بارے میں معلومات حاصل کی جا سکیں۔ ان تکنیکوں کا اطلاق کرنے کی مشق کریں اور ایک مختلف ڈیٹا سیٹ آزمائیں، شاید [Kaggle](https://www.kaggle.com/) سے حاصل کردہ۔ ایک نوٹ بک بنائیں جو اس ڈیٹا سیٹ کے بارے میں کہانی بیان کرے، اور اس پر بات کرتے وقت ہسٹگرامز کا استعمال یقینی بنائیں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- | +ایک نوٹ بک پیش کی گئی ہے جس میں اس ڈیٹا سیٹ کے بارے میں تشریحات شامل ہیں، اس کے ماخذ سمیت، اور کم از کم 5 ہسٹگرامز استعمال کیے گئے ہیں تاکہ ڈیٹا کے بارے میں حقائق دریافت کیے جا سکیں۔ | ایک نوٹ بک پیش کی گئی ہے جس میں نامکمل تشریحات یا خامیاں ہیں۔ | ایک نوٹ بک پیش کی گئی ہے جس میں تشریحات نہیں ہیں اور اس میں خامیاں شامل ہیں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/11-visualization-proportions/README.md b/translations/ur/3-Data-Visualization/11-visualization-proportions/README.md new file mode 100644 index 00000000..d0995750 --- /dev/null +++ b/translations/ur/3-Data-Visualization/11-visualization-proportions/README.md @@ -0,0 +1,205 @@ + +# تناسبات کی بصری نمائندگی + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|تناسبات کی بصری نمائندگی - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +اس سبق میں، آپ ایک مختلف قدرتی ڈیٹا سیٹ کا استعمال کریں گے تاکہ تناسبات کو بصری طور پر سمجھ سکیں، جیسے کہ مشرومز کے بارے میں دیے گئے ڈیٹا سیٹ میں مختلف قسم کے فنگس کی تعداد۔ آئیے اس دلچسپ فنگس کو ایک ڈیٹا سیٹ کے ذریعے دریافت کریں جو آڈوبون سے حاصل کیا گیا ہے اور جس میں Agaricus اور Lepiota خاندانوں کے 23 اقسام کے گِلڈ مشرومز کی تفصیلات شامل ہیں۔ آپ مزیدار بصری نمائندگیوں کے ساتھ تجربہ کریں گے جیسے: + +- پائی چارٹس 🥧 +- ڈونٹ چارٹس 🍩 +- وافل چارٹس 🧇 + +> 💡 مائیکروسافٹ ریسرچ کا ایک بہت دلچسپ پروجیکٹ [Charticulator](https://charticulator.com) ایک مفت ڈریگ اینڈ ڈراپ انٹرفیس فراہم کرتا ہے ڈیٹا ویژولائزیشن کے لیے۔ ان کے ایک ٹیوٹوریل میں بھی یہ مشروم ڈیٹا سیٹ استعمال کیا گیا ہے! تو آپ ڈیٹا کو دریافت کر سکتے ہیں اور ساتھ ہی لائبریری سیکھ سکتے ہیں: [Charticulator tutorial](https://charticulator.com/tutorials/tutorial4.html)۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## اپنے مشرومز کو جانیں 🍄 + +مشرومز بہت دلچسپ ہوتے ہیں۔ آئیے ایک ڈیٹا سیٹ درآمد کریں تاکہ ان کا مطالعہ کیا جا سکے: + +```python +import pandas as pd +import matplotlib.pyplot as plt +mushrooms = pd.read_csv('../../data/mushrooms.csv') +mushrooms.head() +``` +ایک ٹیبل پرنٹ ہوتا ہے جس میں تجزیے کے لیے شاندار ڈیٹا موجود ہے: + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | + +فوراً آپ دیکھتے ہیں کہ تمام ڈیٹا متنی ہے۔ آپ کو اس ڈیٹا کو چارٹ میں استعمال کرنے کے قابل بنانے کے لیے تبدیل کرنا ہوگا۔ درحقیقت، زیادہ تر ڈیٹا ایک آبجیکٹ کے طور پر ظاہر کیا گیا ہے: + +```python +print(mushrooms.select_dtypes(["object"]).columns) +``` + +آؤٹ پٹ یہ ہے: + +```output +Index(['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'], + dtype='object') +``` +اس ڈیٹا کو لیں اور 'class' کالم کو ایک زمرے میں تبدیل کریں: + +```python +cols = mushrooms.select_dtypes(["object"]).columns +mushrooms[cols] = mushrooms[cols].astype('category') +``` + +```python +edibleclass=mushrooms.groupby(['class']).count() +edibleclass +``` + +اب، اگر آپ مشرومز کا ڈیٹا پرنٹ کریں تو آپ دیکھ سکتے ہیں کہ اسے زہریلے/کھانے کے قابل کلاس کے مطابق زمروں میں گروپ کیا گیا ہے: + +| | cap-shape | cap-surface | cap-color | bruises | odor | gill-attachment | gill-spacing | gill-size | gill-color | stalk-shape | ... | 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 | +| --------- | --------- | ----------- | --------- | ------- | ---- | --------------- | ------------ | --------- | ---------- | ----------- | --- | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| class | | | | | | | | | | | | | | | | | | | | | | +| Edible | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | ... | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | 4208 | +| Poisonous | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | ... | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | 3916 | + +اگر آپ اس ٹیبل میں پیش کردہ ترتیب کے مطابق اپنی کلاس کیٹیگری لیبلز بنائیں تو آپ ایک پائی چارٹ بنا سکتے ہیں: + +## پائی! + +```python +labels=['Edible','Poisonous'] +plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%') +plt.title('Edible?') +plt.show() +``` +لو جی، ایک پائی چارٹ جو اس ڈیٹا کے تناسبات کو ان دو مشرومز کی کلاسز کے مطابق دکھاتا ہے۔ لیبلز کی ترتیب کو درست رکھنا خاص طور پر یہاں بہت اہم ہے، اس لیے اس بات کو یقینی بنائیں کہ لیبل آرے کی ترتیب کی تصدیق کریں! + +![پائی چارٹ](../../../../translated_images/pie1-wb.e201f2fcc335413143ce37650fb7f5f0bb21358e7823a327ed8644dfb84be9db.ur.png) + +## ڈونٹس! + +ایک بصری طور پر زیادہ دلچسپ پائی چارٹ ڈونٹ چارٹ ہے، جو ایک پائی چارٹ ہے جس کے درمیان میں ایک سوراخ ہوتا ہے۔ آئیے اپنے ڈیٹا کو اس طریقے سے دیکھتے ہیں۔ + +ان مختلف رہائش گاہوں پر نظر ڈالیں جہاں مشرومز اگتے ہیں: + +```python +habitat=mushrooms.groupby(['habitat']).count() +habitat +``` +یہاں، آپ اپنے ڈیٹا کو رہائش گاہ کے مطابق گروپ کر رہے ہیں۔ سات درج ہیں، لہذا ان کو اپنے ڈونٹ چارٹ کے لیبلز کے طور پر استعمال کریں: + +```python +labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood'] + +plt.pie(habitat['class'], labels=labels, + autopct='%1.1f%%', pctdistance=0.85) + +center_circle = plt.Circle((0, 0), 0.40, fc='white') +fig = plt.gcf() + +fig.gca().add_artist(center_circle) + +plt.title('Mushroom Habitats') + +plt.show() +``` + +![ڈونٹ چارٹ](../../../../translated_images/donut-wb.be3c12a22712302b5d10c40014d5389d4a1ae4412fe1655b3cf4af57b64f799a.ur.png) + +یہ کوڈ ایک چارٹ اور ایک مرکز کا دائرہ بناتا ہے، پھر اس مرکز کے دائرے کو چارٹ میں شامل کرتا ہے۔ مرکز کے دائرے کی چوڑائی کو `0.40` کو کسی اور قدر میں تبدیل کرکے ایڈٹ کریں۔ + +ڈونٹ چارٹس کو کئی طریقوں سے ایڈجسٹ کیا جا سکتا ہے تاکہ لیبلز کو نمایاں کیا جا سکے۔ خاص طور پر لیبلز کو پڑھنے میں آسان بنانے کے لیے نمایاں کیا جا سکتا ہے۔ مزید جانیں [docs](https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_and_donut_labels.html?highlight=donut) میں۔ + +اب جب کہ آپ جانتے ہیں کہ اپنے ڈیٹا کو گروپ کیسے کرنا ہے اور پھر اسے پائی یا ڈونٹ کے طور پر کیسے دکھانا ہے، آپ دیگر قسم کے چارٹس کو دریافت کر سکتے ہیں۔ ایک وافل چارٹ آزمائیں، جو مقدار کو دریافت کرنے کا ایک مختلف طریقہ ہے۔ + +## وافلز! + +'وافل' قسم کا چارٹ مقدار کو 2D مربعوں کی صف کے طور پر بصری طور پر ظاہر کرنے کا ایک مختلف طریقہ ہے۔ اس ڈیٹا سیٹ میں مشرومز کی ٹوپی کے مختلف رنگوں کی مقدار کو بصری طور پر دیکھنے کی کوشش کریں۔ ایسا کرنے کے لیے، آپ کو ایک مددگار لائبریری [PyWaffle](https://pypi.org/project/pywaffle/) انسٹال کرنی ہوگی اور Matplotlib استعمال کرنا ہوگا: + +```python +pip install pywaffle +``` + +اپنے ڈیٹا کے ایک حصے کو منتخب کریں اور گروپ کریں: + +```python +capcolor=mushrooms.groupby(['cap-color']).count() +capcolor +``` + +لیبلز بنا کر اور پھر اپنے ڈیٹا کو گروپ کرکے ایک وافل چارٹ بنائیں: + +```python +import pandas as pd +import matplotlib.pyplot as plt +from pywaffle import Waffle + +data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'], + 'amount': capcolor['class'] + } + +df = pd.DataFrame(data) + +fig = plt.figure( + FigureClass = Waffle, + rows = 100, + values = df.amount, + labels = list(df.color), + figsize = (30,30), + colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"], +) +``` + +وافل چارٹ کا استعمال کرتے ہوئے، آپ اس مشرومز ڈیٹا سیٹ کے ٹوپی کے رنگوں کے تناسب کو واضح طور پر دیکھ سکتے ہیں۔ دلچسپ بات یہ ہے کہ بہت سے سبز ٹوپی والے مشرومز ہیں! + +![وافل چارٹ](../../../../translated_images/waffle.5455dbae4ccf17d53bb40ff0a657ecef7b8aa967e27a19cc96325bd81598f65e.ur.png) + +✅ Pywaffle چارٹس میں آئیکنز کی حمایت کرتا ہے جو [Font Awesome](https://fontawesome.com/) میں دستیاب کسی بھی آئیکن کو استعمال کرتے ہیں۔ آئیکنز کے بجائے مربعوں کا استعمال کرتے ہوئے ایک اور دلچسپ وافل چارٹ بنانے کے لیے کچھ تجربات کریں۔ + +اس سبق میں، آپ نے تناسبات کو بصری طور پر ظاہر کرنے کے تین طریقے سیکھے۔ سب سے پہلے، آپ کو اپنے ڈیٹا کو زمروں میں گروپ کرنا ہوگا اور پھر فیصلہ کرنا ہوگا کہ ڈیٹا کو ظاہر کرنے کا بہترین طریقہ کون سا ہے - پائی، ڈونٹ، یا وافل۔ یہ سب مزیدار ہیں اور صارف کو ڈیٹا سیٹ کا فوری جائزہ فراہم کرتے ہیں۔ + +## 🚀 چیلنج + +[Charticulator](https://charticulator.com) میں ان مزیدار چارٹس کو دوبارہ بنانے کی کوشش کریں۔ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## جائزہ اور خود مطالعہ + +کبھی کبھی یہ واضح نہیں ہوتا کہ پائی، ڈونٹ، یا وافل چارٹ کب استعمال کرنا ہے۔ اس موضوع پر پڑھنے کے لیے یہاں کچھ مضامین ہیں: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +مزید معلومات حاصل کرنے کے لیے اس مشکل فیصلے پر تحقیق کریں۔ + +## اسائنمنٹ + +[ایکسسل میں آزمائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/11-visualization-proportions/assignment.md b/translations/ur/3-Data-Visualization/11-visualization-proportions/assignment.md new file mode 100644 index 00000000..c7bc24ec --- /dev/null +++ b/translations/ur/3-Data-Visualization/11-visualization-proportions/assignment.md @@ -0,0 +1,25 @@ + +# ایکسل میں آزمائیں + +## ہدایات + +کیا آپ جانتے ہیں کہ آپ ایکسل میں ڈونٹ، پائی، اور وافل چارٹس بنا سکتے ہیں؟ اپنی پسند کے ڈیٹا سیٹ کا استعمال کرتے ہوئے، ان تینوں چارٹس کو ایکسل اسپریڈشیٹ میں بنائیں۔ + +## معیار + +| شاندار | مناسب | بہتری کی ضرورت ہے | +| ----------------------------------------------------- | ----------------------------------------------- | ----------------------------------------------------- | +| ایکسل اسپریڈشیٹ پیش کی گئی ہے جس میں تینوں چارٹس موجود ہیں | ایکسل اسپریڈشیٹ پیش کی گئی ہے جس میں دو چارٹس موجود ہیں | ایکسل اسپریڈشیٹ پیش کی گئی ہے جس میں صرف ایک چارٹ موجود ہے | + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/12-visualization-relationships/README.md b/translations/ur/3-Data-Visualization/12-visualization-relationships/README.md new file mode 100644 index 00000000..b58b6eb7 --- /dev/null +++ b/translations/ur/3-Data-Visualization/12-visualization-relationships/README.md @@ -0,0 +1,186 @@ + +# شہد کے تعلقات کی بصری نمائندگی: شہد کے بارے میں سب کچھ 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|تعلقات کی بصری نمائندگی - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ہماری تحقیق کی قدرتی توجہ کو جاری رکھتے ہوئے، آئیے مختلف اقسام کے شہد کے درمیان تعلقات کو ظاہر کرنے کے لیے دلچسپ بصری نمائندگیوں کو دریافت کریں، جو کہ [امریکہ کے محکمہ زراعت](https://www.nass.usda.gov/About_NASS/index.php) سے حاصل کردہ ڈیٹا سیٹ پر مبنی ہیں۔ + +یہ ڈیٹا سیٹ تقریباً 600 اشیاء پر مشتمل ہے جو امریکہ کی مختلف ریاستوں میں شہد کی پیداوار کو ظاہر کرتا ہے۔ مثال کے طور پر، آپ دیکھ سکتے ہیں کہ 1998 سے 2012 کے درمیان کسی دی گئی ریاست میں ہر سال کے لیے شہد کے چھتوں کی تعداد، فی چھت پیداوار، کل پیداوار، ذخائر، فی پاؤنڈ قیمت، اور پیداوار کی قدر کیا تھی۔ + +یہ دلچسپ ہوگا کہ کسی دی گئی ریاست کی سالانہ پیداوار اور اس ریاست میں شہد کی قیمت کے درمیان تعلق کو بصری طور پر دکھایا جائے۔ متبادل طور پر، آپ ریاستوں کی فی چھت شہد کی پیداوار کے درمیان تعلق کو ظاہر کر سکتے ہیں۔ یہ سال 2006 میں پہلی بار دیکھے گئے 'CCD' یا 'Colony Collapse Disorder' (http://npic.orst.edu/envir/ccd.html) کے تباہ کن اثرات کا احاطہ کرتا ہے، اس لیے یہ مطالعہ کے لیے ایک اہم ڈیٹا سیٹ ہے۔ 🐝 + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +اس سبق میں، آپ Seaborn کا استعمال کر سکتے ہیں، جسے آپ پہلے استعمال کر چکے ہیں، جو متغیرات کے درمیان تعلقات کو ظاہر کرنے کے لیے ایک اچھی لائبریری ہے۔ خاص طور پر دلچسپ بات یہ ہے کہ Seaborn کے `relplot` فنکشن کا استعمال، جو جلدی سے '[شماریاتی تعلقات](https://seaborn.pydata.org/tutorial/relational.html?highlight=relationships)' کو ظاہر کرنے کے لیے اسکیٹر پلاٹس اور لائن پلاٹس بنانے کی اجازت دیتا ہے، جس سے ڈیٹا سائنسدان کو بہتر طور پر سمجھنے میں مدد ملتی ہے کہ متغیرات ایک دوسرے سے کیسے جڑے ہوئے ہیں۔ + +## اسکیٹر پلاٹس + +اسکیٹر پلاٹ کا استعمال کریں تاکہ یہ دکھایا جا سکے کہ شہد کی قیمت سال بہ سال، ہر ریاست کے لیے، کیسے بدلی ہے۔ Seaborn، `relplot` کا استعمال کرتے ہوئے، ریاست کے ڈیٹا کو گروپ کرتا ہے اور زمرہ وار اور عددی ڈیٹا کے لیے ڈیٹا پوائنٹس کو ظاہر کرتا ہے۔ + +آئیے ڈیٹا اور Seaborn کو درآمد کرنے سے شروع کرتے ہیں: + +```python +import pandas as pd +import matplotlib.pyplot as plt +import seaborn as sns +honey = pd.read_csv('../../data/honey.csv') +honey.head() +``` +آپ دیکھیں گے کہ شہد کے ڈیٹا میں کئی دلچسپ کالمز ہیں، جن میں سال اور فی پاؤنڈ قیمت شامل ہیں۔ آئیے اس ڈیٹا کو دریافت کریں، جو امریکی ریاستوں کے لحاظ سے گروپ کیا گیا ہے: + +| ریاست | چھتوں کی تعداد | فی چھت پیداوار | کل پیداوار | ذخائر | فی پاؤنڈ قیمت | پیداوار کی قدر | سال | +| ----- | -------------- | --------------- | ----------- | -------- | ------------- | -------------- | --- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | + +ایک بنیادی اسکیٹر پلاٹ بنائیں تاکہ یہ دکھایا جا سکے کہ شہد کی فی پاؤنڈ قیمت اور اس کی امریکی ریاست کے درمیان کیا تعلق ہے۔ `y` محور کو اتنا لمبا بنائیں کہ تمام ریاستیں نظر آئیں: + +```python +sns.relplot(x="priceperlb", y="state", data=honey, height=15, aspect=.5); +``` +![scatterplot 1](../../../../translated_images/scatter1.5e1aa5fd6706c5d12b5e503ccb77f8a930f8620f539f524ddf56a16c039a5d2f.ur.png) + +اب، وہی ڈیٹا شہد کے رنگ سکیم کے ساتھ دکھائیں تاکہ یہ ظاہر ہو کہ قیمت سال بہ سال کیسے بدلی ہے۔ آپ یہ 'hue' پیرامیٹر شامل کر کے کر سکتے ہیں تاکہ تبدیلی کو ظاہر کیا جا سکے: + +> ✅ Seaborn میں استعمال ہونے والے [رنگ سکیمز کے بارے میں مزید جانیں](https://seaborn.pydata.org/tutorial/color_palettes.html) - ایک خوبصورت قوس قزح رنگ سکیم آزمائیں! + +```python +sns.relplot(x="priceperlb", y="state", hue="year", palette="YlOrBr", data=honey, height=15, aspect=.5); +``` +![scatterplot 2](../../../../translated_images/scatter2.c0041a58621ca702990b001aa0b20cd68c1e1814417139af8a7211a2bed51c5f.ur.png) + +اس رنگ سکیم کی تبدیلی کے ساتھ، آپ واضح طور پر دیکھ سکتے ہیں کہ سال بہ سال شہد کی فی پاؤنڈ قیمت میں ایک مضبوط ترقی ہے۔ درحقیقت، اگر آپ ڈیٹا کے ایک نمونے کو جانچنے کے لیے دیکھیں (مثال کے طور پر، ایریزونا ریاست)، تو آپ دیکھ سکتے ہیں کہ قیمت میں سال بہ سال اضافے کا ایک نمونہ موجود ہے، چند استثنائی صورتوں کے ساتھ: + +| ریاست | چھتوں کی تعداد | فی چھت پیداوار | کل پیداوار | ذخائر | فی پاؤنڈ قیمت | پیداوار کی قدر | سال | +| ----- | -------------- | --------------- | ----------- | ------- | ------------- | -------------- | --- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +ایک اور طریقہ یہ ہے کہ اس ترقی کو رنگ کے بجائے سائز کے ذریعے ظاہر کیا جائے۔ رنگ اندھے صارفین کے لیے، یہ ایک بہتر آپشن ہو سکتا ہے۔ اپنی بصری نمائندگی کو اس طرح ایڈٹ کریں کہ قیمت میں اضافے کو نقطے کے دائرے کے سائز میں اضافے کے ذریعے دکھایا جائے: + +```python +sns.relplot(x="priceperlb", y="state", size="year", data=honey, height=15, aspect=.5); +``` +آپ دیکھ سکتے ہیں کہ نقطوں کا سائز بتدریج بڑھ رہا ہے۔ + +![scatterplot 3](../../../../translated_images/scatter3.3c160a3d1dcb36b37900ebb4cf97f34036f28ae2b7b8e6062766c7c1dfc00853.ur.png) + +کیا یہ صرف طلب اور رسد کا معاملہ ہے؟ موسمیاتی تبدیلی اور کالونی کے خاتمے جیسے عوامل کی وجہ سے، کیا سال بہ سال خریداری کے لیے کم شہد دستیاب ہے، اور اس لیے قیمت بڑھ رہی ہے؟ + +اس ڈیٹا سیٹ میں کچھ متغیرات کے درمیان تعلق کو دریافت کرنے کے لیے، آئیے کچھ لائن چارٹس کا جائزہ لیں۔ + +## لائن چارٹس + +سوال: کیا شہد کی فی پاؤنڈ قیمت میں سال بہ سال واضح اضافہ ہے؟ آپ اسے سب سے آسانی سے ایک لائن چارٹ بنا کر دریافت کر سکتے ہیں: + +```python +sns.relplot(x="year", y="priceperlb", kind="line", data=honey); +``` +جواب: ہاں، کچھ استثنائی صورتوں کے ساتھ، خاص طور پر 2003 کے آس پاس: + +![line chart 1](../../../../translated_images/line1.f36eb465229a3b1fe385cdc93861aab3939de987d504b05de0b6cd567ef79f43.ur.png) + +✅ چونکہ Seaborn ایک لائن کے ارد گرد ڈیٹا کو جمع کر رہا ہے، یہ "ہر x ویلیو پر متعدد پیمائشوں کو اوسط اور اوسط کے ارد گرد 95% اعتماد کے وقفے کو پلاٹ کر کے ظاہر کرتا ہے"۔ [ماخذ](https://seaborn.pydata.org/tutorial/relational.html)۔ اس وقت لینے والے رویے کو `ci=None` شامل کر کے غیر فعال کیا جا سکتا ہے۔ + +سوال: ٹھیک ہے، کیا ہم 2003 میں شہد کی فراہمی میں بھی اضافہ دیکھ سکتے ہیں؟ اگر آپ کل پیداوار کو سال بہ سال دیکھیں تو کیا ہوگا؟ + +```python +sns.relplot(x="year", y="totalprod", kind="line", data=honey); +``` + +![line chart 2](../../../../translated_images/line2.a5b3493dc01058af6402e657aaa9ae1125fafb5e7d6630c777aa60f900a544e4.ur.png) + +جواب: واقعی نہیں۔ اگر آپ کل پیداوار کو دیکھیں، تو یہ خاص سال میں درحقیقت بڑھتی ہوئی نظر آتی ہے، حالانکہ عمومی طور پر ان سالوں کے دوران شہد کی پیداوار میں کمی ہو رہی ہے۔ + +سوال: اس صورت میں، 2003 کے آس پاس شہد کی قیمت میں اضافے کی وجہ کیا ہو سکتی ہے؟ + +یہ دریافت کرنے کے لیے، آپ ایک فیسٹ گرڈ کا جائزہ لے سکتے ہیں۔ + +## فیسٹ گرڈز + +فیسٹ گرڈز آپ کے ڈیٹا سیٹ کے ایک پہلو کو لیتے ہیں (ہمارے معاملے میں، آپ 'سال' کو منتخب کر سکتے ہیں تاکہ بہت زیادہ فیسٹس پیدا نہ ہوں)۔ پھر Seaborn آپ کے منتخب کردہ x اور y کوآرڈینیٹس کے لیے ہر فیسٹ کا ایک پلاٹ بنا سکتا ہے تاکہ بصری موازنہ آسان ہو۔ کیا 2003 اس قسم کے موازنہ میں نمایاں نظر آتا ہے؟ + +Seaborn کی دستاویزات میں تجویز کردہ [فیسٹ گرڈ](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html?highlight=facetgrid#seaborn.FacetGrid) کا استعمال جاری رکھتے ہوئے `relplot` کا استعمال کرتے ہوئے ایک فیسٹ گرڈ بنائیں۔ + +```python +sns.relplot( + data=honey, + x="yieldpercol", y="numcol", + col="year", + col_wrap=3, + kind="line" +``` +اس بصری نمائندگی میں، آپ فی چھت پیداوار اور چھتوں کی تعداد کو سال بہ سال، ریاست بہ ریاست، 3 کالمز کے ساتھ موازنہ کر سکتے ہیں: + +![facet grid](../../../../translated_images/facet.6a34851dcd540050dcc0ead741be35075d776741668dd0e42f482c89b114c217.ur.png) + +اس ڈیٹا سیٹ کے لیے، ریاست بہ ریاست اور سال بہ سال، چھتوں کی تعداد اور ان کی پیداوار کے حوالے سے کچھ خاص نمایاں نہیں ہوتا۔ کیا ان دو متغیرات کے درمیان تعلق تلاش کرنے کا کوئی مختلف طریقہ ہے؟ + +## دوہری لائن پلاٹس + +Seaborn کے 'despine' کا استعمال کرتے ہوئے دو لائن پلاٹس کو ایک دوسرے کے اوپر سپر امپوز کرنے کی کوشش کریں، اور `ax.twinx` کا استعمال کریں [جو Matplotlib سے ماخوذ ہے](https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.twinx.html)۔ Twinx ایک چارٹ کو x محور کا اشتراک کرنے اور دو y محور کو ظاہر کرنے کی اجازت دیتا ہے۔ تو، فی چھت پیداوار اور چھتوں کی تعداد کو سپر امپوزڈ دکھائیں: + +```python +fig, ax = plt.subplots(figsize=(12,6)) +lineplot = sns.lineplot(x=honey['year'], y=honey['numcol'], data=honey, + label = 'Number of bee colonies', legend=False) +sns.despine() +plt.ylabel('# colonies') +plt.title('Honey Production Year over Year'); + +ax2 = ax.twinx() +lineplot2 = sns.lineplot(x=honey['year'], y=honey['yieldpercol'], ax=ax2, color="r", + label ='Yield per colony', legend=False) +sns.despine(right=False) +plt.ylabel('colony yield') +ax.figure.legend(); +``` +![superimposed plots](../../../../translated_images/dual-line.a4c28ce659603fab2c003f4df816733df2bf41d1facb7de27989ec9afbf01b33.ur.png) + +جبکہ 2003 کے آس پاس آنکھ کو کچھ خاص نظر نہیں آتا، یہ ہمیں اس سبق کو ایک خوشگوار نوٹ پر ختم کرنے کی اجازت دیتا ہے: اگرچہ مجموعی طور پر چھتوں کی تعداد میں کمی ہو رہی ہے، لیکن چھتوں کی تعداد مستحکم ہو رہی ہے، چاہے ان کی فی چھت پیداوار کم ہو رہی ہو۔ + +چلو، شہد کی مکھیوں، چلو! + +🐝❤️ +## 🚀 چیلنج + +اس سبق میں، آپ نے اسکیٹر پلاٹس اور لائن گرڈز کے دیگر استعمالات کے بارے میں مزید سیکھا، بشمول فیسٹ گرڈز۔ اپنے آپ کو چیلنج کریں کہ کسی مختلف ڈیٹا سیٹ کا استعمال کرتے ہوئے ایک فیسٹ گرڈ بنائیں، شاید وہی جو آپ نے ان اسباق سے پہلے استعمال کیا ہو۔ نوٹ کریں کہ انہیں بنانے میں کتنا وقت لگتا ہے اور آپ کو ان تکنیکوں کا استعمال کرتے ہوئے کتنے گرڈز بنانے میں محتاط رہنے کی ضرورت ہے۔ +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## جائزہ اور خود مطالعہ + +لائن پلاٹس سادہ یا کافی پیچیدہ ہو سکتے ہیں۔ Seaborn کی دستاویزات میں [لائن پلاٹ](https://seaborn.pydata.org/generated/seaborn.lineplot.html) کے مختلف طریقوں پر تھوڑا سا مطالعہ کریں۔ ان طریقوں کو استعمال کرتے ہوئے اس سبق میں بنائے گئے لائن چارٹس کو بہتر بنانے کی کوشش کریں۔ +## اسائنمنٹ + +[شہد کے چھتے میں غوطہ لگائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/12-visualization-relationships/assignment.md b/translations/ur/3-Data-Visualization/12-visualization-relationships/assignment.md new file mode 100644 index 00000000..c98045a8 --- /dev/null +++ b/translations/ur/3-Data-Visualization/12-visualization-relationships/assignment.md @@ -0,0 +1,25 @@ + +# شہد کی مکھیوں کے چھتے میں غوطہ لگائیں + +## ہدایات + +اس سبق میں آپ نے شہد کی مکھیوں اور ان کے شہد کی پیداوار کے بارے میں ایک ڈیٹا سیٹ کا جائزہ لینا شروع کیا، جو ایک ایسے وقت کے دوران لیا گیا جب مجموعی طور پر شہد کی مکھیوں کی کالونی کی آبادی میں کمی دیکھی گئی۔ اس ڈیٹا سیٹ کو مزید گہرائی سے دیکھیں اور ایک نوٹ بک تیار کریں جو ریاست بہ ریاست اور سال بہ سال شہد کی مکھیوں کی آبادی کی صحت کی کہانی بیان کر سکے۔ کیا آپ اس ڈیٹا سیٹ کے بارے میں کوئی دلچسپ چیز دریافت کرتے ہیں؟ + +## معیار + +| شاندار | مناسب | بہتری کی ضرورت | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ---------------------------------------- | +| ایک نوٹ بک پیش کی گئی ہے جس میں کم از کم تین مختلف چارٹس کے ساتھ کہانی بیان کی گئی ہے، جو ڈیٹا سیٹ کے پہلوؤں کو ریاست بہ ریاست اور سال بہ سال دکھاتے ہیں | نوٹ بک میں ان عناصر میں سے ایک کی کمی ہے | نوٹ بک میں ان عناصر میں سے دو کی کمی ہے | + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/13-meaningful-visualizations/README.md b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/README.md new file mode 100644 index 00000000..46af6202 --- /dev/null +++ b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/README.md @@ -0,0 +1,182 @@ + +# معنی خیز بصری نمائیاں بنانا + +|![ اسکیچ نوٹ از [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| معنی خیز بصری نمائیاں - _اسکیچ نوٹ از [@nitya](https://twitter.com/nitya)_ | + +> "اگر آپ ڈیٹا کو کافی دیر تک اذیت دیں، تو یہ کچھ بھی قبول کر لے گا" -- [رونالڈ کوس](https://en.wikiquote.org/wiki/Ronald_Coase) + +ڈیٹا سائنسدان کی بنیادی مہارتوں میں سے ایک یہ ہے کہ وہ ایک معنی خیز بصری نمائیاں بنا سکے جو آپ کے سوالات کے جوابات دینے میں مدد کرے۔ ڈیٹا کو بصری بنانے سے پہلے، آپ کو یہ یقینی بنانا ہوگا کہ اسے صاف اور تیار کیا گیا ہے، جیسا کہ آپ نے پچھلے اسباق میں کیا تھا۔ اس کے بعد، آپ فیصلہ کر سکتے ہیں کہ ڈیٹا کو بہترین طریقے سے کیسے پیش کیا جائے۔ + +اس سبق میں، آپ جائزہ لیں گے: + +1. صحیح چارٹ قسم کا انتخاب کیسے کریں +2. دھوکہ دہی سے بچنے والے چارٹ سے کیسے بچیں +3. رنگ کے ساتھ کیسے کام کریں +4. اپنے چارٹس کو پڑھنے کے قابل بنانے کے لیے کیسے اسٹائل کریں +5. متحرک یا 3D چارٹ حل کیسے بنائیں +6. تخلیقی بصری نمائیاں کیسے بنائیں + +## [سبق سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## صحیح چارٹ قسم کا انتخاب کریں + +پچھلے اسباق میں، آپ نے مختلف قسم کے دلچسپ بصری نمائیاں بنانے کے تجربات کیے تھے، جیسے کہ Matplotlib اور Seaborn کا استعمال۔ عام طور پر، آپ اس جدول کا استعمال کرتے ہوئے [صحیح قسم کا چارٹ](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) منتخب کر سکتے ہیں: + +| آپ کو ضرورت ہے: | آپ کو استعمال کرنا چاہیے: | +| -------------------------- | ------------------------------- | +| وقت کے ساتھ ڈیٹا کے رجحانات دکھائیں | لائن | +| زمرے کا موازنہ کریں | بار، پائی | +| کل کا موازنہ کریں | پائی، اسٹیکڈ بار | +| تعلقات دکھائیں | اسکیٹر، لائن، فیسٹ، ڈوئل لائن | +| تقسیمات دکھائیں | اسکیٹر، ہسٹوگرام، باکس | +| تناسب دکھائیں | پائی، ڈونٹ، وافل | + +> ✅ آپ کے ڈیٹا کی ساخت کے مطابق، آپ کو اسے متن سے عددی میں تبدیل کرنے کی ضرورت ہو سکتی ہے تاکہ ایک مخصوص چارٹ اس کی حمایت کرے۔ + +## دھوکہ دہی سے بچیں + +چاہے ڈیٹا سائنسدان صحیح چارٹ کو صحیح ڈیٹا کے لیے منتخب کرنے میں محتاط ہو، پھر بھی ڈیٹا کو اس طرح دکھایا جا سکتا ہے کہ وہ ایک نقطہ ثابت کرے، اکثر ڈیٹا کو نقصان پہنچانے کی قیمت پر۔ دھوکہ دہی والے چارٹس اور انفوگرافکس کی بہت سی مثالیں موجود ہیں! + +[![البرٹو کائرو کے ذریعہ "چارٹس کیسے جھوٹ بولتے ہیں"](../../../../translated_images/tornado.9f42168791208f970d6faefc11d1226d7ca89518013b14aa66b1c9edcd7678d2.ur.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "چارٹس کیسے جھوٹ بولتے ہیں") + +> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ دھوکہ دہی والے چارٹس کے بارے میں کانفرنس کی بات چیت دیکھ سکیں + +یہ چارٹ X محور کو الٹ دیتا ہے تاکہ تاریخ کی بنیاد پر حقیقت کے برعکس دکھایا جا سکے: + +![خراب چارٹ 1](../../../../translated_images/bad-chart-1.93130f495b748bedfb3423d91b1e754d9026e17f94ad967aecdc9ca7203373bf.ur.png) + +[یہ چارٹ](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) اور بھی دھوکہ دہی والا ہے، کیونکہ آنکھ دائیں طرف کھینچتی ہے تاکہ یہ نتیجہ نکالے کہ وقت کے ساتھ، مختلف کاؤنٹیز میں COVID کیسز کم ہو گئے ہیں۔ حقیقت میں، اگر آپ تاریخوں کو قریب سے دیکھیں، تو آپ کو معلوم ہوگا کہ انہیں دھوکہ دہی والے نیچے کی طرف رجحان دینے کے لیے دوبارہ ترتیب دیا گیا ہے۔ + +![خراب چارٹ 2](../../../../translated_images/bad-chart-2.c20e36dd4e6f617c0c325878dd421a563885bbf30a394884c147438827254e0e.ur.jpg) + +یہ بدنام زمانہ مثال رنگ اور الٹے Y محور کا استعمال کرتی ہے تاکہ دھوکہ دیا جا سکے: بندوق کے موافق قانون سازی کے گزرنے کے بعد بندوق کی اموات میں اضافہ ہوا، حقیقت میں آنکھ کو دھوکہ دیا جاتا ہے کہ وہ اس کے برعکس سوچے: + +![خراب چارٹ 3](../../../../translated_images/bad-chart-3.6865d0afac4108d737558d90a61547d23a8722896397ec792264ee51a1be4be5.ur.jpg) + +یہ عجیب چارٹ دکھاتا ہے کہ تناسب کو کیسے جوڑ توڑ کیا جا سکتا ہے، مزاحیہ اثر کے لیے: + +![خراب چارٹ 4](../../../../translated_images/bad-chart-4.68cfdf4011b454471053ee1231172747e1fbec2403b4443567f1dc678134f4f2.ur.jpg) + +ناقابل موازنہ کا موازنہ کرنا ایک اور مشکوک چال ہے۔ ایک [شاندار ویب سائٹ](https://tylervigen.com/spurious-correlations) ہے جو 'غلط تعلقات' کے بارے میں ہے، 'حقائق' دکھاتی ہے جیسے مین میں طلاق کی شرح اور مارجرین کی کھپت۔ ایک Reddit گروپ بھی ڈیٹا کے [بدصورت استعمال](https://www.reddit.com/r/dataisugly/top/?t=all) کو جمع کرتا ہے۔ + +یہ سمجھنا ضروری ہے کہ دھوکہ دہی والے چارٹس کے ذریعے آنکھ کو کتنی آسانی سے دھوکہ دیا جا سکتا ہے۔ چاہے ڈیٹا سائنسدان کا ارادہ اچھا ہو، ایک خراب قسم کے چارٹ کا انتخاب، جیسے کہ بہت زیادہ زمرے دکھانے والا پائی چارٹ، دھوکہ دہی ہو سکتا ہے۔ + +## رنگ + +آپ نے اوپر 'فلوریڈا گن وائلنس' چارٹ میں دیکھا کہ رنگ چارٹس میں اضافی معنی فراہم کر سکتا ہے، خاص طور پر وہ جو Matplotlib اور Seaborn جیسی لائبریریوں کا استعمال کرتے ہوئے ڈیزائن نہیں کیے گئے ہیں، جو مختلف تصدیق شدہ رنگ لائبریریوں اور پیلیٹس کے ساتھ آتے ہیں۔ اگر آپ ہاتھ سے چارٹ بنا رہے ہیں، تو [رنگ کے نظریہ](https://colormatters.com/color-and-design/basic-color-theory) کا تھوڑا مطالعہ کریں۔ + +> ✅ چارٹس ڈیزائن کرتے وقت، یہ جان لیں کہ رسائی بصری نمائیاں کا ایک اہم پہلو ہے۔ آپ کے کچھ صارفین رنگ کے اندھے ہو سکتے ہیں - کیا آپ کا چارٹ بصری معذوری والے صارفین کے لیے اچھی طرح سے دکھائی دیتا ہے؟ + +اپنے چارٹ کے لیے رنگ منتخب کرتے وقت محتاط رہیں، کیونکہ رنگ وہ معنی دے سکتا ہے جو آپ نہیں چاہتے۔ اوپر 'اونچائی' چارٹ میں 'گلابی خواتین' ایک واضح 'نسوانی' معنی فراہم کرتی ہیں جو چارٹ کی عجیب و غریبیت میں اضافہ کرتی ہیں۔ + +جبکہ [رنگ کے معنی](https://colormatters.com/color-symbolism/the-meanings-of-colors) دنیا کے مختلف حصوں میں مختلف ہو سکتے ہیں، اور ان کے شیڈ کے مطابق ان کے معنی بدلنے کا رجحان ہوتا ہے۔ عام طور پر، رنگ کے معنی شامل ہیں: + +| رنگ | معنی | +| ------ | ------------------- | +| سرخ | طاقت | +| نیلا | اعتماد، وفاداری | +| پیلا | خوشی، احتیاط | +| سبز | ماحولیات، قسمت، حسد| +| جامنی | خوشی | +| نارنجی | چمک | + +اگر آپ کو کسٹم رنگوں کے ساتھ چارٹ بنانے کا کام دیا گیا ہے، تو یقینی بنائیں کہ آپ کے چارٹس دونوں قابل رسائی ہیں اور آپ کے منتخب کردہ رنگ اس معنی کے مطابق ہیں جو آپ پہنچانا چاہتے ہیں۔ + +## اپنے چارٹس کو پڑھنے کے قابل بنانے کے لیے اسٹائل کریں + +چارٹس معنی خیز نہیں ہیں اگر وہ پڑھنے کے قابل نہ ہوں! اپنے چارٹ کی چوڑائی اور اونچائی کو اپنے ڈیٹا کے ساتھ اچھی طرح سے پیمانہ کرنے کے لیے اسٹائل کرنے پر غور کریں۔ اگر ایک متغیر (جیسے تمام 50 ریاستیں) کو دکھانے کی ضرورت ہو، تو انہیں Y محور پر عمودی طور پر دکھائیں اگر ممکن ہو تاکہ افقی طور پر سکرول کرنے والے چارٹ سے بچا جا سکے۔ + +اپنے محور کو لیبل کریں، اگر ضروری ہو تو ایک لیجنڈ فراہم کریں، اور ڈیٹا کی بہتر تفہیم کے لیے ٹول ٹپس پیش کریں۔ + +اگر آپ کا ڈیٹا X محور پر متن اور تفصیلی ہے، تو بہتر پڑھنے کے لیے متن کو زاویہ دیں۔ [Matplotlib](https://matplotlib.org/stable/tutorials/toolkits/mplot3d.html) 3D پلاٹنگ پیش کرتا ہے، اگر آپ کا ڈیٹا اس کی حمایت کرتا ہے۔ نفیس بصری نمائیاں `mpl_toolkits.mplot3d` کا استعمال کرتے ہوئے تیار کی جا سکتی ہیں۔ + +![3D پلاٹس](../../../../translated_images/3d.0cec12bcc60f0ce7284c63baed1411a843e24716f7d7425de878715ebad54a15.ur.png) + +## متحرک اور 3D چارٹ ڈسپلے + +آج کی بہترین بصری نمائیاں متحرک ہیں۔ Shirley Wu نے D3 کے ساتھ حیرت انگیز کام کیے ہیں، جیسے '[فلم کے پھول](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)'، جہاں ہر پھول ایک فلم کی نمائیاں ہے۔ Guardian کے لیے ایک اور مثال 'بسد آؤٹ' ہے، ایک انٹرایکٹو تجربہ جو بصری نمائیاں کو Greensock اور D3 کے ساتھ اسکرول ٹیلنگ آرٹیکل فارمیٹ کے ساتھ جوڑتا ہے تاکہ دکھایا جا سکے کہ NYC اپنے بے گھر افراد کو شہر سے باہر بسوں کے ذریعے کیسے ہینڈل کرتا ہے۔ + +![بسنگ](../../../../translated_images/busing.7b9e3b41cd4b981c6d63922cd82004cc1cf18895155536c1d98fcc0999bdd23e.ur.png) + +> "بسد آؤٹ: امریکہ اپنے بے گھر افراد کو کیسے منتقل کرتا ہے" [دی گارڈین](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study) سے۔ بصری نمائیاں از Nadieh Bremer & Shirley Wu + +جبکہ یہ سبق ان طاقتور بصری نمائیاں لائبریریوں کو گہرائی میں سکھانے کے لیے ناکافی ہے، D3 کو Vue.js ایپ میں آزمائیں، ایک لائبریری کا استعمال کرتے ہوئے کتاب "خطرناک تعلقات" کو ایک متحرک سوشل نیٹ ورک کے طور پر دکھانے کے لیے۔ + +> "Les Liaisons Dangereuses" ایک خطی ناول ہے، یا ایک ناول جو خطوط کی سیریز کے طور پر پیش کیا گیا ہے۔ 1782 میں Choderlos de Laclos کے ذریعہ لکھا گیا، یہ فرانسیسی اشرافیہ کے دو مرکزی کرداروں، Vicomte de Valmont اور Marquise de Merteuil، کے اخلاقی طور پر دیوالیہ سماجی چالوں کی کہانی بیان کرتا ہے۔ دونوں آخر میں اپنی تباہی سے ملتے ہیں لیکن سماجی نقصان پہنچانے سے پہلے نہیں۔ ناول خطوط کی ایک سیریز کے طور پر کھلتا ہے جو ان کے حلقوں میں مختلف لوگوں کو لکھے گئے ہیں، انتقام کی منصوبہ بندی یا صرف پریشانی پیدا کرنے کے لیے۔ ان خطوط کی نمائیاں بنائیں تاکہ بیانیہ کے بڑے کرداروں کو بصری طور پر دریافت کیا جا سکے۔ + +آپ ایک ویب ایپ مکمل کریں گے جو اس سوشل نیٹ ورک کا متحرک منظر دکھائے گی۔ یہ ایک لائبریری کا استعمال کرتا ہے جو Vue.js اور D3 کا استعمال کرتے ہوئے [نیٹ ورک کی نمائیاں](https://github.com/emiliorizzo/vue-d3-network) بنانے کے لیے تیار کی گئی تھی۔ جب ایپ چل رہی ہو، تو آپ اسکرین پر نوڈز کو کھینچ سکتے ہیں تاکہ ڈیٹا کو ادھر ادھر منتقل کریں۔ + +![liaisons](../../../../translated_images/liaisons.7b440b28f6d07ea430244fdf1fc4c64ff48f473f143b8e921846eda1c302aeba.ur.png) + +## پروجیکٹ: D3.js کا استعمال کرتے ہوئے نیٹ ورک دکھانے کے لیے چارٹ بنائیں + +> اس سبق کے فولڈر میں ایک `solution` فولڈر شامل ہے جہاں آپ مکمل شدہ پروجیکٹ کو اپنے حوالہ کے لیے تلاش کر سکتے ہیں۔ + +1. اسٹارٹر فولڈر کی روٹ میں README.md فائل میں دی گئی ہدایات پر عمل کریں۔ اس بات کو یقینی بنائیں کہ آپ کے کمپیوٹر پر NPM اور Node.js چل رہے ہیں اس سے پہلے کہ آپ اپنے پروجیکٹ کی ڈیپینڈنسیز انسٹال کریں۔ + +2. `starter/src` فولڈر کھولیں۔ آپ کو ایک `assets` فولڈر ملے گا جہاں آپ ایک .json فائل تلاش کر سکتے ہیں جس میں ناول کے تمام خطوط، نمبر کے ساتھ، 'to' اور 'from' تشریح کے ساتھ شامل ہیں۔ + +3. `components/Nodes.vue` میں کوڈ مکمل کریں تاکہ نمائیاں کو فعال کیا جا سکے۔ `createLinks()` نامی میتھڈ تلاش کریں اور درج ذیل نیسٹڈ لوپ شامل کریں۔ + +.json آبجیکٹ کے ذریعے لوپ کریں تاکہ خطوط کے 'to' اور 'from' ڈیٹا کو حاصل کریں اور `links` آبجیکٹ کو بنائیں تاکہ نمائیاں لائبریری اسے استعمال کر سکے: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +اپنی ایپ کو ٹرمینل سے چلائیں (npm run serve) اور نمائیاں کا لطف اٹھائیں! + +## 🚀 چیلنج + +انٹرنیٹ کا دورہ کریں تاکہ دھوکہ دہی والی نمائیاں دریافت کریں۔ مصنف صارف کو کیسے دھوکہ دیتا ہے، اور کیا یہ جان بوجھ کر ہے؟ نمائیاں کو درست کرنے کی کوشش کریں تاکہ وہ کیسے دکھنی چاہیے۔ + +## [سبق کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## جائزہ اور خود مطالعہ + +دھوکہ دہی والی ڈیٹا نمائیاں کے بارے میں پڑھنے کے لیے یہاں کچھ مضامین ہیں: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +تاریخی اثاثوں اور نوادرات کے لیے دلچسپ نمائیاں دیکھیں: + +https://handbook.pubpub.org/ + +یہ مضمون دیکھیں کہ متحرک نمائیاں آپ کی بصری نمائیاں کو کیسے بہتر بنا سکتی ہیں: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## اسائنمنٹ + +[اپنی مرضی کی نمائیاں بنائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/13-meaningful-visualizations/assignment.md b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/assignment.md new file mode 100644 index 00000000..01ac602c --- /dev/null +++ b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/assignment.md @@ -0,0 +1,25 @@ + +# اپنی مرضی کی وِز بنائیں + +## ہدایات + +اس پروجیکٹ میں دیے گئے کوڈ نمونے کا استعمال کرتے ہوئے ایک سوشل نیٹ ورک بنائیں، اور اپنی ذاتی سماجی تعاملات کا ڈیٹا تیار کریں۔ آپ اپنے سوشل میڈیا کے استعمال کو نقشہ بنا سکتے ہیں یا اپنے خاندان کے افراد کا ایک خاکہ بنا سکتے ہیں۔ ایک دلچسپ ویب ایپ بنائیں جو سوشل نیٹ ورک کی منفرد بصری نمائندگی دکھائے۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- +ایک GitHub ریپو پیش کیا گیا ہے جس میں کوڈ صحیح طریقے سے چلتا ہے (اسے ایک سٹیٹک ویب ایپ کے طور پر ڈپلائے کرنے کی کوشش کریں) اور ایک تشریح شدہ README پروجیکٹ کی وضاحت کرتا ہے | ریپو صحیح طریقے سے نہیں چلتا یا اچھی طرح سے دستاویزی نہیں ہے | ریپو صحیح طریقے سے نہیں چلتا اور اچھی طرح سے دستاویزی نہیں ہے + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/13-meaningful-visualizations/solution/README.md b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/solution/README.md new file mode 100644 index 00000000..dba775bb --- /dev/null +++ b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/solution/README.md @@ -0,0 +1,40 @@ + +# خطرناک تعلقات ڈیٹا ویژولائزیشن پروجیکٹ + +شروع کرنے کے لیے، یہ یقینی بنائیں کہ آپ کے سسٹم پر NPM اور Node انسٹال اور چل رہے ہیں۔ ڈپینڈنسیز انسٹال کریں (npm install) اور پھر پروجیکٹ کو لوکل طور پر چلائیں (npm run serve): + +## پروجیکٹ سیٹ اپ +``` +npm install +``` + +### ڈیولپمنٹ کے لیے کمپائل اور ہاٹ ری لوڈ +``` +npm run serve +``` + +### پروڈکشن کے لیے کمپائل اور منیفائی +``` +npm run build +``` + +### فائلز کو لنٹ اور درست کریں +``` +npm run lint +``` + +### کنفیگریشن کو حسب ضرورت بنائیں +[کنفیگریشن ریفرنس](https://cli.vuejs.org/config/) دیکھیں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/13-meaningful-visualizations/starter/README.md b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/starter/README.md new file mode 100644 index 00000000..c3224558 --- /dev/null +++ b/translations/ur/3-Data-Visualization/13-meaningful-visualizations/starter/README.md @@ -0,0 +1,40 @@ + +# خطرناک تعلقات ڈیٹا ویژولائزیشن پروجیکٹ + +شروع کرنے کے لیے، یہ یقینی بنائیں کہ آپ کے سسٹم پر NPM اور Node انسٹال اور چل رہے ہیں۔ ڈپینڈنسیز انسٹال کریں (npm install) اور پھر پروجیکٹ کو لوکل طور پر چلائیں (npm run serve): + +## پروجیکٹ سیٹ اپ +``` +npm install +``` + +### ڈیولپمنٹ کے لیے کمپائل اور ہاٹ ری لوڈ +``` +npm run serve +``` + +### پروڈکشن کے لیے کمپائل اور منیفائی +``` +npm run build +``` + +### فائلز کو لنٹ اور درست کریں +``` +npm run lint +``` + +### کنفیگریشن کو حسب ضرورت بنائیں +[کنفیگریشن ریفرنس](https://cli.vuejs.org/config/) دیکھیں۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/09-visualization-quantities/README.md b/translations/ur/3-Data-Visualization/R/09-visualization-quantities/README.md new file mode 100644 index 00000000..4d849c4b --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/09-visualization-quantities/README.md @@ -0,0 +1,230 @@ + +# مقداروں کی بصری نمائندگی +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی طرف سے اسکیچ نوٹ ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/09-Visualizing-Quantities.png)| +|:---:| +| مقداروں کی بصری نمائندگی - _[@nitya](https://twitter.com/nitya) کی طرف سے اسکیچ نوٹ_ | + +اس سبق میں آپ سیکھیں گے کہ کس طرح مختلف R پیکجز اور لائبریریوں کا استعمال کرتے ہوئے مقدار کے تصور کے ارد گرد دلچسپ بصری نمائندگی تخلیق کی جا سکتی ہے۔ منیسوٹا کے پرندوں کے بارے میں صاف شدہ ڈیٹا سیٹ کا استعمال کرتے ہوئے، آپ مقامی جنگلی حیات کے بارے میں بہت سی دلچسپ معلومات حاصل کر سکتے ہیں۔ +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/16) + +## ggplot2 کے ساتھ پروں کے پھیلاؤ کا مشاہدہ کریں +ایک بہترین لائبریری جو مختلف قسم کے سادہ اور پیچیدہ چارٹس اور گراف بنانے کے لیے استعمال ہوتی ہے وہ ہے [ggplot2](https://cran.r-project.org/web/packages/ggplot2/index.html)۔ عام طور پر، ان لائبریریوں کا استعمال کرتے ہوئے ڈیٹا کو پلاٹ کرنے کا عمل شامل ہوتا ہے: ڈیٹا فریم کے ان حصوں کی شناخت کرنا جنہیں آپ نشانہ بنانا چاہتے ہیں، ڈیٹا پر ضروری تبدیلیاں کرنا، اس کے x اور y محور کی اقدار تفویض کرنا، چارٹ کی قسم کا انتخاب کرنا، اور پھر چارٹ دکھانا۔ + +`ggplot2` ایک ایسا نظام ہے جو گرافکس کو وضاحتی انداز میں تخلیق کرتا ہے، جو گرافکس کے گرامر پر مبنی ہے۔ [گرافکس کا گرامر](https://en.wikipedia.org/wiki/Ggplot2) ڈیٹا ویژولائزیشن کے لیے ایک عمومی اسکیم ہے جو گراف کو معنوی اجزاء جیسے اسکیلز اور لیئرز میں تقسیم کرتی ہے۔ دوسرے الفاظ میں، کم کوڈ کے ساتھ یک متغیری یا کثیر متغیری ڈیٹا کے لیے گراف اور چارٹس بنانے میں آسانی `ggplot2` کو R میں بصری نمائندگی کے لیے سب سے زیادہ مقبول پیکج بناتی ہے۔ صارف `ggplot2` کو بتاتا ہے کہ متغیرات کو جمالیات کے ساتھ کیسے نقشہ بنانا ہے، گرافیکل پرائمٹیوز کو استعمال کرنا ہے، اور باقی کام `ggplot2` خود کرتا ہے۔ + +> ✅ چارٹ = ڈیٹا + جمالیات + جیومیٹری +> - ڈیٹا سے مراد ڈیٹا سیٹ ہے +> - جمالیات ان متغیرات کو ظاہر کرتی ہیں جن کا مطالعہ کیا جانا ہے (x اور y متغیرات) +> - جیومیٹری چارٹ کی قسم کو ظاہر کرتی ہے (لائن چارٹ، بار چارٹ، وغیرہ) + +اپنے ڈیٹا اور چارٹ کے ذریعے کہانی سنانے کے لیے بہترین جیومیٹری (چارٹ کی قسم) کا انتخاب کریں۔ + +> - رجحانات کا تجزیہ کرنے کے لیے: لائن، کالم +> - اقدار کا موازنہ کرنے کے لیے: بار، کالم، پائی، اسکیٹر چارٹ +> - حصوں کے پورے سے تعلق کو ظاہر کرنے کے لیے: پائی +> - ڈیٹا کی تقسیم کو ظاہر کرنے کے لیے: اسکیٹر چارٹ، بار +> - اقدار کے درمیان تعلقات کو ظاہر کرنے کے لیے: لائن، اسکیٹر چارٹ، ببل + +✅ آپ ggplot2 کے لیے یہ وضاحتی [چیٹ شیٹ](https://nyu-cdsc.github.io/learningr/assets/data-visualization-2.1.pdf) بھی دیکھ سکتے ہیں۔ + +## پرندوں کے پروں کے پھیلاؤ کے بارے میں لائن چارٹ بنائیں + +R کنسول کھولیں اور ڈیٹا سیٹ درآمد کریں۔ +> نوٹ: ڈیٹا سیٹ اس ریپو کی جڑ میں `/data` فولڈر میں محفوظ ہے۔ + +آئیے ڈیٹا سیٹ درآمد کریں اور ڈیٹا کے ابتدائی پانچ قطاروں کا مشاہدہ کریں۔ + +```r +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") +head(birds) +``` +ڈیٹا کے ابتدائی حصے میں متن اور اعداد کا امتزاج ہے: + +| | نام | سائنسی نام | زمرہ | آرڈر | خاندان | جینس | تحفظ کی حالت | کم از کم لمبائی | زیادہ سے زیادہ لمبائی | کم از کم جسمانی وزن | زیادہ سے زیادہ جسمانی وزن | کم از کم پروں کا پھیلاؤ | زیادہ سے زیادہ پروں کا پھیلاؤ | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بلیک بیلیڈ وسلنگ ڈک | Dendrocygna autumnalis | بطخ/گیز/واٹر فاول | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | فلویس وسلنگ ڈک | Dendrocygna bicolor | بطخ/گیز/واٹر فاول | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | سنو گیز | Anser caerulescens | بطخ/گیز/واٹر فاول | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | روس کا گیز | Anser rossii | بطخ/گیز/واٹر فاول | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | گریٹر وائٹ فرنٹڈ گیز | Anser albifrons | بطخ/گیز/واٹر فاول | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +آئیے کچھ عددی ڈیٹا کو ایک بنیادی لائن چارٹ کے ذریعے پلاٹ کریں۔ فرض کریں کہ آپ ان دلچسپ پرندوں کے زیادہ سے زیادہ پروں کے پھیلاؤ کا نظارہ چاہتے ہیں۔ + +```r +install.packages("ggplot2") +library("ggplot2") +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() +``` +یہاں، آپ `ggplot2` پیکج انسٹال کرتے ہیں اور پھر اسے `library("ggplot2")` کمانڈ کے ذریعے ورک اسپیس میں درآمد کرتے ہیں۔ ggplot میں کوئی بھی چارٹ پلاٹ کرنے کے لیے، `ggplot()` فنکشن استعمال کیا جاتا ہے اور آپ ڈیٹا سیٹ، x اور y متغیرات کو صفات کے طور پر تفویض کرتے ہیں۔ اس صورت میں، ہم `geom_line()` فنکشن استعمال کرتے ہیں کیونکہ ہمارا مقصد ایک لائن چارٹ بنانا ہے۔ + +![MaxWingspan-lineplot](../../../../../translated_images/MaxWingspan-lineplot.b12169f99d26fdd263f291008dfd73c18a4ba8f3d32b1fda3d74af51a0a28616.ur.png) + +آپ فوراً کیا نوٹ کرتے ہیں؟ کم از کم ایک آؤٹ لائر موجود ہے - یہ پروں کا پھیلاؤ کافی حیران کن ہے! 2000+ سینٹی میٹر پروں کا پھیلاؤ 20 میٹر سے زیادہ کے برابر ہے - کیا منیسوٹا میں پیٹروڈیکٹائلز گھوم رہے ہیں؟ آئیے تحقیق کریں۔ + +جبکہ آپ ایکسل میں جلدی سے آؤٹ لائرز کو ترتیب دے سکتے ہیں، جو شاید ٹائپوز ہیں، پلاٹ کے اندر سے کام کرتے ہوئے بصری نمائندگی کے عمل کو جاری رکھیں۔ + +x محور پر لیبلز شامل کریں تاکہ یہ ظاہر ہو کہ کس قسم کے پرندے زیر بحث ہیں: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_line() + + theme(axis.text.x = element_text(angle = 45, hjust=1))+ + xlab("Birds") + + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") +``` +ہم `theme` میں زاویہ تفویض کرتے ہیں اور `xlab()` اور `ylab()` میں x اور y محور کے لیبلز تفویض کرتے ہیں۔ `ggtitle()` چارٹ/گراف کو ایک نام دیتا ہے۔ + +![MaxWingspan-lineplot-improved](../../../../../translated_images/MaxWingspan-lineplot-improved.04b73b4d5a59552a6bc7590678899718e1f065abe9eada9ebb4148939b622fd4.ur.png) + +لیبلز کو 45 ڈگری پر گھمانے کے باوجود، پڑھنے کے لیے بہت زیادہ ہیں۔ آئیے ایک مختلف حکمت عملی آزمائیں: صرف آؤٹ لائرز کو لیبل کریں اور لیبلز کو چارٹ کے اندر سیٹ کریں۔ آپ لیبلنگ کے لیے اسکیٹر چارٹ استعمال کر سکتے ہیں: + +```r +ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank()) + ylab("Wingspan (CM)") + + ggtitle("Max Wingspan in Centimeters") + +``` +یہاں کیا ہو رہا ہے؟ آپ نے `geom_point()` فنکشن استعمال کیا تاکہ اسکیٹر پوائنٹس پلاٹ کیے جا سکیں۔ اس کے ساتھ، آپ نے ان پرندوں کے لیے لیبلز شامل کیے جن کے `MaxWingspan > 500` تھے اور x محور پر لیبلز کو چھپا دیا تاکہ چارٹ کو صاف رکھا جا سکے۔ + +آپ کیا دریافت کرتے ہیں؟ + +![MaxWingspan-scatterplot](../../../../../translated_images/MaxWingspan-scatterplot.60dc9e0e19d32700283558f253841fdab5104abb62bc96f7d97f9c0ee857fa8b.ur.png) + +## اپنے ڈیٹا کو فلٹر کریں + +بالڈ ایگل اور پریری فالکن، جو شاید بہت بڑے پرندے ہیں، غلط لیبل لگے ہوئے معلوم ہوتے ہیں، ان کے زیادہ سے زیادہ پروں کے پھیلاؤ میں ایک اضافی 0 شامل ہے۔ یہ ممکن نہیں کہ آپ 25 میٹر پروں کے پھیلاؤ والے بالڈ ایگل سے ملیں، لیکن اگر ایسا ہو تو ہمیں ضرور بتائیں! آئیے ان دو آؤٹ لائرز کے بغیر ایک نیا ڈیٹا فریم بنائیں: + +```r +birds_filtered <- subset(birds, MaxWingspan < 500) + +ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) + + geom_point() + + ylab("Wingspan (CM)") + + xlab("Birds") + + ggtitle("Max Wingspan in Centimeters") + + geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + + theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +``` +ہم نے ایک نیا ڈیٹا فریم `birds_filtered` بنایا اور پھر ایک اسکیٹر چارٹ پلاٹ کیا۔ آؤٹ لائرز کو فلٹر کرنے سے، آپ کا ڈیٹا اب زیادہ مربوط اور قابل فہم ہو گیا ہے۔ + +![MaxWingspan-scatterplot-improved](../../../../../translated_images/MaxWingspan-scatterplot-improved.7d0af81658c65f3e75b8fedeb2335399e31108257e48db15d875ece608272051.ur.png) + +اب جب کہ ہمارے پاس پروں کے پھیلاؤ کے لحاظ سے کم از کم ایک صاف شدہ ڈیٹا سیٹ موجود ہے، آئیے ان پرندوں کے بارے میں مزید دریافت کریں۔ + +جبکہ لائن اور اسکیٹر چارٹس ڈیٹا کی اقدار اور ان کی تقسیم کے بارے میں معلومات ظاہر کر سکتے ہیں، ہم اس ڈیٹا سیٹ میں موجود اقدار کے بارے میں سوچنا چاہتے ہیں۔ آپ بصری نمائندگی تخلیق کر سکتے ہیں تاکہ مقدار کے بارے میں درج ذیل سوالات کے جوابات دیے جا سکیں: + +> پرندوں کے کتنے زمرے ہیں، اور ان کی تعداد کیا ہے؟ +> کتنے پرندے معدوم، خطرے میں، نایاب، یا عام ہیں؟ +> لینیس کے اصطلاحات میں مختلف جینس اور آرڈرز کی تعداد کیا ہے؟ +## بار چارٹس کا جائزہ لیں + +جب آپ کو ڈیٹا کے گروپنگز دکھانے کی ضرورت ہو تو بار چارٹس عملی ہوتے ہیں۔ آئیے اس ڈیٹا سیٹ میں موجود پرندوں کے زمرے کا جائزہ لیں تاکہ یہ دیکھ سکیں کہ تعداد کے لحاظ سے کون سا سب سے عام ہے۔ +آئیے فلٹر شدہ ڈیٹا پر ایک بار چارٹ بنائیں۔ + +```r +install.packages("dplyr") +install.packages("tidyverse") + +library(lubridate) +library(scales) +library(dplyr) +library(ggplot2) +library(tidyverse) + +birds_filtered %>% group_by(Category) %>% + summarise(n=n(), + MinLength = mean(MinLength), + MaxLength = mean(MaxLength), + MinBodyMass = mean(MinBodyMass), + MaxBodyMass = mean(MaxBodyMass), + MinWingspan=mean(MinWingspan), + MaxWingspan=mean(MaxWingspan)) %>% + gather("key", "value", - c(Category, n)) %>% + ggplot(aes(x = Category, y = value, group = key, fill = key)) + + geom_bar(stat = "identity") + + scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) + + xlab("Category")+ggtitle("Birds of Minnesota") + +``` +مندرجہ ذیل کوڈ میں، ہم [dplyr](https://www.rdocumentation.org/packages/dplyr/versions/0.7.8) اور [lubridate](https://www.rdocumentation.org/packages/lubridate/versions/1.8.0) پیکجز انسٹال کرتے ہیں تاکہ ڈیٹا کو جوڑنے اور گروپ کرنے میں مدد ملے تاکہ ایک اسٹیکڈ بار چارٹ پلاٹ کیا جا سکے۔ پہلے، آپ ڈیٹا کو پرندے کے `Category` کے لحاظ سے گروپ کرتے ہیں اور پھر `MinLength`, `MaxLength`, `MinBodyMass`, `MaxBodyMass`, `MinWingspan`, `MaxWingspan` کالمز کو خلاصہ کرتے ہیں۔ پھر، `ggplot2` پیکج کا استعمال کرتے ہوئے بار چارٹ پلاٹ کریں اور مختلف زمرے کے لیے رنگ اور لیبلز تفویض کریں۔ + +![Stacked bar chart](../../../../../translated_images/stacked-bar-chart.0c92264e89da7b391a7490224d1e7059a020e8b74dcd354414aeac78871c02f1.ur.png) + +یہ بار چارٹ، تاہم، ناقابل پڑھائی ہے کیونکہ بہت زیادہ غیر گروپ شدہ ڈیٹا موجود ہے۔ آپ کو صرف وہ ڈیٹا منتخب کرنے کی ضرورت ہے جسے آپ پلاٹ کرنا چاہتے ہیں، تو آئیے پرندے کے زمرے کی بنیاد پر لمبائی کا جائزہ لیں۔ + +اپنے ڈیٹا کو صرف پرندے کے زمرے شامل کرنے کے لیے فلٹر کریں۔ + +چونکہ بہت سے زمرے ہیں، آپ اس چارٹ کو عمودی طور پر دکھا سکتے ہیں اور تمام ڈیٹا کو ایڈجسٹ کرنے کے لیے اس کی اونچائی کو ایڈجسٹ کر سکتے ہیں: + +```r +birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE) +birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category) +ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip() +``` +آپ پہلے `Category` کالم میں منفرد اقدار کی گنتی کرتے ہیں اور پھر انہیں ایک نئے ڈیٹا فریم `birds_count` میں ترتیب دیتے ہیں۔ یہ ترتیب شدہ ڈیٹا پھر اسی سطح پر فیکٹر کیا جاتا ہے تاکہ اسے ترتیب شدہ طریقے سے پلاٹ کیا جا سکے۔ `ggplot2` کا استعمال کرتے ہوئے آپ پھر ڈیٹا کو بار چارٹ میں پلاٹ کرتے ہیں۔ `coord_flip()` افقی بارز پلاٹ کرتا ہے۔ + +![category-length](../../../../../translated_images/category-length.7e34c296690e85d64f7e4d25a56077442683eca96c4f5b4eae120a64c0755636.ur.png) + +یہ بار چارٹ پرندوں کے ہر زمرے میں تعداد کا ایک اچھا نظارہ دکھاتا ہے۔ ایک نظر میں، آپ دیکھتے ہیں کہ اس علاقے میں سب سے زیادہ تعداد میں پرندے بطخ/گیز/واٹر فاول کے زمرے میں ہیں۔ منیسوٹا '10,000 جھیلوں کی زمین' ہے، لہذا یہ حیرت انگیز نہیں ہے! + +✅ اس ڈیٹا سیٹ پر کچھ اور گنتیاں آزمائیں۔ کیا آپ کو کچھ حیران کرتا ہے؟ + +## ڈیٹا کا موازنہ + +آپ گروپ شدہ ڈیٹا کے مختلف موازنات نئے محور بنا کر آزما سکتے ہیں۔ پرندے کے زمرے کی بنیاد پر پرندے کی زیادہ سے زیادہ لمبائی کا موازنہ آزمائیں: + +```r +birds_grouped <- birds_filtered %>% + group_by(Category) %>% + summarise( + MaxLength = max(MaxLength, na.rm = T), + MinLength = max(MinLength, na.rm = T) + ) %>% + arrange(Category) + +ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip() +``` +ہم `birds_filtered` ڈیٹا کو `Category` کے لحاظ سے گروپ کرتے ہیں اور پھر ایک بار چارٹ پلاٹ کرتے ہیں۔ + +![comparing data](../../../../../translated_images/comparingdata.f486a450d61c7ca5416f27f3f55a6a4465d00df3be5e6d33936e9b07b95e2fdd.ur.png) + +یہاں کچھ حیران کن نہیں ہے: ہمینگ برڈز کی زیادہ سے زیادہ لمبائی پیلیکنز یا گیز کے مقابلے میں سب سے کم ہے۔ یہ اچھا ہے جب ڈیٹا منطقی طور پر سمجھ میں آتا ہے! + +آپ بار چارٹس کی مزید دلچسپ بصری نمائندگی تخلیق کر سکتے ہیں ڈیٹا کو سپر امپوز کر کے۔ آئیے ایک دیے گئے پرندے کے زمرے پر کم از کم اور زیادہ سے زیادہ لمبائی کو سپر امپوز کریں: + +```r +ggplot(data=birds_grouped, aes(x=Category)) + + geom_bar(aes(y=MaxLength), stat="identity", position ="identity", fill='blue') + + geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+ + coord_flip() +``` +![super-imposed values](../../../../../translated_images/superimposed-values.5363f0705a1da4167625a373a1064331ea3cb7a06a297297d0734fcc9b3819a0.ur.png) + +## 🚀 چیلنج + +یہ پرندوں کا ڈیٹا سیٹ ایک خاص ماحولیاتی نظام کے اندر مختلف قسم کے پرندوں کے بارے میں معلومات کا خزانہ پیش کرتا ہے۔ انٹرنیٹ پر تلاش کریں اور دیکھیں کہ کیا آپ پرندوں سے متعلق دیگر ڈیٹا سیٹس تلاش کر سکتے ہیں۔ ان پرندوں کے ارد گرد چارٹس اور گراف بنانا مشق کریں تاکہ وہ حقائق دریافت کریں جنہیں آپ پہلے نہیں جانتے تھے۔ +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/17) + +## جائزہ اور خود مطالعہ + +اس پہلے سبق نے آپ کو `ggplot2` کا استعمال کرتے ہوئے مقداروں کو بصری طور پر ظاہر کرنے کے بارے میں کچھ معلومات دی ہیں۔ ڈیٹا سیٹس کے ساتھ کام کرنے کے دیگر طریقوں کے بارے میں تحقیق کریں۔ تحقیق کریں اور ایسے ڈیٹا سیٹس تلاش کریں جنہیں آپ دیگر پیکجز جیسے [Lattice](https://stat.ethz.ch/R-manual/R-devel/library/lattice/html/Lattice.html) اور [Plotly](https://github.com/plotly/plotly.R#readme) کا استعمال کرتے ہوئے بصری طور پر ظاہر کر سکتے ہیں۔ + +## اسائنمنٹ +[لائنز، اسکیٹرز، اور بارز](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/09-visualization-quantities/assignment.md b/translations/ur/3-Data-Visualization/R/09-visualization-quantities/assignment.md new file mode 100644 index 00000000..ce0d3e1c --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/09-visualization-quantities/assignment.md @@ -0,0 +1,25 @@ + +# لکیریں، بکھراؤ اور بارز + +## ہدایات + +اس سبق میں، آپ نے لائن چارٹس، اسکیٹر پلاٹس، اور بار چارٹس کے ساتھ کام کیا تاکہ اس ڈیٹا سیٹ کے بارے میں دلچسپ حقائق دکھائے جا سکیں۔ اس اسائنمنٹ میں، ڈیٹا سیٹ میں مزید گہرائی میں جائیں تاکہ کسی دیے گئے پرندے کی قسم کے بارے میں ایک حقیقت دریافت کریں۔ مثال کے طور پر، ایک اسکرپٹ بنائیں جو اسنو گیز کے بارے میں آپ جو بھی دلچسپ ڈیٹا معلوم کر سکتے ہیں اسے بصری طور پر پیش کرے۔ اوپر ذکر کیے گئے تین پلاٹس کا استعمال کریں تاکہ اپنی نوٹ بک میں ایک کہانی سنائیں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- | +ایک اسکرپٹ پیش کیا گیا ہے جس میں اچھی تشریحات، مضبوط کہانی سنانے کا انداز، اور دلکش گراف شامل ہیں | اسکرپٹ میں ان عناصر میں سے ایک کی کمی ہے | اسکرپٹ میں ان عناصر میں سے دو کی کمی ہے + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/10-visualization-distributions/README.md b/translations/ur/3-Data-Visualization/R/10-visualization-distributions/README.md new file mode 100644 index 00000000..f71584fb --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/10-visualization-distributions/README.md @@ -0,0 +1,183 @@ + +# تقسیمات کو بصری بنانا + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی طرف سے اسکیچ نوٹ ](https://github.com/microsoft/Data-Science-For-Beginners/blob/main/sketchnotes/10-Visualizing-Distributions.png)| +|:---:| +| تقسیمات کو بصری بنانا - _[@nitya](https://twitter.com/nitya) کی طرف سے اسکیچ نوٹ_ | + +پچھلے سبق میں، آپ نے منیسوٹا کے پرندوں کے بارے میں ایک ڈیٹا سیٹ کے کچھ دلچسپ حقائق سیکھے۔ آپ نے آؤٹ لائرز کو بصری بنا کر کچھ غلط ڈیٹا پایا اور پرندوں کی اقسام کے درمیان زیادہ سے زیادہ لمبائی کے فرق کو دیکھا۔ + +## [سبق سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/18) +## پرندوں کے ڈیٹا سیٹ کو دریافت کریں + +ڈیٹا کو سمجھنے کا ایک اور طریقہ یہ ہے کہ اس کی تقسیم کو دیکھیں، یعنی ڈیٹا کو ایک محور پر کیسے ترتیب دیا گیا ہے۔ مثال کے طور پر، شاید آپ منیسوٹا کے پرندوں کے زیادہ سے زیادہ پروں کے پھیلاؤ یا زیادہ سے زیادہ جسمانی وزن کی عمومی تقسیم کے بارے میں جاننا چاہتے ہیں۔ + +آئیے اس ڈیٹا سیٹ میں ڈیٹا کی تقسیم کے بارے میں کچھ حقائق دریافت کرتے ہیں۔ اپنے R کنسول میں، `ggplot2` اور ڈیٹا بیس کو درآمد کریں۔ پچھلے موضوع کی طرح ڈیٹا بیس سے آؤٹ لائرز کو ہٹا دیں۔ + +```r +library(ggplot2) + +birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM") + +birds_filtered <- subset(birds, MaxWingspan < 500) +head(birds_filtered) +``` +| | نام | سائنسی نام | زمرہ | آرڈر | خاندان | جینس | تحفظ کی حالت | کم از کم لمبائی | زیادہ سے زیادہ لمبائی | کم از کم جسمانی وزن | زیادہ سے زیادہ جسمانی وزن | کم از کم پروں کا پھیلاؤ | زیادہ سے زیادہ پروں کا پھیلاؤ | +| ---: | :--------------------------- | :--------------------- | :-------------------- | :----------- | :------- | :---------- | :----------------- | --------: | --------: | ----------: | ----------: | ----------: | ----------: | +| 0 | بلیک بیلیڈ وسلنگ ڈک | Dendrocygna autumnalis | بطخیں/گیز/واٹرفاول | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 | +| 1 | فلویس وسلنگ ڈک | Dendrocygna bicolor | بطخیں/گیز/واٹرفاول | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 | +| 2 | سنو گوز | Anser caerulescens | بطخیں/گیز/واٹرفاول | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 | +| 3 | روس کا گوز | Anser rossii | بطخیں/گیز/واٹرفاول | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 | +| 4 | گریٹر وائٹ فرنٹڈ گوز | Anser albifrons | بطخیں/گیز/واٹرفاول | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 | + +عام طور پر، آپ ڈیٹا کی تقسیم کو جلدی سے دیکھ سکتے ہیں جیسا کہ ہم نے پچھلے سبق میں ایک اسکیٹر پلاٹ کے ذریعے کیا تھا: + +```r +ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) + + geom_point() + + ggtitle("Max Length per order") + coord_flip() +``` +![آرڈر کے لحاظ سے زیادہ سے زیادہ لمبائی](../../../../../translated_images/max-length-per-order.e5b283d952c78c12b091307c5d3cf67132dad6fefe80a073353b9dc5c2bd3eb8.ur.png) + +یہ پرندوں کے آرڈر کے لحاظ سے جسمانی لمبائی کی عمومی تقسیم کا جائزہ دیتا ہے، لیکن یہ حقیقی تقسیم کو ظاہر کرنے کا بہترین طریقہ نہیں ہے۔ یہ کام عام طور پر ہسٹوگرام بنا کر کیا جاتا ہے۔ +## ہسٹوگرام کے ساتھ کام کرنا + +`ggplot2` ہسٹوگرامز کا استعمال کرتے ہوئے ڈیٹا کی تقسیم کو بصری بنانے کے لیے بہت اچھے طریقے پیش کرتا ہے۔ اس قسم کا چارٹ بار چارٹ کی طرح ہوتا ہے جہاں تقسیم کو بارز کے اتار چڑھاؤ کے ذریعے دیکھا جا سکتا ہے۔ ہسٹوگرام بنانے کے لیے، آپ کو عددی ڈیٹا کی ضرورت ہوتی ہے۔ ہسٹوگرام بنانے کے لیے، آپ ایک چارٹ بنا سکتے ہیں جس میں قسم کو 'hist' کے طور پر ہسٹوگرام کے لیے بیان کیا گیا ہو۔ یہ چارٹ پورے ڈیٹا سیٹ کے عددی ڈیٹا کی حد کے لیے MaxBodyMass کی تقسیم کو ظاہر کرتا ہے۔ ڈیٹا کی صف کو چھوٹے حصوں میں تقسیم کرکے، یہ ڈیٹا کی قدروں کی تقسیم کو ظاہر کر سکتا ہے: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + + geom_histogram(bins=10)+ylab('Frequency') +``` +![پورے ڈیٹا سیٹ پر تقسیم](../../../../../translated_images/distribution-over-the-entire-dataset.d22afd3fa96be854e4c82213fedec9e3703cba753d07fad4606aadf58cf7e78e.ur.png) + +جیسا کہ آپ دیکھ سکتے ہیں، اس ڈیٹا سیٹ میں موجود 400+ پرندوں میں سے زیادہ تر کا زیادہ سے زیادہ جسمانی وزن 2000 سے کم ہے۔ ڈیٹا کے بارے میں مزید بصیرت حاصل کرنے کے لیے `bins` پیرامیٹر کو زیادہ تعداد، جیسے 30 میں تبدیل کریں: + +```r +ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency') +``` + +![30 بِنز کے ساتھ تقسیم](../../../../../translated_images/distribution-30bins.6a3921ea7a421bf71f06bf5231009e43d1146f1b8da8dc254e99b5779a4983e5.ur.png) + +یہ چارٹ تقسیم کو تھوڑا زیادہ تفصیلی انداز میں دکھاتا ہے۔ ایک چارٹ جو بائیں طرف کم جھکا ہوا ہو، اس وقت بنایا جا سکتا ہے جب آپ صرف ایک دیے گئے حد کے اندر ڈیٹا کو منتخب کریں: + +اپنے ڈیٹا کو فلٹر کریں تاکہ صرف وہ پرندے حاصل ہوں جن کا جسمانی وزن 60 سے کم ہو، اور 30 `bins` دکھائیں: + +```r +birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60) +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_histogram(bins=30)+ylab('Frequency') +``` + +![فلٹر شدہ ہسٹوگرام](../../../../../translated_images/filtered-histogram.6bf5d2bfd82533220e1bd4bc4f7d14308f43746ed66721d9ec8f460732be6674.ur.png) + +✅ کچھ دوسرے فلٹرز اور ڈیٹا پوائنٹس آزمائیں۔ ڈیٹا کی مکمل تقسیم دیکھنے کے لیے، `['MaxBodyMass']` فلٹر کو ہٹا دیں تاکہ لیبل شدہ تقسیمات دکھائی دیں۔ + +ہسٹوگرام کچھ اچھے رنگ اور لیبلنگ کی بہتری بھی پیش کرتا ہے: + +دو تقسیمات کے درمیان تعلق کا موازنہ کرنے کے لیے ایک 2D ہسٹوگرام بنائیں۔ آئیے `MaxBodyMass` اور `MaxLength` کا موازنہ کریں۔ `ggplot2` ایک بلٹ ان طریقہ پیش کرتا ہے جو روشن رنگوں کا استعمال کرتے ہوئے ہم آہنگی کو ظاہر کرتا ہے: + +```r +ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) + + geom_bin2d() +scale_fill_continuous(type = "viridis") +``` +ایسا لگتا ہے کہ ان دو عناصر کے درمیان ایک متوقع محور کے ساتھ ایک متوقع تعلق ہے، جس میں ہم آہنگی کا ایک خاص طور پر مضبوط نقطہ ہے: + +![2D پلاٹ](../../../../../translated_images/2d-plot.c504786f439bd7ebceebf2465c70ca3b124103e06c7ff7214bf24e26f7aec21e.ur.png) + +ہسٹوگرامز عددی ڈیٹا کے لیے ڈیفالٹ کے طور پر اچھی طرح کام کرتے ہیں۔ اگر آپ کو متن کے ڈیٹا کے مطابق تقسیمات دیکھنے کی ضرورت ہو تو کیا ہوگا؟ +## متن کے ڈیٹا کا استعمال کرتے ہوئے ڈیٹا سیٹ کے لیے تقسیمات کو دریافت کریں + +یہ ڈیٹا سیٹ پرندوں کے زمرے، جینس، انواع، خاندان، اور تحفظ کی حالت کے بارے میں اچھی معلومات بھی شامل کرتا ہے۔ آئیے اس تحفظ کی معلومات کو دریافت کریں۔ پرندوں کی تقسیم ان کی تحفظ کی حالت کے مطابق کیا ہے؟ + +> ✅ ڈیٹا سیٹ میں، تحفظ کی حالت کو بیان کرنے کے لیے کئی مخففات استعمال کیے گئے ہیں۔ یہ مخففات [IUCN ریڈ لسٹ کیٹیگریز](https://www.iucnredlist.org/) سے آتے ہیں، ایک تنظیم جو انواع کی حالت کو کیٹلاگ کرتی ہے۔ +> +> - CR: انتہائی خطرے میں +> - EN: خطرے میں +> - EX: معدوم +> - LC: کم تشویش +> - NT: قریب خطرے میں +> - VU: کمزور + +یہ متن پر مبنی قدریں ہیں، لہذا آپ کو ہسٹوگرام بنانے کے لیے ایک تبدیلی کرنے کی ضرورت ہوگی۔ فلٹر شدہ پرندوں کے ڈیٹا فریم کا استعمال کرتے ہوئے، اس کی تحفظ کی حالت کو اس کے کم از کم پروں کے پھیلاؤ کے ساتھ دکھائیں۔ آپ کیا دیکھتے ہیں؟ + +```r +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5' +birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6' + +ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) + + geom_histogram(position = "identity", alpha = 0.4, bins = 20) + + scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern")) +``` + +![پروں کا پھیلاؤ اور تحفظ کی حالت کا موازنہ](../../../../../translated_images/wingspan-conservation-collation.4024e9aa6910866aa82f0c6cb6a6b4b925bd10079e6b0ef8f92eefa5a6792f76.ur.png) + +کم از کم پروں کے پھیلاؤ اور تحفظ کی حالت کے درمیان کوئی اچھا تعلق نظر نہیں آتا۔ اس طریقے کا استعمال کرتے ہوئے ڈیٹا سیٹ کے دوسرے عناصر کو آزمائیں۔ آپ مختلف فلٹرز بھی آزما سکتے ہیں۔ کیا آپ کو کوئی تعلق نظر آتا ہے؟ + +## کثافت کے پلاٹس + +آپ نے محسوس کیا ہوگا کہ اب تک ہم نے جو ہسٹوگرامز دیکھے ہیں وہ 'قدموں والے' ہیں اور ہموار آرک میں نہیں بہتے۔ ایک ہموار کثافت چارٹ دکھانے کے لیے، آپ کثافت پلاٹ آزما سکتے ہیں۔ + +آئیے اب کثافت پلاٹس کے ساتھ کام کریں! + +```r +ggplot(data = birds_filtered_1, aes(x = MinWingspan)) + + geom_density() +``` +![کثافت پلاٹ](../../../../../translated_images/density-plot.675ccf865b76c690487fb7f69420a8444a3515f03bad5482886232d4330f5c85.ur.png) + +آپ دیکھ سکتے ہیں کہ یہ پلاٹ کم از کم پروں کے پھیلاؤ کے ڈیٹا کے لیے پچھلے پلاٹ کی عکاسی کرتا ہے؛ یہ صرف تھوڑا سا ہموار ہے۔ اگر آپ اس قدموں والے MaxBodyMass لائن کو دوبارہ دیکھنا چاہتے ہیں جو آپ نے دوسرے چارٹ میں بنایا تھا، تو آپ اسے اس طریقے کا استعمال کرتے ہوئے بہت اچھی طرح سے ہموار کر سکتے ہیں: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density() +``` +![جسمانی وزن کی کثافت](../../../../../translated_images/bodymass-smooth.d31ce526d82b0a1f19a073815dea28ecfbe58145ec5337e4ef7e8cdac81120b3.ur.png) + +اگر آپ ایک ہموار، لیکن زیادہ ہموار نہ ہونے والی لائن چاہتے ہیں، تو `adjust` پیرامیٹر میں ترمیم کریں: + +```r +ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) + + geom_density(adjust = 1/5) +``` +![کم ہموار جسمانی وزن](../../../../../translated_images/less-smooth-bodymass.10f4db8b683cc17d17b2d33f22405413142004467a1493d416608dafecfdee23.ur.png) + +✅ اس قسم کے پلاٹ کے لیے دستیاب پیرامیٹرز کے بارے میں پڑھیں اور تجربہ کریں! + +یہ قسم کے چارٹ خوبصورت وضاحتی بصریات پیش کرتے ہیں۔ مثال کے طور پر، چند لائنوں کے کوڈ کے ساتھ، آپ پرندوں کے آرڈر کے لحاظ سے زیادہ سے زیادہ جسمانی وزن کی کثافت دکھا سکتے ہیں: + +```r +ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) + + geom_density(alpha=0.5) +``` +![آرڈر کے لحاظ سے جسمانی وزن](../../../../../translated_images/bodymass-per-order.9d2b065dd931b928c839d8cdbee63067ab1ae52218a1b90717f4bc744354f485.ur.png) + +## 🚀 چیلنج + +ہسٹوگرامز بنیادی اسکیٹر پلاٹس، بار چارٹس، یا لائن چارٹس کے مقابلے میں زیادہ نفیس قسم کے چارٹ ہیں۔ انٹرنیٹ پر تلاش کریں اور ہسٹوگرامز کے استعمال کی اچھی مثالیں تلاش کریں۔ وہ کیسے استعمال کیے جاتے ہیں، کیا ظاہر کرتے ہیں، اور کن شعبوں یا تحقیق کے علاقوں میں ان کا رجحان ہوتا ہے؟ + +## [سبق کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/19) + +## جائزہ اور خود مطالعہ + +اس سبق میں، آپ نے `ggplot2` کا استعمال کیا اور زیادہ نفیس چارٹس دکھانے کے لیے کام شروع کیا۔ `geom_density_2d()` کے بارے میں تحقیق کریں، جو "ایک یا زیادہ جہتوں میں مسلسل احتمال کثافت کا منحنی خط" ہے۔ [دستاویزات](https://ggplot2.tidyverse.org/reference/geom_density_2d.html) کو پڑھیں تاکہ یہ سمجھ سکیں کہ یہ کیسے کام کرتا ہے۔ + +## اسائنمنٹ + +[اپنی مہارتیں آزمائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/10-visualization-distributions/assignment.md b/translations/ur/3-Data-Visualization/R/10-visualization-distributions/assignment.md new file mode 100644 index 00000000..ada2f1cb --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/10-visualization-distributions/assignment.md @@ -0,0 +1,25 @@ + +# اپنی مہارتوں کا اطلاق کریں + +## ہدایات + +اب تک، آپ نے مینیسوٹا پرندوں کے ڈیٹا سیٹ کے ساتھ کام کیا ہے تاکہ پرندوں کی تعداد اور آبادی کی کثافت کے بارے میں معلومات حاصل کی جا سکیں۔ ان تکنیکوں کا اطلاق کرنے کی مشق کریں اور ایک مختلف ڈیٹا سیٹ آزمائیں، شاید [Kaggle](https://www.kaggle.com/) سے حاصل کردہ۔ ایک R اسکرپٹ بنائیں جو اس ڈیٹا سیٹ کے بارے میں کہانی بیان کرے، اور اس پر بات کرتے وقت ہسٹگرامز کا استعمال یقینی بنائیں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- | +ایک اسکرپٹ پیش کیا گیا ہے جس میں اس ڈیٹا سیٹ کے بارے میں تشریحات شامل ہیں، اس کے ماخذ سمیت، اور کم از کم 5 ہسٹگرامز کا استعمال کرتے ہوئے ڈیٹا کے حقائق دریافت کیے گئے ہیں۔ | ایک اسکرپٹ پیش کیا گیا ہے جس میں نامکمل تشریحات یا خامیاں ہیں۔ | ایک اسکرپٹ پیش کیا گیا ہے جس میں تشریحات نہیں ہیں اور اس میں خامیاں موجود ہیں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/11-visualization-proportions/README.md b/translations/ur/3-Data-Visualization/R/11-visualization-proportions/README.md new file mode 100644 index 00000000..3ed77c7d --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/11-visualization-proportions/README.md @@ -0,0 +1,201 @@ + +# تناسبات کی بصری نمائندگی + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../../sketchnotes/11-Visualizing-Proportions.png)| +|:---:| +|تناسبات کی بصری نمائندگی - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +اس سبق میں، آپ ایک مختلف قدرتی ڈیٹا سیٹ استعمال کریں گے تاکہ تناسبات کو بصری طور پر سمجھ سکیں، جیسے کہ مشرومز کے بارے میں دیے گئے ڈیٹا سیٹ میں کتنی مختلف اقسام کے فنگس موجود ہیں۔ آئیے ان دلچسپ فنگس کو ایک ڈیٹا سیٹ کے ذریعے دریافت کریں جو آڈوبون سے حاصل کیا گیا ہے اور اس میں Agaricus اور Lepiota خاندانوں کے 23 اقسام کے مشرومز کی تفصیلات شامل ہیں۔ آپ مزیدار بصری نمائندگیوں کے ساتھ تجربہ کریں گے جیسے: + +- پائی چارٹس 🥧 +- ڈونٹ چارٹس 🍩 +- وافل چارٹس 🧇 + +> 💡 مائیکروسافٹ ریسرچ کا ایک بہت دلچسپ پروجیکٹ [Charticulator](https://charticulator.com) ایک مفت ڈریگ اینڈ ڈراپ انٹرفیس فراہم کرتا ہے ڈیٹا بصری نمائندگی کے لیے۔ ان کے ایک ٹیوٹوریل میں بھی یہ مشرومز کا ڈیٹا سیٹ استعمال کیا گیا ہے! تو آپ ڈیٹا کو دریافت کر سکتے ہیں اور لائبریری کو ایک ساتھ سیکھ سکتے ہیں: [Charticulator tutorial](https://charticulator.com/tutorials/tutorial4.html)۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/20) + +## اپنے مشرومز کو جانیں 🍄 + +مشرومز بہت دلچسپ ہیں۔ آئیے ایک ڈیٹا سیٹ درآمد کریں تاکہ ان کا مطالعہ کیا جا سکے: + +```r +mushrooms = read.csv('../../data/mushrooms.csv') +head(mushrooms) +``` +ایک ٹیبل پرنٹ ہوتا ہے جس میں تجزیے کے لیے بہترین ڈیٹا موجود ہے: + + +| 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 | +| --------- | --------- | ----------- | --------- | ------- | ------- | --------------- | ------------ | --------- | ---------- | ----------- | ---------- | ------------------------ | ------------------------ | ---------------------- | ---------------------- | --------- | ---------- | ----------- | --------- | ----------------- | ---------- | ------- | +| Poisonous | Convex | Smooth | Brown | Bruises | Pungent | Free | Close | Narrow | Black | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban | +| Edible | Convex | Smooth | Yellow | Bruises | Almond | Free | Close | Broad | Black | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Grasses | +| Edible | Bell | Smooth | White | Bruises | Anise | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Brown | Numerous | Meadows | +| Poisonous | Convex | Scaly | White | Bruises | Pungent | Free | Close | Narrow | Brown | Enlarging | Equal | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Scattered | Urban +| Edible | Convex |Smooth | Green | No Bruises| None |Free | Crowded | Broad | Black | Tapering | Equal | Smooth | Smooth | White | White | Partial | White | One | Evanescent | Brown | Abundant | Grasses +|Edible | Convex | Scaly | Yellow | Bruises | Almond | Free | Close | Broad | Brown | Enlarging | Club | Smooth | Smooth | White | White | Partial | White | One | Pendant | Black | Numerous | Grasses + +فوراً آپ دیکھتے ہیں کہ تمام ڈیٹا متنی ہے۔ آپ کو اس ڈیٹا کو چارٹ میں استعمال کرنے کے قابل بنانے کے لیے تبدیل کرنا ہوگا۔ حقیقت میں، زیادہ تر ڈیٹا ایک آبجیکٹ کے طور پر پیش کیا گیا ہے: + +```r +names(mushrooms) +``` + +آؤٹ پٹ ہے: + +```output +[1] "class" "cap.shape" + [3] "cap.surface" "cap.color" + [5] "bruises" "odor" + [7] "gill.attachment" "gill.spacing" + [9] "gill.size" "gill.color" +[11] "stalk.shape" "stalk.root" +[13] "stalk.surface.above.ring" "stalk.surface.below.ring" +[15] "stalk.color.above.ring" "stalk.color.below.ring" +[17] "veil.type" "veil.color" +[19] "ring.number" "ring.type" +[21] "spore.print.color" "population" +[23] "habitat" +``` +اس ڈیٹا کو لیں اور 'class' کالم کو ایک کیٹیگری میں تبدیل کریں: + +```r +library(dplyr) +grouped=mushrooms %>% + group_by(class) %>% + summarise(count=n()) +``` + + +اب، اگر آپ مشرومز کا ڈیٹا پرنٹ کریں، تو آپ دیکھ سکتے ہیں کہ اسے زہریلے/کھانے کے قابل کلاس کے مطابق کیٹیگریز میں گروپ کیا گیا ہے: +```r +View(grouped) +``` + + +| class | count | +| --------- | --------- | +| Edible | 4208 | +| Poisonous| 3916 | + + + +اگر آپ اس ٹیبل میں دیے گئے ترتیب کے مطابق اپنی کلاس کیٹیگری لیبلز بنائیں، تو آپ ایک پائی چارٹ بنا سکتے ہیں۔ + +## پائی! + +```r +pie(grouped$count,grouped$class, main="Edible?") +``` +دیکھیں، ایک پائی چارٹ جو اس ڈیٹا کو ان دو مشرومز کی کلاسز کے مطابق تناسبات دکھاتا ہے۔ لیبلز کی ترتیب کو درست رکھنا خاص طور پر یہاں بہت اہم ہے، لہذا لیبل آرے کی ترتیب کو ضرور چیک کریں! + +![پائی چارٹ](../../../../../translated_images/pie1-wb.685df063673751f4b0b82127f7a52c7f9a920192f22ae61ad28412ba9ace97bf.ur.png) + +## ڈونٹس! + +پائی چارٹ کا ایک قدرے زیادہ بصری دلچسپ ورژن ڈونٹ چارٹ ہے، جو ایک پائی چارٹ ہے جس کے درمیان میں ایک سوراخ ہوتا ہے۔ آئیے اس طریقے سے اپنے ڈیٹا کو دیکھتے ہیں۔ + +مشرومز کے مختلف رہائش گاہوں پر نظر ڈالیں: + +```r +library(dplyr) +habitat=mushrooms %>% + group_by(habitat) %>% + summarise(count=n()) +View(habitat) +``` +آؤٹ پٹ ہے: +| habitat| count | +| --------- | --------- | +| Grasses | 2148 | +| Leaves| 832 | +| Meadows | 292 | +| Paths| 1144 | +| Urban | 368 | +| Waste| 192 | +| Wood| 3148 | + + +یہاں، آپ اپنے ڈیٹا کو رہائش گاہ کے مطابق گروپ کر رہے ہیں۔ 7 رہائش گاہیں درج ہیں، لہذا انہیں اپنے ڈونٹ چارٹ کے لیبلز کے طور پر استعمال کریں: + +```r +library(ggplot2) +library(webr) +PieDonut(habitat, aes(habitat, count=count)) +``` + +![ڈونٹ چارٹ](../../../../../translated_images/donut-wb.34e6fb275da9d834c2205145e39a3de9b6878191dcdba6f7a9e85f4b520449bc.ur.png) + +یہ کوڈ دو لائبریریوں - ggplot2 اور webr - استعمال کرتا ہے۔ webr لائبریری کے PieDonut فنکشن کا استعمال کرتے ہوئے، ہم آسانی سے ایک ڈونٹ چارٹ بنا سکتے ہیں! + +R میں ڈونٹ چارٹس صرف ggplot2 لائبریری کا استعمال کرتے ہوئے بھی بنائے جا سکتے ہیں۔ آپ اس کے بارے میں مزید [یہاں](https://www.r-graph-gallery.com/128-ring-or-donut-plot.html) سیکھ سکتے ہیں اور خود آزما سکتے ہیں۔ + +اب جب کہ آپ جانتے ہیں کہ اپنے ڈیٹا کو گروپ کیسے کرنا ہے اور پھر اسے پائی یا ڈونٹ کے طور پر کیسے دکھانا ہے، آپ دیگر اقسام کے چارٹس کو دریافت کر سکتے ہیں۔ ایک وافل چارٹ آزمائیں، جو مقدار کو دریافت کرنے کا ایک مختلف طریقہ ہے۔ +## وافلز! + +'وافل' قسم کا چارٹ مقدار کو 2D مربعوں کی صف کے طور پر بصری طور پر دکھانے کا ایک مختلف طریقہ ہے۔ اس ڈیٹا سیٹ میں مشرومز کی ٹوپی کے مختلف رنگوں کی مقدار کو بصری طور پر دیکھنے کی کوشش کریں۔ ایسا کرنے کے لیے، آپ کو ایک مددگار لائبریری [waffle](https://cran.r-project.org/web/packages/waffle/waffle.pdf) انسٹال کرنی ہوگی اور اسے اپنی بصری نمائندگی بنانے کے لیے استعمال کرنا ہوگا: + +```r +install.packages("waffle", repos = "https://cinc.rud.is") +``` + +اپنے ڈیٹا کے ایک حصے کو گروپ کریں: + +```r +library(dplyr) +cap_color=mushrooms %>% + group_by(cap.color) %>% + summarise(count=n()) +View(cap_color) +``` + +وافل چارٹ بنانے کے لیے لیبلز بنائیں اور پھر اپنے ڈیٹا کو گروپ کریں: + +```r +library(waffle) +names(cap_color$count) = paste0(cap_color$cap.color) +waffle((cap_color$count/10), rows = 7, title = "Waffle Chart")+scale_fill_manual(values=c("brown", "#F0DC82", "#D2691E", "green", + "pink", "purple", "red", "grey", + "yellow","white")) +``` + +وافل چارٹ کا استعمال کرتے ہوئے، آپ مشرومز کے اس ڈیٹا سیٹ میں ٹوپی کے رنگوں کے تناسب کو واضح طور پر دیکھ سکتے ہیں۔ دلچسپ بات یہ ہے کہ بہت سے سبز ٹوپی والے مشرومز موجود ہیں! + +![وافل چارٹ](../../../../../translated_images/waffle.aaa75c5337735a6ef32ace0ffb6506ef49e5aefe870ffd72b1bb080f4843c217.ur.png) + +اس سبق میں، آپ نے تناسبات کو بصری طور پر سمجھنے کے تین طریقے سیکھے۔ پہلے، آپ کو اپنے ڈیٹا کو کیٹیگریز میں گروپ کرنا ہوگا اور پھر فیصلہ کرنا ہوگا کہ ڈیٹا کو دکھانے کا بہترین طریقہ کون سا ہے - پائی، ڈونٹ، یا وافل۔ یہ سب مزیدار ہیں اور صارف کو ڈیٹا سیٹ کا فوری جائزہ فراہم کرتے ہیں۔ + +## 🚀 چیلنج + +[Charticulator](https://charticulator.com) میں ان مزیدار چارٹس کو دوبارہ بنانے کی کوشش کریں۔ +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/21) + +## جائزہ اور خود مطالعہ + +کبھی کبھی یہ واضح نہیں ہوتا کہ پائی، ڈونٹ، یا وافل چارٹ کب استعمال کرنا ہے۔ اس موضوع پر پڑھنے کے لیے کچھ مضامین یہ ہیں: + +https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart + +https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce + +https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm + +https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402 + +مزید معلومات حاصل کرنے کے لیے اس مشکل فیصلے پر تحقیق کریں۔ +## اسائنمنٹ + +[ایکسسل میں آزمائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/12-visualization-relationships/README.md b/translations/ur/3-Data-Visualization/R/12-visualization-relationships/README.md new file mode 100644 index 00000000..0ca9dfe9 --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/12-visualization-relationships/README.md @@ -0,0 +1,179 @@ + +# شہد کے تعلقات کی بصری نمائندگی: شہد کے بارے میں سب کچھ 🍯 + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/12-Visualizing-Relationships.png)| +|:---:| +|تعلقات کی بصری نمائندگی - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ہماری تحقیق کے قدرتی پہلو کو جاری رکھتے ہوئے، آئیے مختلف اقسام کے شہد کے درمیان تعلقات کو ظاہر کرنے کے لیے دلچسپ بصری نمائندگیوں کو دریافت کریں، جو کہ [امریکہ کے محکمہ زراعت](https://www.nass.usda.gov/About_NASS/index.php) سے حاصل کردہ ڈیٹا سیٹ پر مبنی ہیں۔ + +یہ ڈیٹا سیٹ تقریباً 600 اشیاء پر مشتمل ہے جو امریکہ کی مختلف ریاستوں میں شہد کی پیداوار کو ظاہر کرتا ہے۔ مثال کے طور پر، آپ 1998 سے 2012 کے درمیان کسی دی گئی ریاست میں کالونیوں کی تعداد، فی کالونی پیداوار، کل پیداوار، ذخائر، فی پاؤنڈ قیمت، اور پیداوار کی قیمت کو دیکھ سکتے ہیں، ہر سال کے لیے ایک قطار کے ساتھ۔ + +یہ دلچسپ ہوگا کہ کسی دی گئی ریاست کی سالانہ پیداوار اور اس ریاست میں شہد کی قیمت کے درمیان تعلق کو بصری طور پر دکھایا جائے۔ متبادل طور پر، آپ ریاستوں کی فی کالونی شہد کی پیداوار کے درمیان تعلق کو ظاہر کر سکتے ہیں۔ یہ سال 2006 میں پہلی بار دیکھے گئے 'کالونی کولیپس ڈس آرڈر' (CCD) (http://npic.orst.edu/envir/ccd.html) کے تباہ کن اثرات کا احاطہ کرتا ہے، لہذا یہ مطالعہ کے لیے ایک اہم ڈیٹا سیٹ ہے۔ 🐝 + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/22) + +اس سبق میں، آپ ggplot2 استعمال کر سکتے ہیں، جسے آپ پہلے بھی استعمال کر چکے ہیں، جو متغیرات کے درمیان تعلقات کو بصری طور پر ظاہر کرنے کے لیے ایک بہترین لائبریری ہے۔ خاص طور پر دلچسپ ggplot2 کے `geom_point` اور `qplot` فنکشن کا استعمال ہے، جو جلدی سے اسکیٹر پلاٹس اور لائن پلاٹس بنا کر '[اعدادی تعلقات](https://ggplot2.tidyverse.org/)' کو ظاہر کرتے ہیں، جو ڈیٹا سائنسدان کو متغیرات کے درمیان تعلق کو بہتر طور پر سمجھنے میں مدد دیتے ہیں۔ + +## اسکیٹر پلاٹس + +ایک اسکیٹر پلاٹ کا استعمال کریں تاکہ یہ دکھایا جا سکے کہ شہد کی قیمت سال بہ سال، ہر ریاست کے لیے، کیسے بدلی ہے۔ ggplot2، `ggplot` اور `geom_point` کا استعمال کرتے ہوئے، ریاستی ڈیٹا کو آسانی سے گروپ کرتا ہے اور زمرہ وار اور عددی ڈیٹا کے لیے ڈیٹا پوائنٹس دکھاتا ہے۔ + +آئیے ڈیٹا اور Seaborn کو درآمد کرنے سے شروع کرتے ہیں: + +```r +honey=read.csv('../../data/honey.csv') +head(honey) +``` +آپ دیکھیں گے کہ شہد کے ڈیٹا میں کئی دلچسپ کالمز ہیں، جن میں سال اور فی پاؤنڈ قیمت شامل ہیں۔ آئیے اس ڈیٹا کو دریافت کریں، جو امریکی ریاستوں کے لحاظ سے گروپ کیا گیا ہے: + +| ریاست | کالونیوں کی تعداد | فی کالونی پیداوار | کل پیداوار | ذخائر | فی پاؤنڈ قیمت | پیداوار کی قیمت | سال | +| ----- | ------------------ | ------------------ | ----------- | -------- | ------------- | ---------------- | ---- | +| AL | 16000 | 71 | 1136000 | 159000 | 0.72 | 818000 | 1998 | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AR | 53000 | 65 | 3445000 | 1688000 | 0.59 | 2033000 | 1998 | +| CA | 450000 | 83 | 37350000 | 12326000 | 0.62 | 23157000 | 1998 | +| CO | 27000 | 72 | 1944000 | 1594000 | 0.7 | 1361000 | 1998 | +| FL | 230000 | 98 | 22540000 | 4508000 | 0.64 | 14426000 | 1998 | + +ایک بنیادی اسکیٹر پلاٹ بنائیں تاکہ شہد کی فی پاؤنڈ قیمت اور اس کی امریکی ریاست کے درمیان تعلق کو دکھایا جا سکے۔ `y` محور کو اتنا لمبا بنائیں کہ تمام ریاستیں دکھائی دیں: + +```r +library(ggplot2) +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(colour = "blue") +``` +![scatterplot 1](../../../../../translated_images/scatter1.86b8900674d88b26dd3353a83fe604e9ab3722c4680cc40ee9beb452ff02cdea.ur.png) + +اب، وہی ڈیٹا شہد کے رنگ سکیم کے ساتھ دکھائیں تاکہ یہ ظاہر ہو کہ قیمت سال بہ سال کیسے بدلی ہے۔ آپ یہ 'scale_color_gradientn' پیرامیٹر شامل کر کے کر سکتے ہیں تاکہ تبدیلی کو ظاہر کیا جا سکے: + +> ✅ [scale_color_gradientn](https://www.rdocumentation.org/packages/ggplot2/versions/0.9.1/topics/scale_colour_gradientn) کے بارے میں مزید جانیں - ایک خوبصورت قوس قزح رنگ سکیم آزمائیں! + +```r +ggplot(honey, aes(x = priceperlb, y = state, color=year)) + + geom_point()+scale_color_gradientn(colours = colorspace::heat_hcl(7)) +``` +![scatterplot 2](../../../../../translated_images/scatter2.4d1cbc693bad20e2b563888747eb6bdf65b73ce449d903f7cd4068a78502dcff.ur.png) + +اس رنگ سکیم کی تبدیلی کے ساتھ، آپ واضح طور پر دیکھ سکتے ہیں کہ سال بہ سال شہد کی فی پاؤنڈ قیمت میں ایک مضبوط ترقی ہوئی ہے۔ درحقیقت، اگر آپ ڈیٹا کے ایک نمونے کو جانچنے کے لیے دیکھیں (مثال کے طور پر، ایریزونا کی ریاست)، تو آپ دیکھ سکتے ہیں کہ قیمت میں سال بہ سال اضافے کا ایک نمونہ موجود ہے، چند استثناء کے ساتھ: + +| ریاست | کالونیوں کی تعداد | فی کالونی پیداوار | کل پیداوار | ذخائر | فی پاؤنڈ قیمت | پیداوار کی قیمت | سال | +| ----- | ------------------ | ------------------ | ----------- | ------- | ------------- | ---------------- | ---- | +| AZ | 55000 | 60 | 3300000 | 1485000 | 0.64 | 2112000 | 1998 | +| AZ | 52000 | 62 | 3224000 | 1548000 | 0.62 | 1999000 | 1999 | +| AZ | 40000 | 59 | 2360000 | 1322000 | 0.73 | 1723000 | 2000 | +| AZ | 43000 | 59 | 2537000 | 1142000 | 0.72 | 1827000 | 2001 | +| AZ | 38000 | 63 | 2394000 | 1197000 | 1.08 | 2586000 | 2002 | +| AZ | 35000 | 72 | 2520000 | 983000 | 1.34 | 3377000 | 2003 | +| AZ | 32000 | 55 | 1760000 | 774000 | 1.11 | 1954000 | 2004 | +| AZ | 36000 | 50 | 1800000 | 720000 | 1.04 | 1872000 | 2005 | +| AZ | 30000 | 65 | 1950000 | 839000 | 0.91 | 1775000 | 2006 | +| AZ | 30000 | 64 | 1920000 | 902000 | 1.26 | 2419000 | 2007 | +| AZ | 25000 | 64 | 1600000 | 336000 | 1.26 | 2016000 | 2008 | +| AZ | 20000 | 52 | 1040000 | 562000 | 1.45 | 1508000 | 2009 | +| AZ | 24000 | 77 | 1848000 | 665000 | 1.52 | 2809000 | 2010 | +| AZ | 23000 | 53 | 1219000 | 427000 | 1.55 | 1889000 | 2011 | +| AZ | 22000 | 46 | 1012000 | 253000 | 1.79 | 1811000 | 2012 | + +ایک اور طریقہ یہ ہے کہ رنگ کے بجائے سائز کا استعمال کریں۔ رنگ نابینا صارفین کے لیے، یہ ایک بہتر آپشن ہو سکتا ہے۔ اپنی بصری نمائندگی کو اس طرح ایڈٹ کریں کہ قیمت میں اضافے کو نقطے کے دائرے کے سائز میں اضافے کے ذریعے دکھایا جائے: + +```r +ggplot(honey, aes(x = priceperlb, y = state)) + + geom_point(aes(size = year),colour = "blue") + + scale_size_continuous(range = c(0.25, 3)) +``` +آپ دیکھ سکتے ہیں کہ نقطوں کا سائز بتدریج بڑھ رہا ہے۔ + +![scatterplot 3](../../../../../translated_images/scatter3.722d21e6f20b3ea2e18339bb9b10d75906126715eb7d5fdc88fe74dcb6d7066a.ur.png) + +کیا یہ صرف طلب اور رسد کا معاملہ ہے؟ موسمیاتی تبدیلی اور کالونی کولیپس جیسے عوامل کی وجہ سے، کیا سال بہ سال خریداری کے لیے کم شہد دستیاب ہے، اور اس وجہ سے قیمت بڑھ رہی ہے؟ + +اس ڈیٹا سیٹ میں کچھ متغیرات کے درمیان تعلق کو دریافت کرنے کے لیے، آئیے کچھ لائن چارٹس کا جائزہ لیں۔ + +## لائن چارٹس + +سوال: کیا شہد کی فی پاؤنڈ قیمت میں سال بہ سال واضح اضافہ ہوا ہے؟ آپ یہ سب سے آسانی سے ایک سنگل لائن چارٹ بنا کر دریافت کر سکتے ہیں: + +```r +qplot(honey$year,honey$priceperlb, geom='smooth', span =0.5, xlab = "year",ylab = "priceperlb") +``` +جواب: ہاں، کچھ استثناء کے ساتھ، خاص طور پر 2003 کے آس پاس: + +![line chart 1](../../../../../translated_images/line1.299b576fbb2a59e60a59e7130030f59836891f90302be084e4e8d14da0562e2a.ur.png) + +سوال: ٹھیک ہے، کیا 2003 میں ہم شہد کی فراہمی میں بھی کوئی اضافہ دیکھ سکتے ہیں؟ اگر آپ کل پیداوار کو سال بہ سال دیکھیں تو کیا ہوگا؟ + +```python +qplot(honey$year,honey$totalprod, geom='smooth', span =0.5, xlab = "year",ylab = "totalprod") +``` + +![line chart 2](../../../../../translated_images/line2.3b18fcda7176ceba5b6689eaaabb817d49c965e986f11cac1ae3f424030c34d8.ur.png) + +جواب: واقعی نہیں۔ اگر آپ کل پیداوار کو دیکھیں، تو ایسا لگتا ہے کہ اس خاص سال میں یہ درحقیقت بڑھ گئی ہے، حالانکہ عمومی طور پر ان سالوں کے دوران شہد کی پیداوار میں کمی ہو رہی ہے۔ + +سوال: اس صورت میں، 2003 کے آس پاس شہد کی قیمت میں اضافے کی وجہ کیا ہو سکتی ہے؟ + +یہ دریافت کرنے کے لیے، آپ ایک فیسٹ گرڈ کا جائزہ لے سکتے ہیں۔ + +## فیسٹ گرڈز + +فیسٹ گرڈز آپ کے ڈیٹا سیٹ کے ایک پہلو کو لیتے ہیں (ہمارے معاملے میں، آپ 'سال' کو منتخب کر سکتے ہیں تاکہ بہت زیادہ فیسٹس پیدا نہ ہوں)۔ Seaborn پھر آپ کے منتخب کردہ x اور y کوآرڈینیٹس کے لیے ہر فیسٹ کا ایک پلاٹ بنا سکتا ہے تاکہ آسان بصری موازنہ کیا جا سکے۔ کیا 2003 اس قسم کے موازنہ میں نمایاں نظر آتا ہے؟ + +`facet_wrap` کا استعمال کرتے ہوئے ایک فیسٹ گرڈ بنائیں جیسا کہ [ggplot2 کی دستاویزات](https://ggplot2.tidyverse.org/reference/facet_wrap.html) میں تجویز کیا گیا ہے۔ + +```r +ggplot(honey, aes(x=yieldpercol, y = numcol,group = 1)) + + geom_line() + facet_wrap(vars(year)) +``` +اس بصری نمائندگی میں، آپ فی کالونی پیداوار اور کالونیوں کی تعداد کو سال بہ سال، ریاست بہ ریاست، 3 کالمز کے ساتھ موازنہ کر سکتے ہیں: + +![facet grid](../../../../../translated_images/facet.491ad90d61c2a7cc69b50c929f80786c749e38217ccedbf1e22ed8909b65987c.ur.png) + +اس ڈیٹا سیٹ کے لیے، کالونیوں کی تعداد اور ان کی پیداوار کے لحاظ سے سال بہ سال اور ریاست بہ ریاست کچھ خاص نمایاں نہیں ہوتا۔ کیا ان دو متغیرات کے درمیان تعلق تلاش کرنے کے لیے دیکھنے کا کوئی مختلف طریقہ ہے؟ + +## دوہری لائن پلاٹس + +دو لائن پلاٹس کو ایک دوسرے کے اوپر سپر امپوز کرکے ایک ملٹی لائن پلاٹ آزمائیں، R کے `par` اور `plot` فنکشن کا استعمال کرتے ہوئے۔ ہم x محور پر سال کو پلاٹ کریں گے اور دو y محور دکھائیں گے۔ تو، فی کالونی پیداوار اور کالونیوں کی تعداد کو سپر امپوز کریں: + +```r +par(mar = c(5, 4, 4, 4) + 0.3) +plot(honey$year, honey$numcol, pch = 16, col = 2,type="l") +par(new = TRUE) +plot(honey$year, honey$yieldpercol, pch = 17, col = 3, + axes = FALSE, xlab = "", ylab = "",type="l") +axis(side = 4, at = pretty(range(y2))) +mtext("colony yield", side = 4, line = 3) +``` +![superimposed plots](../../../../../translated_images/dual-line.fc4665f360a54018d7df9bc6abcc26460112e17dcbda18d3b9ae6109b32b36c3.ur.png) + +جبکہ 2003 کے آس پاس کچھ خاص نظر نہیں آتا، یہ ہمیں سبق کو ایک خوشگوار نوٹ پر ختم کرنے کی اجازت دیتا ہے: اگرچہ مجموعی طور پر کالونیوں کی تعداد میں کمی ہو رہی ہے، کالونیوں کی تعداد مستحکم ہو رہی ہے، چاہے ان کی فی کالونی پیداوار کم ہو رہی ہو۔ + +جاؤ، شہد کی مکھیوں، جاؤ! + +🐝❤️ +## 🚀 چیلنج + +اس سبق میں، آپ نے اسکیٹر پلاٹس اور لائن گرڈز کے دیگر استعمالات کے بارے میں مزید سیکھا، بشمول فیسٹ گرڈز۔ اپنے آپ کو چیلنج کریں کہ کسی مختلف ڈیٹا سیٹ کا استعمال کرتے ہوئے ایک فیسٹ گرڈ بنائیں، شاید وہی جو آپ نے ان اسباق سے پہلے استعمال کیا ہو۔ نوٹ کریں کہ انہیں بنانے میں کتنا وقت لگتا ہے اور ان تکنیکوں کا استعمال کرتے ہوئے کتنے گرڈز بنانے کی ضرورت ہے۔ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/23) + +## جائزہ اور خود مطالعہ + +لائن پلاٹس سادہ یا کافی پیچیدہ ہو سکتے ہیں۔ [ggplot2 کی دستاویزات](https://ggplot2.tidyverse.org/reference/geom_path.html#:~:text=geom_line()%20connects%20them%20in,which%20cases%20are%20connected%20together) میں تھوڑا سا مطالعہ کریں کہ آپ انہیں مختلف طریقوں سے کیسے بنا سکتے ہیں۔ ان لائن چارٹس کو بہتر بنانے کی کوشش کریں جو آپ نے اس سبق میں بنائے ہیں، دستاویزات میں درج دیگر طریقوں کے ساتھ۔ + +## اسائنمنٹ + +[شہد کے چھتے میں غوطہ لگائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/R/13-meaningful-vizualizations/README.md b/translations/ur/3-Data-Visualization/R/13-meaningful-vizualizations/README.md new file mode 100644 index 00000000..2b65ef49 --- /dev/null +++ b/translations/ur/3-Data-Visualization/R/13-meaningful-vizualizations/README.md @@ -0,0 +1,182 @@ + +# بامعنی بصری نمائیاں بنانا + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../../sketchnotes/13-MeaningfulViz.png)| +|:---:| +| بامعنی بصری نمائیاں - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +> "اگر آپ ڈیٹا کو کافی دیر تک اذیت دیں، تو یہ کچھ بھی تسلیم کر لے گا" -- [رونالڈ کوز](https://en.wikiquote.org/wiki/Ronald_Coase) + +ڈیٹا سائنسدان کی بنیادی مہارتوں میں سے ایک یہ ہے کہ وہ ایک بامعنی بصری نمائیاں تخلیق کرے جو آپ کے سوالات کے جوابات دینے میں مدد کرے۔ ڈیٹا کو بصری بنانے سے پہلے، یہ یقینی بنانا ضروری ہے کہ اسے صاف اور تیار کیا گیا ہو، جیسا کہ آپ نے پچھلے اسباق میں کیا۔ اس کے بعد، آپ یہ فیصلہ کر سکتے ہیں کہ ڈیٹا کو بہترین طریقے سے کیسے پیش کیا جائے۔ + +اس سبق میں، آپ درج ذیل کا جائزہ لیں گے: + +1. صحیح چارٹ قسم کا انتخاب کیسے کریں +2. دھوکہ دہی سے بچنے والے چارٹ کیسے بنائیں +3. رنگوں کے ساتھ کام کیسے کریں +4. اپنے چارٹس کو پڑھنے کے قابل بنانے کے لیے اسٹائل کیسے کریں +5. متحرک یا 3D چارٹ حل کیسے بنائیں +6. تخلیقی بصری نمائیاں کیسے بنائیں + +## [سبق سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/24) + +## صحیح چارٹ قسم کا انتخاب کریں + +پچھلے اسباق میں، آپ نے Matplotlib اور Seaborn کا استعمال کرتے ہوئے مختلف دلچسپ بصری نمائیاں بنانے کا تجربہ کیا۔ عمومی طور پر، آپ اس جدول کا استعمال کرتے ہوئے [صحیح قسم کا چارٹ](https://chartio.com/learn/charts/how-to-select-a-data-vizualization/) منتخب کر سکتے ہیں: + +| آپ کو یہ کرنا ہے: | آپ کو یہ استعمال کرنا چاہیے: | +| -------------------------- | ----------------------------------- | +| وقت کے ساتھ ڈیٹا کے رجحانات دکھائیں | لائن | +| زمروں کا موازنہ کریں | بار، پائی | +| کل کا موازنہ کریں | پائی، اسٹیکڈ بار | +| تعلقات دکھائیں | اسکیٹر، لائن، فیسٹ، ڈوئل لائن | +| تقسیمات دکھائیں | اسکیٹر، ہسٹوگرام، باکس | +| تناسب دکھائیں | پائی، ڈونٹ، وافل | + +> ✅ آپ کے ڈیٹا کی ساخت کے مطابق، آپ کو اسے ٹیکسٹ سے عددی میں تبدیل کرنے کی ضرورت ہو سکتی ہے تاکہ ایک مخصوص چارٹ اس کی حمایت کرے۔ + +## دھوکہ دہی سے بچیں + +چاہے ایک ڈیٹا سائنسدان صحیح ڈیٹا کے لیے صحیح چارٹ منتخب کرنے میں محتاط ہو، پھر بھی ڈیٹا کو اس طرح پیش کرنے کے کئی طریقے ہیں جو کسی نکتے کو ثابت کرنے کے لیے استعمال کیے جا سکتے ہیں، اکثر ڈیٹا کی سالمیت کو نقصان پہنچا کر۔ دھوکہ دہی والے چارٹس اور انفراگرافکس کی کئی مثالیں موجود ہیں! + +[![البرٹو کائرو کی "How Charts Lie"](../../../../../translated_images/tornado.2880ffc7f135f82b5e5328624799010abefd1080ae4b7ecacbdc7d792f1d8849.ur.png)](https://www.youtube.com/watch?v=oX74Nge8Wkw "How charts lie") + +> 🎥 دھوکہ دہی والے چارٹس کے بارے میں ایک کانفرنس ٹاک کے لیے اوپر دی گئی تصویر پر کلک کریں + +یہ چارٹ X محور کو الٹا کر کے تاریخ کی بنیاد پر حقیقت کے برعکس دکھاتا ہے: + +![خراب چارٹ 1](../../../../../translated_images/bad-chart-1.596bc93425a8ac301a28b8361f59a970276e7b961658ce849886aa1fed427341.ur.png) + +[یہ چارٹ](https://media.firstcoastnews.com/assets/WTLV/images/170ae16f-4643-438f-b689-50d66ca6a8d8/170ae16f-4643-438f-b689-50d66ca6a8d8_1140x641.jpg) اور بھی زیادہ دھوکہ دہی والا ہے، کیونکہ آنکھ دائیں طرف کھینچی جاتی ہے تاکہ یہ نتیجہ اخذ کیا جا سکے کہ وقت کے ساتھ، مختلف کاؤنٹیز میں COVID کیسز کم ہو گئے ہیں۔ درحقیقت، اگر آپ تاریخوں کو قریب سے دیکھیں تو آپ کو پتہ چلے گا کہ انہیں اس دھوکہ دہی والے نیچے کے رجحان کو ظاہر کرنے کے لیے دوبارہ ترتیب دیا گیا ہے۔ + +![خراب چارٹ 2](../../../../../translated_images/bad-chart-2.62edf4d2f30f4e519f5ef50c07ce686e27b0196a364febf9a4d98eecd21f9f60.ur.jpg) + +یہ بدنام زمانہ مثال رنگ اور الٹے Y محور کا استعمال کرتی ہے تاکہ دھوکہ دیا جا سکے: بندوق کے حامی قانون سازی کے نفاذ کے بعد بندوق سے ہونے والی اموات میں اضافے کے بجائے، آنکھ کو دھوکہ دیا جاتا ہے کہ اس کے برعکس سچ ہے: + +![خراب چارٹ 3](../../../../../translated_images/bad-chart-3.e201e2e915a230bc2cde289110604ec9abeb89be510bd82665bebc1228258972.ur.jpg) + +یہ عجیب چارٹ تناسب کو مزاحیہ انداز میں جوڑ توڑ کر دکھاتا ہے: + +![خراب چارٹ 4](../../../../../translated_images/bad-chart-4.8872b2b881ffa96c3e0db10eb6aed7793efae2cac382c53932794260f7bfff07.ur.jpg) + +ناقابل موازنہ چیزوں کا موازنہ کرنا ایک اور مشکوک چال ہے۔ ایک [شاندار ویب سائٹ](https://tylervigen.com/spurious-correlations) 'غلط تعلقات' کے بارے میں ہے جو 'حقائق' کو ظاہر کرتی ہے جیسے مین میں طلاق کی شرح اور مارجرین کے استعمال کے درمیان تعلق۔ ایک Reddit گروپ بھی ڈیٹا کے [بدصورت استعمالات](https://www.reddit.com/r/dataisugly/top/?t=all) کو جمع کرتا ہے۔ + +یہ سمجھنا ضروری ہے کہ دھوکہ دہی والے چارٹس کے ذریعے آنکھ کو کتنی آسانی سے دھوکہ دیا جا سکتا ہے۔ یہاں تک کہ اگر ڈیٹا سائنسدان کا ارادہ اچھا ہو، تو ایک خراب قسم کے چارٹ کا انتخاب، جیسے کہ بہت زیادہ زمروں کو دکھانے والا پائی چارٹ، دھوکہ دہی کا باعث بن سکتا ہے۔ + +## رنگ + +آپ نے اوپر 'فلوریڈا گن وائلنس' چارٹ میں دیکھا کہ رنگ چارٹس میں ایک اضافی معنی کی تہہ فراہم کر سکتے ہیں، خاص طور پر وہ جو ggplot2 اور RColorBrewer جیسی لائبریریوں کا استعمال کیے بغیر بنائے گئے ہوں، جو مختلف تصدیق شدہ رنگ لائبریریاں اور پیلیٹس فراہم کرتے ہیں۔ اگر آپ ہاتھ سے چارٹ بنا رہے ہیں، تو [رنگ کے اصول](https://colormatters.com/color-and-design/basic-color-theory) کا تھوڑا مطالعہ کریں۔ + +> ✅ چارٹس ڈیزائن کرتے وقت، یہ یاد رکھیں کہ رسائی بصری نمائیاں کا ایک اہم پہلو ہے۔ آپ کے کچھ صارفین رنگوں کے اندھے ہو سکتے ہیں - کیا آپ کا چارٹ بصری معذوری والے صارفین کے لیے اچھی طرح سے ظاہر ہوتا ہے؟ + +اپنے چارٹ کے لیے رنگ منتخب کرتے وقت محتاط رہیں، کیونکہ رنگ وہ معنی دے سکتے ہیں جو آپ نہیں دینا چاہتے۔ اوپر 'اونچائی' چارٹ میں 'گلابی خواتین' ایک واضح 'نسوانی' معنی دیتی ہیں جو چارٹ کی عجیب و غریب نوعیت میں اضافہ کرتی ہیں۔ + +جبکہ [رنگ کے معنی](https://colormatters.com/color-symbolism/the-meanings-of-colors) دنیا کے مختلف حصوں میں مختلف ہو سکتے ہیں، اور ان کے شیڈ کے مطابق ان کے معنی بدل سکتے ہیں۔ عمومی طور پر، رنگ کے معنی درج ذیل ہیں: + +| رنگ | معنی | +| ------ | ------------------- | +| سرخ | طاقت | +| نیلا | اعتماد، وفاداری | +| پیلا | خوشی، احتیاط | +| سبز | ماحولیات، قسمت، حسد | +| جامنی | خوشی | +| نارنجی | توانائی | + +اگر آپ کو کسٹم رنگوں کے ساتھ چارٹ بنانے کا کام سونپا گیا ہے، تو یقینی بنائیں کہ آپ کے چارٹس قابل رسائی ہوں اور آپ کے منتخب کردہ رنگ اس معنی سے ہم آہنگ ہوں جو آپ دینا چاہتے ہیں۔ + +## اپنے چارٹس کو پڑھنے کے قابل بنانے کے لیے اسٹائل کریں + +چارٹس بامعنی نہیں ہوتے اگر وہ پڑھنے کے قابل نہ ہوں! اپنے چارٹ کی چوڑائی اور اونچائی کو اپنے ڈیٹا کے ساتھ اچھی طرح سے پیمانہ کرنے کے لیے اسٹائل کرنے پر غور کریں۔ اگر ایک متغیر (جیسے تمام 50 ریاستیں) کو ظاہر کرنے کی ضرورت ہو، تو انہیں Y محور پر عمودی طور پر دکھائیں تاکہ افقی طور پر سکرول کرنے والے چارٹ سے بچا جا سکے۔ + +اپنے محور کو لیبل کریں، اگر ضروری ہو تو ایک لیجنڈ فراہم کریں، اور ڈیٹا کی بہتر تفہیم کے لیے ٹول ٹپس پیش کریں۔ + +اگر آپ کا ڈیٹا X محور پر متنی اور تفصیلی ہے، تو بہتر پڑھنے کے لیے متن کو زاویہ دے سکتے ہیں۔ [plot3D](https://cran.r-project.org/web/packages/plot3D/index.html) 3D پلاٹنگ پیش کرتا ہے، اگر آپ کا ڈیٹا اس کی حمایت کرتا ہو۔ اس کا استعمال کرتے ہوئے نفیس بصری نمائیاں تیار کی جا سکتی ہیں۔ + +![3D پلاٹس](../../../../../translated_images/3d.db1734c151eee87d924989306a00e23f8cddac6a0aab122852ece220e9448def.ur.png) + +## متحرک اور 3D چارٹ ڈسپلے + +آج کل کی بہترین بصری نمائیاں متحرک ہوتی ہیں۔ Shirley Wu نے D3 کے ساتھ حیرت انگیز نمائیاں بنائی ہیں، جیسے '[فلم کے پھول](http://bl.ocks.org/sxywu/raw/d612c6c653fb8b4d7ff3d422be164a5d/)'، جہاں ہر پھول ایک فلم کی نمائندگی کرتا ہے۔ Guardian کے لیے ایک اور مثال 'بَسڈ آؤٹ' ہے، جو بصری نمائیاں، Greensock اور D3 کے ساتھ ایک انٹرایکٹو تجربہ ہے، اور ایک اسکرولی ٹیلنگ آرٹیکل فارمیٹ کے ساتھ دکھاتا ہے کہ NYC اپنے بے گھر افراد کو شہر سے باہر بھیج کر کیسے سنبھالتا ہے۔ + +![بَسڈ آؤٹ](../../../../../translated_images/busing.8157cf1bc89a3f65052d362a78c72f964982ceb9dcacbe44480e35909c3dce62.ur.png) + +> "بَسڈ آؤٹ: امریکہ اپنے بے گھر افراد کو کیسے منتقل کرتا ہے" [دی گارڈین](https://www.theguardian.com/us-news/ng-interactive/2017/dec/20/bussed-out-america-moves-homeless-people-country-study) سے۔ بصری نمائیاں: Nadieh Bremer & Shirley Wu + +اگرچہ یہ سبق ان طاقتور بصری نمائیاں لائبریریوں کو گہرائی میں سکھانے کے لیے ناکافی ہے، D3 کو Vue.js ایپ میں استعمال کرنے کی کوشش کریں تاکہ کتاب "Dangerous Liaisons" کو ایک متحرک سوشل نیٹ ورک کے طور پر دکھایا جا سکے۔ + +> "Les Liaisons Dangereuses" ایک خطی ناول ہے، یا ایک ناول جو خطوط کی ایک سیریز کے طور پر پیش کیا گیا ہے۔ یہ 1782 میں Choderlos de Laclos کے ذریعے لکھا گیا تھا اور 18ویں صدی کے آخر میں فرانسیسی اشرافیہ کے دو مرکزی کرداروں، Vicomte de Valmont اور Marquise de Merteuil، کی اخلاقی طور پر دیوالیہ سماجی چالوں کی کہانی بیان کرتا ہے۔ دونوں آخر میں اپنی تباہی کا سامنا کرتے ہیں لیکن اس سے پہلے کافی سماجی نقصان پہنچاتے ہیں۔ ناول خطوط کی ایک سیریز کے طور پر کھلتا ہے جو مختلف لوگوں کو لکھے گئے ہیں، انتقام کی منصوبہ بندی کرنے یا محض مسائل پیدا کرنے کے لیے۔ ان خطوط کی ایک نمائیاں بنائیں تاکہ بیانیہ کے بڑے کرداروں کو بصری طور پر دریافت کیا جا سکے۔ + +آپ ایک ویب ایپ مکمل کریں گے جو اس سوشل نیٹ ورک کا متحرک منظر دکھائے گی۔ یہ ایک لائبریری کا استعمال کرتی ہے جو Vue.js اور D3 کا استعمال کرتے ہوئے ایک [نیٹ ورک کی نمائیاں](https://github.com/emiliorizzo/vue-d3-network) بنانے کے لیے تیار کی گئی تھی۔ جب ایپ چل رہی ہو، تو آپ اسکرین پر نوڈز کو گھسیٹ کر ڈیٹا کو ادھر ادھر کر سکتے ہیں۔ + +![liaisons](../../../../../translated_images/liaisons.90ce7360bcf8476558f700bbbaf198ad697d5b5cb2829ba141a89c0add7c6ecd.ur.png) + +## پروجیکٹ: D3.js کا استعمال کرتے ہوئے نیٹ ورک دکھانے کے لیے ایک چارٹ بنائیں + +> اس سبق کے فولڈر میں ایک `solution` فولڈر شامل ہے جہاں آپ مکمل شدہ پروجیکٹ کو اپنے حوالہ کے لیے تلاش کر سکتے ہیں۔ + +1. اسٹارٹر فولڈر کی روٹ میں README.md فائل میں دی گئی ہدایات پر عمل کریں۔ اس بات کو یقینی بنائیں کہ آپ کے کمپیوٹر پر NPM اور Node.js چل رہے ہوں اس سے پہلے کہ آپ اپنے پروجیکٹ کی ضروریات کو انسٹال کریں۔ + +2. `starter/src` فولڈر کھولیں۔ آپ کو ایک `assets` فولڈر ملے گا جہاں آپ کو ایک .json فائل ملے گی جس میں ناول کے تمام خطوط، نمبر کے ساتھ، 'to' اور 'from' کے ساتھ تشریح شدہ ہیں۔ + +3. `components/Nodes.vue` میں کوڈ مکمل کریں تاکہ نمائیاں کو فعال کیا جا سکے۔ `createLinks()` نامی میتھڈ تلاش کریں اور درج ذیل نیسٹڈ لوپ شامل کریں۔ + +.json آبجیکٹ کے ذریعے لوپ کریں تاکہ خطوط کے 'to' اور 'from' ڈیٹا کو حاصل کریں اور `links` آبجیکٹ بنائیں تاکہ نمائیاں لائبریری اسے استعمال کر سکے: + +```javascript +//loop through letters + let f = 0; + let t = 0; + for (var i = 0; i < letters.length; i++) { + for (var j = 0; j < characters.length; j++) { + + if (characters[j] == letters[i].from) { + f = j; + } + if (characters[j] == letters[i].to) { + t = j; + } + } + this.links.push({ sid: f, tid: t }); + } + ``` + +اپنی ایپ کو ٹرمینل سے چلائیں (npm run serve) اور نمائیاں کا لطف اٹھائیں! + +## 🚀 چیلنج + +انٹرنیٹ کا دورہ کریں تاکہ دھوکہ دہی والی نمائیاں دریافت کریں۔ مصنف صارف کو کیسے دھوکہ دیتا ہے، اور کیا یہ جان بوجھ کر کیا گیا ہے؟ نمائیاں کو درست کرنے کی کوشش کریں تاکہ وہ صحیح نظر آئیں۔ + +## [سبق کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/25) + +## جائزہ اور خود مطالعہ + +دھوکہ دہی والی ڈیٹا نمائیاں کے بارے میں پڑھنے کے لیے یہ مضامین دیکھیں: + +https://gizmodo.com/how-to-lie-with-data-visualization-1563576606 + +http://ixd.prattsi.org/2017/12/visual-lies-usability-in-deceptive-data-visualizations/ + +تاریخی اثاثوں اور نوادرات کے لیے ان دلچسپ نمائیاں کو دیکھیں: + +https://handbook.pubpub.org/ + +یہ مضمون دیکھیں کہ متحرک تصاویر آپ کی نمائیاں کو کیسے بہتر بنا سکتی ہیں: + +https://medium.com/@EvanSinar/use-animation-to-supercharge-data-visualization-cd905a882ad4 + +## اسائنمنٹ + +[اپنی مرضی کی نمائیاں بنائیں](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/3-Data-Visualization/README.md b/translations/ur/3-Data-Visualization/README.md new file mode 100644 index 00000000..59976a43 --- /dev/null +++ b/translations/ur/3-Data-Visualization/README.md @@ -0,0 +1,42 @@ + +# تصورات + +![ایک شہد کی مکھی لیونڈر کے پھول پر](../../../translated_images/bee.0aa1d91132b12e3a8994b9ca12816d05ce1642010d9b8be37f8d37365ba845cf.ur.jpg) +> تصویر جینا لی کی جانب سے Unsplash پر + +ڈیٹا کو بصری طور پر پیش کرنا ایک ڈیٹا سائنسدان کے سب سے اہم کاموں میں سے ایک ہے۔ تصاویر ہزاروں الفاظ کے برابر ہوتی ہیں، اور ایک تصور آپ کو اپنے ڈیٹا کے مختلف دلچسپ پہلوؤں جیسے کہ اسپائکس، آؤٹ لائرز، گروپنگز، رجحانات، اور مزید کو پہچاننے میں مدد دے سکتا ہے، جو آپ کو یہ سمجھنے میں مدد دیتا ہے کہ آپ کا ڈیٹا کیا کہانی بیان کر رہا ہے۔ + +ان پانچ اسباق میں، آپ قدرت سے حاصل کردہ ڈیٹا کو دریافت کریں گے اور مختلف تکنیکوں کا استعمال کرتے ہوئے دلچسپ اور خوبصورت تصورات بنائیں گے۔ + +| موضوع نمبر | موضوع | منسلک سبق | مصنف | +| :-----------: | :--: | :-----------: | :----: | +| 1. | مقداروں کی بصری پیشکش |
  • [Python](09-visualization-quantities/README.md)
  • [R](../../../3-Data-Visualization/R/09-visualization-quantities)
|
  • [جین لوپر](https://twitter.com/jenlooper)
  • [ودوشی گپتا](https://github.com/Vidushi-Gupta)
  • [جسلین سوندھی](https://github.com/jasleen101010)
| +| 2. | تقسیم کی بصری پیشکش |
  • [Python](10-visualization-distributions/README.md)
  • [R](../../../3-Data-Visualization/R/10-visualization-distributions)
|
  • [جین لوپر](https://twitter.com/jenlooper)
  • [ودوشی گپتا](https://github.com/Vidushi-Gupta)
  • [جسلین سوندھی](https://github.com/jasleen101010)
| +| 3. | تناسب کی بصری پیشکش |
  • [Python](11-visualization-proportions/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [جین لوپر](https://twitter.com/jenlooper)
  • [ودوشی گپتا](https://github.com/Vidushi-Gupta)
  • [جسلین سوندھی](https://github.com/jasleen101010)
| +| 4. | تعلقات کی بصری پیشکش |
  • [Python](12-visualization-relationships/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [جین لوپر](https://twitter.com/jenlooper)
  • [ودوشی گپتا](https://github.com/Vidushi-Gupta)
  • [جسلین سوندھی](https://github.com/jasleen101010)
| +| 5. | بامعنی تصورات بنانا |
  • [Python](13-meaningful-visualizations/README.md)
  • [R](../../../3-Data-Visualization)
|
  • [جین لوپر](https://twitter.com/jenlooper)
  • [ودوشی گپتا](https://github.com/Vidushi-Gupta)
  • [جسلین سوندھی](https://github.com/jasleen101010)
| + +### کریڈٹس + +یہ تصوراتی اسباق 🌸 کے ساتھ [جین لوپر](https://twitter.com/jenlooper)، [جسلین سوندھی](https://github.com/jasleen101010) اور [ودوشی گپتا](https://github.com/Vidushi-Gupta) نے لکھے ہیں۔ + +🍯 امریکی شہد کی پیداوار کے ڈیٹا کا ماخذ جیسیکا لی کا پروجیکٹ [Kaggle](https://www.kaggle.com/jessicali9530/honey-production) ہے۔ یہ [ڈیٹا](https://usda.library.cornell.edu/concern/publications/rn301137d) [امریکہ کے محکمہ زراعت](https://www.nass.usda.gov/About_NASS/index.php) سے حاصل کیا گیا ہے۔ + +🍄 مشرومز کے ڈیٹا کا ماخذ بھی [Kaggle](https://www.kaggle.com/hatterasdunton/mushroom-classification-updated-dataset) ہے، جسے ہیٹراس ڈنٹن نے ترمیم کیا۔ اس ڈیٹا سیٹ میں 23 اقسام کے مشرومز کے فرضی نمونوں کی تفصیلات شامل ہیں جو Agaricus اور Lepiota خاندان سے تعلق رکھتے ہیں۔ مشرومز کی تفصیلات The Audubon Society Field Guide to North American Mushrooms (1981) سے لی گئی ہیں۔ یہ ڈیٹا سیٹ 1987 میں UCI ML 27 کو عطیہ کیا گیا تھا۔ + +🦆 منیسوٹا کے پرندوں کا ڈیٹا [Kaggle](https://www.kaggle.com/hannahcollins/minnesota-birds) سے لیا گیا ہے، جو [Wikipedia](https://en.wikipedia.org/wiki/List_of_birds_of_Minnesota) سے ہننا کولنز نے حاصل کیا۔ + +یہ تمام ڈیٹا سیٹس [CC0: Creative Commons](https://creativecommons.org/publicdomain/zero/1.0/) کے تحت لائسنس یافتہ ہیں۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/14-Introduction/README.md b/translations/ur/4-Data-Science-Lifecycle/14-Introduction/README.md new file mode 100644 index 00000000..1ab564bd --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/14-Introduction/README.md @@ -0,0 +1,123 @@ + +# ڈیٹا سائنس کے لائف سائیکل کا تعارف + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/14-DataScience-Lifecycle.png)| +|:---:| +| ڈیٹا سائنس کے لائف سائیکل کا تعارف - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +## [لیکچر سے پہلے کا کوئز](https://red-water-0103e7a0f.azurestaticapps.net/quiz/26) + +اس وقت تک آپ کو شاید یہ احساس ہو گیا ہوگا کہ ڈیٹا سائنس ایک عمل ہے۔ اس عمل کو پانچ مراحل میں تقسیم کیا جا سکتا ہے: + +- ڈیٹا حاصل کرنا +- پروسیسنگ +- تجزیہ +- مواصلات +- دیکھ بھال + +یہ سبق لائف سائیکل کے تین حصوں پر توجہ مرکوز کرتا ہے: ڈیٹا حاصل کرنا، پروسیسنگ، اور دیکھ بھال۔ + +![ڈیٹا سائنس کے لائف سائیکل کا خاکہ](../../../../translated_images/data-science-lifecycle.a1e362637503c4fb0cd5e859d7552edcdb4aa629a279727008baa121f2d33f32.ur.jpg) +> تصویر بشکریہ [برکلے اسکول آف انفارمیشن](https://ischoolonline.berkeley.edu/data-science/what-is-data-science/) + +## ڈیٹا حاصل کرنا + +لائف سائیکل کا پہلا مرحلہ بہت اہم ہے کیونکہ اگلے مراحل اس پر منحصر ہیں۔ یہ عملی طور پر دو مراحل کو ایک میں جوڑتا ہے: ڈیٹا حاصل کرنا اور ان مقاصد اور مسائل کی وضاحت کرنا جنہیں حل کرنے کی ضرورت ہے۔ +پروجیکٹ کے مقاصد کی وضاحت کے لیے مسئلے یا سوال کے گہرے سیاق و سباق کی ضرورت ہوگی۔ سب سے پہلے، ہمیں ان لوگوں کی شناخت اور حصول کرنا ہوگا جنہیں ان کے مسائل کا حل چاہیے۔ یہ کاروبار کے اسٹیک ہولڈرز یا پروجیکٹ کے اسپانسرز ہو سکتے ہیں، جو یہ شناخت کرنے میں مدد کر سکتے ہیں کہ اس پروجیکٹ سے کون یا کیا فائدہ اٹھائے گا اور کیوں۔ ایک اچھی طرح سے بیان کردہ مقصد کو قابل پیمائش اور مقداری ہونا چاہیے تاکہ ایک قابل قبول نتیجہ کی وضاحت کی جا سکے۔ + +ڈیٹا سائنسدان درج ذیل سوالات پوچھ سکتے ہیں: +- کیا اس مسئلے پر پہلے کام کیا گیا ہے؟ کیا دریافت ہوا؟ +- کیا مقصد اور ہدف سب کے لیے واضح ہیں؟ +- کیا کوئی ابہام ہے اور اسے کیسے کم کیا جا سکتا ہے؟ +- کیا حدود ہیں؟ +- ممکنہ طور پر حتمی نتیجہ کیسا ہوگا؟ +- کتنے وسائل (وقت، افراد، کمپیوٹیشنل) دستیاب ہیں؟ + +اگلا مرحلہ ان ڈیٹا کی شناخت، جمع کرنا، اور پھر ان کا جائزہ لینا ہے جو ان مقاصد کو حاصل کرنے کے لیے ضروری ہیں۔ اس مرحلے پر، ڈیٹا سائنسدانوں کو ڈیٹا کی مقدار اور معیار کا بھی جائزہ لینا ہوگا۔ اس کے لیے کچھ ڈیٹا کی تلاش کی ضرورت ہوگی تاکہ یہ تصدیق کی جا سکے کہ جو کچھ حاصل کیا گیا ہے وہ مطلوبہ نتیجہ تک پہنچنے میں مدد دے گا۔ + +ڈیٹا سائنسدان درج ذیل سوالات پوچھ سکتے ہیں: +- میرے پاس پہلے سے کون سا ڈیٹا دستیاب ہے؟ +- اس ڈیٹا کا مالک کون ہے؟ +- پرائیویسی کے کیا خدشات ہیں؟ +- کیا میرے پاس اس مسئلے کو حل کرنے کے لیے کافی ڈیٹا ہے؟ +- کیا یہ ڈیٹا اس مسئلے کے لیے قابل قبول معیار کا ہے؟ +- اگر اس ڈیٹا کے ذریعے اضافی معلومات دریافت ہوں تو کیا ہمیں مقاصد کو تبدیل یا دوبارہ بیان کرنے پر غور کرنا چاہیے؟ + +## پروسیسنگ + +لائف سائیکل کا پروسیسنگ مرحلہ ڈیٹا میں پیٹرنز دریافت کرنے اور ماڈلنگ پر مرکوز ہے۔ پروسیسنگ کے مرحلے میں استعمال ہونے والی کچھ تکنیکوں کے لیے شماریاتی طریقے درکار ہوتے ہیں تاکہ پیٹرنز کو دریافت کیا جا سکے۔ عام طور پر، یہ ایک انسان کے لیے بڑے ڈیٹا سیٹ کے ساتھ کرنا ایک تھکا دینے والا کام ہوگا، اور اس عمل کو تیز کرنے کے لیے کمپیوٹرز پر انحصار کیا جائے گا۔ یہ وہ مرحلہ بھی ہے جہاں ڈیٹا سائنس اور مشین لرننگ آپس میں ملتے ہیں۔ جیسا کہ آپ نے پہلے سبق میں سیکھا، مشین لرننگ ڈیٹا کو سمجھنے کے لیے ماڈلز بنانے کا عمل ہے۔ ماڈلز ڈیٹا میں متغیرات کے درمیان تعلقات کی نمائندگی کرتے ہیں جو نتائج کی پیش گوئی کرنے میں مدد کرتے ہیں۔ + +اس مرحلے میں استعمال ہونے والی عام تکنیکیں ML for Beginners کے نصاب میں شامل ہیں۔ مزید جاننے کے لیے لنکس پر عمل کریں: + +- [کلاسیفکیشن](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification): ڈیٹا کو زمرہ جات میں منظم کرنا تاکہ اسے زیادہ مؤثر طریقے سے استعمال کیا جا سکے۔ +- [کلسٹرنگ](https://github.com/microsoft/ML-For-Beginners/tree/main/5-Clustering): ڈیٹا کو ایک جیسے گروپوں میں تقسیم کرنا۔ +- [ریگریشن](https://github.com/microsoft/ML-For-Beginners/tree/main/2-Regression): متغیرات کے درمیان تعلقات کا تعین کرنا تاکہ اقدار کی پیش گوئی یا پیش بینی کی جا سکے۔ + +## دیکھ بھال + +لائف سائیکل کے خاکے میں، آپ نے دیکھا ہوگا کہ دیکھ بھال ڈیٹا حاصل کرنے اور پروسیسنگ کے درمیان موجود ہے۔ دیکھ بھال ایک جاری عمل ہے جس میں پروجیکٹ کے دوران ڈیٹا کا انتظام، ذخیرہ، اور تحفظ شامل ہے، اور اسے پورے پروجیکٹ کے دوران مدنظر رکھا جانا چاہیے۔ + +### ڈیٹا کا ذخیرہ + +ڈیٹا کو کیسے اور کہاں ذخیرہ کیا جائے، اس پر غور کرنے سے اس کے ذخیرہ کرنے کی لاگت اور ڈیٹا تک رسائی کی رفتار پر اثر پڑ سکتا ہے۔ ایسے فیصلے عام طور پر صرف ڈیٹا سائنسدان نہیں کرتے، لیکن وہ ڈیٹا کے ساتھ کام کرنے کے طریقے پر اثر ڈال سکتے ہیں، اس بات پر منحصر ہے کہ ڈیٹا کیسے ذخیرہ کیا گیا ہے۔ + +جدید ڈیٹا اسٹوریج سسٹمز کے کچھ پہلو جو ان انتخابوں کو متاثر کر سکتے ہیں: + +**آن پریمیس بمقابلہ آف پریمیس بمقابلہ پبلک یا پرائیویٹ کلاؤڈ** + +آن پریمیس کا مطلب ہے کہ آپ اپنے آلات پر ڈیٹا کی میزبانی اور انتظام کرتے ہیں، جیسے کہ سرور کے ذریعے جس میں ہارڈ ڈرائیوز پر ڈیٹا ذخیرہ ہوتا ہے، جبکہ آف پریمیس ایسے آلات پر انحصار کرتا ہے جو آپ کے اپنے نہیں ہوتے، جیسے ڈیٹا سینٹر۔ پبلک کلاؤڈ ڈیٹا ذخیرہ کرنے کے لیے ایک مقبول انتخاب ہے جس کے لیے یہ جاننے کی ضرورت نہیں ہوتی کہ ڈیٹا کہاں اور کیسے ذخیرہ کیا گیا ہے۔ پبلک کلاؤڈ ایک مشترکہ بنیادی ڈھانچے پر مبنی ہوتا ہے، جبکہ کچھ تنظیمیں سخت حفاظتی پالیسیوں کی وجہ سے پرائیویٹ کلاؤڈ کا انتخاب کرتی ہیں۔ + +**کولڈ بمقابلہ ہاٹ ڈیٹا** + +جب آپ اپنے ماڈلز کو تربیت دے رہے ہوں، تو آپ کو زیادہ تربیتی ڈیٹا کی ضرورت ہو سکتی ہے۔ اگر آپ اپنے ماڈل سے مطمئن ہیں، تو مزید ڈیٹا ماڈل کے مقصد کو پورا کرنے کے لیے آ سکتا ہے۔ کسی بھی صورت میں، جیسے جیسے ڈیٹا بڑھتا ہے، اس کے ذخیرہ کرنے اور اس تک رسائی کی لاگت میں اضافہ ہوگا۔ شاذ و نادر استعمال ہونے والے ڈیٹا (کولڈ ڈیٹا) کو اکثر استعمال ہونے والے ڈیٹا (ہاٹ ڈیٹا) سے الگ کرنا ایک سستا ذخیرہ کرنے کا آپشن ہو سکتا ہے۔ + +### ڈیٹا کا انتظام + +جب آپ ڈیٹا کے ساتھ کام کرتے ہیں، تو آپ کو معلوم ہو سکتا ہے کہ کچھ ڈیٹا کو صاف کرنے کی ضرورت ہے۔ یہ وہ تکنیکیں ہیں جو [ڈیٹا کی تیاری](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/2-Working-With-Data/08-data-preparation) کے سبق میں شامل ہیں تاکہ درست ماڈلز بنائے جا سکیں۔ جب نیا ڈیٹا آتا ہے، تو اسے بھی انہی ایپلی کیشنز کی ضرورت ہوگی تاکہ معیار میں مستقل مزاجی برقرار رہے۔ کچھ پروجیکٹس میں ڈیٹا کو صاف کرنے، جمع کرنے، اور کمپریس کرنے کے لیے خودکار ٹولز کا استعمال شامل ہوگا۔ Azure Data Factory ان ٹولز کی ایک مثال ہے۔ + +### ڈیٹا کا تحفظ + +ڈیٹا کو محفوظ رکھنے کا ایک اہم مقصد یہ یقینی بنانا ہے کہ جو لوگ اس پر کام کر رہے ہیں وہ اس بات پر قابو رکھتے ہیں کہ کیا جمع کیا جا رہا ہے اور اسے کس سیاق و سباق میں استعمال کیا جا رہا ہے۔ ڈیٹا کو محفوظ رکھنے میں شامل ہے کہ صرف ان لوگوں کو رسائی دی جائے جنہیں اس کی ضرورت ہے، مقامی قوانین اور ضوابط کی پابندی کی جائے، اور اخلاقی معیارات کو برقرار رکھا جائے، جیسا کہ [اخلاقیات کے سبق](https://github.com/microsoft/Data-Science-For-Beginners/tree/main/1-Introduction/02-ethics) میں شامل ہے۔ + +یہاں کچھ اقدامات ہیں جو ایک ٹیم سیکیورٹی کو مدنظر رکھتے ہوئے کر سکتی ہے: +- اس بات کی تصدیق کریں کہ تمام ڈیٹا انکرپٹڈ ہے۔ +- صارفین کو یہ معلومات فراہم کریں کہ ان کے ڈیٹا کو کیسے استعمال کیا جا رہا ہے۔ +- پروجیکٹ چھوڑنے والے افراد سے ڈیٹا تک رسائی ہٹا دیں۔ +- صرف مخصوص پروجیکٹ ممبران کو ڈیٹا میں تبدیلی کرنے کی اجازت دیں۔ + +## 🚀 چیلنج + +ڈیٹا سائنس کے لائف سائیکل کے کئی ورژن موجود ہیں، جہاں ہر مرحلے کے مختلف نام اور تعداد ہو سکتی ہے، لیکن ان میں وہی عمل شامل ہوں گے جو اس سبق میں بیان کیے گئے ہیں۔ + +[ٹیم ڈیٹا سائنس پروسیس لائف سائیکل](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/lifecycle) اور [کراس انڈسٹری اسٹینڈرڈ پروسیس فار ڈیٹا مائننگ](https://www.datascience-pm.com/crisp-dm-2/) کو دریافت کریں۔ ان دونوں میں 3 مماثلتیں اور فرق بتائیں۔ + +|ٹیم ڈیٹا سائنس پروسیس (TDSP)|کراس انڈسٹری اسٹینڈرڈ پروسیس فار ڈیٹا مائننگ (CRISP-DM)| +|--|--| +|![ٹیم ڈیٹا سائنس لائف سائیکل](../../../../translated_images/tdsp-lifecycle2.e19029d598e2e73d5ef8a4b98837d688ec6044fe332c905d4dbb69eb6d5c1d96.ur.png) | ![ڈیٹا سائنس پروسیس الائنس کی تصویر](../../../../translated_images/CRISP-DM.8bad2b4c66e62aa75278009e38e3e99902c73b0a6f63fd605a67c687a536698c.ur.png) | +| تصویر بشکریہ [Microsoft](https://docs.microsoft.comazure/architecture/data-science-process/lifecycle) | تصویر بشکریہ [Data Science Process Alliance](https://www.datascience-pm.com/crisp-dm-2/) | + +## [لیکچر کے بعد کا کوئز](https://red-water-0103e7a0f.azurestaticapps.net/quiz/27) + +## جائزہ اور خود مطالعہ + +ڈیٹا سائنس کے لائف سائیکل کو اپنانے میں متعدد کردار اور کام شامل ہوتے ہیں، جہاں کچھ ہر مرحلے کے مخصوص حصوں پر توجہ مرکوز کرتے ہیں۔ ٹیم ڈیٹا سائنس پروسیس کچھ وسائل فراہم کرتا ہے جو وضاحت کرتے ہیں کہ کسی پروجیکٹ میں کسی کے کردار اور کام کیا ہو سکتے ہیں۔ + +* [ٹیم ڈیٹا سائنس پروسیس کے کردار اور کام](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/roles-tasks) +* [ڈیٹا سائنس کے کام انجام دینا: تلاش، ماڈلنگ، اور تعیناتی](https://docs.microsoft.com/en-us/azure/architecture/data-science-process/execute-data-science-tasks) + +## اسائنمنٹ + +[ڈیٹا سیٹ کا جائزہ لینا](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/14-Introduction/assignment.md b/translations/ur/4-Data-Science-Lifecycle/14-Introduction/assignment.md new file mode 100644 index 00000000..9cb725d4 --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/14-Introduction/assignment.md @@ -0,0 +1,37 @@ + +# ڈیٹا سیٹ کا جائزہ لینا + +ایک کلائنٹ نے آپ کی ٹیم سے نیویارک سٹی میں ٹیکسی کے صارفین کے موسمی خرچ کرنے کی عادات کی تحقیق میں مدد مانگی ہے۔ + +وہ جاننا چاہتے ہیں: **کیا نیویارک سٹی میں پیلے ٹیکسی کے مسافر سردیوں میں ڈرائیورز کو زیادہ ٹپ دیتے ہیں یا گرمیوں میں؟** + +آپ کی ٹیم ڈیٹا سائنس لائف سائیکل کے [Capturing](Readme.md#Capturing) مرحلے میں ہے اور آپ کو ڈیٹا سیٹ کو سنبھالنے کی ذمہ داری دی گئی ہے۔ آپ کو ایک نوٹ بک اور [ڈیٹا](../../../../data/taxi.csv) فراہم کیا گیا ہے تاکہ آپ اس کا جائزہ لے سکیں۔ + +اس ڈائریکٹری میں ایک [نوٹ بک](notebook.ipynb) موجود ہے جو Python استعمال کرتے ہوئے نیویارک سٹی ٹیکسی اینڈ لیموزین کمیشن کے [پیلے ٹیکسی کے سفر کے ڈیٹا](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets) کو لوڈ کرتی ہے۔ +آپ ٹیکسی ڈیٹا فائل کو ٹیکسٹ ایڈیٹر یا اسپریڈشیٹ سافٹ ویئر جیسے Excel میں بھی کھول سکتے ہیں۔ + +## ہدایات + +- جائزہ لیں کہ آیا اس ڈیٹا سیٹ میں موجود ڈیٹا کلائنٹ کے سوال کا جواب دینے میں مددگار ثابت ہو سکتا ہے یا نہیں۔ +- [NYC Open Data catalog](https://data.cityofnewyork.us/browse?sortBy=most_accessed&utf8=%E2%9C%93) کو دریافت کریں۔ ایک اضافی ڈیٹا سیٹ کی نشاندہی کریں جو کلائنٹ کے سوال کا جواب دینے میں مددگار ہو سکتا ہے۔ +- کلائنٹ سے مزید وضاحت اور مسئلے کو بہتر طور پر سمجھنے کے لیے 3 سوالات لکھیں۔ + +ڈیٹا کے بارے میں مزید معلومات کے لیے [ڈیٹا سیٹ کی ڈکشنری](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) اور [یوزر گائیڈ](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) کا حوالہ دیں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی مقامی زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/15-analyzing/README.md b/translations/ur/4-Data-Science-Lifecycle/15-analyzing/README.md new file mode 100644 index 00000000..4a2c74cf --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/15-analyzing/README.md @@ -0,0 +1,60 @@ + +# ڈیٹا سائنس لائف سائیکل: تجزیہ + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/15-Analyzing.png)| +|:---:| +| ڈیٹا سائنس لائف سائیکل: تجزیہ - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +## لیکچر سے پہلے کا کوئز + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/28) + +ڈیٹا لائف سائیکل میں تجزیہ اس بات کی تصدیق کرتا ہے کہ آیا ڈیٹا ان سوالات کے جوابات دے سکتا ہے جو پیش کیے گئے ہیں یا کسی خاص مسئلے کو حل کر سکتا ہے۔ یہ مرحلہ اس بات کی تصدیق پر بھی توجہ مرکوز کر سکتا ہے کہ آیا کوئی ماڈل ان سوالات اور مسائل کو صحیح طریقے سے حل کر رہا ہے۔ یہ سبق Exploratory Data Analysis یا EDA پر مرکوز ہے، جو ڈیٹا میں خصوصیات اور تعلقات کی وضاحت کرنے کی تکنیک ہیں اور ماڈلنگ کے لیے ڈیٹا تیار کرنے میں استعمال ہو سکتی ہیں۔ + +ہم [Kaggle](https://www.kaggle.com/balaka18/email-spam-classification-dataset-csv/version/1) سے ایک مثال ڈیٹاسیٹ استعمال کریں گے تاکہ دکھایا جا سکے کہ Python اور Pandas لائبریری کے ساتھ اسے کیسے لاگو کیا جا سکتا ہے۔ یہ ڈیٹاسیٹ ای میلز میں پائے جانے والے کچھ عام الفاظ کی تعداد پر مشتمل ہے، اور ان ای میلز کے ذرائع گمنام ہیں۔ اس ڈائریکٹری میں موجود [notebook](notebook.ipynb) کا استعمال کریں تاکہ اس عمل کو فالو کریں۔ + +## Exploratory Data Analysis + +لائف سائیکل کے کیپچر مرحلے میں ڈیٹا حاصل کیا جاتا ہے اور موجودہ مسائل اور سوالات کو سمجھا جاتا ہے، لیکن ہم کیسے جان سکتے ہیں کہ یہ ڈیٹا مطلوبہ نتائج کی حمایت کر سکتا ہے؟ +یاد کریں کہ ایک ڈیٹا سائنسدان ڈیٹا حاصل کرتے وقت درج ذیل سوالات پوچھ سکتا ہے: +- کیا میرے پاس اس مسئلے کو حل کرنے کے لیے کافی ڈیٹا موجود ہے؟ +- کیا یہ ڈیٹا اس مسئلے کے لیے قابل قبول معیار کا ہے؟ +- اگر میں اس ڈیٹا کے ذریعے اضافی معلومات دریافت کروں تو کیا ہمیں اہداف کو تبدیل یا دوبارہ متعین کرنے پر غور کرنا چاہیے؟ +Exploratory Data Analysis وہ عمل ہے جس کے ذریعے ڈیٹا کو سمجھا جاتا ہے اور ان سوالات کے جوابات دیے جا سکتے ہیں، نیز ڈیٹاسیٹ کے ساتھ کام کرنے کے چیلنجز کی نشاندہی کی جا سکتی ہے۔ آئیے ان تکنیکوں پر توجہ مرکوز کریں جو اس مقصد کے لیے استعمال ہوتی ہیں۔ + +## ڈیٹا پروفائلنگ، وضاحتی شماریات، اور Pandas +ہم کیسے اندازہ لگا سکتے ہیں کہ ہمارے پاس اس مسئلے کو حل کرنے کے لیے کافی ڈیٹا موجود ہے؟ ڈیٹا پروفائلنگ کے ذریعے ہم اپنے ڈیٹاسیٹ کے بارے میں عمومی معلومات حاصل کر سکتے ہیں، اور وضاحتی شماریات کے ذریعے ہم یہ جان سکتے ہیں کہ ہمارے پاس کتنی چیزیں دستیاب ہیں۔ + +پچھلے چند اسباق میں، ہم نے Pandas کا استعمال کرتے ہوئے [`describe()` فنکشن](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html) کے ذریعے وضاحتی شماریات فراہم کی ہیں۔ یہ فنکشن عددی ڈیٹا پر گنتی، زیادہ سے زیادہ اور کم سے کم قدریں، اوسط، معیاری انحراف، اور کوانٹائلز فراہم کرتا ہے۔ `describe()` جیسے وضاحتی شماریات کے فنکشن کا استعمال آپ کو یہ اندازہ لگانے میں مدد دے سکتا ہے کہ آپ کے پاس کتنا ڈیٹا ہے اور آیا آپ کو مزید ڈیٹا کی ضرورت ہے۔ + +## سیمپلنگ اور کوئری کرنا +ایک بڑے ڈیٹاسیٹ میں ہر چیز کا تجزیہ کرنا بہت وقت طلب ہو سکتا ہے اور یہ کام عام طور پر کمپیوٹر پر چھوڑ دیا جاتا ہے۔ تاہم، سیمپلنگ ایک مفید ٹول ہے جو ڈیٹا کو سمجھنے میں مدد دیتا ہے اور ہمیں یہ سمجھنے کا موقع فراہم کرتا ہے کہ ڈیٹاسیٹ میں کیا موجود ہے اور یہ کیا ظاہر کرتا ہے۔ سیمپلنگ کے ذریعے آپ احتمال اور شماریات کا اطلاق کر کے اپنے ڈیٹا کے بارے میں عمومی نتائج اخذ کر سکتے ہیں۔ اگرچہ اس بات کا کوئی مقررہ اصول نہیں ہے کہ آپ کو کتنا ڈیٹا سیمپل کرنا چاہیے، لیکن یہ نوٹ کرنا ضروری ہے کہ جتنا زیادہ ڈیٹا آپ سیمپل کریں گے، اتنی ہی زیادہ درست عمومی تصویر آپ بنا سکیں گے۔ + +Pandas میں [`sample()` فنکشن](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sample.html) موجود ہے، جہاں آپ یہ طے کر سکتے ہیں کہ آپ کتنے بے ترتیب سیمپلز حاصل کرنا چاہتے ہیں۔ + +ڈیٹا کے عمومی سوالات کے ذریعے آپ اپنے کچھ عمومی سوالات اور نظریات کے جوابات حاصل کر سکتے ہیں۔ سیمپلنگ کے برعکس، کوئریز آپ کو کنٹرول فراہم کرتی ہیں اور آپ کو ڈیٹا کے ان مخصوص حصوں پر توجہ مرکوز کرنے دیتی ہیں جن کے بارے میں آپ کے سوالات ہیں۔ Pandas لائبریری میں [`query()` فنکشن](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html) آپ کو کالمز منتخب کرنے اور ڈیٹا کے بارے میں سادہ جوابات حاصل کرنے کی اجازت دیتا ہے۔ + +## ویژولائزیشنز کے ذریعے تجزیہ +آپ کو ڈیٹا کو مکمل طور پر صاف اور تجزیہ کرنے کے بعد ویژولائزیشنز بنانے کا انتظار کرنے کی ضرورت نہیں ہے۔ درحقیقت، تجزیہ کے دوران ویژولائزیشنز بنانا پیٹرنز، تعلقات، اور ڈیٹا میں موجود مسائل کی نشاندہی کرنے میں مدد دے سکتا ہے۔ مزید برآں، ویژولائزیشنز ان لوگوں کے ساتھ بات چیت کا ایک ذریعہ فراہم کرتی ہیں جو ڈیٹا کے انتظام میں شامل نہیں ہیں اور یہ ایک موقع فراہم کرتی ہیں کہ کیپچر مرحلے میں حل نہ کیے گئے اضافی سوالات کو شیئر اور واضح کیا جا سکے۔ ویژولائزیشنز کے بارے میں مزید جاننے کے لیے [ویژولائزیشنز کے سیکشن](../../../../../../../../../3-Data-Visualization) کا حوالہ دیں۔ + +## تضادات کی نشاندہی کے لیے تجزیہ +اس سبق میں شامل تمام موضوعات گمشدہ یا غیر مستقل قدروں کی نشاندہی کرنے میں مدد کر سکتے ہیں، لیکن Pandas کچھ خاص فنکشنز فراہم کرتا ہے جو ان کی جانچ کر سکتے ہیں۔ [isna() یا isnull()](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.isna.html) گمشدہ قدروں کی جانچ کر سکتے ہیں۔ ان قدروں کی تلاش کے دوران یہ سمجھنا ضروری ہے کہ وہ اس حالت میں کیوں پہنچے۔ یہ آپ کو یہ فیصلہ کرنے میں مدد دے سکتا ہے کہ انہیں حل کرنے کے لیے [کیا اقدامات کیے جائیں](/2-Working-With-Data/08-data-preparation/notebook.ipynb)۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/27) + +## اسائنمنٹ + +[جوابات کے لیے تجزیہ](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/15-analyzing/assignment.md b/translations/ur/4-Data-Science-Lifecycle/15-analyzing/assignment.md new file mode 100644 index 00000000..479cf3c3 --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/15-analyzing/assignment.md @@ -0,0 +1,36 @@ + +# جوابات کی تلاش + +یہ پچھلے سبق کے [assignment](../14-Introduction/assignment.md) کا تسلسل ہے، جہاں ہم نے ڈیٹا سیٹ پر مختصر نظر ڈالی تھی۔ اب ہم ڈیٹا کو مزید گہرائی سے دیکھیں گے۔ + +دوبارہ، وہ سوال جو کلائنٹ جاننا چاہتا ہے: **کیا نیویارک سٹی میں پیلے ٹیکسی کے مسافر سردیوں میں یا گرمیوں میں ڈرائیورز کو زیادہ ٹپ دیتے ہیں؟** + +آپ کی ٹیم ڈیٹا سائنس لائف سائیکل کے [Analyzing](README.md) مرحلے میں ہے، جہاں آپ ڈیٹا سیٹ پر ابتدائی تجزیاتی مطالعہ کرنے کے ذمہ دار ہیں۔ آپ کو ایک نوٹ بک اور ڈیٹا سیٹ فراہم کیا گیا ہے جس میں جنوری اور جولائی 2019 کے 200 ٹیکسی ٹرانزیکشنز شامل ہیں۔ + +## ہدایات + +اس ڈائریکٹری میں ایک [notebook](assignment.ipynb) اور [Taxi & Limousine Commission](https://docs.microsoft.com/en-us/azure/open-datasets/dataset-taxi-yellow?tabs=azureml-opendatasets) سے ڈیٹا موجود ہے۔ ڈیٹا کے بارے میں مزید معلومات کے لیے [dataset's dictionary](https://www1.nyc.gov/assets/tlc/downloads/pdf/data_dictionary_trip_records_yellow.pdf) اور [user guide](https://www1.nyc.gov/assets/tlc/downloads/pdf/trip_record_user_guide.pdf) کا حوالہ دیں۔ + +اس سبق میں دی گئی تکنیکوں کا استعمال کرتے ہوئے نوٹ بک میں اپنا EDA کریں (اگر چاہیں تو سیلز شامل کریں) اور درج ذیل سوالات کے جوابات دیں: + +- ڈیٹا میں کون سے دیگر عوامل ٹپ کی مقدار کو متاثر کر سکتے ہیں؟ +- کلائنٹ کے سوالات کے جواب کے لیے کون سے کالمز غالباً ضروری نہیں ہوں گے؟ +- اب تک فراہم کردہ معلومات کی بنیاد پر، کیا ڈیٹا موسمی ٹپنگ کے رویے کا کوئی ثبوت فراہم کرتا ہے؟ + +## معیار + +شاندار | مناسب | بہتری کی ضرورت +--- | --- | --- + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/16-communication/README.md b/translations/ur/4-Data-Science-Lifecycle/16-communication/README.md new file mode 100644 index 00000000..16964e18 --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/16-communication/README.md @@ -0,0 +1,182 @@ + +# ڈیٹا سائنس لائف سائیکل: مواصلات + +|![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev)](../../sketchnotes/16-Communicating.png)| +|:---:| +| ڈیٹا سائنس لائف سائیکل: مواصلات - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/30) + +اوپر دیے گئے لیکچر سے پہلے کے کوئز کے ذریعے اپنی معلومات کو جانچیں! + +# تعارف + +### مواصلات کیا ہے؟ +آئیے اس سبق کا آغاز یہ سمجھنے سے کرتے ہیں کہ مواصلات کا مطلب کیا ہے۔ **مواصلات کا مطلب ہے معلومات کو پہنچانا یا تبادلہ کرنا۔** معلومات خیالات، احساسات، پیغامات، خفیہ اشارے، ڈیٹا – کچھ بھی ہو سکتی ہیں جو ایک **_بھیجنے والا_** (جو معلومات بھیج رہا ہو) چاہتا ہے کہ ایک **_وصول کرنے والا_** (جو معلومات وصول کر رہا ہو) سمجھے۔ اس سبق میں، ہم بھیجنے والوں کو کمیونی کیٹرز اور وصول کرنے والوں کو سامعین کہیں گے۔ + +### ڈیٹا مواصلات اور کہانی سنانا +ہم سمجھتے ہیں کہ مواصلات کا مقصد معلومات کو پہنچانا یا تبادلہ کرنا ہے۔ لیکن جب ڈیٹا کی بات ہو تو آپ کا مقصد صرف نمبروں کو پہنچانا نہیں ہونا چاہیے۔ آپ کا مقصد یہ ہونا چاہیے کہ آپ اپنے ڈیٹا سے متاثر ہو کر ایک کہانی سنائیں – مؤثر ڈیٹا مواصلات اور کہانی سنانا ایک دوسرے کے ساتھ جڑے ہوئے ہیں۔ آپ کے سامعین کو وہ کہانی زیادہ یاد رہے گی جو آپ سناتے ہیں، بجائے اس کے کہ آپ انہیں صرف نمبر دیں۔ اس سبق میں آگے چل کر ہم کچھ طریقے دیکھیں گے جن کے ذریعے آپ کہانی سنانے کو استعمال کر کے اپنے ڈیٹا کو زیادہ مؤثر طریقے سے پہنچا سکتے ہیں۔ + +### مواصلات کی اقسام +اس سبق میں دو مختلف اقسام کے مواصلات پر بات کی جائے گی: یک طرفہ مواصلات اور دو طرفہ مواصلات۔ + +**یک طرفہ مواصلات** اس وقت ہوتا ہے جب ایک بھیجنے والا معلومات کو وصول کرنے والے تک پہنچاتا ہے، بغیر کسی فیڈبیک یا جواب کے۔ ہم روزمرہ کی زندگی میں یک طرفہ مواصلات کی مثالیں دیکھتے ہیں – جیسے بڑے پیمانے پر ای میلز، خبریں جو تازہ ترین کہانیاں پہنچاتی ہیں، یا ٹی وی کے اشتہارات جو آپ کو اپنے پروڈکٹ کی خوبیوں کے بارے میں بتاتے ہیں۔ ان تمام صورتوں میں، بھیجنے والا معلومات کے تبادلے کا خواہاں نہیں ہوتا، بلکہ صرف معلومات پہنچانے کا خواہاں ہوتا ہے۔ + +**دو طرفہ مواصلات** اس وقت ہوتا ہے جب تمام شامل فریقین بھیجنے والے اور وصول کرنے والے دونوں کے طور پر کام کرتے ہیں۔ ایک بھیجنے والا معلومات پہنچانے کا آغاز کرتا ہے، اور وصول کرنے والا فیڈبیک یا جواب دیتا ہے۔ دو طرفہ مواصلات وہ ہے جو ہم عام طور پر مواصلات کے بارے میں سوچتے ہیں۔ ہم عام طور پر لوگوں کو گفتگو میں مشغول دیکھتے ہیں – چاہے وہ آمنے سامنے ہو، فون کال پر، سوشل میڈیا پر، یا ٹیکسٹ میسج کے ذریعے۔ + +جب ڈیٹا کی بات ہو تو ایسے مواقع ہوں گے جہاں آپ یک طرفہ مواصلات استعمال کریں گے (جیسے کسی کانفرنس میں پیش کرنا، یا ایک بڑے گروپ کے سامنے جہاں سوالات فوراً نہیں کیے جائیں گے) اور ایسے مواقع بھی ہوں گے جہاں آپ دو طرفہ مواصلات استعمال کریں گے (جیسے چند اسٹیک ہولڈرز کو قائل کرنا یا کسی ٹیم کے ساتھی کو یہ یقین دلانا کہ کسی نئی چیز پر وقت اور محنت صرف کی جائے)۔ + +# مؤثر مواصلات + +### بطور کمیونی کیٹر آپ کی ذمہ داریاں +جب آپ مواصلات کر رہے ہوں تو یہ آپ کی ذمہ داری ہے کہ آپ کے وصول کنندگان وہ معلومات حاصل کریں جو آپ چاہتے ہیں کہ وہ حاصل کریں۔ جب آپ ڈیٹا پہنچا رہے ہوں تو آپ نہیں چاہتے کہ آپ کے وصول کنندگان صرف نمبر یاد رکھیں، بلکہ آپ چاہتے ہیں کہ وہ ایک کہانی یاد رکھیں جو آپ کے ڈیٹا سے متاثر ہو۔ ایک اچھا ڈیٹا کمیونی کیٹر ایک اچھا کہانی سنانے والا ہوتا ہے۔ + +آپ ڈیٹا کے ساتھ کہانی کیسے سناتے ہیں؟ اس کے لامحدود طریقے ہیں – لیکن نیچے 6 طریقے دیے گئے ہیں جن پر ہم اس سبق میں بات کریں گے: +1. اپنے سامعین، اپنے چینل، اور اپنے مواصلاتی طریقے کو سمجھیں +2. اختتام کو ذہن میں رکھ کر آغاز کریں +3. اسے ایک حقیقی کہانی کی طرح پیش کریں +4. بامعنی الفاظ اور جملے استعمال کریں +5. جذبات کا استعمال کریں + +ان میں سے ہر حکمت عملی کو نیچے تفصیل سے بیان کیا گیا ہے۔ + +### 1. اپنے سامعین، اپنے چینل، اور اپنے مواصلاتی طریقے کو سمجھیں +جس طرح آپ اپنے خاندان کے افراد سے مختلف انداز میں بات کرتے ہیں اور اپنے دوستوں سے مختلف، اسی طرح ڈیٹا پہنچاتے وقت بھی آپ کو اپنے سامعین کے مطابق بات کرنی چاہیے۔ سوچیں کہ آپ کس سے بات کر رہے ہیں۔ ان کے مقاصد اور اس سیاق و سباق کے بارے میں سوچیں جو وہ اس صورتحال کے بارے میں رکھتے ہیں جسے آپ ان کے سامنے بیان کر رہے ہیں۔ + +آپ اپنے سامعین کو عام طور پر ایک زمرے میں گروپ کر سکتے ہیں۔ _ہارورڈ بزنس ریویو_ کے ایک مضمون "[ڈیٹا کے ساتھ کہانی کیسے سنائیں](http://blogs.hbr.org/2013/04/how-to-tell-a-story-with-data/)" میں، ڈیل کے ایگزیکٹو اسٹریٹجسٹ جم اسٹیکلیدر نے سامعین کے پانچ زمرے بیان کیے ہیں: + +- **نوآموز**: پہلی بار موضوع سے واقف ہو رہا ہے، لیکن بہت زیادہ سادہ کاری نہیں چاہتا +- **عام سامعین**: موضوع سے واقف ہے، لیکن ایک جائزہ اور اہم موضوعات چاہتا ہے +- **انتظامی**: پیچیدگیوں اور باہمی تعلقات کی گہرائی سے سمجھ اور تفصیلات تک رسائی چاہتا ہے +- **ماہر**: مزید دریافت اور کم کہانی سنانے کے ساتھ بڑی تفصیلات چاہتا ہے +- **ایگزیکٹو**: صرف اہمیت اور نتائج کو سمجھنے کے لیے وقت رکھتا ہے + +یہ زمرے آپ کے سامعین کے لیے ڈیٹا پیش کرنے کے طریقے کو متاثر کر سکتے ہیں۔ + +اپنے سامعین کے زمرے کے بارے میں سوچنے کے علاوہ، آپ کو یہ بھی غور کرنا چاہیے کہ آپ اپنے سامعین کے ساتھ کس چینل کے ذریعے بات کر رہے ہیں۔ آپ کا انداز مختلف ہونا چاہیے اگر آپ ایک میمو یا ای میل لکھ رہے ہیں، بمقابلہ کسی میٹنگ میں بات کر رہے ہیں یا کانفرنس میں پیش کر رہے ہیں۔ + +اس کے علاوہ، یہ جاننا بھی ضروری ہے کہ آپ یک طرفہ مواصلات استعمال کر رہے ہیں یا دو طرفہ۔ + +اگر آپ زیادہ تر نوآموز سامعین کے ساتھ یک طرفہ مواصلات کر رہے ہیں، تو آپ کو پہلے سامعین کو تعلیم دینی ہوگی اور انہیں مناسب سیاق و سباق دینا ہوگا۔ پھر آپ کو ان کے سامنے اپنا ڈیٹا پیش کرنا ہوگا اور انہیں بتانا ہوگا کہ آپ کے ڈیٹا کا کیا مطلب ہے اور یہ کیوں اہم ہے۔ اس صورت میں، آپ کو وضاحت پر توجہ مرکوز کرنی ہوگی، کیونکہ آپ کے سامعین آپ سے براہ راست سوالات نہیں کر سکیں گے۔ + +اگر آپ زیادہ تر انتظامی سامعین کے ساتھ دو طرفہ مواصلات کر رہے ہیں، تو آپ کو شاید اپنے سامعین کو تعلیم دینے یا انہیں زیادہ سیاق و سباق فراہم کرنے کی ضرورت نہیں ہوگی۔ آپ شاید سیدھے اپنے ڈیٹا پر بات چیت شروع کر سکتے ہیں اور یہ کیوں اہم ہے۔ لیکن اس صورت میں، آپ کو وقت اور اپنی پیشکش کو کنٹرول کرنے پر توجہ مرکوز کرنی ہوگی۔ دو طرفہ مواصلات کے دوران (خاص طور پر انتظامی سامعین کے ساتھ جو "پیچیدگیوں اور باہمی تعلقات کی عملی سمجھ" چاہتے ہیں) سوالات اٹھ سکتے ہیں جو گفتگو کو اس سمت میں لے جا سکتے ہیں جو آپ کی کہانی سے متعلق نہیں ہے۔ جب ایسا ہو، تو آپ کارروائی کر کے گفتگو کو اپنی کہانی پر واپس لا سکتے ہیں۔ + +### 2. اختتام کو ذہن میں رکھ کر آغاز کریں +اختتام کو ذہن میں رکھ کر آغاز کرنے کا مطلب ہے کہ آپ اپنے سامعین کے لیے مطلوبہ نتائج کو سمجھیں اس سے پہلے کہ آپ ان سے بات چیت شروع کریں۔ پہلے سے یہ سوچنا کہ آپ کیا چاہتے ہیں کہ آپ کے سامعین کیا سمجھیں، آپ کو ایک ایسی کہانی بنانے میں مدد دے سکتا ہے جسے آپ کے سامعین آسانی سے سمجھ سکیں۔ + +### 3. اسے ایک حقیقی کہانی کی طرح پیش کریں +ایک روایتی کہانی پانچ مراحل میں ہوتی ہے۔ آپ نے شاید ان مراحل کو اس طرح سنا ہو: تعارف، بڑھتا ہوا عمل، عروج، اختتامیہ، اور نتیجہ۔ جب آپ اپنے ڈیٹا اور کہانی کو پیش کر رہے ہوں، تو آپ اسی طرح کا انداز اپنا سکتے ہیں۔ + +### 4. بامعنی الفاظ اور جملے استعمال کریں +جب آپ ڈیٹا پہنچا رہے ہوں، تو یہ ضروری ہے کہ آپ کے الفاظ واضح ہوں تاکہ آپ کے سامعین آپ کی بات کو صحیح طریقے سے سمجھ سکیں۔ + +### 5. جذبات کا استعمال کریں +کہانی سنانے میں جذبات کلیدی حیثیت رکھتے ہیں۔ جب آپ ڈیٹا کے ساتھ کہانی سناتے ہیں، تو جذبات آپ کے سامعین کو آپ کے پیغام سے جڑنے میں مدد دیتے ہیں۔ + +# مواصلات کا کیس اسٹڈی +ایمرسن ایک موبائل ایپ کے پروڈکٹ مینیجر ہیں۔ ایمرسن نے دیکھا کہ صارفین ہفتے کے آخر میں 42% زیادہ شکایات اور بگ رپورٹس جمع کراتے ہیں۔ ایمرسن نے یہ بھی نوٹ کیا کہ وہ صارفین جن کی شکایات 48 گھنٹوں کے بعد بھی جواب نہیں پاتیں، وہ ایپ کو 1 یا 2 کی ریٹنگ دینے کے 32% زیادہ امکانات رکھتے ہیں۔ + +ایمرسن نے تحقیق کے بعد اس مسئلے کے حل کے لیے دو تجاویز پیش کیں۔ ایمرسن نے کمپنی کے تین لیڈز کے ساتھ 30 منٹ کی میٹنگ ترتیب دی تاکہ ڈیٹا اور تجاویز کو پیش کیا جا سکے۔ + +**تجویز 1.** ہفتے کے آخر میں کام کرنے کے لیے کسٹمر سروس کے نمائندے بھرتی کریں + +**تجویز 2.** ایک نیا کسٹمر سروس ٹکٹنگ سسٹم خریدیں تاکہ نمائندے آسانی سے یہ جان سکیں کہ کون سی شکایات سب سے زیادہ وقت سے قطار میں ہیں – تاکہ وہ انہیں فوری طور پر حل کر سکیں۔ +ایمرسن میٹنگ میں 5 منٹ یہ وضاحت کرنے میں صرف کرتا ہے کہ ایپ اسٹور پر کم ریٹنگ کیوں نقصان دہ ہے، 10 منٹ تحقیق کے عمل اور رجحانات کی نشاندہی کے بارے میں بتانے میں، 10 منٹ حالیہ صارفین کی شکایات پر بات کرنے میں، اور آخری 5 منٹ دو ممکنہ حلوں پر سرسری نظر ڈالنے میں گزارتا ہے۔ + +کیا یہ میٹنگ کے دوران ایمرسن کے لیے مؤثر طریقہ تھا؟ + +میٹنگ کے دوران، ایک کمپنی لیڈ نے ان 10 منٹ پر توجہ مرکوز کی جو ایمرسن نے صارفین کی شکایات پر صرف کیے۔ میٹنگ کے بعد، یہ شکایات وہ واحد چیز تھیں جو اس ٹیم لیڈ کو یاد رہیں۔ ایک اور کمپنی لیڈ نے بنیادی طور پر ایمرسن کے تحقیقاتی عمل کی وضاحت پر توجہ دی۔ تیسرے کمپنی لیڈ کو ایمرسن کے پیش کردہ حل یاد تو رہے، لیکن وہ یہ نہیں سمجھ سکے کہ ان حلوں کو کیسے نافذ کیا جا سکتا ہے۔ + +اوپر دی گئی صورتحال میں، آپ دیکھ سکتے ہیں کہ ایمرسن جو پیغام ٹیم لیڈز کو دینا چاہتا تھا اور جو وہ میٹنگ سے لے کر گئے، ان کے درمیان ایک بڑا فرق تھا۔ نیچے ایک اور طریقہ کار دیا گیا ہے جس پر ایمرسن غور کر سکتا ہے۔ + +ایمرسن اس طریقہ کار کو کیسے بہتر بنا سکتا ہے؟ +سیاق و سباق، تنازعہ، عروج، اختتام، نتیجہ +**سیاق و سباق** - ایمرسن پہلے 5 منٹ پوری صورتحال کا تعارف کرانے اور یہ یقینی بنانے میں صرف کر سکتا ہے کہ ٹیم لیڈز سمجھ سکیں کہ یہ مسائل کمپنی کے اہم میٹرکس، جیسے کہ آمدنی، پر کیسے اثر ڈالتے ہیں۔ + +یہ اس طرح پیش کیا جا سکتا ہے: "فی الحال، ہمارے ایپ کی ریٹنگ ایپ اسٹور میں 2.5 ہے۔ ایپ اسٹور میں ریٹنگ ایپ اسٹور آپٹیمائزیشن کے لیے اہم ہے، جو اس بات پر اثر ڈالتی ہے کہ کتنے صارفین ہماری ایپ کو تلاش میں دیکھتے ہیں، اور ہماری ایپ ممکنہ صارفین کو کیسی نظر آتی ہے۔ اور ظاہر ہے، ہمارے صارفین کی تعداد براہ راست آمدنی سے جڑی ہوئی ہے۔" + +**تنازعہ** اس کے بعد ایمرسن اگلے 5 منٹ یا اس سے زیادہ وقت تنازعہ پر بات کرنے میں صرف کر سکتا ہے۔ + +یہ اس طرح ہو سکتا ہے: "صارفین ہفتے کے آخر میں 42% زیادہ شکایات اور بگ رپورٹس جمع کراتے ہیں۔ وہ صارفین جو شکایت جمع کراتے ہیں اور 48 گھنٹوں کے اندر جواب نہیں پاتے، ان کے ایپ اسٹور میں ہماری ایپ کو 2 سے زیادہ ریٹنگ دینے کے امکانات 32% کم ہو جاتے ہیں۔ ایپ اسٹور میں ہماری ایپ کی ریٹنگ کو 4 تک بہتر بنانا ہماری مرئیت کو 20-30% تک بہتر کرے گا، جس سے میں پیش گوئی کرتا ہوں کہ آمدنی میں 10% اضافہ ہوگا۔" ظاہر ہے، ایمرسن کو ان اعداد و شمار کو ثابت کرنے کے لیے تیار رہنا چاہیے۔ + +**عروج** بنیاد رکھنے کے بعد، ایمرسن پھر 5 یا اس سے زیادہ منٹ کے لیے عروج پر جا سکتا ہے۔ + +ایمرسن تجویز کردہ حل پیش کر سکتا ہے، یہ بتا سکتا ہے کہ یہ حل بیان کردہ مسائل کو کیسے حل کریں گے، یہ حل موجودہ ورک فلو میں کیسے نافذ کیے جا سکتے ہیں، ان حلوں کی لاگت کتنی ہوگی، ان کے ROI کیا ہوں گے، اور شاید ان حلوں کے نفاذ کے بعد ان کے اسکرین شاٹس یا وائر فریمز بھی دکھا سکتا ہے۔ ایمرسن ان صارفین کی تعریفیں بھی شیئر کر سکتا ہے جن کی شکایت کو 48 گھنٹوں سے زیادہ وقت لگا، اور کمپنی کے موجودہ کسٹمر سروس نمائندے کی تعریف بھی شامل کر سکتا ہے جو موجودہ ٹکٹنگ سسٹم پر تبصرہ کرے۔ + +**اختتام** اب ایمرسن 5 منٹ کمپنی کو درپیش مسائل کو دوبارہ بیان کرنے، تجویز کردہ حلوں کا جائزہ لینے، اور یہ بتانے میں صرف کر سکتا ہے کہ یہ حل کیوں درست ہیں۔ + +**نتیجہ** چونکہ یہ چند اسٹیک ہولڈرز کے ساتھ ایک میٹنگ ہے جہاں دو طرفہ بات چیت ہوگی، ایمرسن پھر 10 منٹ سوالات کے لیے چھوڑ سکتا ہے، تاکہ یہ یقینی بنایا جا سکے کہ میٹنگ ختم ہونے سے پہلے ٹیم لیڈز کے لیے کوئی بھی الجھن واضح ہو جائے۔ + +اگر ایمرسن دوسرا طریقہ اپنائے، تو یہ زیادہ ممکن ہے کہ ٹیم لیڈز میٹنگ سے وہی بات لے کر جائیں جو ایمرسن چاہتا تھا – کہ شکایات اور بگز کو ہینڈل کرنے کے طریقے کو بہتر بنایا جا سکتا ہے، اور اس بہتری کو ممکن بنانے کے لیے 2 حل موجود ہیں۔ یہ طریقہ ڈیٹا اور کہانی کو مؤثر طریقے سے پیش کرنے کا ایک زیادہ مؤثر طریقہ ہوگا۔ + +# نتیجہ +### اہم نکات کا خلاصہ +- بات چیت کا مطلب معلومات کو پہنچانا یا تبادلہ کرنا ہے۔ +- جب ڈیٹا کو پیش کیا جائے، تو آپ کا مقصد صرف اعداد و شمار کو اپنے سامعین تک پہنچانا نہیں ہونا چاہیے۔ آپ کا مقصد یہ ہونا چاہیے کہ آپ کے ڈیٹا سے متاثر ایک کہانی سنائی جائے۔ +- بات چیت کی دو اقسام ہیں، یک طرفہ بات چیت (معلومات بغیر کسی جواب کی نیت کے پہنچائی جاتی ہیں) اور دو طرفہ بات چیت (معلومات آگے پیچھے پہنچائی جاتی ہیں)۔ +- کہانی سنانے کے لیے آپ مختلف حکمت عملیاں استعمال کر سکتے ہیں، جن میں سے 5 یہ ہیں: + - اپنے سامعین، میڈیم، اور بات چیت کے طریقے کو سمجھیں + - اختتام کو ذہن میں رکھ کر آغاز کریں + - اسے ایک حقیقی کہانی کی طرح پیش کریں + - بامعنی الفاظ اور جملے استعمال کریں + - جذبات کا استعمال کریں + +### خود مطالعہ کے لیے تجویز کردہ وسائل +[The Five C's of Storytelling - Articulate Persuasion](http://articulatepersuasion.com/the-five-cs-of-storytelling/) + +[1.4 Your Responsibilities as a Communicator – Business Communication for Success (umn.edu)](https://open.lib.umn.edu/businesscommunication/chapter/1-4-your-responsibilities-as-a-communicator/) + +[How to Tell a Story with Data (hbr.org)](https://hbr.org/2013/04/how-to-tell-a-story-with-data) + +[Two-Way Communication: 4 Tips for a More Engaged Workplace (yourthoughtpartner.com)](https://www.yourthoughtpartner.com/blog/bid/59576/4-steps-to-increase-employee-engagement-through-two-way-communication) + +[6 succinct steps to great data storytelling - BarnRaisers, LLC (barnraisersllc.com)](https://barnraisersllc.com/2021/05/02/6-succinct-steps-to-great-data-storytelling/) + +[How to Tell a Story With Data | Lucidchart Blog](https://www.lucidchart.com/blog/how-to-tell-a-story-with-data) + +[6 Cs of Effective Storytelling on Social Media | Cooler Insights](https://coolerinsights.com/2018/06/effective-storytelling-social-media/) + +[The Importance of Emotions In Presentations | Ethos3 - A Presentation Training and Design Agency](https://ethos3.com/2015/02/the-importance-of-emotions-in-presentations/) + +[Data storytelling: linking emotions and rational decisions (toucantoco.com)](https://www.toucantoco.com/en/blog/data-storytelling-dataviz) + +[Emotional Advertising: How Brands Use Feelings to Get People to Buy (hubspot.com)](https://blog.hubspot.com/marketing/emotions-in-advertising-examples) + +[Choosing Colors for Your Presentation Slides | Think Outside The Slide](https://www.thinkoutsidetheslide.com/choosing-colors-for-your-presentation-slides/) + +[How To Present Data [10 Expert Tips] | ObservePoint](https://resources.observepoint.com/blog/10-tips-for-presenting-data) + +[Microsoft Word - Persuasive Instructions.doc (tpsnva.org)](https://www.tpsnva.org/teach/lq/016/persinstr.pdf) + +[The Power of Story for Your Data (thinkhdi.com)](https://www.thinkhdi.com/library/supportworld/2019/power-story-your-data.aspx) + +[Common Mistakes in Data Presentation (perceptualedge.com)](https://www.perceptualedge.com/articles/ie/data_presentation.pdf) + +[Infographic: Here are 15 Common Data Fallacies to Avoid (visualcapitalist.com)](https://www.visualcapitalist.com/here-are-15-common-data-fallacies-to-avoid/) + +[Cherry Picking: When People Ignore Evidence that They Dislike – Effectiviology](https://effectiviology.com/cherry-picking/#How_to_avoid_cherry_picking) + +[Tell Stories with Data: Communication in Data Science | by Sonali Verghese | Towards Data Science](https://towardsdatascience.com/tell-stories-with-data-communication-in-data-science-5266f7671d7) + +[1. Communicating Data - Communicating Data with Tableau [Book] (oreilly.com)](https://www.oreilly.com/library/view/communicating-data-with/9781449372019/ch01.html) + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/31) + +اوپر دی گئی معلومات کا جائزہ لینے کے لیے لیکچر کے بعد کا کوئز حل کریں! + +## اسائنمنٹ + +[مارکیٹ ریسرچ](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/16-communication/assignment.md b/translations/ur/4-Data-Science-Lifecycle/16-communication/assignment.md new file mode 100644 index 00000000..c598fb20 --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/16-communication/assignment.md @@ -0,0 +1,26 @@ + +# کہانی سنائیں + +## ہدایات + +ڈیٹا سائنس کہانیاں سنانے کے بارے میں ہے۔ کسی بھی ڈیٹاسیٹ کا انتخاب کریں اور اس کے بارے میں ایک مختصر مضمون لکھیں کہ آپ اس سے کون سی کہانی بیان کر سکتے ہیں۔ آپ کو کیا امید ہے کہ آپ کا ڈیٹاسیٹ ظاہر کرے گا؟ اگر اس کے انکشافات مسائل پیدا کریں تو آپ کیا کریں گے؟ اگر آپ کا ڈیٹاسیٹ آسانی سے اپنے راز نہ کھولے تو کیا ہوگا؟ ان تمام ممکنہ منظرناموں کے بارے میں سوچیں جو آپ کا ڈیٹاسیٹ پیش کر سکتا ہے اور انہیں تحریر کریں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- + +ایک صفحے کا مضمون .doc فارمیٹ میں پیش کیا گیا ہے جس میں ڈیٹاسیٹ کی وضاحت، دستاویزات، حوالہ جات شامل ہیں اور اس کے بارے میں ایک مربوط کہانی تفصیلی مثالوں کے ساتھ پیش کی گئی ہے۔ | ایک مختصر مضمون کم تفصیل کے ساتھ پیش کیا گیا ہے۔ | مضمون مذکورہ تفصیلات میں سے کسی ایک میں کمی کا شکار ہے۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/4-Data-Science-Lifecycle/README.md b/translations/ur/4-Data-Science-Lifecycle/README.md new file mode 100644 index 00000000..e694ddb9 --- /dev/null +++ b/translations/ur/4-Data-Science-Lifecycle/README.md @@ -0,0 +1,30 @@ + +# ڈیٹا سائنس کا لائف سائیکل + +![communication](../../../translated_images/communication.06d8e2a88d30d168d661ad9f9f0a4f947ebff3719719cfdaf9ed00a406a01ead.ur.jpg) +> تصویر از Headway on Unsplash + +ان اسباق میں، آپ ڈیٹا سائنس کے لائف سائیکل کے کچھ پہلوؤں کو دریافت کریں گے، جن میں ڈیٹا کے تجزیے اور اس کے بارے میں بات چیت شامل ہے۔ + +### موضوعات + +1. [تعارف](14-Introduction/README.md) +2. [تجزیہ](15-analyzing/README.md) +3. [بات چیت](16-communication/README.md) + +### کریڈٹس + +یہ اسباق ❤️ کے ساتھ [Jalen McGee](https://twitter.com/JalenMCG) اور [Jasmine Greenaway](https://twitter.com/paladique) نے لکھے ہیں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/17-Introduction/README.md b/translations/ur/5-Data-Science-In-Cloud/17-Introduction/README.md new file mode 100644 index 00000000..a840091a --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/17-Introduction/README.md @@ -0,0 +1,114 @@ + +# کلاؤڈ میں ڈیٹا سائنس کا تعارف + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/17-DataScience-Cloud.png)| +|:---:| +| کلاؤڈ میں ڈیٹا سائنس: تعارف - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +اس سبق میں، آپ کلاؤڈ کے بنیادی اصول سیکھیں گے، پھر آپ دیکھیں گے کہ کلاؤڈ سروسز کو اپنے ڈیٹا سائنس پروجیکٹس چلانے کے لیے استعمال کرنا آپ کے لیے کیوں دلچسپ ہو سکتا ہے، اور ہم کلاؤڈ میں چلنے والے کچھ ڈیٹا سائنس پروجیکٹس کی مثالوں پر نظر ڈالیں گے۔ + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/32) + +## کلاؤڈ کیا ہے؟ + +کلاؤڈ، یا کلاؤڈ کمپیوٹنگ، انٹرنیٹ پر ایک انفراسٹرکچر کے ذریعے مختلف قسم کی پے-ایز-یو-گو کمپیوٹنگ سروسز کی فراہمی ہے۔ ان سروسز میں اسٹوریج، ڈیٹا بیسز، نیٹ ورکنگ، سافٹ ویئر، اینالیٹکس، اور ذہین سروسز شامل ہیں۔ + +عام طور پر ہم کلاؤڈ کو تین اقسام میں تقسیم کرتے ہیں: + +* پبلک کلاؤڈ: پبلک کلاؤڈ کسی تیسرے فریق کلاؤڈ سروس فراہم کنندہ کی ملکیت اور آپریٹ کیا جاتا ہے، جو اپنی کمپیوٹنگ وسائل انٹرنیٹ کے ذریعے عوام کو فراہم کرتا ہے۔ +* پرائیویٹ کلاؤڈ: پرائیویٹ کلاؤڈ وہ کمپیوٹنگ وسائل ہیں جو کسی ایک کاروبار یا تنظیم کے لیے مخصوص ہوتے ہیں، اور یہ خدمات اور انفراسٹرکچر ایک پرائیویٹ نیٹ ورک پر برقرار رکھا جاتا ہے۔ +* ہائبرڈ کلاؤڈ: ہائبرڈ کلاؤڈ ایک ایسا نظام ہے جو پبلک اور پرائیویٹ کلاؤڈز کو یکجا کرتا ہے۔ صارفین ایک آن-پریمیس ڈیٹا سینٹر کا انتخاب کرتے ہیں، جبکہ ڈیٹا اور ایپلیکیشنز کو ایک یا زیادہ پبلک کلاؤڈز پر چلانے کی اجازت دیتے ہیں۔ + +زیادہ تر کلاؤڈ کمپیوٹنگ سروسز تین اقسام میں آتی ہیں: انفراسٹرکچر ایز اے سروس (IaaS)، پلیٹ فارم ایز اے سروس (PaaS)، اور سافٹ ویئر ایز اے سروس (SaaS)۔ + +* انفراسٹرکچر ایز اے سروس (IaaS): صارفین آئی ٹی انفراسٹرکچر جیسے سرورز، ورچوئل مشینز (VMs)، اسٹوریج، نیٹ ورکس، اور آپریٹنگ سسٹمز کرائے پر لیتے ہیں۔ +* پلیٹ فارم ایز اے سروس (PaaS): صارفین سافٹ ویئر ایپلیکیشنز کو ڈیولپ، ٹیسٹ، ڈیلیور اور مینیج کرنے کے لیے ایک ماحول کرائے پر لیتے ہیں۔ صارفین کو سرورز، اسٹوریج، نیٹ ورک، اور ڈیٹا بیسز کی بنیادی انفراسٹرکچر کو سیٹ اپ یا مینیج کرنے کی فکر نہیں ہوتی۔ +* سافٹ ویئر ایز اے سروس (SaaS): صارفین انٹرنیٹ کے ذریعے سافٹ ویئر ایپلیکیشنز تک رسائی حاصل کرتے ہیں، جو عام طور پر سبسکرپشن کی بنیاد پر فراہم کی جاتی ہیں۔ صارفین کو سافٹ ویئر ایپلیکیشن کی ہوسٹنگ، مینیجمنٹ، یا مینٹیننس جیسے سافٹ ویئر اپگریڈز اور سیکیورٹی پیچنگ کی فکر نہیں ہوتی۔ + +کلاؤڈ کے سب سے بڑے فراہم کنندگان میں ایمیزون ویب سروسز، گوگل کلاؤڈ پلیٹ فارم، اور مائیکروسافٹ ایژر شامل ہیں۔ + +## ڈیٹا سائنس کے لیے کلاؤڈ کیوں منتخب کریں؟ + +ڈیولپرز اور آئی ٹی پروفیشنلز کئی وجوہات کی بنا پر کلاؤڈ کے ساتھ کام کرنے کا انتخاب کرتے ہیں، جن میں شامل ہیں: + +* جدت: آپ اپنی ایپلیکیشنز کو کلاؤڈ فراہم کنندگان کی جانب سے فراہم کردہ جدید سروسز کو اپنے ایپس میں شامل کرکے طاقتور بنا سکتے ہیں۔ +* لچک: آپ صرف ان سروسز کے لیے ادائیگی کرتے ہیں جن کی آپ کو ضرورت ہوتی ہے اور مختلف قسم کی سروسز میں سے انتخاب کر سکتے ہیں۔ آپ عام طور پر پے-ایز-یو-گو کی بنیاد پر ادائیگی کرتے ہیں اور اپنی ضروریات کے مطابق سروسز کو ایڈجسٹ کر سکتے ہیں۔ +* بجٹ: آپ کو ہارڈویئر اور سافٹ ویئر خریدنے، آن-سائٹ ڈیٹا سینٹرز سیٹ اپ کرنے اور چلانے کے لیے ابتدائی سرمایہ کاری کرنے کی ضرورت نہیں ہوتی، اور آپ صرف وہی ادائیگی کرتے ہیں جو آپ استعمال کرتے ہیں۔ +* اسکیل ایبلٹی: آپ کے وسائل آپ کے پروجیکٹ کی ضروریات کے مطابق بڑھ یا گھٹ سکتے ہیں، جس کا مطلب ہے کہ آپ کی ایپس کسی بھی وقت بیرونی عوامل کے مطابق زیادہ یا کم کمپیوٹنگ پاور، اسٹوریج، اور بینڈوڈتھ استعمال کر سکتی ہیں۔ +* پیداواری صلاحیت: آپ اپنے کاروبار پر توجہ مرکوز کر سکتے ہیں بجائے اس کے کہ ان کاموں پر وقت ضائع کریں جو کوئی اور مینیج کر سکتا ہے، جیسے ڈیٹا سینٹرز کا انتظام۔ +* اعتماد: کلاؤڈ کمپیوٹنگ آپ کے ڈیٹا کو مسلسل بیک اپ کرنے کے کئی طریقے فراہم کرتا ہے، اور آپ ڈیزاسٹر ریکوری پلانز سیٹ اپ کر سکتے ہیں تاکہ بحران کے وقت بھی آپ کا کاروبار اور خدمات جاری رہ سکیں۔ +* سیکیورٹی: آپ ان پالیسیوں، ٹیکنالوجیز، اور کنٹرولز سے فائدہ اٹھا سکتے ہیں جو آپ کے پروجیکٹ کی سیکیورٹی کو مضبوط بناتے ہیں۔ + +یہ کلاؤڈ سروسز کو منتخب کرنے کی چند عام وجوہات ہیں۔ اب جب کہ ہمیں کلاؤڈ کے بارے میں اور اس کے اہم فوائد کے بارے میں بہتر سمجھ آ گئی ہے، آئیے ڈیٹا سائنسدانوں اور ڈیٹا کے ساتھ کام کرنے والے ڈیولپرز کے کاموں پر خاص طور پر نظر ڈالیں، اور یہ دیکھیں کہ کلاؤڈ ان کے سامنے آنے والے مختلف چیلنجز میں کس طرح مدد کر سکتا ہے: + +* بڑے پیمانے پر ڈیٹا کو اسٹور کرنا: بڑے سرورز خریدنے، مینیج کرنے اور محفوظ رکھنے کے بجائے، آپ اپنا ڈیٹا براہ راست کلاؤڈ میں اسٹور کر سکتے ہیں، جیسے ایژر کاسماس ڈی بی، ایژر ایس کیو ایل ڈیٹا بیس، اور ایژر ڈیٹا لیک اسٹوریج کے حل کے ساتھ۔ +* ڈیٹا انٹیگریشن انجام دینا: ڈیٹا انٹیگریشن ڈیٹا سائنس کا ایک لازمی حصہ ہے، جو آپ کو ڈیٹا جمع کرنے سے لے کر عمل کرنے تک منتقلی کرنے دیتا ہے۔ کلاؤڈ میں فراہم کردہ ڈیٹا انٹیگریشن سروسز کے ساتھ، آپ مختلف ذرائع سے ڈیٹا کو جمع، تبدیل اور ایک ڈیٹا ویئر ہاؤس میں ضم کر سکتے ہیں، ڈیٹا فیکٹری کے ذریعے۔ +* ڈیٹا پروسیسنگ: بڑے پیمانے پر ڈیٹا کو پروسیس کرنے کے لیے بہت زیادہ کمپیوٹنگ پاور کی ضرورت ہوتی ہے، اور ہر کسی کے پاس اتنی طاقتور مشینیں دستیاب نہیں ہوتیں، یہی وجہ ہے کہ بہت سے لوگ اپنی حل کو چلانے اور تعینات کرنے کے لیے براہ راست کلاؤڈ کی زبردست کمپیوٹنگ پاور کا استعمال کرتے ہیں۔ +* ڈیٹا اینالیٹکس سروسز کا استعمال: کلاؤڈ سروسز جیسے ایژر سیناپس اینالیٹکس، ایژر اسٹریم اینالیٹکس، اور ایژر ڈیٹا برکس آپ کے ڈیٹا کو قابل عمل بصیرت میں تبدیل کرنے میں مدد کرتے ہیں۔ +* مشین لرننگ اور ڈیٹا انٹیلیجنس سروسز کا استعمال: شروع سے آغاز کرنے کے بجائے، آپ کلاؤڈ فراہم کنندہ کی طرف سے پیش کردہ مشین لرننگ الگورتھمز کا استعمال کر سکتے ہیں، جیسے ایژر ایم ایل کے ساتھ۔ آپ تقریر سے متن، متن سے تقریر، کمپیوٹر وژن اور مزید جیسی ذہین خدمات بھی استعمال کر سکتے ہیں۔ + +## کلاؤڈ میں ڈیٹا سائنس کی مثالیں + +آئیے اسے مزید واضح بنانے کے لیے چند منظرناموں پر نظر ڈالیں۔ + +### ریئل ٹائم سوشل میڈیا سینٹیمنٹ اینالیسیس +ہم ایک ایسے منظرنامے سے آغاز کریں گے جو مشین لرننگ کے آغاز کرنے والوں کے لیے عام طور پر مطالعہ کیا جاتا ہے: ریئل ٹائم سوشل میڈیا سینٹیمنٹ اینالیسیس۔ + +فرض کریں کہ آپ ایک نیوز میڈیا ویب سائٹ چلاتے ہیں اور آپ لائیو ڈیٹا کا استعمال کرکے یہ سمجھنا چاہتے ہیں کہ آپ کے قارئین کس قسم کے مواد میں دلچسپی رکھتے ہیں۔ اس کے بارے میں مزید جاننے کے لیے، آپ ایک ایسا پروگرام بنا سکتے ہیں جو ٹویٹر کی اشاعتوں کے ڈیٹا کا ریئل ٹائم سینٹیمنٹ اینالیسیس انجام دے، ان موضوعات پر جو آپ کے قارئین کے لیے متعلقہ ہیں۔ + +آپ جن اہم اشاریوں پر نظر ڈالیں گے وہ مخصوص موضوعات (ہیش ٹیگز) پر ٹویٹس کا حجم اور سینٹیمنٹ ہیں، جو اینالیٹکس ٹولز کے ذریعے قائم کیا جاتا ہے جو مخصوص موضوعات کے ارد گرد سینٹیمنٹ اینالیسیس انجام دیتے ہیں۔ + +اس پروجیکٹ کو بنانے کے لیے ضروری اقدامات درج ذیل ہیں: + +* ان پٹ کو اسٹریم کرنے کے لیے ایک ایونٹ ہب بنائیں، جو ٹویٹر سے ڈیٹا جمع کرے گا۔ +* ایک ٹویٹر کلائنٹ ایپلیکیشن کو کنفیگر اور شروع کریں، جو ٹویٹر اسٹریمنگ APIs کو کال کرے گا۔ +* ایک اسٹریم اینالیٹکس جاب بنائیں۔ +* جاب ان پٹ اور کوئری کی وضاحت کریں۔ +* ایک آؤٹ پٹ سنک بنائیں اور جاب آؤٹ پٹ کی وضاحت کریں۔ +* جاب شروع کریں۔ + +مکمل عمل دیکھنے کے لیے، [دستاویزات](https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?WT.mc_id=academic-77958-bethanycheum&ocid=AID30411099) دیکھیں۔ + +### سائنسی مقالوں کا تجزیہ +آئیے ایک اور پروجیکٹ کی مثال دیکھتے ہیں جو اس نصاب کے ایک مصنف [دیمتری سوشنیکوف](http://soshnikov.com) نے بنایا ہے۔ + +دیمتری نے ایک ایسا ٹول بنایا جو COVID کے مقالوں کا تجزیہ کرتا ہے۔ اس پروجیکٹ کا جائزہ لے کر، آپ دیکھیں گے کہ آپ ایک ایسا ٹول کیسے بنا سکتے ہیں جو سائنسی مقالوں سے علم نکالتا ہے، بصیرت حاصل کرتا ہے، اور محققین کو مقالوں کے بڑے مجموعوں میں مؤثر طریقے سے نیویگیٹ کرنے میں مدد دیتا ہے۔ + +آئیے دیکھتے ہیں کہ اس کے لیے استعمال کیے گئے مختلف اقدامات کیا ہیں: + +* [ٹیکسٹ اینالیٹکس فار ہیلتھ](https://docs.microsoft.com/azure/cognitive-services/text-analytics/how-tos/text-analytics-for-health?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کے ساتھ معلومات نکالنا اور پری پروسیسنگ کرنا۔ +* پروسیسنگ کو متوازی بنانے کے لیے [ایژر ایم ایل](https://azure.microsoft.com/services/machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کا استعمال۔ +* معلومات کو اسٹور اور کوئری کرنے کے لیے [کاسماس ڈی بی](https://azure.microsoft.com/services/cosmos-db?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کا استعمال۔ +* ڈیٹا کی تلاش اور بصریات کے لیے ایک انٹرایکٹو ڈیش بورڈ بنانا، پاور بی آئی کا استعمال کرتے ہوئے۔ + +مکمل عمل دیکھنے کے لیے، [دیمتری کے بلاگ](https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/) پر جائیں۔ + +جیسا کہ آپ دیکھ سکتے ہیں، ہم کلاؤڈ سروسز کو مختلف طریقوں سے ڈیٹا سائنس انجام دینے کے لیے استعمال کر سکتے ہیں۔ + +## فٹ نوٹ + +ذرائع: +* https://azure.microsoft.com/overview/what-is-cloud-computing?ocid=AID3041109 +* https://docs.microsoft.com/azure/stream-analytics/stream-analytics-twitter-sentiment-analysis-trends?ocid=AID3041109 +* https://soshnikov.com/science/analyzing-medical-papers-with-azure-and-text-analytics-for-health/ + +## لیکچر کے بعد کا کوئز + +[لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/33) + +## اسائنمنٹ + +[مارکیٹ ریسرچ](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/17-Introduction/assignment.md b/translations/ur/5-Data-Science-In-Cloud/17-Introduction/assignment.md new file mode 100644 index 00000000..9877420d --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/17-Introduction/assignment.md @@ -0,0 +1,25 @@ + +# مارکیٹ ریسرچ + +## ہدایات + +اس سبق میں آپ نے سیکھا کہ کئی اہم کلاؤڈ فراہم کنندگان موجود ہیں۔ کچھ مارکیٹ ریسرچ کریں تاکہ معلوم ہو سکے کہ ہر ایک ڈیٹا سائنسدان کو کیا پیش کر سکتا ہے۔ کیا ان کی پیشکشیں ایک جیسی ہیں؟ ایک مضمون لکھیں جس میں ان کلاؤڈ فراہم کنندگان میں سے تین یا اس سے زیادہ کی پیشکشوں کو بیان کریں۔ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | --- | +ایک صفحے کا مضمون تین کلاؤڈ فراہم کنندگان کی ڈیٹا سائنس کی پیشکشوں کو بیان کرتا ہے اور ان کے درمیان فرق واضح کرتا ہے۔ | ایک مختصر مضمون پیش کیا گیا ہے | ایک مضمون پیش کیا گیا ہے لیکن تجزیہ مکمل نہیں کیا گیا + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/README.md b/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/README.md new file mode 100644 index 00000000..f77941e9 --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/README.md @@ -0,0 +1,351 @@ + +# کلاؤڈ میں ڈیٹا سائنس: "کم کوڈ/بغیر کوڈ" طریقہ + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/18-DataScience-Cloud.png)| +|:---:| +| کلاؤڈ میں ڈیٹا سائنس: کم کوڈ - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +فہرستِ مواد: + +- [کلاؤڈ میں ڈیٹا سائنس: "کم کوڈ/بغیر کوڈ" طریقہ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [لیکچر سے پہلے کا کوئز](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1. تعارف](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.1 Azure Machine Learning کیا ہے؟](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.2 دل کی ناکامی کی پیشن گوئی کا منصوبہ:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [1.3 دل کی ناکامی کا ڈیٹا سیٹ:](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2. Azure ML Studio میں ماڈل کی کم کوڈ/بغیر کوڈ تربیت](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.1 Azure ML ورک اسپیس بنائیں](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2 کمپیوٹ وسائل](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.1 کمپیوٹ وسائل کے لیے صحیح اختیارات کا انتخاب](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.2.2 کمپیوٹ کلسٹر بنانا](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.3 ڈیٹا سیٹ لوڈ کرنا](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [2.4 AutoML کے ساتھ کم کوڈ/بغیر کوڈ تربیت](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3. کم کوڈ/بغیر کوڈ ماڈل کی تعیناتی اور اینڈ پوائنٹ کا استعمال](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.1 ماڈل کی تعیناتی](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [3.2 اینڈ پوائنٹ کا استعمال](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [🚀 چیلنج](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [لیکچر کے بعد کا کوئز](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [جائزہ اور خود مطالعہ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + - [اسائنمنٹ](../../../../5-Data-Science-In-Cloud/18-Low-Code) + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/34) +## 1. تعارف +### 1.1 Azure Machine Learning کیا ہے؟ + +Azure کلاؤڈ پلیٹ فارم 200 سے زیادہ پروڈکٹس اور کلاؤڈ سروسز پر مشتمل ہے جو آپ کو نئی حل تخلیق کرنے میں مدد فراہم کرتی ہیں۔ +ڈیٹا سائنسدان ڈیٹا کو دریافت کرنے، اس کی پروسیسنگ کرنے، اور مختلف قسم کے ماڈل ٹریننگ الگورتھمز آزمانے میں بہت محنت کرتے ہیں تاکہ درست ماڈلز تیار کیے جا سکیں۔ یہ کام وقت طلب ہوتے ہیں اور اکثر مہنگے کمپیوٹ ہارڈویئر کا غیر مؤثر استعمال کرتے ہیں۔ + +[Azure ML](https://docs.microsoft.com/azure/machine-learning/overview-what-is-azure-machine-learning?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) ایک کلاؤڈ پر مبنی پلیٹ فارم ہے جو Azure میں مشین لرننگ کے حل بنانے اور چلانے کے لیے استعمال ہوتا ہے۔ یہ ڈیٹا کی تیاری، ماڈلز کی تربیت، پیش گوئی کی خدمات کی اشاعت، اور ان کے استعمال کی نگرانی کے لیے وسیع خصوصیات اور صلاحیتیں فراہم کرتا ہے۔ سب سے اہم بات یہ ہے کہ یہ ماڈلز کی تربیت سے متعلق وقت طلب کاموں کو خودکار بنا کر ڈیٹا سائنسدانوں کی کارکردگی کو بڑھاتا ہے؛ اور یہ کلاؤڈ پر مبنی کمپیوٹ وسائل کو مؤثر طریقے سے اسکیل کرنے کے قابل بناتا ہے تاکہ بڑے ڈیٹا کے حجم کو سنبھالا جا سکے، اور صرف استعمال کے وقت ہی اخراجات ہوں۔ + +Azure ML ڈیولپرز اور ڈیٹا سائنسدانوں کو ان کے مشین لرننگ ورک فلو کے لیے تمام ضروری ٹولز فراہم کرتا ہے، جن میں شامل ہیں: + +- **Azure Machine Learning Studio**: یہ Azure Machine Learning میں ایک ویب پورٹل ہے جو ماڈل کی تربیت، تعیناتی، خودکاری، ٹریکنگ، اور اثاثہ جات کے انتظام کے لیے کم کوڈ اور بغیر کوڈ کے اختیارات فراہم کرتا ہے۔ اسٹوڈیو Azure Machine Learning SDK کے ساتھ مربوط ہے تاکہ ایک ہموار تجربہ فراہم کیا جا سکے۔ +- **Jupyter Notebooks**: مشین لرننگ ماڈلز کو جلدی پروٹوٹائپ اور ٹیسٹ کرنے کے لیے۔ +- **Azure Machine Learning Designer**: ماڈیولز کو ڈریگ اینڈ ڈراپ کرنے کی اجازت دیتا ہے تاکہ تجربات بنائے جا سکیں اور پھر کم کوڈ ماحول میں پائپ لائنز تعینات کی جا سکیں۔ +- **Automated machine learning UI (AutoML)**: مشین لرننگ ماڈل کی ترقی کے تکراری کاموں کو خودکار بناتا ہے، جس سے بڑے پیمانے پر، مؤثر، اور پیداواری ماڈلز بنائے جا سکتے ہیں، اور ماڈل کے معیار کو برقرار رکھا جا سکتا ہے۔ +- **Data Labelling**: ڈیٹا کو خودکار طور پر لیبل کرنے کے لیے ایک معاون مشین لرننگ ٹول۔ +- **Machine learning extension for Visual Studio Code**: مشین لرننگ پروجیکٹس بنانے اور ان کا انتظام کرنے کے لیے مکمل خصوصیات والا ترقیاتی ماحول فراہم کرتا ہے۔ +- **Machine learning CLI**: کمانڈ لائن سے Azure ML وسائل کا انتظام کرنے کے لیے کمانڈز فراہم کرتا ہے۔ +- **اوپن سورس فریم ورک کے ساتھ انضمام** جیسے PyTorch، TensorFlow، Scikit-learn اور دیگر، مشین لرننگ کے عمل کو تربیت دینے، تعینات کرنے، اور انتظام کرنے کے لیے۔ +- **MLflow**: یہ مشین لرننگ تجربات کے زندگی کے دورانیے کو منظم کرنے کے لیے ایک اوپن سورس لائبریری ہے۔ **MLFlow Tracking** MLflow کا ایک جزو ہے جو آپ کے تربیتی رن میٹرکس اور ماڈل آرٹفیکٹس کو لاگ اور ٹریک کرتا ہے، چاہے آپ کے تجربے کا ماحول کچھ بھی ہو۔ + +### 1.2 دل کی ناکامی کی پیشن گوئی کا منصوبہ: + +بلا شبہ، منصوبے بنانا اور ان پر کام کرنا اپنی مہارت اور علم کو آزمانے کا بہترین طریقہ ہے۔ اس سبق میں، ہم دل کی ناکامی کے حملوں کی پیشن گوئی کے لیے ایک ڈیٹا سائنس پروجیکٹ بنانے کے دو مختلف طریقے دریافت کریں گے، Azure ML Studio میں کم کوڈ/بغیر کوڈ طریقے سے اور Azure ML SDK کے ذریعے، جیسا کہ درج ذیل اسکیمہ میں دکھایا گیا ہے: + +![پروجیکٹ اسکیمہ](../../../../translated_images/project-schema.736f6e403f321eb48d10242b3f4334dc6ccf0eabef8ff87daf52b89781389fcb.ur.png) + +ہر طریقے کے اپنے فوائد اور نقصانات ہیں۔ کم کوڈ/بغیر کوڈ طریقہ شروع کرنے کے لیے آسان ہے کیونکہ اس میں GUI (گرافیکل یوزر انٹرفیس) کے ساتھ تعامل شامل ہے، اور کوڈ کا پیشگی علم ضروری نہیں ہے۔ یہ طریقہ پروجیکٹ کی عملیت کو جلدی جانچنے اور POC (پروف آف کانسیپٹ) بنانے کی اجازت دیتا ہے۔ تاہم، جیسے جیسے پروجیکٹ بڑھتا ہے اور چیزوں کو پروڈکشن کے لیے تیار کرنے کی ضرورت ہوتی ہے، GUI کے ذریعے وسائل بنانا ممکن نہیں ہوتا۔ ہمیں پروگرام کے ذریعے ہر چیز کو خودکار بنانا پڑتا ہے، وسائل کی تخلیق سے لے کر ماڈل کی تعیناتی تک۔ یہی وہ جگہ ہے جہاں Azure ML SDK کا استعمال جاننا ضروری ہو جاتا ہے۔ + +| | کم کوڈ/بغیر کوڈ | Azure ML SDK | +|-------------------|------------------|---------------------------| +| کوڈ کی مہارت | ضروری نہیں | ضروری | +| ترقی کا وقت | تیز اور آسان | کوڈ کی مہارت پر منحصر | +| پروڈکشن کے لیے تیار | نہیں | ہاں | + +### 1.3 دل کی ناکامی کا ڈیٹا سیٹ: + +دل کی بیماریوں (CVDs) دنیا بھر میں موت کی سب سے بڑی وجہ ہیں، جو عالمی سطح پر تمام اموات کا 31% حصہ بنتی ہیں۔ ماحولیاتی اور رویے کے خطرے کے عوامل جیسے تمباکو کا استعمال، غیر صحت مند غذا اور موٹاپا، جسمانی غیر فعالیت، اور شراب کا نقصان دہ استعمال تخمینی ماڈلز کے لیے خصوصیات کے طور پر استعمال کیے جا سکتے ہیں۔ CVD کے ترقی کے امکان کا اندازہ لگانا خطرے والے افراد میں حملوں کو روکنے کے لیے بہت مفید ہو سکتا ہے۔ + +Kaggle نے ایک [دل کی ناکامی کا ڈیٹا سیٹ](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data) عوامی طور پر دستیاب کیا ہے، جسے ہم اس پروجیکٹ کے لیے استعمال کریں گے۔ آپ ابھی ڈیٹا سیٹ ڈاؤن لوڈ کر سکتے ہیں۔ یہ ایک ٹیبلر ڈیٹا سیٹ ہے جس میں 13 کالم (12 خصوصیات اور 1 ہدف متغیر) اور 299 قطاریں ہیں۔ + +| | متغیر کا نام | قسم | وضاحت | مثال | +|----|---------------------------|-----------------|-------------------------------------------------------|-------------------| +| 1 | عمر | عددی | مریض کی عمر | 25 | +| 2 | خون کی کمی | بولین | خون کے سرخ خلیوں یا ہیموگلوبن کی کمی | 0 یا 1 | +| 3 | کریٹینین فاسفوکائنیز | عددی | خون میں CPK انزائم کی سطح | 542 | +| 4 | ذیابیطس | بولین | اگر مریض کو ذیابیطس ہے | 0 یا 1 | +| 5 | ایجیکشن فریکشن | عددی | دل کے ہر سکڑاؤ پر خون کے نکلنے کا فیصد | 45 | +| 6 | ہائی بلڈ پریشر | بولین | اگر مریض کو ہائی بلڈ پریشر ہے | 0 یا 1 | +| 7 | پلیٹلیٹس | عددی | خون میں پلیٹلیٹس | 149000 | +| 8 | سیرم کریٹینین | عددی | خون میں سیرم کریٹینین کی سطح | 0.5 | +| 9 | سیرم سوڈیم | عددی | خون میں سیرم سوڈیم کی سطح | jun | +| 10 | جنس | بولین | عورت یا مرد | 0 یا 1 | +| 11 | سگریٹ نوشی | بولین | اگر مریض سگریٹ نوشی کرتا ہے | 0 یا 1 | +| 12 | وقت | عددی | فالو اپ مدت (دن) | 4 | +|----|---------------------------|-----------------|-------------------------------------------------------|-------------------| +| 21 | DEATH_EVENT [ہدف] | بولین | اگر مریض فالو اپ مدت کے دوران فوت ہو جائے | 0 یا 1 | + +ڈیٹا سیٹ حاصل کرنے کے بعد، ہم Azure میں پروجیکٹ شروع کر سکتے ہیں۔ + +## 2. Azure ML Studio میں ماڈل کی کم کوڈ/بغیر کوڈ تربیت +### 2.1 Azure ML ورک اسپیس بنائیں +Azure ML میں ماڈل کی تربیت کے لیے آپ کو پہلے Azure ML ورک اسپیس بنانا ہوگا۔ ورک اسپیس Azure Machine Learning کے لیے اعلیٰ سطحی وسائل ہے، جو آپ کے بنائے گئے تمام آرٹفیکٹس کے ساتھ کام کرنے کے لیے ایک مرکزی جگہ فراہم کرتا ہے۔ ورک اسپیس تربیتی رنز کی تاریخ رکھتا ہے، جس میں لاگز، میٹرکس، آؤٹ پٹ، اور آپ کی اسکرپٹس کا اسنیپ شاٹ شامل ہوتا ہے۔ آپ اس معلومات کا استعمال یہ تعین کرنے کے لیے کرتے ہیں کہ کون سا تربیتی رن بہترین ماڈل تیار کرتا ہے۔ [مزید جانیں](https://docs.microsoft.com/azure/machine-learning/concept-workspace?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +یہ تجویز کیا جاتا ہے کہ آپ اپنے آپریٹنگ سسٹم کے ساتھ مطابقت رکھنے والے سب سے زیادہ اپ ڈیٹ شدہ براؤزر کا استعمال کریں۔ درج ذیل براؤزرز معاون ہیں: + +- Microsoft Edge (نیا Microsoft Edge، تازہ ترین ورژن۔ Microsoft Edge لیگیسی نہیں) +- Safari (تازہ ترین ورژن، صرف Mac) +- Chrome (تازہ ترین ورژن) +- Firefox (تازہ ترین ورژن) + +Azure Machine Learning استعمال کرنے کے لیے، اپنے Azure سبسکرپشن میں ایک ورک اسپیس بنائیں۔ آپ پھر اس ورک اسپیس کو ڈیٹا، کمپیوٹ وسائل، کوڈ، ماڈلز، اور مشین لرننگ ورک لوڈز سے متعلق دیگر آرٹفیکٹس کا انتظام کرنے کے لیے استعمال کر سکتے ہیں۔ + +> **_نوٹ:_** آپ کے Azure سبسکرپشن میں Azure Machine Learning ورک اسپیس کے موجود رہنے تک ڈیٹا اسٹوریج کے لیے تھوڑی سی رقم چارج کی جائے گی، لہذا ہم تجویز کرتے ہیں کہ جب آپ اسے مزید استعمال نہ کریں تو Azure Machine Learning ورک اسپیس کو حذف کر دیں۔ + +1. [Azure پورٹل](https://ms.portal.azure.com/) میں Microsoft کی اسناد کے ساتھ سائن ان کریں جو آپ کے Azure سبسکرپشن سے منسلک ہیں۔ +2. **+Create a resource** منتخب کریں + + ![ورک اسپیس-1](../../../../translated_images/workspace-1.ac8694d60b073ed1ae8333d71244dc8a9b3e439d54593724f98f1beefdd27b08.ur.png) + + Machine Learning تلاش کریں اور Machine Learning ٹائل منتخب کریں + + ![ورک اسپیس-2](../../../../translated_images/workspace-2.ae7c486db8796147075e4a56566aa819827dd6c4c8d18d64590317c3be625f17.ur.png) + + Create بٹن پر کلک کریں + + ![ورک اسپیس-3](../../../../translated_images/workspace-3.398ca4a5858132cce584db9df10c5a011cd9075eb182e647a77d5cac01771eea.ur.png) + + ترتیبات کو درج ذیل کے مطابق پُر کریں: + - سبسکرپشن: آپ کا Azure سبسکرپشن + - ریسورس گروپ: ایک ریسورس گروپ بنائیں یا منتخب کریں + - ورک اسپیس کا نام: اپنے ورک اسپیس کے لیے ایک منفرد نام درج کریں + - علاقہ: اپنے قریب ترین جغرافیائی علاقہ منتخب کریں + - اسٹوریج اکاؤنٹ: ورک اسپیس کے لیے بنائے جانے والے نئے اسٹوریج اکاؤنٹ کو نوٹ کریں + - Key vault: ورک اسپیس کے لیے بنائے جانے والے نئے Key vault کو نوٹ کریں + - Application insights: ورک اسپیس کے لیے بنائے جانے والے نئے Application insights وسائل کو نوٹ کریں + - Container registry: کوئی نہیں (پہلی بار جب آپ ماڈل کو کنٹینر میں تعینات کریں گے تو ایک خود بخود بنایا جائے گا) + + ![ورک اسپیس-4](../../../../translated_images/workspace-4.bac87f6599c4df63e624fc2608990f965887bee551d9dedc71c687b43b986b6a.ur.png) + + - Create + review پر کلک کریں اور پھر Create بٹن پر کلک کریں +3. اپنے ورک اسپیس کے بننے کا انتظار کریں (یہ چند منٹ لے سکتا ہے)۔ پھر اسے پورٹل میں جائیں۔ آپ اسے Machine Learning Azure سروس کے ذریعے تلاش کر سکتے ہیں۔ +4. اپنے ورک اسپیس کے Overview صفحے پر، Azure Machine Learning studio لانچ کریں (یا ایک نیا براؤزر ٹیب کھولیں اور https://ml.azure.com پر جائیں)، اور Azure Machine Learning studio میں اپنے Microsoft اکاؤنٹ کے ساتھ سائن ان کریں۔ اگر کہا جائے تو اپنا Azure ڈائریکٹری اور سبسکرپشن منتخب کریں، اور اپنا Azure Machine Learning ورک اسپیس منتخب کریں۔ + +![ورک اسپیس-5](../../../../translated_images/workspace-5.a6eb17e0a5e6420018b08bdaf3755ce977f96f1df3ea363d2476a9dce7e15adb.ur.png) + +5. Azure Machine Learning studio میں، اوپر بائیں جانب ☰ آئیکن کو ٹوگل کریں تاکہ انٹرفیس میں مختلف صفحات دیکھے جا سکیں۔ آپ ان صفحات کو اپنے ورک اسپیس کے وسائل کا انتظام کرنے کے لیے استعمال کر سکتے ہیں۔ + +![ورک اسپیس-6](../../../../translated_images/workspace-6.8dd81fe841797ee17f8f73916769576260b16c4e17e850d277a49db35fd74a15.ur.png) + +آپ اپنے ورک اسپیس کا انتظام Azure پورٹل کے ذریعے کر سکتے ہیں، لیکن ڈیٹا سائنسدانوں اور مشین لرننگ آپریشنز انجینئرز کے لیے، Azure Machine Learning Studio ورک اسپیس کے وسائل کا انتظام کرنے کے لیے زیادہ مرکوز یوزر انٹرفیس فراہم کرتا ہے۔ + +### 2.2 کمپیوٹ وسائل + +کمپیوٹ وسائل کلاؤڈ پر مبنی وسائل ہیں جن پر آپ ماڈل کی تربیت اور ڈیٹا کی دریافت کے عمل چلا سکتے ہیں۔ آپ چار قسم کے کمپیوٹ وسائل بنا سکتے ہیں: + +- **Compute Instances**: ترقیاتی ورک اسٹیشنز جنہیں ڈیٹا سائنسدان ڈیٹا اور ماڈلز کے ساتھ کام کرنے کے لیے استعمال کر سکتے ہیں۔ اس میں ایک ورچوئل مشین (VM) بنانا اور نوٹ بک انسٹینس لانچ کرنا شامل ہے۔ آپ پھر نوٹ بک سے کمپیوٹ کلسٹر کو کال کر کے ماڈل کی تربیت کر سکتے ہیں۔ +- **Compute Clusters**: تجرباتی کوڈ کے آن ڈیمانڈ پروسیسنگ کے لیے قابل توسیع VM کلسٹرز۔ آپ کو ماڈل کی تربیت کے وقت اس کی ضرورت ہوگی۔ کمپیوٹ کلسٹرز خصوصی GPU یا CPU وسائل بھی استعمال کر سکتے ہیں۔ +- **Inference Clusters**: پیش گوئی کی خدمات کے تعیناتی کے اہداف جو آپ کے تربیت یافتہ ماڈلز استعمال کرتے ہیں۔ +- **منسلک کمپیوٹ**: Azure کے موجودہ کمپیوٹ وسائل سے لنک کرتا ہے، جیسے کہ ورچوئل مشینز یا Azure Databricks کلسٹرز۔ + +#### 2.2.1 اپنے کمپیوٹ وسائل کے لیے درست اختیارات کا انتخاب کرنا + +کمپیوٹ وسائل بناتے وقت کچھ اہم عوامل پر غور کرنا ضروری ہے، اور یہ انتخاب اہم فیصلے ہو سکتے ہیں۔ + +**کیا آپ کو CPU یا GPU کی ضرورت ہے؟** + +CPU (Central Processing Unit) ایک الیکٹرانک سرکٹ ہے جو کمپیوٹر پروگرام کے احکامات کو چلاتا ہے۔ GPU (Graphics Processing Unit) ایک خاص الیکٹرانک سرکٹ ہے جو گرافکس سے متعلق کوڈ کو بہت تیز رفتاری سے چلا سکتا ہے۔ + +CPU اور GPU کی ساخت میں بنیادی فرق یہ ہے کہ CPU کو مختلف قسم کے کاموں کو تیزی سے انجام دینے کے لیے ڈیزائن کیا گیا ہے (جسے CPU کلاک اسپیڈ سے ماپا جاتا ہے)، لیکن یہ ایک وقت میں چلنے والے کاموں کی تعداد میں محدود ہوتا ہے۔ GPUs کو متوازی کمپیوٹنگ کے لیے ڈیزائن کیا گیا ہے اور اس لیے یہ گہرے سیکھنے کے کاموں کے لیے زیادہ بہتر ہیں۔ + +| CPU | GPU | +|-----------------------------------------|-----------------------------| +| کم مہنگا | زیادہ مہنگا | +| کم سطح کی ہم وقتی | زیادہ سطح کی ہم وقتی | +| گہرے سیکھنے کے ماڈلز کی تربیت میں سست | گہرے سیکھنے کے لیے بہترین | + +**کلسٹر کا سائز** + +بڑے کلسٹر زیادہ مہنگے ہوتے ہیں لیکن بہتر ردعمل فراہم کرتے ہیں۔ لہٰذا، اگر آپ کے پاس وقت ہے لیکن پیسے کم ہیں، تو آپ کو چھوٹے کلسٹر سے شروع کرنا چاہیے۔ اس کے برعکس، اگر آپ کے پاس پیسے ہیں لیکن وقت کم ہے، تو آپ کو بڑے کلسٹر سے شروع کرنا چاہیے۔ + +**VM کا سائز** + +آپ کے وقت اور بجٹ کی حدود کے مطابق، آپ اپنی RAM، ڈسک، کورز کی تعداد اور کلاک اسپیڈ کے سائز کو مختلف کر سکتے ہیں۔ ان تمام پیرامیٹرز کو بڑھانے سے لاگت زیادہ ہوگی، لیکن کارکردگی بہتر ہوگی۔ + +**Dedicated یا Low-Priority Instances؟** + +Low-priority instance کا مطلب ہے کہ یہ قابل مداخلت ہے: بنیادی طور پر، Microsoft Azure ان وسائل کو لے کر کسی اور کام کو تفویض کر سکتا ہے، اس طرح ایک کام میں خلل ڈال سکتا ہے۔ Dedicated instance، یا غیر مداخلت پذیر، کا مطلب ہے کہ کام آپ کی اجازت کے بغیر کبھی ختم نہیں ہوگا۔ +یہ وقت بمقابلہ پیسے کا ایک اور پہلو ہے، کیونکہ قابل مداخلت انسٹینسز Dedicated انسٹینسز سے کم مہنگے ہوتے ہیں۔ + +#### 2.2.2 کمپیوٹ کلسٹر بنانا + +[Azure ML ورک اسپیس](https://ml.azure.com/) میں جو ہم نے پہلے بنایا تھا، کمپیوٹ پر جائیں اور آپ ان مختلف کمپیوٹ وسائل کو دیکھ سکیں گے جن پر ہم نے ابھی بات کی (یعنی کمپیوٹ انسٹینسز، کمپیوٹ کلسٹرز، انفرنس کلسٹرز اور منسلک کمپیوٹ)۔ اس پروجیکٹ کے لیے، ہمیں ماڈل کی تربیت کے لیے کمپیوٹ کلسٹر کی ضرورت ہوگی۔ اسٹوڈیو میں، "Compute" مینو پر کلک کریں، پھر "Compute cluster" ٹیب پر کلک کریں اور کمپیوٹ کلسٹر بنانے کے لیے "+ New" بٹن پر کلک کریں۔ + +![22](../../../../translated_images/cluster-1.b78cb630bb543729b11f60c34d97110a263f8c27b516ba4dc47807b3cee5579f.ur.png) + +1. اپنے اختیارات منتخب کریں: Dedicated بمقابلہ Low priority، CPU یا GPU، VM کا سائز اور کورز کی تعداد (آپ اس پروجیکٹ کے لیے ڈیفالٹ سیٹنگز رکھ سکتے ہیں)۔ +2. Next بٹن پر کلک کریں۔ + +![23](../../../../translated_images/cluster-2.ea30cdbc9f926bb9e05af3fdbc1f679811c796dc2a6847f935290aec15526e88.ur.png) + +3. کلسٹر کو ایک کمپیوٹ نام دیں۔ +4. اپنے اختیارات منتخب کریں: کم از کم/زیادہ سے زیادہ نوڈز کی تعداد، اسکیل ڈاؤن سے پہلے Idle سیکنڈز، SSH رسائی۔ نوٹ کریں کہ اگر کم از کم نوڈز کی تعداد 0 ہے، تو آپ کلسٹر کے Idle ہونے پر پیسے بچا سکتے ہیں۔ نوٹ کریں کہ زیادہ سے زیادہ نوڈز کی تعداد جتنی زیادہ ہوگی، تربیت اتنی ہی کم وقت میں مکمل ہوگی۔ زیادہ سے زیادہ نوڈز کی تجویز کردہ تعداد 3 ہے۔ +5. "Create" بٹن پر کلک کریں۔ یہ مرحلہ چند منٹ لے سکتا ہے۔ + +![29](../../../../translated_images/cluster-3.8a334bc070ec173a329ce5abd2a9d727542e83eb2347676c9af20f2c8870b3e7.ur.png) + +زبردست! اب جب کہ ہمارے پاس ایک کمپیوٹ کلسٹر ہے، ہمیں ڈیٹا کو Azure ML اسٹوڈیو میں لوڈ کرنے کی ضرورت ہے۔ + +### 2.3 ڈیٹاسیٹ لوڈ کرنا + +1. [Azure ML ورک اسپیس](https://ml.azure.com/) میں جو ہم نے پہلے بنایا تھا، بائیں مینو میں "Datasets" پر کلک کریں اور ڈیٹاسیٹ بنانے کے لیے "+ Create dataset" بٹن پر کلک کریں۔ "From local files" آپشن منتخب کریں اور وہ Kaggle ڈیٹاسیٹ منتخب کریں جو ہم نے پہلے ڈاؤن لوڈ کیا تھا۔ + + ![24](../../../../translated_images/dataset-1.e86ab4e10907a6e9c2a72577b51db35f13689cb33702337b8b7032f2ef76dac2.ur.png) + +2. اپنے ڈیٹاسیٹ کو ایک نام، ایک قسم اور ایک وضاحت دیں۔ Next پر کلک کریں۔ فائلوں سے ڈیٹا اپ لوڈ کریں۔ Next پر کلک کریں۔ + + ![25](../../../../translated_images/dataset-2.f58de1c435d5bf9ccb16ccc5f5d4380eb2b50affca85cfbf4f97562bdab99f77.ur.png) + +3. Schema میں، درج ذیل خصوصیات کے لیے ڈیٹا کی قسم کو Boolean میں تبدیل کریں: anaemia، diabetes، high blood pressure، sex، smoking، اور DEATH_EVENT۔ Next پر کلک کریں اور Create پر کلک کریں۔ + + ![26](../../../../translated_images/dataset-3.58db8c0eb783e89236a02bbce5bb4ba808d081a87d994d5284b1ae59928c95bf.ur.png) + +زبردست! اب جب کہ ڈیٹاسیٹ موجود ہے اور کمپیوٹ کلسٹر بنایا گیا ہے، ہم ماڈل کی تربیت شروع کر سکتے ہیں! + +### 2.4 کم کوڈ/بغیر کوڈ کے ساتھ AutoML تربیت + +روایتی مشین لرننگ ماڈل کی ترقی وسائل کی ضرورت ہوتی ہے، نمایاں ڈومین علم اور وقت کی ضرورت ہوتی ہے تاکہ درجنوں ماڈلز تیار اور موازنہ کیے جا سکیں۔ +خودکار مشین لرننگ (AutoML) مشین لرننگ ماڈل کی ترقی کے وقت طلب، تکراری کاموں کو خودکار کرنے کا عمل ہے۔ یہ ڈیٹا سائنسدانوں، تجزیہ کاروں، اور ڈویلپرز کو اعلیٰ پیمانے، کارکردگی، اور پیداواری صلاحیت کے ساتھ ML ماڈلز بنانے کی اجازت دیتا ہے، جبکہ ماڈل کے معیار کو برقرار رکھتا ہے۔ یہ پروڈکشن کے لیے تیار ML ماڈلز حاصل کرنے کے وقت کو کم کرتا ہے، بڑی آسانی اور کارکردگی کے ساتھ۔ [مزید جانیں](https://docs.microsoft.com/azure/machine-learning/concept-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +1. [Azure ML ورک اسپیس](https://ml.azure.com/) میں جو ہم نے پہلے بنایا تھا، بائیں مینو میں "Automated ML" پر کلک کریں اور وہ ڈیٹاسیٹ منتخب کریں جو آپ نے ابھی اپ لوڈ کیا تھا۔ Next پر کلک کریں۔ + + ![27](../../../../translated_images/aml-1.67281a85d3a1e2f34eb367b2d0f74e1039d13396e510f363cd8766632106d1ec.ur.png) + +2. ایک نیا تجربہ نام، ہدف کالم (DEATH_EVENT) اور وہ کمپیوٹ کلسٹر درج کریں جو ہم نے بنایا تھا۔ Next پر کلک کریں۔ + + ![28](../../../../translated_images/aml-2.c9fb9cffb39ccbbe21ab9810ae937195d41a489744e15cff2b8477ed4dcae1ec.ur.png) + +3. "Classification" منتخب کریں اور Finish پر کلک کریں۔ یہ مرحلہ کمپیوٹ کلسٹر کے سائز پر منحصر ہے، 30 منٹ سے 1 گھنٹے تک لے سکتا ہے۔ + + ![30](../../../../translated_images/aml-3.a7952e4295f38cc6cdb0c7ed6dc71ea756b7fb5697ec126bc1220f87c5fa9231.ur.png) + +4. جب رن مکمل ہو جائے، "Automated ML" ٹیب پر کلک کریں، اپنے رن پر کلک کریں، اور "Best model summary" کارڈ میں الگورتھم پر کلک کریں۔ + + ![31](../../../../translated_images/aml-4.7a627e09cb6f16d0aa246059d9faee3d1725cc4258d0c8df15e801f73afc7e2c.ur.png) + +یہاں آپ AutoML کے ذریعے تیار کردہ بہترین ماڈل کی تفصیلی وضاحت دیکھ سکتے ہیں۔ آپ ماڈلز ٹیب میں دیگر ماڈلز کو بھی دریافت کر سکتے ہیں۔ چند منٹ نکال کر ماڈلز کو Explanations (preview) بٹن میں دیکھیں۔ جب آپ اس ماڈل کا انتخاب کر لیں جسے آپ استعمال کرنا چاہتے ہیں (یہاں ہم AutoML کے منتخب کردہ بہترین ماڈل کو منتخب کریں گے)، ہم دیکھیں گے کہ اسے کیسے تعینات کیا جا سکتا ہے۔ + +## 3. کم کوڈ/بغیر کوڈ ماڈل کی تعیناتی اور اینڈ پوائنٹ کا استعمال +### 3.1 ماڈل کی تعیناتی + +خودکار مشین لرننگ انٹرفیس آپ کو بہترین ماڈل کو ویب سروس کے طور پر چند مراحل میں تعینات کرنے کی اجازت دیتا ہے۔ تعیناتی ماڈل کے انضمام کا عمل ہے تاکہ یہ نئے ڈیٹا کی بنیاد پر پیش گوئیاں کر سکے اور ممکنہ مواقع کے علاقوں کی نشاندہی کر سکے۔ اس پروجیکٹ کے لیے، ویب سروس پر تعیناتی کا مطلب یہ ہے کہ طبی ایپلیکیشنز ماڈل کو استعمال کر سکیں گی تاکہ اپنے مریضوں کے دل کے دورے کے خطرے کی لائیو پیش گوئیاں کر سکیں۔ + +بہترین ماڈل کی وضاحت میں، "Deploy" بٹن پر کلک کریں۔ + +![deploy-1](../../../../translated_images/deploy-1.ddad725acadc84e34553c3d09e727160faeb32527a9fb8b904c0f99235a34bb6.ur.png) + +15. اسے ایک نام، وضاحت، کمپیوٹ کی قسم (Azure Container Instance) دیں، تصدیق کو فعال کریں اور Deploy پر کلک کریں۔ یہ مرحلہ مکمل ہونے میں تقریباً 20 منٹ لگ سکتے ہیں۔ تعیناتی کے عمل میں کئی مراحل شامل ہیں، بشمول ماڈل کو رجسٹر کرنا، وسائل تیار کرنا، اور انہیں ویب سروس کے لیے ترتیب دینا۔ Deploy status کے تحت ایک اسٹیٹس پیغام ظاہر ہوتا ہے۔ تعیناتی کی حیثیت کو چیک کرنے کے لیے وقتاً فوقتاً Refresh منتخب کریں۔ جب حیثیت "Healthy" ہو تو یہ تعینات اور چل رہا ہے۔ + +![deploy-2](../../../../translated_images/deploy-2.94dbb13f239086473aa4bf814342fd40483d136849b080f02bafbb995383940e.ur.png) + +16. ایک بار تعینات ہونے کے بعد، Endpoint ٹیب پر کلک کریں اور اس اینڈ پوائنٹ پر کلک کریں جو آپ نے ابھی تعینات کیا ہے۔ یہاں آپ اینڈ پوائنٹ کے بارے میں تمام تفصیلات حاصل کر سکتے ہیں۔ + +![deploy-3](../../../../translated_images/deploy-3.fecefef070e8ef3b28e802326d107f61ac4e672d20bf82d05f78d025f9e6c611.ur.png) + +زبردست! اب جب کہ ہمارے پاس ایک ماڈل تعینات ہے، ہم اینڈ پوائنٹ کا استعمال شروع کر سکتے ہیں۔ + +### 3.2 اینڈ پوائنٹ کا استعمال + +"Consume" ٹیب پر کلک کریں۔ یہاں آپ کو REST اینڈ پوائنٹ اور کھپت کے آپشن میں ایک Python اسکرپٹ ملے گا۔ Python کوڈ کو پڑھنے کے لیے کچھ وقت نکالیں۔ + +یہ اسکرپٹ آپ کے مقامی مشین سے براہ راست چلایا جا سکتا ہے اور آپ کے اینڈ پوائنٹ کو استعمال کرے گا۔ + +![35](../../../../translated_images/consumption-1.700abd196452842a020c7d745908637a6e4c5c50494ad1217be80e283e0de154.ur.png) + +ان دو لائنوں کو چیک کرنے کے لیے ایک لمحہ نکالیں: + +```python +url = 'http://98e3715f-xxxx-xxxx-xxxx-9ec22d57b796.centralus.azurecontainer.io/score' +api_key = '' # Replace this with the API key for the web service +``` +`url` متغیر Consume ٹیب میں پایا جانے والا REST اینڈ پوائنٹ ہے اور `api_key` متغیر پرائمری کلید ہے جو Consume ٹیب میں بھی پائی جاتی ہے (صرف اس صورت میں جب آپ نے تصدیق کو فعال کیا ہو)۔ یہ اسکرپٹ اینڈ پوائنٹ کو استعمال کرنے کا طریقہ ہے۔ + +18. اسکرپٹ کو چلانے پر، آپ کو درج ذیل آؤٹ پٹ نظر آنا چاہیے: + ```python + b'"{\\"result\\": [true]}"' + ``` +اس کا مطلب ہے کہ دیے گئے ڈیٹا کے لیے دل کی ناکامی کی پیش گوئی درست ہے۔ یہ منطقی ہے کیونکہ اگر آپ اسکرپٹ میں خودکار طور پر تیار کردہ ڈیٹا کو قریب سے دیکھیں، تو سب کچھ ڈیفالٹ کے طور پر 0 اور false پر ہے۔ آپ درج ذیل ان پٹ نمونے کے ساتھ ڈیٹا کو تبدیل کر سکتے ہیں: + +```python +data = { + "data": + [ + { + 'age': "0", + 'anaemia': "false", + 'creatinine_phosphokinase': "0", + 'diabetes': "false", + 'ejection_fraction': "0", + 'high_blood_pressure': "false", + 'platelets': "0", + 'serum_creatinine': "0", + 'serum_sodium': "0", + 'sex': "false", + 'smoking': "false", + 'time': "0", + }, + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} +``` +اسکرپٹ کو درج ذیل آؤٹ پٹ دینا چاہیے: + ```python + b'"{\\"result\\": [true, false]}"' + ``` + +مبارک ہو! آپ نے ماڈل کو تعینات کیا، اسے استعمال کیا اور Azure ML پر تربیت دی! + +> **_نوٹ:_** جب آپ پروجیکٹ مکمل کر لیں، تو تمام وسائل کو حذف کرنا نہ بھولیں۔ + +## 🚀 چیلنج + +AutoML کے ذریعے تیار کردہ ٹاپ ماڈلز کی وضاحتوں اور تفصیلات کو غور سے دیکھیں۔ یہ سمجھنے کی کوشش کریں کہ بہترین ماڈل دوسرے ماڈلز سے کیوں بہتر ہے۔ کون سے الگورتھمز کا موازنہ کیا گیا؟ ان میں کیا فرق ہے؟ اس کیس میں بہترین ماڈل کیوں بہتر کارکردگی کا مظاہرہ کر رہا ہے؟ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/35) + +## جائزہ اور خود مطالعہ + +اس سبق میں، آپ نے کلاؤڈ میں کم کوڈ/بغیر کوڈ کے انداز میں دل کی ناکامی کے خطرے کی پیش گوئی کے لیے ماڈل کو تربیت دینے، تعینات کرنے اور استعمال کرنے کا طریقہ سیکھا۔ اگر آپ نے ابھی تک ایسا نہیں کیا ہے، تو AutoML کے ذریعے تیار کردہ ٹاپ ماڈلز کی وضاحتوں میں مزید گہرائی میں جائیں اور یہ سمجھنے کی کوشش کریں کہ بہترین ماڈل دوسروں سے کیوں بہتر ہے۔ + +آپ Low code/No code AutoML کے بارے میں مزید جاننے کے لیے یہ [دستاویزات](https://docs.microsoft.com/azure/machine-learning/tutorial-first-experiment-automated-ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) پڑھ سکتے ہیں۔ + +## اسائنمنٹ + +[Azure ML پر Low code/No code ڈیٹا سائنس پروجیکٹ](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/assignment.md b/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/assignment.md new file mode 100644 index 00000000..ef412720 --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/18-Low-Code/assignment.md @@ -0,0 +1,25 @@ + +# ایزور ایم ایل پر لو کوڈ/نو کوڈ ڈیٹا سائنس پروجیکٹ + +## ہدایات + +ہم نے دیکھا کہ ایزور ایم ایل پلیٹ فارم کو استعمال کرتے ہوئے ماڈل کو لو کوڈ/نو کوڈ انداز میں ٹرین، ڈیپلائے اور استعمال کیسے کیا جا سکتا ہے۔ اب کچھ ڈیٹا تلاش کریں جسے آپ ایک اور ماڈل کو ٹرین کرنے، ڈیپلائے کرنے اور استعمال کرنے کے لیے استعمال کر سکیں۔ آپ [Kaggle](https://kaggle.com) اور [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) پر ڈیٹا سیٹس تلاش کر سکتے ہیں۔ + +## معیار + +| بہترین | مناسب | بہتری کی ضرورت | +|--------|-------|----------------| +|جب آپ نے ڈیٹا اپلوڈ کیا تو آپ نے فیچرز کی قسم کو ضرورت کے مطابق تبدیل کرنے کا خیال رکھا۔ آپ نے ڈیٹا کو صاف کیا اگر ضرورت تھی۔ آپ نے آٹو ایم ایل کے ذریعے ڈیٹا سیٹ پر ٹریننگ کی اور ماڈل کی وضاحتوں کو چیک کیا۔ آپ نے بہترین ماڈل کو ڈیپلائے کیا اور اسے استعمال کرنے کے قابل تھے۔ | جب آپ نے ڈیٹا اپلوڈ کیا تو آپ نے فیچرز کی قسم کو ضرورت کے مطابق تبدیل کرنے کا خیال رکھا۔ آپ نے آٹو ایم ایل کے ذریعے ڈیٹا سیٹ پر ٹریننگ کی، بہترین ماڈل کو ڈیپلائے کیا اور اسے استعمال کرنے کے قابل تھے۔ | آپ نے آٹو ایم ایل کے ذریعے ٹرین کیے گئے بہترین ماڈل کو ڈیپلائے کیا اور اسے استعمال کرنے کے قابل تھے۔ | + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/19-Azure/README.md b/translations/ur/5-Data-Science-In-Cloud/19-Azure/README.md new file mode 100644 index 00000000..b700e317 --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/19-Azure/README.md @@ -0,0 +1,323 @@ + +# کلاؤڈ میں ڈیٹا سائنس: "Azure ML SDK" کا طریقہ + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](../../sketchnotes/19-DataScience-Cloud.png)| +|:---:| +| کلاؤڈ میں ڈیٹا سائنس: Azure ML SDK - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +فہرستِ مضامین: + +- [کلاؤڈ میں ڈیٹا سائنس: "Azure ML SDK" کا طریقہ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [لیکچر سے پہلے کا کوئز](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1. تعارف](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.1 Azure ML SDK کیا ہے؟](../../../../5-Data-Science-In-Cloud/19-Azure) + - [1.2 ہارٹ فیل کی پیش گوئی کے پروجیکٹ اور ڈیٹاسیٹ کا تعارف](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2. Azure ML SDK کے ساتھ ماڈل کی تربیت](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.1 Azure ML ورک اسپیس بنائیں](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.2 کمپیوٹ انسٹینس بنائیں](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.3 ڈیٹاسیٹ لوڈ کرنا](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.4 نوٹ بکس بنانا](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5 ماڈل کی تربیت](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.1 ورک اسپیس، تجربہ، کمپیوٹ کلسٹر اور ڈیٹاسیٹ سیٹ اپ کریں](../../../../5-Data-Science-In-Cloud/19-Azure) + - [2.5.2 آٹو ایم ایل کنفیگریشن اور تربیت](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3. Azure ML SDK کے ساتھ ماڈل کی تعیناتی اور اینڈ پوائنٹ کا استعمال](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.1 بہترین ماڈل محفوظ کرنا](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.2 ماڈل کی تعیناتی](../../../../5-Data-Science-In-Cloud/19-Azure) + - [3.3 اینڈ پوائنٹ کا استعمال](../../../../5-Data-Science-In-Cloud/19-Azure) + - [🚀 چیلنج](../../../../5-Data-Science-In-Cloud/19-Azure) + - [لیکچر کے بعد کا کوئز](../../../../5-Data-Science-In-Cloud/19-Azure) + - [جائزہ اور خود مطالعہ](../../../../5-Data-Science-In-Cloud/19-Azure) + - [اسائنمنٹ](../../../../5-Data-Science-In-Cloud/19-Azure) + +## [لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/36) + +## 1. تعارف + +### 1.1 Azure ML SDK کیا ہے؟ + +ڈیٹا سائنسدان اور AI ڈویلپرز Azure Machine Learning SDK کا استعمال کرتے ہیں تاکہ Azure Machine Learning سروس کے ساتھ مشین لرننگ ورک فلو بنائیں اور چلائیں۔ آپ اس سروس کے ساتھ کسی بھی Python ماحول میں کام کر سکتے ہیں، جیسے Jupyter Notebooks، Visual Studio Code، یا آپ کا پسندیدہ Python IDE۔ + +SDK کے اہم پہلو شامل ہیں: + +- مشین لرننگ تجربات میں استعمال ہونے والے ڈیٹاسیٹس کی دریافت، تیاری اور لائف سائیکل کا انتظام۔ +- مشین لرننگ تجربات کی نگرانی، لاگنگ، اور تنظیم کے لیے کلاؤڈ وسائل کا انتظام۔ +- ماڈلز کی تربیت مقامی طور پر یا کلاؤڈ وسائل کے ذریعے، بشمول GPU-تیز ماڈل تربیت۔ +- آٹومیٹڈ مشین لرننگ کا استعمال، جو کنفیگریشن پیرامیٹرز اور تربیتی ڈیٹا قبول کرتا ہے۔ یہ الگورتھمز اور ہائپرپیرامیٹر سیٹنگز کے ذریعے خودکار طور پر بہترین ماڈل تلاش کرتا ہے۔ +- ویب سروسز کو تعینات کریں تاکہ آپ کے تربیت یافتہ ماڈلز کو RESTful سروسز میں تبدیل کیا جا سکے، جو کسی بھی ایپلیکیشن میں استعمال ہو سکیں۔ + +[Azure Machine Learning SDK کے بارے میں مزید جانیں](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) + +[پچھلے سبق](../18-Low-Code/README.md) میں، ہم نے دیکھا کہ کم کوڈ/بغیر کوڈ کے انداز میں ماڈل کو کیسے تربیت دی جائے، تعینات کیا جائے اور استعمال کیا جائے۔ ہم نے ہارٹ فیل ڈیٹاسیٹ کا استعمال کرتے ہوئے ہارٹ فیل کی پیش گوئی کا ماڈل بنایا۔ اس سبق میں، ہم بالکل وہی کام کریں گے لیکن Azure Machine Learning SDK کا استعمال کرتے ہوئے۔ + +![پروجیکٹ اسکیما](../../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ur.png) + +### 1.2 ہارٹ فیل کی پیش گوئی کے پروجیکٹ اور ڈیٹاسیٹ کا تعارف + +ہارٹ فیل کی پیش گوئی کے پروجیکٹ اور ڈیٹاسیٹ کے تعارف کے لیے [یہاں دیکھیں](../18-Low-Code/README.md)۔ + +## 2. Azure ML SDK کے ساتھ ماڈل کی تربیت + +### 2.1 Azure ML ورک اسپیس بنائیں + +آسانی کے لیے، ہم جیوپیٹر نوٹ بک پر کام کریں گے۔ اس کا مطلب ہے کہ آپ کے پاس پہلے سے ہی ایک ورک اسپیس اور کمپیوٹ انسٹینس موجود ہے۔ اگر آپ کے پاس پہلے سے ورک اسپیس موجود ہے، تو آپ براہ راست سیکشن 2.3 نوٹ بک تخلیق پر جا سکتے ہیں۔ + +اگر نہیں، تو براہ کرم [پچھلے سبق](../18-Low-Code/README.md) کے سیکشن **2.1 Azure ML ورک اسپیس بنائیں** میں دی گئی ہدایات پر عمل کریں۔ + +### 2.2 کمپیوٹ انسٹینس بنائیں + +[Azure ML ورک اسپیس](https://ml.azure.com/) میں جائیں جو ہم نے پہلے بنایا تھا، کمپیوٹ مینو پر جائیں اور آپ کو دستیاب مختلف کمپیوٹ وسائل نظر آئیں گے۔ + +![کمپیوٹ انسٹینس-1](../../../../translated_images/compute-instance-1.dba347cb199ca4996b3e3d649295ed95626ba481479d3986557b9b98e76d8816.ur.png) + +آئیے جیوپیٹر نوٹ بک کے لیے کمپیوٹ انسٹینس بنائیں۔ +1. + New بٹن پر کلک کریں۔ +2. اپنے کمپیوٹ انسٹینس کو ایک نام دیں۔ +3. اپنی ترجیحات منتخب کریں: CPU یا GPU، VM سائز اور کور کی تعداد۔ +4. Create بٹن پر کلک کریں۔ + +مبارک ہو، آپ نے ایک کمپیوٹ انسٹینس بنا لیا ہے! ہم اس کمپیوٹ انسٹینس کو نوٹ بک بنانے کے لیے استعمال کریں گے [نوٹ بکس بنانے کے سیکشن](../../../../5-Data-Science-In-Cloud/19-Azure) میں۔ + +### 2.3 ڈیٹاسیٹ لوڈ کرنا + +اگر آپ نے ابھی تک ڈیٹاسیٹ اپ لوڈ نہیں کیا ہے، تو [پچھلے سبق](../18-Low-Code/README.md) کے سیکشن **2.3 ڈیٹاسیٹ لوڈ کرنا** کا حوالہ دیں۔ + +### 2.4 نوٹ بکس بنانا + +> **_نوٹ:_** اگلے مرحلے کے لیے آپ یا تو ایک نیا نوٹ بک شروع سے بنا سکتے ہیں، یا آپ [ہم نے جو نوٹ بک بنائی تھی](notebook.ipynb) اسے Azure ML اسٹوڈیو میں اپ لوڈ کر سکتے ہیں۔ اپ لوڈ کرنے کے لیے، بس "Notebook" مینو پر کلک کریں اور نوٹ بک اپ لوڈ کریں۔ + +نوٹ بکس ڈیٹا سائنس کے عمل کا ایک اہم حصہ ہیں۔ ان کا استعمال Exploratory Data Analysis (EDA) کرنے، کمپیوٹ کلسٹر کو ماڈل تربیت دینے کے لیے کال کرنے، یا اینڈ پوائنٹ تعینات کرنے کے لیے انفرنس کلسٹر کو کال کرنے کے لیے کیا جا سکتا ہے۔ + +نوٹ بک بنانے کے لیے، ہمیں ایک کمپیوٹ نوڈ کی ضرورت ہے جو جیوپیٹر نوٹ بک انسٹینس فراہم کر رہا ہو۔ [Azure ML ورک اسپیس](https://ml.azure.com/) پر واپس جائیں اور کمپیوٹ انسٹینسز پر کلک کریں۔ کمپیوٹ انسٹینسز کی فہرست میں آپ کو [ہم نے پہلے بنایا ہوا کمپیوٹ انسٹینس](../../../../5-Data-Science-In-Cloud/19-Azure) نظر آنا چاہیے۔ + +1. Applications سیکشن میں، Jupyter آپشن پر کلک کریں۔ +2. "Yes, I understand" باکس کو ٹک کریں اور Continue بٹن پر کلک کریں۔ +![نوٹ بک-1](../../../../translated_images/notebook-1.12998af7b02c83f536c11b3aeba561be16e0f05e94146600728ec64270ce1105.ur.png) +3. یہ آپ کے جیوپیٹر نوٹ بک انسٹینس کے ساتھ ایک نیا براؤزر ٹیب کھولے گا۔ "New" بٹن پر کلک کریں تاکہ نوٹ بک بنائی جا سکے۔ + +![نوٹ بک-2](../../../../translated_images/notebook-2.9a657c037e34f1cf26c0212f5ee9e2da8545b3e107c7682c55114e494167a8aa.ur.png) + +اب جب کہ ہمارے پاس ایک نوٹ بک ہے، ہم Azure ML SDK کے ساتھ ماڈل کی تربیت شروع کر سکتے ہیں۔ + +### 2.5 ماڈل کی تربیت + +سب سے پہلے، اگر آپ کو کبھی شک ہو، تو [Azure ML SDK دستاویزات](https://docs.microsoft.com/python/api/overview/azure/ml?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کا حوالہ دیں۔ اس میں ان تمام ماڈیولز کی ضروری معلومات موجود ہیں جو ہم اس سبق میں دیکھیں گے۔ + +#### 2.5.1 ورک اسپیس، تجربہ، کمپیوٹ کلسٹر اور ڈیٹاسیٹ سیٹ اپ کریں + +آپ کو کنفیگریشن فائل سے `workspace` لوڈ کرنے کی ضرورت ہے، درج ذیل کوڈ کا استعمال کریں: + +```python +from azureml.core import Workspace +ws = Workspace.from_config() +``` + +یہ `Workspace` قسم کا ایک آبجیکٹ واپس کرتا ہے جو ورک اسپیس کی نمائندگی کرتا ہے۔ پھر آپ کو درج ذیل کوڈ کا استعمال کرتے ہوئے ایک `experiment` بنانا ہوگا: + +```python +from azureml.core import Experiment +experiment_name = 'aml-experiment' +experiment = Experiment(ws, experiment_name) +``` + +ورک اسپیس سے تجربہ حاصل کرنے یا بنانے کے لیے، آپ تجربے کا نام استعمال کرتے ہوئے اس کی درخواست کرتے ہیں۔ تجربے کا نام 3-36 حروف پر مشتمل ہونا چاہیے، ایک حرف یا نمبر سے شروع ہونا چاہیے، اور صرف حروف، نمبر، انڈر اسکورز، اور ڈیشز پر مشتمل ہو سکتا ہے۔ اگر ورک اسپیس میں تجربہ نہیں ملا، تو ایک نیا تجربہ بنایا جاتا ہے۔ + +اب آپ کو تربیت کے لیے کمپیوٹ کلسٹر بنانا ہوگا، درج ذیل کوڈ کا استعمال کریں۔ نوٹ کریں کہ اس مرحلے میں چند منٹ لگ سکتے ہیں۔ + +```python +from azureml.core.compute import AmlCompute + +aml_name = "heart-f-cluster" +try: + aml_compute = AmlCompute(ws, aml_name) + print('Found existing AML compute context.') +except: + print('Creating new AML compute context.') + aml_config = AmlCompute.provisioning_configuration(vm_size = "Standard_D2_v2", min_nodes=1, max_nodes=3) + aml_compute = AmlCompute.create(ws, name = aml_name, provisioning_configuration = aml_config) + aml_compute.wait_for_completion(show_output = True) + +cts = ws.compute_targets +compute_target = cts[aml_name] +``` + +آپ ورک اسپیس سے ڈیٹاسیٹ کو ڈیٹاسیٹ کے نام کا استعمال کرتے ہوئے درج ذیل طریقے سے حاصل کر سکتے ہیں: + +```python +dataset = ws.datasets['heart-failure-records'] +df = dataset.to_pandas_dataframe() +df.describe() +``` + +#### 2.5.2 آٹو ایم ایل کنفیگریشن اور تربیت + +آٹو ایم ایل کنفیگریشن سیٹ کرنے کے لیے، [AutoMLConfig کلاس](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.automlconfig(class)?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کا استعمال کریں۔ + +جیسا کہ دستاویز میں بیان کیا گیا ہے، آپ بہت سے پیرامیٹرز کے ساتھ کھیل سکتے ہیں۔ اس پروجیکٹ کے لیے، ہم درج ذیل پیرامیٹرز استعمال کریں گے: + +- `experiment_timeout_minutes`: وہ زیادہ سے زیادہ وقت (منٹوں میں) جو تجربے کو چلنے کی اجازت ہے۔ +- `max_concurrent_iterations`: تجربے کے لیے اجازت شدہ زیادہ سے زیادہ متوازی تربیتی تکرار۔ +- `primary_metric`: تجربے کی حیثیت کا تعین کرنے کے لیے استعمال ہونے والا بنیادی میٹرک۔ +- `compute_target`: Azure Machine Learning کمپیوٹ ٹارگٹ جس پر آٹومیٹڈ مشین لرننگ تجربہ چلایا جائے۔ +- `task`: چلانے کے لیے کام کی قسم۔ یہ 'classification'، 'regression'، یا 'forecasting' ہو سکتا ہے۔ +- `training_data`: تجربے کے اندر استعمال ہونے والے تربیتی ڈیٹا۔ +- `label_column_name`: لیبل کالم کا نام۔ +- `path`: Azure Machine Learning پروجیکٹ فولڈر کا مکمل راستہ۔ +- `enable_early_stopping`: اگر اسکور مختصر مدت میں بہتر نہ ہو تو ابتدائی اختتام کو فعال کریں۔ +- `featurization`: فیچرز کے خودکار یا حسب ضرورت عمل کا اشارہ۔ +- `debug_log`: ڈیبگ معلومات لکھنے کے لیے لاگ فائل۔ + +```python +from azureml.train.automl import AutoMLConfig + +project_folder = './aml-project' + +automl_settings = { + "experiment_timeout_minutes": 20, + "max_concurrent_iterations": 3, + "primary_metric" : 'AUC_weighted' +} + +automl_config = AutoMLConfig(compute_target=compute_target, + task = "classification", + training_data=dataset, + label_column_name="DEATH_EVENT", + path = project_folder, + enable_early_stopping= True, + featurization= 'auto', + debug_log = "automl_errors.log", + **automl_settings + ) +``` + +اب جب کہ آپ کی کنفیگریشن سیٹ ہو گئی ہے، آپ درج ذیل کوڈ کا استعمال کرتے ہوئے ماڈل کی تربیت کر سکتے ہیں۔ اس مرحلے میں آپ کے کلسٹر کے سائز پر منحصر ہو کر ایک گھنٹہ لگ سکتا ہے۔ + +```python +remote_run = experiment.submit(automl_config) +``` + +آپ RunDetails ویجیٹ چلا سکتے ہیں تاکہ مختلف تجربات دکھائے جا سکیں۔ +```python +from azureml.widgets import RunDetails +RunDetails(remote_run).show() +``` + +## 3. Azure ML SDK کے ساتھ ماڈل کی تعیناتی اور اینڈ پوائنٹ کا استعمال + +### 3.1 بہترین ماڈل محفوظ کرنا + +`remote_run` [AutoMLRun](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) قسم کا ایک آبجیکٹ ہے۔ اس آبجیکٹ میں `get_output()` طریقہ موجود ہے جو بہترین رن اور متعلقہ فٹ شدہ ماڈل واپس کرتا ہے۔ + +```python +best_run, fitted_model = remote_run.get_output() +``` + +آپ بہترین ماڈل کے لیے استعمال کیے گئے پیرامیٹرز کو صرف فٹ شدہ ماڈل پرنٹ کرکے دیکھ سکتے ہیں اور بہترین ماڈل کی خصوصیات کو [get_properties()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run(class)?view=azure-ml-py#azureml_core_Run_get_properties?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) طریقہ استعمال کرکے دیکھ سکتے ہیں۔ + +```python +best_run.get_properties() +``` + +اب ماڈل کو [register_model](https://docs.microsoft.com/python/api/azureml-train-automl-client/azureml.train.automl.run.automlrun?view=azure-ml-py#register-model-model-name-none--description-none--tags-none--iteration-none--metric-none-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) طریقہ کے ساتھ رجسٹر کریں۔ +```python +model_name = best_run.properties['model_name'] +script_file_name = 'inference/score.py' +best_run.download_file('outputs/scoring_file_v_1_0_0.py', 'inference/score.py') +description = "aml heart failure project sdk" +model = best_run.register_model(model_name = model_name, + model_path = './outputs/', + description = description, + tags = None) +``` + +### 3.2 ماڈل کی تعیناتی + +ایک بار بہترین ماڈل محفوظ ہو جانے کے بعد، ہم اسے [InferenceConfig](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model.inferenceconfig?view=azure-ml-py?ocid=AID3041109) کلاس کے ساتھ تعینات کر سکتے ہیں۔ InferenceConfig تعیناتی کے لیے استعمال ہونے والے کسٹم ماحول کی کنفیگریشن سیٹنگز کی نمائندگی کرتا ہے۔ [AciWebservice](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aciwebservice?view=azure-ml-py) کلاس Azure Container Instances پر ایک ویب سروس اینڈ پوائنٹ کے طور پر تعینات کیے گئے مشین لرننگ ماڈل کی نمائندگی کرتی ہے۔ تعینات شدہ سروس ایک لوڈ بیلنسڈ، HTTP اینڈ پوائنٹ کے ساتھ ایک REST API ہے۔ آپ اس API کو ڈیٹا بھیج سکتے ہیں اور ماڈل کے ذریعے واپس کی گئی پیش گوئی حاصل کر سکتے ہیں۔ + +ماڈل کو [deploy](https://docs.microsoft.com/python/api/azureml-core/azureml.core.model(class)?view=azure-ml-py#deploy-workspace--name--models--inference-config-none--deployment-config-none--deployment-target-none--overwrite-false--show-output-false-?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) طریقہ کے ساتھ تعینات کیا جاتا ہے۔ + +```python +from azureml.core.model import InferenceConfig, Model +from azureml.core.webservice import AciWebservice + +inference_config = InferenceConfig(entry_script=script_file_name, environment=best_run.get_environment()) + +aciconfig = AciWebservice.deploy_configuration(cpu_cores = 1, + memory_gb = 1, + tags = {'type': "automl-heart-failure-prediction"}, + description = 'Sample service for AutoML Heart Failure Prediction') + +aci_service_name = 'automl-hf-sdk' +aci_service = Model.deploy(ws, aci_service_name, [model], inference_config, aciconfig) +aci_service.wait_for_deployment(True) +print(aci_service.state) +``` + +اس مرحلے میں چند منٹ لگ سکتے ہیں۔ + +### 3.3 اینڈ پوائنٹ کا استعمال + +آپ اپنے اینڈ پوائنٹ کو ایک نمونہ ان پٹ بنا کر استعمال کر سکتے ہیں: + +```python +data = { + "data": + [ + { + 'age': "60", + 'anaemia': "false", + 'creatinine_phosphokinase': "500", + 'diabetes': "false", + 'ejection_fraction': "38", + 'high_blood_pressure': "false", + 'platelets': "260000", + 'serum_creatinine': "1.40", + 'serum_sodium': "137", + 'sex': "false", + 'smoking': "false", + 'time': "130", + }, + ], +} + +test_sample = str.encode(json.dumps(data)) +``` + +اور پھر آپ اس ان پٹ کو پیش گوئی کے لیے اپنے ماڈل کو بھیج سکتے ہیں: +```python +response = aci_service.run(input_data=test_sample) +response +``` +یہ `'{"result": [false]}'` کو ظاہر کرے گا۔ اس کا مطلب ہے کہ جو مریض کا ڈیٹا ہم نے اینڈ پوائنٹ کو بھیجا تھا، اس نے پیش گوئی `false` پیدا کی، یعنی یہ شخص دل کے دورے کا شکار ہونے کا امکان نہیں رکھتا۔ + +مبارک ہو! آپ نے Azure ML پر تربیت یافتہ اور تعینات ماڈل کو Azure ML SDK کے ذریعے استعمال کر لیا ہے! + +> **_NOTE:_** جب آپ پروجیکٹ مکمل کر لیں، تو تمام وسائل کو حذف کرنا نہ بھولیں۔ + +## 🚀 چیلنج + +SDK کے ذریعے آپ بہت کچھ کر سکتے ہیں، بدقسمتی سے ہم اس سبق میں سب کچھ نہیں دیکھ سکتے۔ لیکن اچھی خبر یہ ہے کہ SDK دستاویزات کو سمجھنے کا طریقہ سیکھنا آپ کو خود سے بہت آگے لے جا سکتا ہے۔ Azure ML SDK دستاویزات کو دیکھیں اور `Pipeline` کلاس تلاش کریں جو آپ کو پائپ لائنز بنانے کی اجازت دیتی ہے۔ پائپ لائن مختلف مراحل کا مجموعہ ہے جو ورک فلو کے طور پر چلائے جا سکتے ہیں۔ + +**اشارہ:** [SDK دستاویزات](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) پر جائیں اور سرچ بار میں "Pipeline" جیسے کلیدی الفاظ ٹائپ کریں۔ آپ کو سرچ نتائج میں `azureml.pipeline.core.Pipeline` کلاس ملنی چاہیے۔ + +## [لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/37) + +## جائزہ اور خود مطالعہ + +اس سبق میں، آپ نے سیکھا کہ Azure ML SDK کے ذریعے کلاؤڈ میں دل کی ناکامی کے خطرے کی پیش گوئی کے لیے ماڈل کو تربیت دینا، تعینات کرنا اور استعمال کرنا۔ مزید معلومات کے لیے اس [دستاویزات](https://docs.microsoft.com/python/api/overview/azure/ml/?view=azure-ml-py?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) کو دیکھیں۔ Azure ML SDK کے ساتھ اپنا ماڈل بنانے کی کوشش کریں۔ + +## اسائنمنٹ + +[Azure ML SDK کا استعمال کرتے ہوئے ڈیٹا سائنس پروجیکٹ](assignment.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/19-Azure/assignment.md b/translations/ur/5-Data-Science-In-Cloud/19-Azure/assignment.md new file mode 100644 index 00000000..1b19445e --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/19-Azure/assignment.md @@ -0,0 +1,25 @@ + +# Azure ML SDK کا استعمال کرتے ہوئے ڈیٹا سائنس پروجیکٹ + +## ہدایات + +ہم نے دیکھا کہ Azure ML پلیٹ فارم کا استعمال کرتے ہوئے ماڈل کو ٹرین، ڈپلائے اور استعمال کیسے کیا جاتا ہے Azure ML SDK کے ساتھ۔ اب کچھ ڈیٹا تلاش کریں جسے آپ کسی دوسرے ماڈل کو ٹرین کرنے، ڈپلائے کرنے اور استعمال کرنے کے لیے استعمال کر سکیں۔ آپ [Kaggle](https://kaggle.com) اور [Azure Open Datasets](https://azure.microsoft.com/services/open-datasets/catalog?WT.mc_id=academic-77958-bethanycheum&ocid=AID3041109) پر ڈیٹاسیٹس تلاش کر سکتے ہیں۔ + +## معیار + +| بہترین | مناسب | بہتری کی ضرورت | +|--------|-------|----------------| +|جب آپ نے AutoML Configuration کیا، تو آپ نے SDK دستاویزات کو دیکھا کہ کون سے پیرامیٹرز استعمال کیے جا سکتے ہیں۔ آپ نے AutoML کے ذریعے Azure ML SDK کا استعمال کرتے ہوئے ایک ڈیٹاسیٹ پر ٹریننگ کی، اور ماڈل کی وضاحتیں چیک کیں۔ آپ نے بہترین ماڈل کو ڈپلائے کیا اور Azure ML SDK کے ذریعے اسے استعمال کرنے کے قابل تھے۔ | آپ نے AutoML کے ذریعے Azure ML SDK کا استعمال کرتے ہوئے ایک ڈیٹاسیٹ پر ٹریننگ کی، اور ماڈل کی وضاحتیں چیک کیں۔ آپ نے بہترین ماڈل کو ڈپلائے کیا اور Azure ML SDK کے ذریعے اسے استعمال کرنے کے قابل تھے۔ | آپ نے AutoML کے ذریعے Azure ML SDK کا استعمال کرتے ہوئے ایک ڈیٹاسیٹ پر ٹریننگ کی۔ آپ نے بہترین ماڈل کو ڈپلائے کیا اور Azure ML SDK کے ذریعے اسے استعمال کرنے کے قابل تھے۔ | + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/5-Data-Science-In-Cloud/README.md b/translations/ur/5-Data-Science-In-Cloud/README.md new file mode 100644 index 00000000..d3574dbc --- /dev/null +++ b/translations/ur/5-Data-Science-In-Cloud/README.md @@ -0,0 +1,35 @@ + +# کلاؤڈ میں ڈیٹا سائنس + +![cloud-picture](../../../translated_images/cloud-picture.f5526de3c6c6387b2d656ba94f019b3352e5e3854a78440e4fb00c93e2dea675.ur.jpg) + +> تصویر [Jelleke Vanooteghem](https://unsplash.com/@ilumire) کی جانب سے [Unsplash](https://unsplash.com/s/photos/cloud?orientation=landscape) پر دستیاب ہے۔ + +جب بڑے ڈیٹا کے ساتھ ڈیٹا سائنس کرنے کی بات آتی ہے، تو کلاؤڈ ایک انقلابی تبدیلی ثابت ہو سکتا ہے۔ اگلے تین اسباق میں، ہم دیکھیں گے کہ کلاؤڈ کیا ہے اور یہ کیوں مددگار ثابت ہو سکتا ہے۔ ہم دل کی ناکامی کے ڈیٹا سیٹ کا جائزہ لیں گے اور ایک ماڈل بنائیں گے جو کسی شخص کے دل کی ناکامی کے امکانات کا اندازہ لگانے میں مدد کرے گا۔ ہم کلاؤڈ کی طاقت کا استعمال کرتے ہوئے ماڈل کو دو مختلف طریقوں سے تربیت دیں گے، تعینات کریں گے اور استعمال کریں گے۔ ایک طریقہ صرف یوزر انٹرفیس کے ذریعے، جسے "لو کوڈ/نو کوڈ" انداز کہا جاتا ہے، اور دوسرا طریقہ Azure Machine Learning Software Developer Kit (Azure ML SDK) کا استعمال کرتے ہوئے۔ + +![project-schema](../../../translated_images/project-schema.420e56d495624541eaecf2b737f138c86fb7d8162bb1c0bf8783c350872ffc4d.ur.png) + +### موضوعات + +1. [ڈیٹا سائنس کے لیے کلاؤڈ کا استعمال کیوں؟](17-Introduction/README.md) +2. [کلاؤڈ میں ڈیٹا سائنس: "لو کوڈ/نو کوڈ" طریقہ](18-Low-Code/README.md) +3. [کلاؤڈ میں ڈیٹا سائنس: "Azure ML SDK" طریقہ](19-Azure/README.md) + +### کریڈٹس +یہ اسباق ☁️ اور 💕 کے ساتھ [Maud Levy](https://twitter.com/maudstweets) اور [Tiffany Souterre](https://twitter.com/TiffanySouterre) نے لکھے ہیں۔ + +دل کی ناکامی کی پیشن گوئی کے پروجیکٹ کے لیے ڈیٹا [ +Larxel](https://www.kaggle.com/andrewmvd) کی جانب سے [Kaggle](https://www.kaggle.com/andrewmvd/heart-failure-clinical-data) پر دستیاب ہے۔ یہ [Attribution 4.0 International (CC BY 4.0)](https://creativecommons.org/licenses/by/4.0/) کے تحت لائسنس یافتہ ہے۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/README.md b/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/README.md new file mode 100644 index 00000000..d08d4281 --- /dev/null +++ b/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/README.md @@ -0,0 +1,155 @@ + +# ڈیٹا سائنس حقیقی دنیا میں + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-RealWorld.png) | +| :--------------------------------------------------------------------------------------------------------------: | +| حقیقی دنیا میں ڈیٹا سائنس - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ہم اس تعلیمی سفر کے اختتام کے قریب پہنچ چکے ہیں! + +ہم نے ڈیٹا سائنس اور اخلاقیات کی تعریفوں سے آغاز کیا، ڈیٹا تجزیہ اور بصریات کے مختلف آلات اور تکنیکوں کو دریافت کیا، ڈیٹا سائنس کے لائف سائیکل کا جائزہ لیا، اور کلاؤڈ کمپیوٹنگ سروسز کے ذریعے ڈیٹا سائنس ورک فلو کو بڑھانے اور خودکار کرنے کے طریقے دیکھے۔ تو آپ شاید سوچ رہے ہوں گے: _"میں ان تمام سیکھنے کو حقیقی دنیا کے سیاق و سباق میں کیسے نقشہ بنا سکتا ہوں؟"_ + +اس سبق میں، ہم صنعت میں ڈیٹا سائنس کے حقیقی دنیا کے اطلاقات کا جائزہ لیں گے اور تحقیق، ڈیجیٹل ہیومینٹیز، اور پائیداری کے سیاق و سباق میں مخصوص مثالوں پر غور کریں گے۔ ہم طلباء کے پروجیکٹ کے مواقع پر نظر ڈالیں گے اور آپ کے تعلیمی سفر کو جاری رکھنے میں مدد کے لیے مفید وسائل کے ساتھ اختتام کریں گے! + +## لیکچر سے پہلے کا کوئز + +[لیکچر سے پہلے کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/38) + +## ڈیٹا سائنس + صنعت + +AI کی جمہوریت کی بدولت، ڈویلپرز کے لیے AI سے چلنے والے فیصلے اور ڈیٹا سے چلنے والی بصیرت کو صارف کے تجربات اور ترقیاتی ورک فلو میں ڈیزائن اور شامل کرنا آسان ہو گیا ہے۔ یہاں کچھ مثالیں ہیں کہ ڈیٹا سائنس کو صنعت میں حقیقی دنیا کے اطلاقات میں کیسے "لاگو" کیا جاتا ہے: + + * [Google Flu Trends](https://www.wired.com/2015/10/can-learn-epic-failure-google-flu-trends/) نے ڈیٹا سائنس کا استعمال کرتے ہوئے تلاش کے الفاظ کو فلو کے رجحانات سے جوڑا۔ اگرچہ اس طریقہ کار میں خامیاں تھیں، لیکن اس نے ڈیٹا سے چلنے والی صحت کی پیش گوئیوں کے امکانات (اور چیلنجز) کے بارے میں آگاہی پیدا کی۔ + + * [UPS Routing Predictions](https://www.technologyreview.com/2018/11/21/139000/how-ups-uses-ai-to-outsmart-bad-weather/) - وضاحت کرتا ہے کہ UPS ڈیٹا سائنس اور مشین لرننگ کا استعمال کرتے ہوئے موسم کی صورتحال، ٹریفک کے نمونے، ڈیلیوری کی آخری تاریخ اور مزید کو مدنظر رکھتے ہوئے ڈیلیوری کے لیے بہترین راستوں کی پیش گوئی کیسے کرتا ہے۔ + + * [NYC Taxicab Route Visualization](http://chriswhong.github.io/nyctaxi/) - [Freedom Of Information Laws](https://chriswhong.com/open-data/foil_nyc_taxi/) کے ذریعے جمع کردہ ڈیٹا نے NYC ٹیکسیوں کی زندگی کے ایک دن کو بصری بنایا، جس سے ہمیں یہ سمجھنے میں مدد ملی کہ وہ مصروف شہر میں کیسے نیویگیٹ کرتے ہیں، وہ کتنی رقم کماتے ہیں، اور ہر 24 گھنٹے کی مدت میں سفر کا دورانیہ۔ + + * [Uber Data Science Workbench](https://eng.uber.com/dsw/) - روزانہ لاکھوں اوبر ٹرپس سے جمع کردہ ڈیٹا (پک اپ اور ڈراپ آف مقامات، سفر کا دورانیہ، ترجیحی راستے وغیرہ) کا استعمال کرتے ہوئے ڈیٹا اینالیٹکس ٹول بنایا گیا جو قیمتوں، حفاظت، دھوکہ دہی کی شناخت اور نیویگیشن کے فیصلوں میں مدد کرتا ہے۔ + + * [Sports Analytics](https://towardsdatascience.com/scope-of-analytics-in-sports-world-37ed09c39860) - _پیش گوئی کے تجزیے_ (ٹیم اور کھلاڑی کا تجزیہ - جیسے [Moneyball](https://datasciencedegree.wisconsin.edu/blog/moneyball-proves-importance-big-data-big-ideas/) - اور مداحوں کا انتظام) اور _ڈیٹا بصریات_ (ٹیم اور مداحوں کے ڈیش بورڈز، کھیل وغیرہ) پر توجہ مرکوز کرتا ہے، جیسے ٹیلنٹ اسکاؤٹنگ، کھیلوں کی شرط لگانا اور انوینٹری/مقام کا انتظام۔ + + * [Data Science in Banking](https://data-flair.training/blogs/data-science-in-banking/) - مالی صنعت میں ڈیٹا سائنس کی قدر کو اجاگر کرتا ہے، جس میں خطرے کی ماڈلنگ اور دھوکہ دہی کی شناخت سے لے کر کسٹمر کی تقسیم، حقیقی وقت کی پیش گوئی اور سفارش کرنے والے نظام شامل ہیں۔ پیش گوئی کے تجزیے اہم اقدامات جیسے [کریڈٹ اسکورز](https://dzone.com/articles/using-big-data-and-predictive-analytics-for-credit) کو بھی چلاتے ہیں۔ + + * [Data Science in Healthcare](https://data-flair.training/blogs/data-science-in-healthcare/) - طبی امیجنگ (جیسے MRI، ایکس رے، CT-Scan)، جینومکس (DNA سیکوینسنگ)، دوا کی ترقی (خطرے کی تشخیص، کامیابی کی پیش گوئی)، پیش گوئی کے تجزیے (مریض کی دیکھ بھال اور سپلائی لاجسٹکس)، بیماری کی ٹریکنگ اور روک تھام وغیرہ جیسے اطلاقات کو اجاگر کرتا ہے۔ + +![حقیقی دنیا میں ڈیٹا سائنس کے اطلاقات](../../../../translated_images/data-science-applications.4e5019cd8790ebac2277ff5f08af386f8727cac5d30f77727c7090677e6adb9c.ur.png) تصویر کا کریڈٹ: [Data Flair: 6 Amazing Data Science Applications ](https://data-flair.training/blogs/data-science-applications/) + +یہ شکل دیگر ڈومینز اور ڈیٹا سائنس تکنیکوں کے اطلاقات کی مثالیں دکھاتی ہے۔ کیا آپ دیگر اطلاقات کو دریافت کرنا چاہتے ہیں؟ نیچے [Review & Self Study](../../../../6-Data-Science-In-Wild/20-Real-World-Examples) سیکشن دیکھیں۔ + +## ڈیٹا سائنس + تحقیق + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Research.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ڈیٹا سائنس اور تحقیق - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +جبکہ حقیقی دنیا کے اطلاقات اکثر صنعت کے استعمال کے معاملات پر توجہ مرکوز کرتے ہیں، _تحقیق_ کے اطلاقات اور پروجیکٹس دو نقطہ نظر سے مفید ہو سکتے ہیں: + +* _جدت کے مواقع_ - جدید تصورات کے تیز پروٹوٹائپنگ اور اگلی نسل کے اطلاقات کے لیے صارف کے تجربات کی جانچ کرنا۔ +* _تعیناتی کے چیلنجز_ - حقیقی دنیا کے سیاق و سباق میں ڈیٹا سائنس ٹیکنالوجیز کے ممکنہ نقصانات یا غیر ارادی نتائج کی تحقیقات کرنا۔ + +طلباء کے لیے، یہ تحقیقی پروجیکٹس سیکھنے اور تعاون کے مواقع فراہم کر سکتے ہیں جو آپ کی موضوع کی سمجھ کو بہتر بنا سکتے ہیں، اور متعلقہ لوگوں یا ٹیموں کے ساتھ آپ کی آگاہی اور مشغولیت کو وسیع کر سکتے ہیں جو دلچسپی کے شعبوں میں کام کر رہے ہیں۔ تو تحقیقی پروجیکٹس کیسے نظر آتے ہیں اور وہ کیسے اثر ڈال سکتے ہیں؟ + +آئیے ایک مثال دیکھتے ہیں - [MIT Gender Shades Study](http://gendershades.org/overview.html) جوائے بولااموینی (MIT میڈیا لیبز) کی طرف سے ایک [نمایاں تحقیقی مقالہ](http://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf) کے ساتھ، جسے ٹمنیت گیبرو (اس وقت مائیکروسافٹ ریسرچ میں) کے ساتھ شریک تحریر کیا گیا تھا، جس نے توجہ مرکوز کی: + + * **کیا:** تحقیقی پروجیکٹ کا مقصد _خودکار چہرے کے تجزیے کے الگورتھمز اور ڈیٹا سیٹس میں موجود تعصب کا جائزہ لینا_ تھا، جنس اور جلد کی قسم کی بنیاد پر۔ + * **کیوں:** چہرے کا تجزیہ قانون نافذ کرنے، ہوائی اڈے کی حفاظت، بھرتی کے نظام اور مزید جیسے شعبوں میں استعمال ہوتا ہے - ایسے سیاق و سباق جہاں غلط درجہ بندی (جیسے تعصب کی وجہ سے) متاثرہ افراد یا گروہوں کو ممکنہ اقتصادی اور سماجی نقصانات پہنچا سکتی ہے۔ استعمال میں انصاف کے لیے تعصبات کو سمجھنا (اور ختم یا کم کرنا) کلیدی ہے۔ + * **کیسے:** محققین نے تسلیم کیا کہ موجودہ بینچ مارکس نے زیادہ تر ہلکی جلد والے مضامین استعمال کیے، اور ایک نیا ڈیٹا سیٹ (1000+ تصاویر) تیار کیا جو جنس اور جلد کی قسم کے لحاظ سے _زیادہ متوازن_ تھا۔ ڈیٹا سیٹ کو تین جنس کی درجہ بندی کی مصنوعات (مائیکروسافٹ، IBM اور Face++) کی درستگی کا جائزہ لینے کے لیے استعمال کیا گیا۔ + +نتائج نے ظاہر کیا کہ اگرچہ مجموعی طور پر درجہ بندی کی درستگی اچھی تھی، مختلف ذیلی گروپوں کے درمیان غلطی کی شرح میں نمایاں فرق تھا - **غلط جنس کی شناخت** خواتین یا گہری جلد والے افراد کے لیے زیادہ تھی، جو تعصب کی نشاندہی کرتی ہے۔ + +**اہم نتائج:** ڈیٹا سائنس کو زیادہ _نمائندہ ڈیٹا سیٹس_ (متوازن ذیلی گروپ) اور زیادہ _شامل ٹیموں_ (متنوع پس منظر) کی ضرورت ہے تاکہ AI حل میں ایسے تعصبات کو جلد پہچاننے اور ختم یا کم کرنے میں مدد ملے۔ اس طرح کی تحقیقی کوششیں بہت سی تنظیموں کے لیے _ذمہ دار AI_ کے اصولوں اور طریقوں کی وضاحت میں بھی اہم ہیں تاکہ ان کے AI مصنوعات اور عمل میں انصاف کو بہتر بنایا جا سکے۔ + +**مائیکروسافٹ میں متعلقہ تحقیقی کوششوں کے بارے میں جاننا چاہتے ہیں؟** + +* [Microsoft Research Projects](https://www.microsoft.com/research/research-area/artificial-intelligence/?facet%5Btax%5D%5Bmsr-research-area%5D%5B%5D=13556&facet%5Btax%5D%5Bmsr-content-type%5D%5B%5D=msr-project) پر مصنوعی ذہانت کے بارے میں مزید جانیں۔ +* [Microsoft Research Data Science Summer School](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/) سے طلباء کے پروجیکٹس کو دریافت کریں۔ +* [Fairlearn](https://fairlearn.org/) پروجیکٹ اور [Responsible AI](https://www.microsoft.com/en-us/ai/responsible-ai?activetab=pivot1%3aprimaryr6) اقدامات کو دیکھیں۔ + +## ڈیٹا سائنس + ہیومینٹیز + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Humanities.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ڈیٹا سائنس اور ڈیجیٹل ہیومینٹیز - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +ڈیجیٹل ہیومینٹیز [کی تعریف کی گئی ہے](https://digitalhumanities.stanford.edu/about-dh-stanford) بطور "طریقوں اور نقطہ نظر کا مجموعہ جو کمپیوٹیشنل طریقوں کو انسانی تحقیق کے ساتھ جوڑتا ہے"۔ [اسٹینفورڈ پروجیکٹس](https://digitalhumanities.stanford.edu/projects) جیسے _"تاریخ کو دوبارہ شروع کرنا"_ اور _"شاعرانہ سوچ"_ ڈیجیٹل ہیومینٹیز اور ڈیٹا سائنس کے درمیان تعلق کو ظاہر کرتے ہیں، تکنیکوں جیسے نیٹ ورک تجزیہ، معلومات کی بصریات، مکانی اور متن تجزیہ پر زور دیتے ہیں جو ہمیں تاریخی اور ادبی ڈیٹا سیٹس کو دوبارہ دیکھنے میں مدد دے سکتے ہیں تاکہ نئے بصیرت اور نقطہ نظر حاصل کیے جا سکیں۔ + +*کیا آپ اس شعبے میں کسی پروجیکٹ کو دریافت اور بڑھانا چاہتے ہیں؟* + +["Emily Dickinson and the Meter of Mood"](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671) کو دیکھیں - [Jen Looper](https://twitter.com/jenlooper) کی طرف سے ایک بہترین مثال جو پوچھتی ہے کہ ہم ڈیٹا سائنس کا استعمال کرتے ہوئے مانوس شاعری کو دوبارہ کیسے دیکھ سکتے ہیں اور اس کے معنی اور اس کے مصنف کی شراکت کو نئے سیاق و سباق میں دوبارہ جانچ سکتے ہیں۔ مثال کے طور پر، _کیا ہم کسی نظم کے لہجے یا جذبات کا تجزیہ کرکے اس موسم کی پیش گوئی کر سکتے ہیں جس میں یہ لکھی گئی تھی_ - اور اس سے متعلقہ مدت کے دوران مصنف کی ذہنی حالت کے بارے میں ہمیں کیا پتہ چلتا ہے؟ + +اس سوال کا جواب دینے کے لیے، ہم اپنے ڈیٹا سائنس لائف سائیکل کے مراحل پر عمل کرتے ہیں: + * [`ڈیٹا حاصل کرنا`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#acquiring-the-dataset) - تجزیہ کے لیے متعلقہ ڈیٹا سیٹ جمع کرنا۔ اختیارات میں API کا استعمال شامل ہے (جیسے [Poetry DB API](https://poetrydb.org/index.html)) یا ویب صفحات کو سکریپ کرنا (جیسے [Project Gutenberg](https://www.gutenberg.org/files/12242/12242-h/12242-h.htm)) جیسے ٹولز کا استعمال کرتے ہوئے [Scrapy](https://scrapy.org/)۔ + * [`ڈیٹا صاف کرنا`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#clean-the-data) - وضاحت کرتا ہے کہ متن کو بنیادی ٹولز جیسے Visual Studio Code اور Microsoft Excel کا استعمال کرتے ہوئے فارمیٹ، صاف اور آسان بنایا جا سکتا ہے۔ + * [`ڈیٹا تجزیہ`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#working-with-the-data-in-a-notebook) - وضاحت کرتا ہے کہ ہم اب ڈیٹا سیٹ کو "نوٹ بکس" میں تجزیہ کے لیے درآمد کر سکتے ہیں، Python پیکجز (جیسے pandas، numpy اور matplotlib) کا استعمال کرتے ہوئے ڈیٹا کو منظم اور بصری بنانے کے لیے۔ + * [`جذبات کا تجزیہ`](https://gist.github.com/jlooper/ce4d102efd057137bc000db796bfd671#sentiment-analysis-using-cognitive-services) - وضاحت کرتا ہے کہ ہم کلاؤڈ سروسز جیسے Text Analytics کو کیسے مربوط کر سکتے ہیں، کم کوڈ والے ٹولز جیسے [Power Automate](https://flow.microsoft.com/en-us/) کا استعمال کرتے ہوئے خودکار ڈیٹا پروسیسنگ ورک فلو کے لیے۔ + +اس ورک فلو کا استعمال کرتے ہوئے، ہم نظموں کے جذبات پر موسمی اثرات کو دریافت کر سکتے ہیں، اور ہمیں مصنف کے بارے میں اپنے نقطہ نظر کو تشکیل دینے میں مدد مل سکتی ہے۔ خود اسے آزمائیں - پھر نوٹ بک کو بڑھائیں تاکہ دیگر سوالات پوچھ سکیں یا ڈیٹا کو نئے طریقوں سے بصری بنا سکیں! + +> آپ انکوائری کے ان راستوں کو آگے بڑھانے کے لیے [ڈیجیٹل ہیومینٹیز ٹول کٹ](https://github.com/Digital-Humanities-Toolkit) میں موجود کچھ ٹولز استعمال کر سکتے ہیں۔ + +## ڈیٹا سائنس + پائیداری + +| ![ Sketchnote by [(@sketchthedocs)](https://sketchthedocs.dev) ](../../sketchnotes/20-DataScience-Sustainability.png) | +| :---------------------------------------------------------------------------------------------------------------: | +| ڈیٹا سائنس اور پائیداری - _Sketchnote by [@nitya](https://twitter.com/nitya)_ | + +[2030 ایجنڈا برائے پائیدار ترقی](https://sdgs.un.org/2030agenda) - جو 2015 میں تمام اقوام متحدہ کے اراکین نے اپنایا - 17 اہداف کی نشاندہی کرتا ہے، جن میں **سیارے کی حفاظت** کو انحطاط اور موسمیاتی تبدیلی کے اثرات سے شامل کیا گیا ہے۔ [Microsoft Sustainability](https://www.microsoft.com/en-us/sustainability) اقدام ان اہداف کی حمایت کرتا ہے، یہ دریافت کرتے ہوئے کہ ٹیکنالوجی کے حل کس طرح زیادہ پائیدار مستقبل کی تعمیر میں مدد کر سکتے ہیں، [4 اہداف پر توجہ مرکوز کرتے ہوئے](https://dev.to/azure/a-visual-guide-to-sustainable-software-engineering-53hh) - 2030 تک کاربن منفی، پانی مثبت، صفر فضلہ، اور حیاتیاتی تنوع۔ + +ان چیلنجوں کو قابل پیمائش اور بروقت انداز میں حل کرنے کے لیے کلاؤڈ اسکیل سوچ اور بڑے پیمانے پر ڈیٹا کی ضرورت ہے۔ [Planetary Computer](https://planetarycomputer.microsoft.com/) اقدام ڈیٹا سائنسدانوں اور ڈویلپرز کو اس کوشش میں مدد کے لیے 4 اجزاء فراہم کرتا ہے: + + * [ڈیٹا کیٹلاگ](https://planetarycomputer.microsoft.com/catalog) - زمین کے نظام کے ڈیٹا کے پیٹا بائٹس (مفت اور Azure پر میزبانی شدہ)۔ + * [Planetary API](https://planetarycomputer.microsoft.com/docs/reference/stac/) - صارفین کو خلا اور وقت کے لحاظ سے متعلقہ ڈیٹا تلاش کرنے میں مدد کرنے کے لیے۔ + * [ہب](https://planetarycomputer.microsoft.com/docs/overview/environment/) - سائنسدانوں کے لیے بڑے پیمانے پر جغرافیائی ڈیٹا سیٹس کو پروسیس کرنے کے لیے منظم ماحول۔ + * [ایپلیکیشنز](https://planetarycomputer.microsoft.com/applications) - پائیداری کی بصیرت کے لیے استعمال کے معاملات اور ٹولز کو ظاہر کریں۔ +**پلانٹری کمپیوٹر پروجیکٹ فی الحال پیش نظارہ میں ہے (ستمبر 2021 تک)** - یہاں یہ بتایا گیا ہے کہ آپ ڈیٹا سائنس کا استعمال کرتے ہوئے پائیداری کے حل میں تعاون کیسے شروع کر سکتے ہیں۔ + +* [رسائی کی درخواست کریں](https://planetarycomputer.microsoft.com/account/request) تاکہ آپ تحقیق شروع کریں اور ساتھیوں سے جڑ سکیں۔ +* [دستاویزات کا جائزہ لیں](https://planetarycomputer.microsoft.com/docs/overview/about) تاکہ آپ کو سپورٹ شدہ ڈیٹا سیٹس اور APIs کو سمجھنے میں مدد ملے۔ +* [ایپلیکیشنز کا جائزہ لیں](https://analytics-lab.org/ecosystemmonitoring/) جیسے [ایکو سسٹم مانیٹرنگ]، تاکہ ایپلیکیشن آئیڈیاز کے لیے تحریک حاصل ہو۔ + +سوچیں کہ آپ ڈیٹا ویژولائزیشن کا استعمال کیسے کر سکتے ہیں تاکہ موسمیاتی تبدیلی اور جنگلات کی کٹائی جیسے موضوعات میں اہم بصیرت کو اجاگر یا بڑھا سکیں۔ یا یہ سوچیں کہ ان بصیرتوں کو کیسے استعمال کیا جا سکتا ہے تاکہ نئے صارف تجربات تخلیق کیے جا سکیں جو زیادہ پائیدار زندگی کے لیے رویوں میں تبدیلی کی ترغیب دیں۔ + +## ڈیٹا سائنس + طلباء + +ہم نے صنعت اور تحقیق میں حقیقی دنیا کی ایپلیکیشنز کے بارے میں بات کی ہے، اور ڈیجیٹل ہیومینٹیز اور پائیداری میں ڈیٹا سائنس ایپلیکیشن کی مثالوں کا جائزہ لیا ہے۔ تو آپ بطور ڈیٹا سائنس کے ابتدائی طالب علم اپنی مہارت کیسے بنا سکتے ہیں اور اپنی قابلیت کیسے بانٹ سکتے ہیں؟ + +یہاں ڈیٹا سائنس کے طالب علموں کے پروجیکٹس کی کچھ مثالیں ہیں جو آپ کو تحریک دے سکتی ہیں۔ + +* [MSR ڈیٹا سائنس سمر اسکول](https://www.microsoft.com/en-us/research/academic-program/data-science-summer-school/#!projects) کے GitHub [پروجیکٹس](https://github.com/msr-ds3) کے ساتھ، جو درج ذیل موضوعات کو دریافت کرتے ہیں: + - [پولیس کے طاقت کے استعمال میں نسلی تعصب](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2019-replicating-an-empirical-analysis-of-racial-differences-in-police-use-of-force/) | [Github](https://github.com/msr-ds3/stop-question-frisk) + - [NYC سب وے سسٹم کی قابل اعتمادیت](https://www.microsoft.com/en-us/research/video/data-science-summer-school-2018-exploring-the-reliability-of-the-nyc-subway-system/) | [Github](https://github.com/msr-ds3/nyctransit) +* [مواد کی ثقافت کو ڈیجیٹائز کرنا: سرکاپ میں سماجی و اقتصادی تقسیمات کا جائزہ](https://claremont.maps.arcgis.com/apps/Cascade/index.html?appid=bdf2aef0f45a4674ba41cd373fa23afc) - [اورنیلا آلٹونیان](https://twitter.com/ornelladotcom) اور کلیرمونٹ کی ٹیم کی جانب سے، [ArcGIS StoryMaps](https://storymaps.arcgis.com/) کا استعمال کرتے ہوئے۔ + +## 🚀 چیلنج + +ایسے مضامین تلاش کریں جو ڈیٹا سائنس کے ابتدائی دوستانہ پروجیکٹس کی سفارش کرتے ہیں - جیسے [یہ 50 موضوعاتی علاقے](https://www.upgrad.com/blog/data-science-project-ideas-topics-beginners/) یا [یہ 21 پروجیکٹ آئیڈیاز](https://www.intellspot.com/data-science-project-ideas) یا [یہ 16 پروجیکٹس سورس کوڈ کے ساتھ](https://data-flair.training/blogs/data-science-project-ideas/) جنہیں آپ ڈی کنسٹرکٹ اور ری مکس کر سکتے ہیں۔ اور اپنی سیکھنے کے سفر کے بارے میں بلاگ کرنا نہ بھولیں اور اپنی بصیرت ہم سب کے ساتھ شیئر کریں۔ + +## لیکچر کے بعد کا کوئز + +[لیکچر کے بعد کا کوئز](https://purple-hill-04aebfb03.1.azurestaticapps.net/quiz/39) + +## جائزہ اور خود مطالعہ + +مزید استعمال کے کیسز دریافت کرنا چاہتے ہیں؟ یہاں کچھ متعلقہ مضامین ہیں: +* [17 ڈیٹا سائنس ایپلیکیشنز اور مثالیں](https://builtin.com/data-science/data-science-applications-examples) - جولائی 2021 +* [حقیقی دنیا میں 11 حیرت انگیز ڈیٹا سائنس ایپلیکیشنز](https://myblindbird.com/data-science-applications-real-world/) - مئی 2021 +* [حقیقی دنیا میں ڈیٹا سائنس](https://towardsdatascience.com/data-science-in-the-real-world/home) - مضامین کا مجموعہ +* ڈیٹا سائنس میں: [تعلیم](https://data-flair.training/blogs/data-science-in-education/)، [زراعت](https://data-flair.training/blogs/data-science-in-agriculture/)، [مالیات](https://data-flair.training/blogs/data-science-in-finance/)، [فلمیں](https://data-flair.training/blogs/data-science-at-movies/) اور مزید۔ + +## اسائنمنٹ + +[پلانٹری کمپیوٹر ڈیٹا سیٹ کا جائزہ لیں](assignment.md) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md b/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md new file mode 100644 index 00000000..f99146e5 --- /dev/null +++ b/translations/ur/6-Data-Science-In-Wild/20-Real-World-Examples/assignment.md @@ -0,0 +1,50 @@ + +# سیاروی کمپیوٹر ڈیٹا سیٹ کا جائزہ لیں + +## ہدایات + +اس سبق میں، ہم نے مختلف ڈیٹا سائنس کے اطلاقی شعبوں پر بات کی - تحقیق، پائیداری اور ڈیجیٹل انسانی علوم سے متعلق مثالوں پر گہرائی سے غور کیا۔ اس اسائنمنٹ میں، آپ ان مثالوں میں سے ایک کو مزید تفصیل سے دریافت کریں گے اور ڈیٹا ویژولائزیشن اور تجزیہ کے بارے میں اپنی سیکھنے کو استعمال کرتے ہوئے پائیداری ڈیٹا کے بارے میں بصیرت حاصل کریں گے۔ + +[سیاروی کمپیوٹر](https://planetarycomputer.microsoft.com/) پروجیکٹ میں ڈیٹا سیٹس اور APIs موجود ہیں جن تک اکاؤنٹ کے ذریعے رسائی حاصل کی جا سکتی ہے - اگر آپ اسائنمنٹ کے اضافی مرحلے کو آزمانا چاہتے ہیں تو ایک اکاؤنٹ کی درخواست کریں۔ یہ سائٹ ایک [ایکسپلورر](https://planetarycomputer.microsoft.com/explore) فیچر بھی فراہم کرتی ہے جسے آپ اکاؤنٹ بنائے بغیر استعمال کر سکتے ہیں۔ + +`مراحل:` +ایکسپلورر انٹرفیس (نیچے دی گئی تصویر میں دکھایا گیا) آپ کو ایک ڈیٹا سیٹ منتخب کرنے (فراہم کردہ اختیارات میں سے)، ایک پری سیٹ کوئری (ڈیٹا کو فلٹر کرنے کے لیے) اور ایک رینڈرنگ آپشن (مناسب ویژولائزیشن بنانے کے لیے) کا انتخاب کرنے دیتا ہے۔ اس اسائنمنٹ میں آپ کا کام یہ ہے کہ: + + 1. [ایکسپلورر دستاویزات](https://planetarycomputer.microsoft.com/docs/overview/explorer/) پڑھیں - اختیارات کو سمجھیں۔ + 2. ڈیٹا سیٹ [کیٹلاگ](https://planetarycomputer.microsoft.com/catalog) کو دریافت کریں - ہر ایک کا مقصد سیکھیں۔ + 3. ایکسپلورر استعمال کریں - دلچسپی کا ایک ڈیٹا سیٹ منتخب کریں، ایک متعلقہ کوئری اور رینڈرنگ آپشن منتخب کریں۔ + +![سیاروی کمپیوٹر ایکسپلورر](../../../../translated_images/planetary-computer-explorer.c1e95a9b053167d64e2e8e4347cfb689e47e2037c33103fc1bbea1a149d4f85b.ur.png) + +`آپ کا کام:` +اب براؤزر میں رینڈر کی گئی ویژولائزیشن کا مطالعہ کریں اور درج ذیل سوالات کے جواب دیں: + * ڈیٹا سیٹ میں کون سے _فیچرز_ ہیں؟ + * ویژولائزیشن کون سی _بصیرت_ یا نتائج فراہم کرتی ہے؟ + * ان بصیرتوں کے _اثرات_ پروجیکٹ کے پائیداری کے اہداف پر کیا ہیں؟ + * ویژولائزیشن کی _حدود_ کیا ہیں (یعنی کون سی بصیرت آپ کو نہیں ملی؟) + * اگر آپ کو خام ڈیٹا مل جائے تو آپ کون سی _متبادل ویژولائزیشنز_ بنائیں گے، اور کیوں؟ + +`اضافی پوائنٹس:` +اکاؤنٹ کے لیے درخواست دیں - اور قبول ہونے پر لاگ ان کریں۔ + * _لانچ حب_ آپشن استعمال کریں تاکہ خام ڈیٹا کو نوٹ بک میں کھولا جا سکے۔ + * ڈیٹا کو انٹرایکٹو طور پر دریافت کریں، اور وہ متبادل ویژولائزیشنز نافذ کریں جن کے بارے میں آپ نے سوچا تھا۔ + * اب اپنی حسب ضرورت ویژولائزیشنز کا تجزیہ کریں - کیا آپ وہ بصیرت حاصل کرنے میں کامیاب ہوئے جو پہلے آپ کو نہیں ملی تھی؟ + +## معیار + +مثالی | مناسب | بہتری کی ضرورت ہے +--- | --- | -- | +تمام پانچ بنیادی سوالات کے جواب دیے گئے۔ طالب علم نے واضح طور پر شناخت کیا کہ موجودہ اور متبادل ویژولائزیشنز کس طرح پائیداری کے مقاصد یا نتائج کے بارے میں بصیرت فراہم کر سکتی ہیں۔| طالب علم نے کم از کم ابتدائی 3 سوالات کا تفصیل سے جواب دیا، یہ ظاہر کرتے ہوئے کہ انہوں نے ایکسپلورر کے ساتھ عملی تجربہ حاصل کیا۔| طالب علم نے متعدد سوالات کے جواب دینے میں ناکامی کی، یا ناکافی تفصیل فراہم کی - یہ ظاہر کرتے ہوئے کہ پروجیکٹ کے لیے کوئی معنی خیز کوشش نہیں کی گئی۔ | + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/6-Data-Science-In-Wild/README.md b/translations/ur/6-Data-Science-In-Wild/README.md new file mode 100644 index 00000000..d4d5e3e1 --- /dev/null +++ b/translations/ur/6-Data-Science-In-Wild/README.md @@ -0,0 +1,25 @@ + +# جنگلی دنیا میں ڈیٹا سائنس + +مختلف صنعتوں میں ڈیٹا سائنس کے حقیقی دنیا کے اطلاقات۔ + +### موضوعات + +1. [حقیقی دنیا میں ڈیٹا سائنس](20-Real-World-Examples/README.md) + +### کریڈٹس + +❤️ کے ساتھ تحریر کردہ [نیتیا نرسمہن](https://twitter.com/nitya) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/CODE_OF_CONDUCT.md b/translations/ur/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..7190b417 --- /dev/null +++ b/translations/ur/CODE_OF_CONDUCT.md @@ -0,0 +1,23 @@ + +# مائیکروسافٹ اوپن سورس ضابطہ اخلاق + +اس پروجیکٹ نے [مائیکروسافٹ اوپن سورس ضابطہ اخلاق](https://opensource.microsoft.com/codeofconduct/) کو اپنایا ہے۔ + +وسائل: + +- [مائیکروسافٹ اوپن سورس ضابطہ اخلاق](https://opensource.microsoft.com/codeofconduct/) +- [مائیکروسافٹ ضابطہ اخلاق سوالات و جوابات](https://opensource.microsoft.com/codeofconduct/faq/) +- سوالات یا خدشات کے لیے [opencode@microsoft.com](mailto:opencode@microsoft.com) سے رابطہ کریں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/CONTRIBUTING.md b/translations/ur/CONTRIBUTING.md new file mode 100644 index 00000000..2f977534 --- /dev/null +++ b/translations/ur/CONTRIBUTING.md @@ -0,0 +1,21 @@ + +# تعاون کرنا + +یہ منصوبہ تعاون اور تجاویز کا خیر مقدم کرتا ہے۔ زیادہ تر تعاون کے لیے آپ کو ایک Contributor License Agreement (CLA) پر اتفاق کرنا ہوگا، جس میں آپ یہ اعلان کرتے ہیں کہ آپ کے پاس یہ حق ہے اور آپ واقعی ہمیں اپنے تعاون کو استعمال کرنے کے حقوق دیتے ہیں۔ تفصیلات کے لیے، https://cla.microsoft.com پر جائیں۔ + +جب آپ ایک pull request جمع کراتے ہیں، تو CLA-bot خود بخود یہ طے کرے گا کہ آیا آپ کو CLA فراہم کرنے کی ضرورت ہے اور PR کو مناسب طریقے سے سجائے گا (مثلاً، لیبل، تبصرہ)۔ بس bot کی فراہم کردہ ہدایات پر عمل کریں۔ آپ کو یہ صرف ایک بار تمام repositories کے لیے کرنا ہوگا جو ہمارے CLA کا استعمال کرتے ہیں۔ + +اس منصوبے نے [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) کو اپنایا ہے۔ مزید معلومات کے لیے [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) دیکھیں یا کسی اضافی سوال یا تبصرے کے لیے [opencode@microsoft.com](mailto:opencode@microsoft.com) سے رابطہ کریں۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/README.md b/translations/ur/README.md new file mode 100644 index 00000000..b76fb8c5 --- /dev/null +++ b/translations/ur/README.md @@ -0,0 +1,164 @@ + +# ڈیٹا سائنس کے ابتدائی افراد کے لیے - ایک نصاب + +Azure Cloud Advocates نے مائیکروسافٹ میں ایک 10 ہفتوں، 20 اسباق پر مشتمل نصاب پیش کیا ہے جو مکمل طور پر ڈیٹا سائنس کے بارے میں ہے۔ ہر سبق میں پری-سبق اور پوسٹ-سبق کوئز، سبق مکمل کرنے کے لیے تحریری ہدایات، ایک حل، اور ایک اسائنمنٹ شامل ہے۔ ہمارا پروجیکٹ پر مبنی طریقہ کار آپ کو سیکھنے کے دوران بنانے کی اجازت دیتا ہے، جو نئے ہنر کو یاد رکھنے کا ایک مؤثر طریقہ ہے۔ + +**ہمارے مصنفین کا دل سے شکریہ:** [جیسمن گریناوے](https://www.twitter.com/paladique)، [دیمتری سوشنیکوف](http://soshnikov.com)، [نیتیا نرسمہن](https://twitter.com/nitya)، [جیلن میکگی](https://twitter.com/JalenMcG)، [جین لوپر](https://twitter.com/jenlooper)، [ماود لیوی](https://twitter.com/maudstweets)، [ٹفنی سوٹیر](https://twitter.com/TiffanySouterre)، [کرسٹوفر ہیریسن](https://www.twitter.com/geektrainer)۔ + +**🙏 خاص شکریہ 🙏 ہمارے [مائیکروسافٹ اسٹوڈنٹ ایمبیسڈر](https://studentambassadors.microsoft.com/) مصنفین، جائزہ لینے والوں اور مواد کے تعاون کرنے والوں کا،** خاص طور پر آریان اروڑا، [ادیتیہ گرگ](https://github.com/AdityaGarg00)، [الوندرا سانچیز](https://www.linkedin.com/in/alondra-sanchez-molina/)، [انکیتا سنگھ](https://www.linkedin.com/in/ankitasingh007)، [انوپم مشرا](https://www.linkedin.com/in/anupam--mishra/)، [ارپیتا داس](https://www.linkedin.com/in/arpitadas01/)، چھائل بہاری دوبے، [دیبری نسوفور](https://www.linkedin.com/in/dibrinsofor)، [دیشیتا بھاسین](https://www.linkedin.com/in/dishita-bhasin-7065281bb)، [مجید صافی](https://www.linkedin.com/in/majd-s/)، [میکس بلوم](https://www.linkedin.com/in/max-blum-6036a1186/)، [میگوئل کوریا](https://www.linkedin.com/in/miguelmque/)، [محمد افتخار (افتو) ابن جلال](https://twitter.com/iftu119)، [نورین تبسم](https://www.linkedin.com/in/nawrin-tabassum)، [ریمنڈ وانگسا پترا](https://www.linkedin.com/in/raymond-wp/)، [روہت یادو](https://www.linkedin.com/in/rty2423)، سمردھی شرما، [سانیا سنہا](https://www.linkedin.com/mwlite/in/sanya-sinha-13aab1200)، [شینا نرولا](https://www.linkedin.com/in/sheena-narua-n/)، [توقیر احمد](https://www.linkedin.com/in/tauqeerahmad5201/)، یوگندر سنگھ پاوار، [ودوشی گپتا](https://www.linkedin.com/in/vidushi-gupta07/)، [جسلین سوندھی](https://www.linkedin.com/in/jasleen-sondhi/)۔ + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](./sketchnotes/00-Title.png)| +|:---:| +| ڈیٹا سائنس کے ابتدائی افراد کے لیے - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +## اعلان - جنریٹو AI پر نیا نصاب جاری کیا گیا ہے! + +ہم نے ابھی جنریٹو AI پر 12 اسباق کا نصاب جاری کیا ہے۔ آئیں سیکھیں: + +- پرامپٹنگ اور پرامپٹ انجینئرنگ +- ٹیکسٹ اور امیج ایپ جنریشن +- سرچ ایپس + +حسب معمول، ہر سبق میں اسائنمنٹس، علم کی جانچ اور چیلنجز شامل ہیں۔ + +یہاں دیکھیں: + +> https://aka.ms/genai-beginners + +# کیا آپ طالب علم ہیں؟ + +مندرجہ ذیل وسائل سے شروعات کریں: + +- [اسٹوڈنٹ ہب صفحہ](https://docs.microsoft.com/en-gb/learn/student-hub?WT.mc_id=academic-77958-bethanycheum) اس صفحے پر آپ کو ابتدائی وسائل، اسٹوڈنٹ پیک اور یہاں تک کہ مفت سرٹیفکیٹ واؤچر حاصل کرنے کے طریقے ملیں گے۔ یہ ایک صفحہ ہے جسے آپ بک مارک کرنا چاہیں گے اور وقتاً فوقتاً چیک کریں گے کیونکہ ہم کم از کم ماہانہ مواد تبدیل کرتے ہیں۔ +- [مائیکروسافٹ لرن اسٹوڈنٹ ایمبیسڈرز](https://studentambassadors.microsoft.com?WT.mc_id=academic-77958-bethanycheum) ایک عالمی کمیونٹی میں شامل ہوں، یہ مائیکروسافٹ میں آپ کا راستہ ہو سکتا ہے۔ + +# شروعات کرنا + +> **اساتذہ**: ہم نے [کچھ تجاویز شامل کی ہیں](for-teachers.md) کہ اس نصاب کو کیسے استعمال کیا جائے۔ ہمیں آپ کی رائے [ہمارے ڈسکشن فورم](https://github.com/microsoft/Data-Science-For-Beginners/discussions) میں پسند آئے گی! + +> **[طلباء](https://aka.ms/student-page)**: اس نصاب کو خود استعمال کرنے کے لیے، پورے ریپو کو فورک کریں اور اسباق کو خود مکمل کریں، پری-لیکچر کوئز سے شروع کریں۔ پھر لیکچر پڑھیں اور باقی سرگرمیاں مکمل کریں۔ کوشش کریں کہ اسباق کو سمجھ کر پروجیکٹس بنائیں بجائے اس کے کہ حل کوڈ کو کاپی کریں؛ تاہم، وہ کوڈ ہر پروجیکٹ پر مبنی سبق کے /solutions فولڈرز میں دستیاب ہے۔ ایک اور خیال یہ ہو سکتا ہے کہ دوستوں کے ساتھ اسٹڈی گروپ بنائیں اور مواد کو ایک ساتھ دیکھیں۔ مزید مطالعہ کے لیے، ہم [مائیکروسافٹ لرن](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/qprpajyoy3x0g7?WT.mc_id=academic-77958-bethanycheum) کی سفارش کرتے ہیں۔ + +## ٹیم سے ملاقات کریں + +[![پرومو ویڈیو](../../ds-for-beginners.gif)](https://youtu.be/8mzavjQSMM4 "پرومو ویڈیو") + +**Gif از** [محیط جیسل](https://www.linkedin.com/in/mohitjaisal) + +> 🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ پروجیکٹ اور اسے بنانے والے افراد کے بارے میں ویڈیو دیکھ سکیں! + +## تدریسی طریقہ کار + +ہم نے اس نصاب کو بناتے وقت دو تدریسی اصولوں کا انتخاب کیا ہے: یہ یقینی بنانا کہ یہ پروجیکٹ پر مبنی ہے اور اس میں بار بار کوئز شامل ہیں۔ اس سیریز کے اختتام تک، طلباء ڈیٹا سائنس کے بنیادی اصول سیکھ چکے ہوں گے، جن میں اخلاقی تصورات، ڈیٹا کی تیاری، ڈیٹا کے ساتھ کام کرنے کے مختلف طریقے، ڈیٹا کی بصری نمائندگی، ڈیٹا تجزیہ، ڈیٹا سائنس کے حقیقی دنیا کے استعمال کے کیسز، اور مزید شامل ہیں۔ + +اس کے علاوہ، کلاس سے پہلے ایک کم دباؤ والا کوئز طالب علم کو کسی موضوع کو سیکھنے کی طرف راغب کرتا ہے، جبکہ کلاس کے بعد دوسرا کوئز مزید یادداشت کو یقینی بناتا ہے۔ یہ نصاب لچکدار اور تفریحی طور پر ڈیزائن کیا گیا ہے اور اسے مکمل یا جزوی طور پر لیا جا سکتا ہے۔ پروجیکٹس چھوٹے شروع ہوتے ہیں اور 10 ہفتوں کے سائیکل کے اختتام تک بتدریج پیچیدہ ہو جاتے ہیں۔ + +> ہمارا [کوڈ آف کنڈکٹ](CODE_OF_CONDUCT.md)، [کنٹریبیوٹنگ](CONTRIBUTING.md)، [ترجمہ](TRANSLATIONS.md) کے رہنما اصول دیکھیں۔ ہم آپ کی تعمیری رائے کا خیر مقدم کرتے ہیں! + +## ہر سبق میں شامل ہیں: + +- اختیاری اسکیچ نوٹ +- اختیاری اضافی ویڈیو +- پری-سبق وارم اپ کوئز +- تحریری سبق +- پروجیکٹ پر مبنی اسباق کے لیے، پروجیکٹ بنانے کے مرحلہ وار گائیڈز +- علم کی جانچ +- ایک چیلنج +- اضافی مطالعہ +- اسائنمنٹ +- پوسٹ-سبق کوئز + +> **کوئز کے بارے میں ایک نوٹ**: تمام کوئز Quiz-App فولڈر میں موجود ہیں، کل 40 کوئز، ہر ایک میں تین سوالات۔ وہ اسباق کے اندر سے لنک کیے گئے ہیں، لیکن کوئز ایپ کو مقامی طور پر چلایا جا سکتا ہے یا Azure پر تعینات کیا جا سکتا ہے؛ `quiz-app` فولڈر میں دی گئی ہدایات پر عمل کریں۔ وہ بتدریج مقامی زبانوں میں ترجمہ کیے جا رہے ہیں۔ + +## اسباق + +|![ [(@sketchthedocs)](https://sketchthedocs.dev) کی اسکیچ نوٹ ](./sketchnotes/00-Roadmap.png)| +|:---:| +| ڈیٹا سائنس کے ابتدائی افراد: روڈ میپ - _[@nitya](https://twitter.com/nitya) کی اسکیچ نوٹ_ | + +| سبق نمبر | موضوع | سبق کی گروپ بندی | سیکھنے کے مقاصد | لنک شدہ سبق | مصنف | +| :-----------: | :----------------------------------------: | :--------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------: | :----: | +| 01 | ڈیٹا سائنس کی تعریف | [تعارف](1-Introduction/README.md) | ڈیٹا سائنس کے بنیادی تصورات سیکھیں اور یہ مصنوعی ذہانت، مشین لرننگ، اور بڑے ڈیٹا سے کیسے متعلق ہے۔ | [سبق](1-Introduction/01-defining-data-science/README.md) [ویڈیو](https://youtu.be/beZ7Mb_oz9I) | [دیمتری](http://soshnikov.com) | +| 02 | ڈیٹا سائنس کی اخلاقیات | [تعارف](1-Introduction/README.md) | ڈیٹا اخلاقیات کے تصورات، چیلنجز اور فریم ورک۔ | [سبق](1-Introduction/02-ethics/README.md) | [نیتیا](https://twitter.com/nitya) | +| 03 | ڈیٹا کی تعریف | [تعارف](1-Introduction/README.md) | ڈیٹا کو کیسے درجہ بندی کیا جاتا ہے اور اس کے عام ذرائع۔ | [سبق](1-Introduction/03-defining-data/README.md) | [جیسمن](https://www.twitter.com/paladique) | +| 04 | شماریات اور احتمال کا تعارف | [تعارف](1-Introduction/README.md) | ڈیٹا کو سمجھنے کے لیے احتمال اور شماریات کی ریاضیاتی تکنیکیں۔ | [سبق](1-Introduction/04-stats-and-probability/README.md) [ویڈیو](https://youtu.be/Z5Zy85g4Yjw) | [دیمتری](http://soshnikov.com) | +| 05 | تعلقاتی ڈیٹا کے ساتھ کام کرنا | [ڈیٹا کے ساتھ کام کرنا](2-Working-With-Data/README.md) | تعلقاتی ڈیٹا کا تعارف اور Structured Query Language (SQL) کے ساتھ تعلقاتی ڈیٹا کو دریافت اور تجزیہ کرنے کی بنیادی باتیں۔ | [سبق](2-Working-With-Data/05-relational-databases/README.md) | [کرسٹوفر](https://www.twitter.com/geektrainer) | | | +| 06 | NoSQL ڈیٹا کے ساتھ کام کرنا | [ڈیٹا کے ساتھ کام کرنا](2-Working-With-Data/README.md) | غیر تعلقاتی ڈیٹا کا تعارف، اس کی مختلف اقسام اور دستاویز ڈیٹا بیسز کو دریافت اور تجزیہ کرنے کی بنیادی باتیں۔ | [سبق](2-Working-With-Data/06-non-relational/README.md) | [جیسمن](https://twitter.com/paladique)| +| 07 | Python کے ساتھ کام کرنا | [ڈیٹا کے ساتھ کام کرنا](2-Working-With-Data/README.md) | Python کے ساتھ ڈیٹا کو دریافت کرنے کے لیے لائبریریوں جیسے Pandas کا استعمال کرنے کی بنیادی باتیں۔ Python پروگرامنگ کی بنیادی سمجھ بوجھ کی سفارش کی جاتی ہے۔ | [سبق](2-Working-With-Data/07-python/README.md) [ویڈیو](https://youtu.be/dZjWOGbsN4Y) | [دیمتری](http://soshnikov.com) | +| 08 | ڈیٹا کی تیاری | [ڈیٹا کے ساتھ کام کرنا](2-Working-With-Data/README.md) | ڈیٹا کو صاف کرنے اور تبدیل کرنے کی تکنیکوں پر موضوعات تاکہ گمشدہ، غلط یا نامکمل ڈیٹا کے چیلنجز کو حل کیا جا سکے۔ | [سبق](2-Working-With-Data/08-data-preparation/README.md) | [جیسمن](https://www.twitter.com/paladique) | +| 09 | مقداروں کی بصری نمائندگی | [ڈیٹا کی بصری نمائندگی](3-Data-Visualization/README.md) | سیکھیں کہ پرندوں کے ڈیٹا کو بصری طور پر ظاہر کرنے کے لیے Matplotlib کا استعمال کیسے کریں 🦆 | [سبق](3-Data-Visualization/09-visualization-quantities/README.md) | [جین](https://twitter.com/jenlooper) | +| 10 | ڈیٹا کی تقسیمات کی بصری نمائندگی | [ڈیٹا کی بصری نمائندگی](3-Data-Visualization/README.md) | وقفے کے اندر مشاہدات اور رجحانات کو بصری طور پر ظاہر کرنا۔ | [سبق](3-Data-Visualization/10-visualization-distributions/README.md) | [جین](https://twitter.com/jenlooper) | +| 11 | تناسب کی بصری نمائندگی | [ڈیٹا کی بصری نمائندگی](3-Data-Visualization/README.md) | متفرق اور گروپ شدہ فیصد کی بصری نمائندگی۔ | [سبق](3-Data-Visualization/11-visualization-proportions/README.md) | [جین](https://twitter.com/jenlooper) | +| 12 | تعلقات کی بصری نمائندگی | [ڈیٹا کی بصری نمائندگی](3-Data-Visualization/README.md) | ڈیٹا کے سیٹوں اور ان کے متغیرات کے درمیان تعلقات اور ہم آہنگی کو بصری طور پر ظاہر کرنا۔ | [سبق](3-Data-Visualization/12-visualization-relationships/README.md) | [جین](https://twitter.com/jenlooper) | +| 13 | بامعنی بصری نمائندگی | [ڈیٹا کی بصری نمائندگی](3-Data-Visualization/README.md) | آپ کی بصری نمائندگی کو مؤثر مسئلہ حل کرنے اور بصیرت کے لیے قیمتی بنانے کے لیے تکنیک اور رہنمائی۔ | [سبق](3-Data-Visualization/13-meaningful-visualizations/README.md) | [جین](https://twitter.com/jenlooper) | +| 14 | ڈیٹا سائنس کے لائف سائیکل کا تعارف | [لائف سائیکل](4-Data-Science-Lifecycle/README.md) | ڈیٹا سائنس کے لائف سائیکل کا تعارف اور ڈیٹا حاصل کرنے اور نکالنے کا پہلا مرحلہ۔ | [سبق](4-Data-Science-Lifecycle/14-Introduction/README.md) | [جیسمن](https://twitter.com/paladique) | +| 15 | تجزیہ کرنا | [لائف سائیکل](4-Data-Science-Lifecycle/README.md) | ڈیٹا سائنس کے لائف سائیکل کا یہ مرحلہ ڈیٹا کا تجزیہ کرنے کی تکنیکوں پر مرکوز ہے۔ | [سبق](4-Data-Science-Lifecycle/15-analyzing/README.md) | [جیسمن](https://twitter.com/paladique) | | | +| 16 | مواصلات | [لائف سائیکل](4-Data-Science-Lifecycle/README.md) | ڈیٹا سائنس کے لائف سائیکل کا یہ مرحلہ ڈیٹا سے حاصل کردہ بصیرت کو اس انداز میں پیش کرنے پر مرکوز ہے جو فیصلہ سازوں کے لیے سمجھنا آسان ہو۔ | [سبق](4-Data-Science-Lifecycle/16-communication/README.md) | [جیلن](https://twitter.com/JalenMcG) | | | +| 17 | کلاؤڈ میں ڈیٹا سائنس | [کلاؤڈ ڈیٹا](5-Data-Science-In-Cloud/README.md) | اس سبق کی سیریز کلاؤڈ میں ڈیٹا سائنس اور اس کے فوائد کا تعارف کراتی ہے۔ | [سبق](5-Data-Science-In-Cloud/17-Introduction/README.md) | [ٹفنی](https://twitter.com/TiffanySouterre) اور [مود](https://twitter.com/maudstweets) | +| 18 | کلاؤڈ میں ڈیٹا سائنس | [کلاؤڈ ڈیٹا](5-Data-Science-In-Cloud/README.md) | لو کوڈ ٹولز کا استعمال کرتے ہوئے ماڈلز کی تربیت۔ | [سبق](5-Data-Science-In-Cloud/18-Low-Code/README.md) | [ٹفنی](https://twitter.com/TiffanySouterre) اور [مود](https://twitter.com/maudstweets) | +| 19 | کلاؤڈ میں ڈیٹا سائنس | [کلاؤڈ ڈیٹا](5-Data-Science-In-Cloud/README.md) | Azure Machine Learning Studio کے ساتھ ماڈلز کو تعینات کرنا۔ | [سبق](5-Data-Science-In-Cloud/19-Azure/README.md) | [ٹفنی](https://twitter.com/TiffanySouterre) اور [مود](https://twitter.com/maudstweets) | +| 20 | حقیقی دنیا میں ڈیٹا سائنس | [حقیقی دنیا میں](6-Data-Science-In-Wild/README.md) | حقیقی دنیا میں ڈیٹا سائنس پر مبنی منصوبے۔ | [سبق](6-Data-Science-In-Wild/20-Real-World-Examples/README.md) | [نیتیا](https://twitter.com/nitya) | + +## گٹ ہب کوڈ اسپیسز + +ان مراحل پر عمل کریں تاکہ اس نمونے کو کوڈ اسپیس میں کھولا جا سکے: +1. کوڈ ڈراپ ڈاؤن مینو پر کلک کریں اور "Open with Codespaces" کا انتخاب کریں۔ +2. پین کے نیچے "+ New codespace" کا انتخاب کریں۔ +مزید معلومات کے لیے، [گٹ ہب دستاویزات](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace-for-a-repository#creating-a-codespace) دیکھیں۔ + +## وی ایس کوڈ ریموٹ - کنٹینرز + +ان مراحل پر عمل کریں تاکہ اس ریپو کو اپنے مقامی مشین اور وی ایس کوڈ کے ذریعے کنٹینر میں کھولا جا سکے، وی ایس کوڈ ریموٹ - کنٹینرز ایکسٹینشن کا استعمال کرتے ہوئے: + +1. اگر یہ آپ کا پہلا موقع ہے کہ آپ ڈیولپمنٹ کنٹینر استعمال کر رہے ہیں، تو براہ کرم یقینی بنائیں کہ آپ کا سسٹم ضروریات کو پورا کرتا ہے (مثلاً، آپ کے پاس Docker انسٹال ہو) [شروع کرنے کی دستاویزات](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started) میں۔ + +اس ریپوزٹری کو استعمال کرنے کے لیے، آپ یا تو اسے ایک الگ تھلگ Docker والیوم میں کھول سکتے ہیں: + +**نوٹ**: اندرونی طور پر، یہ Remote-Containers: **Clone Repository in Container Volume...** کمانڈ استعمال کرے گا تاکہ سورس کوڈ کو مقامی فائل سسٹم کے بجائے Docker والیوم میں کلون کیا جا سکے۔ [والیومز](https://docs.docker.com/storage/volumes/) کنٹینر ڈیٹا کو محفوظ رکھنے کے لیے ترجیحی طریقہ کار ہیں۔ + +یا مقامی طور پر کلون شدہ یا ڈاؤن لوڈ شدہ ریپوزٹری کا ورژن کھولیں: + +- اس ریپوزٹری کو اپنے مقامی فائل سسٹم پر کلون کریں۔ +- F1 دبائیں اور **Remote-Containers: Open Folder in Container...** کمانڈ منتخب کریں۔ +- اس فولڈر کی کلون شدہ کاپی منتخب کریں، کنٹینر کے شروع ہونے کا انتظار کریں، اور چیزوں کو آزمائیں۔ + +## آف لائن رسائی + +آپ اس دستاویزات کو آف لائن Docsify کا استعمال کرتے ہوئے چلا سکتے ہیں۔ اس ریپو کو فورک کریں، [Docsify انسٹال کریں](https://docsify.js.org/#/quickstart) اپنی مقامی مشین پر، پھر اس ریپو کے روٹ فولڈر میں `docsify serve` ٹائپ کریں۔ ویب سائٹ آپ کے localhost پر پورٹ 3000 پر دستیاب ہوگی: `localhost:3000`۔ + +> نوٹ، نوٹ بکس Docsify کے ذریعے رینڈر نہیں ہوں گے، لہذا جب آپ کو نوٹ بک چلانے کی ضرورت ہو، تو اسے الگ سے وی ایس کوڈ میں Python کرنل چلاتے ہوئے کریں۔ + +## مدد درکار ہے! + +اگر آپ نصاب کے تمام یا کسی حصے کا ترجمہ کرنا چاہتے ہیں، تو براہ کرم ہمارے [Translations](TRANSLATIONS.md) گائیڈ پر عمل کریں۔ + +## دیگر نصاب + +ہماری ٹیم دیگر نصاب بھی تیار کرتی ہے! دیکھیں: + +- [Generative AI for Beginners](https://aka.ms/genai-beginners) +- [Generative AI for Beginners .NET](https://github.com/microsoft/Generative-AI-for-beginners-dotnet) +- [Generative AI with JavaScript](https://github.com/microsoft/generative-ai-with-javascript) +- [Generative AI with Java](https://aka.ms/genaijava) +- [AI for Beginners](https://aka.ms/ai-beginners) +- [Data Science for Beginners](https://aka.ms/datascience-beginners) +- [ML for Beginners](https://aka.ms/ml-beginners) +- [Cybersecurity for Beginners](https://github.com/microsoft/Security-101) +- [Web Dev for Beginners](https://aka.ms/webdev-beginners) +- [IoT for Beginners](https://aka.ms/iot-beginners) +- [XR Development for Beginners](https://github.com/microsoft/xr-development-for-beginners) +- [Mastering GitHub Copilot for Paired Programming](https://github.com/microsoft/Mastering-GitHub-Copilot-for-Paired-Programming) +- [Mastering GitHub Copilot for C#/.NET Developers](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers) +- [Choose Your Own Copilot Adventure](https://github.com/microsoft/CopilotAdventures) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/SECURITY.md b/translations/ur/SECURITY.md new file mode 100644 index 00000000..7fac96e4 --- /dev/null +++ b/translations/ur/SECURITY.md @@ -0,0 +1,51 @@ + +## سیکیورٹی + +مائیکروسافٹ اپنی سافٹ ویئر مصنوعات اور خدمات کی سیکیورٹی کو سنجیدگی سے لیتا ہے، جس میں ہمارے GitHub تنظیموں کے ذریعے منظم کردہ تمام سورس کوڈ ریپوزٹریز شامل ہیں، جن میں [Microsoft](https://github.com/Microsoft)، [Azure](https://github.com/Azure)، [DotNet](https://github.com/dotnet)، [AspNet](https://github.com/aspnet)، [Xamarin](https://github.com/xamarin)، اور [ہمارے GitHub تنظیمیں](https://opensource.microsoft.com/) شامل ہیں۔ + +اگر آپ کو کسی مائیکروسافٹ کی ملکیت والے ریپوزٹری میں کوئی سیکیورٹی کمزوری ملتی ہے جو [مائیکروسافٹ کی سیکیورٹی کمزوری کی تعریف](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) پر پورا اترتی ہو، تو براہ کرم نیچے دی گئی ہدایات کے مطابق ہمیں رپورٹ کریں۔ + +## سیکیورٹی مسائل کی رپورٹنگ + +**براہ کرم سیکیورٹی کمزوریوں کو عوامی GitHub مسائل کے ذریعے رپورٹ نہ کریں۔** + +اس کے بجائے، انہیں مائیکروسافٹ سیکیورٹی رسپانس سینٹر (MSRC) کو [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report) پر رپورٹ کریں۔ + +اگر آپ لاگ ان کیے بغیر رپورٹ کرنا پسند کرتے ہیں، تو [secure@microsoft.com](mailto:secure@microsoft.com) پر ای میل بھیجیں۔ اگر ممکن ہو تو، اپنے پیغام کو ہمارے PGP کلید کے ساتھ انکرپٹ کریں؛ براہ کرم اسے [Microsoft Security Response Center PGP Key صفحہ](https://www.microsoft.com/en-us/msrc/pgp-key-msrc) سے ڈاؤن لوڈ کریں۔ + +آپ کو 24 گھنٹوں کے اندر جواب موصول ہونا چاہیے۔ اگر کسی وجہ سے آپ کو جواب نہ ملے، تو براہ کرم ای میل کے ذریعے فالو اپ کریں تاکہ یہ یقینی بنایا جا سکے کہ ہمیں آپ کا اصل پیغام موصول ہوا ہے۔ مزید معلومات [microsoft.com/msrc](https://www.microsoft.com/msrc) پر دستیاب ہیں۔ + +براہ کرم درج ذیل معلومات (جتنی آپ فراہم کر سکتے ہیں) شامل کریں تاکہ ہمیں مسئلے کی نوعیت اور دائرہ کار کو بہتر طور پر سمجھنے میں مدد ملے: + + * مسئلے کی قسم (مثلاً بفر اوور فلو، SQL انجیکشن، کراس سائٹ اسکرپٹنگ، وغیرہ) + * مسئلے کے ظہور سے متعلق سورس فائلوں کے مکمل راستے + * متاثرہ سورس کوڈ کا مقام (ٹیگ/برانچ/کمیٹ یا براہ راست URL) + * مسئلے کو دوبارہ پیدا کرنے کے لیے درکار کوئی خاص کنفیگریشن + * مسئلے کو دوبارہ پیدا کرنے کے لیے مرحلہ وار ہدایات + * پروف آف کانسیپٹ یا ایکسپلائٹ کوڈ (اگر ممکن ہو) + * مسئلے کا اثر، بشمول یہ کہ حملہ آور مسئلے کا فائدہ کیسے اٹھا سکتا ہے + +یہ معلومات ہمیں آپ کی رپورٹ کو جلد از جلد جانچنے میں مدد دے گی۔ + +اگر آپ بگ باؤنٹی کے لیے رپورٹ کر رہے ہیں، تو زیادہ مکمل رپورٹس زیادہ باؤنٹی انعام میں مددگار ہو سکتی ہیں۔ براہ کرم ہمارے [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) صفحے پر ہمارے فعال پروگراموں کے بارے میں مزید تفصیلات دیکھیں۔ + +## ترجیحی زبانیں + +ہم تمام مواصلات کو انگریزی میں ترجیح دیتے ہیں۔ + +## پالیسی + +مائیکروسافٹ [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd) کے اصول پر عمل کرتا ہے۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز، جو اس کی اصل زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/SUPPORT.md b/translations/ur/SUPPORT.md new file mode 100644 index 00000000..507a70c8 --- /dev/null +++ b/translations/ur/SUPPORT.md @@ -0,0 +1,24 @@ + +# معاونت +## مسائل درج کرنے اور مدد حاصل کرنے کا طریقہ + +یہ پروجیکٹ بگز اور فیچر درخواستوں کو ٹریک کرنے کے لیے GitHub Issues کا استعمال کرتا ہے۔ نئے مسائل درج کرنے سے پہلے موجودہ مسائل کو تلاش کریں تاکہ نقل سے بچا جا سکے۔ نئے مسائل کے لیے، اپنے بگ یا فیچر درخواست کو ایک نئے Issue کے طور پر درج کریں۔ + +اس پروجیکٹ کے استعمال کے بارے میں مدد اور سوالات کے لیے، ایک مسئلہ درج کریں۔ + +## مائیکروسافٹ سپورٹ پالیسی + +اس ریپوزٹری کے لیے سپورٹ صرف اوپر درج وسائل تک محدود ہے۔ + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/docs/_sidebar.md b/translations/ur/docs/_sidebar.md new file mode 100644 index 00000000..d838f69b --- /dev/null +++ b/translations/ur/docs/_sidebar.md @@ -0,0 +1,45 @@ + +- تعارف + - [ڈیٹا سائنس کی تعریف](../1-Introduction/01-defining-data-science/README.md) + - [ڈیٹا سائنس کے اخلاقیات](../1-Introduction/02-ethics/README.md) + - [ڈیٹا کی تعریف](../1-Introduction/03-defining-data/README.md) + - [امکانات اور شماریات](../1-Introduction/04-stats-and-probability/README.md) + +- ڈیٹا کے ساتھ کام کرنا + - [ریلیشنل ڈیٹا بیسز](../2-Working-With-Data/05-relational-databases/README.md) + - [نان ریلیشنل ڈیٹا بیسز](../2-Working-With-Data/06-non-relational/README.md) + - [پائتھون](../2-Working-With-Data/07-python/README.md) + - [ڈیٹا کی تیاری](../2-Working-With-Data/08-data-preparation/README.md) + +- ڈیٹا کی بصری نمائندگی + - [مقدار کی بصری نمائندگی](../3-Data-Visualization/09-visualization-quantities/README.md) + - [تقسیمات کی بصری نمائندگی](../3-Data-Visualization/10-visualization-distributions/README.md) + - [تناسبات کی بصری نمائندگی](../3-Data-Visualization/11-visualization-proportions/README.md) + - [تعلقات کی بصری نمائندگی](../3-Data-Visualization/12-visualization-relationships/README.md) + - [معنی خیز بصری نمائندگی](../3-Data-Visualization/13-meaningful-visualizations/README.md) + +- ڈیٹا سائنس کا لائف سائیکل + - [تعارف](../4-Data-Science-Lifecycle/14-Introduction/README.md) + - [تجزیہ](../4-Data-Science-Lifecycle/15-analyzing/README.md) + - [رابطہ کاری](../4-Data-Science-Lifecycle/16-communication/README.md) + +- کلاؤڈ میں ڈیٹا سائنس + - [تعارف](../5-Data-Science-In-Cloud/17-Introduction/README.md) + - [لو کوڈ](../5-Data-Science-In-Cloud/18-Low-Code/README.md) + - [ایژر](../5-Data-Science-In-Cloud/19-Azure/README.md) + +- جنگلی ماحول میں ڈیٹا سائنس + - [جنگلی ماحول میں ڈیٹا سائنس](../6-Data-Science-In-Wild/README.md) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/for-teachers.md b/translations/ur/for-teachers.md new file mode 100644 index 00000000..7a90dc2b --- /dev/null +++ b/translations/ur/for-teachers.md @@ -0,0 +1,78 @@ + +## اساتذہ کے لیے + +کیا آپ اس نصاب کو اپنی کلاس میں استعمال کرنا چاہتے ہیں؟ بے شک، ضرور کریں! + +حقیقت میں، آپ اسے GitHub کے اندر ہی استعمال کر سکتے ہیں، GitHub Classroom کے ذریعے۔ + +اس کے لیے، اس ریپو کو فورک کریں۔ آپ کو ہر سبق کے لیے ایک الگ ریپو بنانا ہوگا، اس لیے آپ کو ہر فولڈر کو ایک الگ ریپو میں نکالنا ہوگا۔ اس طرح، [GitHub Classroom](https://classroom.github.com/classrooms) ہر سبق کو الگ الگ اٹھا سکے گا۔ + +یہ [مکمل ہدایات](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) آپ کو بتائیں گی کہ اپنی کلاس روم کو کیسے ترتیب دیں۔ + +## ریپو کو موجودہ حالت میں استعمال کرنا + +اگر آپ اس ریپو کو اس کی موجودہ حالت میں استعمال کرنا چاہتے ہیں، بغیر GitHub Classroom کے، تو یہ بھی ممکن ہے۔ آپ کو اپنے طلباء کے ساتھ یہ بات چیت کرنی ہوگی کہ کون سا سبق اکٹھے مکمل کرنا ہے۔ + +آن لائن فارمیٹ (Zoom، Teams، یا دیگر) میں، آپ کوئز کے لیے بریک آؤٹ رومز بنا سکتے ہیں اور طلباء کو سیکھنے کے لیے تیار کرنے میں مدد دے سکتے ہیں۔ پھر طلباء کو کوئز کے لیے مدعو کریں اور ان سے کہیں کہ اپنے جوابات ایک خاص وقت پر 'issues' کے طور پر جمع کرائیں۔ آپ اسی طرح اسائنمنٹس کے ساتھ بھی کر سکتے ہیں، اگر آپ چاہتے ہیں کہ طلباء کھلے عام تعاون کے ساتھ کام کریں۔ + +اگر آپ ایک زیادہ نجی فارمیٹ کو ترجیح دیتے ہیں، تو اپنے طلباء سے کہیں کہ نصاب کو سبق بہ سبق اپنے GitHub ریپوز میں فورک کریں، جو کہ نجی ریپوز ہوں، اور آپ کو رسائی دیں۔ پھر وہ کوئز اور اسائنمنٹس نجی طور پر مکمل کر سکتے ہیں اور آپ کو اپنے کلاس روم ریپو پر 'issues' کے ذریعے جمع کرا سکتے ہیں۔ + +آن لائن کلاس روم فارمیٹ میں کام کرنے کے کئی طریقے ہیں۔ براہ کرم ہمیں بتائیں کہ آپ کے لیے کیا بہتر کام کرتا ہے! + +## اس نصاب میں شامل ہیں: + +20 اسباق، 40 کوئز، اور 20 اسائنمنٹس۔ بصری سیکھنے والوں کے لیے اسباق کے ساتھ اسکیچ نوٹس شامل ہیں۔ کئی اسباق Python اور R دونوں میں دستیاب ہیں اور انہیں Jupyter نوٹ بکس کے ذریعے VS Code میں مکمل کیا جا سکتا ہے۔ اس ٹیک اسٹیک کو استعمال کرنے کے لیے اپنی کلاس روم کو ترتیب دینے کے بارے میں مزید جانیں: https://code.visualstudio.com/docs/datascience/jupyter-notebooks۔ + +تمام اسکیچ نوٹس، بشمول ایک بڑے فارمیٹ کا پوسٹر، [اس فولڈر](../../sketchnotes) میں موجود ہیں۔ + +پورا نصاب [PDF کی شکل میں](../../pdf/readme.pdf) دستیاب ہے۔ + +آپ اس نصاب کو ایک اسٹینڈ الون، آف لائن فرینڈلی ویب سائٹ کے طور پر بھی Docsify کے ذریعے چلا سکتے ہیں۔ [Docsify انسٹال کریں](https://docsify.js.org/#/quickstart) اپنی لوکل مشین پر، پھر اس ریپو کی لوکل کاپی کے روٹ فولڈر میں `docsify serve` ٹائپ کریں۔ ویب سائٹ آپ کے localhost پر پورٹ 3000 پر دستیاب ہوگی: `localhost:3000`۔ + +نصاب کا آف لائن فرینڈلی ورژن ایک اسٹینڈ الون ویب پیج کے طور پر کھلے گا: https://localhost:3000 + +اسباق کو 6 حصوں میں تقسیم کیا گیا ہے: + +- 1: تعارف + - 1: ڈیٹا سائنس کی تعریف + - 2: اخلاقیات + - 3: ڈیٹا کی تعریف + - 4: احتمال اور شماریات کا جائزہ +- 2: ڈیٹا کے ساتھ کام کرنا + - 5: ریلیشنل ڈیٹا بیسز + - 6: نان-ریلیشنل ڈیٹا بیسز + - 7: Python + - 8: ڈیٹا کی تیاری +- 3: ڈیٹا کی بصری نمائندگی + - 9: مقدار کی بصری نمائندگی + - 10: تقسیمات کی بصری نمائندگی + - 11: تناسبات کی بصری نمائندگی + - 12: تعلقات کی بصری نمائندگی + - 13: بامعنی بصری نمائندگی +- 4: ڈیٹا سائنس کا لائف سائیکل + - 14: تعارف + - 15: تجزیہ + - 16: مواصلات +- 5: کلاؤڈ میں ڈیٹا سائنس + - 17: تعارف + - 18: کم کوڈ کے اختیارات + - 19: Azure +- 6: عملی دنیا میں ڈیٹا سائنس + - 20: جائزہ + +## براہ کرم ہمیں اپنی رائے دیں! + +ہم چاہتے ہیں کہ یہ نصاب آپ اور آپ کے طلباء کے لیے کارآمد ہو۔ براہ کرم ڈسکشن بورڈز میں ہمیں اپنی رائے دیں! اپنے طلباء کے لیے ڈسکشن بورڈز پر ایک کلاس روم ایریا بنانے کے لیے آزاد محسوس کریں۔ + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/quiz-app/README.md b/translations/ur/quiz-app/README.md new file mode 100644 index 00000000..e3e27fa2 --- /dev/null +++ b/translations/ur/quiz-app/README.md @@ -0,0 +1,138 @@ + +# کوئزز + +یہ کوئزز ڈیٹا سائنس کے نصاب کے لیے لیکچر سے پہلے اور بعد کے کوئزز ہیں، جو یہاں دستیاب ہیں: https://aka.ms/datascience-beginners +## ترجمہ شدہ کوئزز کا سیٹ شامل کرنا + +کوئزز کا ترجمہ شامل کرنے کے لیے، `assets/translations` فولڈرز میں مماثل کوئزز کے ڈھانچے بنائیں۔ اصل کوئزز `assets/translations/en` میں موجود ہیں۔ کوئزز کو کئی گروپوں میں تقسیم کیا گیا ہے۔ یقینی بنائیں کہ نمبرنگ کو صحیح کوئز سیکشن کے ساتھ ہم آہنگ کریں۔ اس نصاب میں کل 40 کوئزز ہیں، اور گنتی 0 سے شروع ہوتی ہے۔ + +ترجمہ میں ترمیم کرنے کے بعد، ترجمہ فولڈر میں `index.js` فائل کو ایڈٹ کریں تاکہ تمام فائلز کو `en` میں موجود کنونشنز کے مطابق امپورٹ کریں۔ + +`assets/translations` میں موجود `index.js` فائل کو ایڈٹ کریں تاکہ نئی ترجمہ شدہ فائلز کو امپورٹ کیا جا سکے۔ + +پھر، اس ایپ میں `App.vue` میں ڈراپ ڈاؤن کو ایڈٹ کریں تاکہ اپنی زبان شامل کریں۔ لوکلائزڈ مخفف کو اپنی زبان کے فولڈر کے نام سے ہم آہنگ کریں۔ + +آخر میں، ترجمہ شدہ اسباق میں موجود تمام کوئز لنکس کو ایڈٹ کریں، اگر وہ موجود ہوں، تاکہ اس لوکلائزیشن کو کوئری پیرامیٹر کے طور پر شامل کریں: مثال کے طور پر `?loc=fr`۔ + +## پروجیکٹ سیٹ اپ + +``` +npm install +``` + +### ڈیولپمنٹ کے لیے کمپائل اور ہاٹ ری لوڈز + +``` +npm run serve +``` + +### پروڈکشن کے لیے کمپائل اور منیفائی + +``` +npm run build +``` + +### فائلز کو لنٹ اور فکس کرتا ہے + +``` +npm run lint +``` + +### کنفیگریشن کو حسب ضرورت بنائیں + +[کنفیگریشن ریفرنس](https://cli.vuejs.org/config/) دیکھیں۔ + +کریڈٹس: اس کوئز ایپ کے اصل ورژن کا شکریہ: https://github.com/arpan45/simple-quiz-vue + +## ایزور پر ڈیپلائی کرنا + +یہاں ایک مرحلہ وار گائیڈ ہے جو آپ کو شروع کرنے میں مدد دے گی: + +1. گٹ ہب ریپوزٹری کو فورک کریں +یقینی بنائیں کہ آپ کا اسٹیٹک ویب ایپ کوڈ آپ کی گٹ ہب ریپوزٹری میں موجود ہے۔ اس ریپوزٹری کو فورک کریں۔ + +2. ایزور اسٹیٹک ویب ایپ بنائیں +- ایک [ایزور اکاؤنٹ](http://azure.microsoft.com) بنائیں +- [ایزور پورٹل](https://portal.azure.com) پر جائیں +- "Create a resource" پر کلک کریں اور "Static Web App" تلاش کریں۔ +- "Create" پر کلک کریں۔ + +3. اسٹیٹک ویب ایپ کو کنفیگر کریں +- بنیادی معلومات: + - سبسکرپشن: اپنی ایزور سبسکرپشن منتخب کریں۔ + - ریسورس گروپ: نیا ریسورس گروپ بنائیں یا موجودہ استعمال کریں۔ + - نام: اپنی اسٹیٹک ویب ایپ کے لیے ایک نام فراہم کریں۔ + - ریجن: اپنے صارفین کے قریب ترین ریجن منتخب کریں۔ + +- #### ڈیپلائیمنٹ کی تفصیلات: + - سورس: "GitHub" منتخب کریں۔ + - گٹ ہب اکاؤنٹ: ایزور کو اپنے گٹ ہب اکاؤنٹ تک رسائی کی اجازت دیں۔ + - آرگنائزیشن: اپنی گٹ ہب آرگنائزیشن منتخب کریں۔ + - ریپوزٹری: وہ ریپوزٹری منتخب کریں جس میں آپ کی اسٹیٹک ویب ایپ موجود ہے۔ + - برانچ: وہ برانچ منتخب کریں جس سے آپ ڈیپلائی کرنا چاہتے ہیں۔ + +- #### بلڈ کی تفصیلات: + - بلڈ پری سیٹس: وہ فریم ورک منتخب کریں جس پر آپ کی ایپ بنی ہے (جیسے React، Angular، Vue وغیرہ)۔ + - ایپ لوکیشن: وہ فولڈر بتائیں جہاں آپ کی ایپ کا کوڈ موجود ہے (جیسے / اگر یہ روٹ میں ہے)۔ + - API لوکیشن: اگر آپ کے پاس API ہے، تو اس کا مقام بتائیں (اختیاری)۔ + - آؤٹ پٹ لوکیشن: وہ فولڈر بتائیں جہاں بلڈ آؤٹ پٹ جنریٹ ہوتا ہے (جیسے build یا dist)۔ + +4. جائزہ لیں اور بنائیں +اپنی سیٹنگز کا جائزہ لیں اور "Create" پر کلک کریں۔ ایزور ضروری وسائل کو سیٹ اپ کرے گا اور آپ کی ریپوزٹری میں گٹ ہب ایکشنز ورک فلو بنائے گا۔ + +5. گٹ ہب ایکشنز ورک فلو +ایزور خود بخود آپ کی ریپوزٹری میں گٹ ہب ایکشنز ورک فلو فائل بنائے گا (.github/workflows/azure-static-web-apps-.yml)۔ یہ ورک فلو بلڈ اور ڈیپلائیمنٹ کے عمل کو سنبھالے گا۔ + +6. ڈیپلائیمنٹ کی نگرانی کریں +اپنی گٹ ہب ریپوزٹری میں "Actions" ٹیب پر جائیں۔ +آپ کو ایک ورک فلو چلتا ہوا نظر آئے گا۔ یہ ورک فلو آپ کی اسٹیٹک ویب ایپ کو ایزور پر بلڈ اور ڈیپلائی کرے گا۔ +جب ورک فلو مکمل ہو جائے، تو آپ کی ایپ فراہم کردہ ایزور URL پر لائیو ہو جائے گی۔ + +### ورک فلو فائل کی مثال + +یہاں گٹ ہب ایکشنز ورک فلو فائل کی ایک مثال ہے: +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### اضافی وسائل +- [ایزور اسٹیٹک ویب ایپس دستاویزات](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [گٹ ہب ایکشنز دستاویزات](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + +**ڈس کلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file diff --git a/translations/ur/sketchnotes/README.md b/translations/ur/sketchnotes/README.md new file mode 100644 index 00000000..360e6f10 --- /dev/null +++ b/translations/ur/sketchnotes/README.md @@ -0,0 +1,21 @@ + +تمام اسکیچ نوٹس یہاں دیکھیں! + +## کریڈٹس + +نیتیا نرسمہن، آرٹسٹ + +![روڈمیپ اسکیچ نوٹ](../../../translated_images/00-Roadmap.4905d6567dff47532b9bfb8e0b8980fc6b0b1292eebb24181c1a9753b33bc0f5.ur.png) + +--- + +**ڈسکلیمر**: +یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے پوری کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا خامیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔ \ No newline at end of file