دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Imran Ahmad
سری:
ISBN (شابک) : 1789801214, 9781789801217
ناشر: Packt Publishing
سال نشر: 2020
تعداد صفحات: 374
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 20 مگابایت
در صورت ایرانی بودن نویسنده امکان دانلود وجود ندارد و مبلغ عودت داده خواهد شد
در صورت تبدیل فایل کتاب 40 Algorithms Every Programmer Should Know: Hone your problem-solving skills by learning different algorithms and their implementation in Python به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب 40 الگوریتمی که هر برنامه نویسی باید بداند: مهارت های حل مسئله خود را با یادگیری الگوریتم های مختلف و پیاده سازی آنها در پایتون تقویت کنید. نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
الگوریتمهای حل مسائل کلاسیک علوم کامپیوتر را با این راهنمای مختصر بیاموزید که همه چیز را از الگوریتمهای اساسی، مانند مرتبسازی و جستجو، تا الگوریتمهای مدرن مورد استفاده در یادگیری ماشین و رمزنگاری را پوشش میدهد
الگوریتم ها همیشه نقش مهمی در علم و عمل محاسبات داشته اند. فراتر از محاسبات سنتی، توانایی استفاده از الگوریتم ها برای حل مسائل دنیای واقعی مهارت مهمی است که هر توسعه دهنده یا برنامه نویسی باید داشته باشد. این کتاب به شما کمک میکند نه تنها مهارتهای انتخاب و استفاده از یک الگوریتم را برای حل مسائل دنیای واقعی توسعه دهید، بلکه به درک نحوه عملکرد آن نیز کمک میکند.
شما با مقدمهای بر الگوریتمها و کشف تکنیکهای مختلف طراحی الگوریتم، قبل از بررسی نحوه پیادهسازی انواع مختلف الگوریتمها، مانند جستجو و مرتبسازی، با کمک مثالهای عملی، شروع میکنید. همانطور که به مجموعه پیچیدهتری از الگوریتمها پیش میروید، با برنامهنویسی خطی، رتبهبندی صفحات و نمودارها آشنا میشوید و حتی با الگوریتمهای یادگیری ماشینی کار میکنید و ریاضیات و منطق پشت آنها را درک میکنید. علاوه بر این، مطالعات موردی مانند پیشبینی آب و هوا، خوشهبندی توییتها و موتورهای توصیه فیلم به شما نشان میدهند که چگونه این الگوریتمها را بهطور بهینه اعمال کنید. در نهایت، شما به خوبی در تکنیکهایی که پردازش موازی را امکانپذیر میکنند، آشنا خواهید شد و به شما امکان میدهد از این الگوریتمها برای کارهای محاسباتی فشرده استفاده کنید.
در پایان این کتاب، شما در حل مسائل محاسباتی دنیای واقعی با استفاده از طیف گسترده ای از الگوریتم ها ماهر خواهید شد.
این کتاب برای افراد جدی است برنامه نویس! خواه شما یک برنامه نویس باتجربه هستید که به دنبال درک عمیق تری از ریاضیات پشت الگوریتم ها هستید یا دانش برنامه نویسی یا علم داده محدودی دارید و می خواهید در مورد اینکه چگونه می توانید از مزایای این الگوریتم های آزمایش شده در نبرد برای بهبود روش طراحی خود استفاده کنید و اطلاعات بیشتری کسب کنید. کد بنویسید، این کتاب برای شما مفید خواهد بود. تجربه برنامه نویسی پایتون ضروری است، اگرچه دانش علم داده مفید است اما ضروری نیست.
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental algorithms, such as sorting and searching, to modern algorithms used in machine learning and cryptography
Algorithms have always played an important role in both the science and practice of computing. Beyond traditional computing, the ability to use algorithms to solve real-world problems is an important skill that any developer or programmer must have. This book will help you not only to develop the skills to select and use an algorithm to solve real-world problems but also to understand how it works.
You'll start with an introduction to algorithms and discover various algorithm design techniques, before exploring how to implement different types of algorithms, such as searching and sorting, with the help of practical examples. As you advance to a more complex set of algorithms, you'll learn about linear programming, page ranking, and graphs, and even work with machine learning algorithms, understanding the math and logic behind them. Further on, case studies such as weather prediction, tweet clustering, and movie recommendation engines will show you how to apply these algorithms optimally. Finally, you'll become well versed in techniques that enable parallel processing, giving you the ability to use these algorithms for compute-intensive tasks.
By the end of this book, you'll have become adept at solving real-world computational problems by using a wide range of algorithms.
This book is for the serious programmer! Whether you are an experienced programmer looking to gain a deeper understanding of the math behind the algorithms or have limited programming or data science knowledge and want to learn more about how you can take advantage of these battle-tested algorithms to improve the way you design and write code, you'll find this book useful. Experience with Python programming is a must, although knowledge of data science is helpful but not necessary.
Cover Title Page Copyright and Credits Dedication About Packt Contributors Table of Contents Preface Section 1: Fundamentals and Core Algorithms Chapter 1: Overview of Algorithms What is an algorithm? The phases of an algorithm Specifying the logic of an algorithm Understanding pseudocode A practical example of pseudocode Using snippets Creating an execution plan Introducing Python packages Python packages The SciPy ecosystem Implementing Python via the Jupyter Notebook Algorithm design techniques The data dimension Compute dimension A practical example Performance analysis Space complexity analysis Time complexity analysis Estimating the performance The best case The worst case The average case Selecting an algorithm Big O notation Constant time (O(1)) complexity Linear time (O(n)) complexity Quadratic time (O(n2)) complexity Logarithmic time (O(logn)) complexity Validating an algorithm Exact, approximate, and randomized algorithms Explainability Summary Chapter 2: Data Structures Used in Algorithms Exploring data structures in Python List Using lists Lambda functions The range function The time complexity of lists Tuples The time complexity of tuples Dictionary The time complexity of a dictionary Sets Time complexity analysis for sets DataFrames Terminologies of DataFrames Creating a subset of a DataFrame Column selection Row selection Matrix Matrix operations Exploring abstract data types Vector Stacks The time complexity of stacks Practical example Queues The basic idea behind the use of stacks and queues Tree Terminology Types of trees Practical examples Summary Chapter 3: Sorting and Searching Algorithms Introducing Sorting Algorithms Swapping Variables in Python Bubble Sort Understanding the Logic Behind Bubble Sort A Performance Analysis of Bubble Sort Insertion Sort Merge Sort Shell Sort A Performance Analysis of Shell Sort Selection Sort The performance of the selection sort algorithm Choosing a sorting algorithm Introduction to Searching Algorithms Linear Search The Performance of Linear Search Binary Search The Performance of Binary Search Interpolation Search The Performance of Interpolation Search Practical Applications Summary Chapter 4: Designing Algorithms Introducing the basic concepts of designing an algorithm Concern 1 – Will the designed algorithm produce the result we expect? Concern 2 – Is this the optimal way to get these results? Characterizing the complexity of the problem Concern 3 – How is the algorithm going to perform on larger datasets? Understanding algorithmic strategies Understanding the divide-and-conquer strategy Practical example – divide-and-conquer applied to Apache Spark Understanding the dynamic programming strategy Understanding greedy algorithms Practical application – solving the TSP Using a brute-force strategy Using a greedy algorithm Presenting the PageRank algorithm Problem definition Implementing the PageRank algorithm Understanding linear programming Formulating a linear programming problem Defining the objective function Specifying constraints Practical application – capacity planning with linear programming Summary Chapter 5: Graph Algorithms Representations of graphs Types of graphs Undirected graphs Directed graphs Undirected multigraphs Directed multigraphs Special types of edges Ego-centered networks Social network analysis Introducing network analysis theory Understanding the shortest path Creating a neighborhood Triangles Density Understanding centrality measures Degree Betweenness Fairness and closeness Eigenvector centrality Calculating centrality metrics using Python Understanding graph traversals Breadth-first search Initialization The main loop Depth-first search Case study – fraud analytics Conducting simple fraud analytics Presenting the watchtower fraud analytics methodology Scoring negative outcomes Degree of suspicion Summary Section 2: Machine Learning Algorithms Chapter 6: Unsupervised Machine Learning Algorithms Introducing unsupervised learning Unsupervised learning in the data-mining life cycle Current research trends in unsupervised learning Practical examples Voice categorization Document categorization Understanding clustering algorithms Quantifying similarities Euclidean distance Manhattan distance Cosine distance K-means clustering algorithm The logic of k-means clustering Initialization The steps of the k-means algorithm Stop condition Coding the k-means algorithm Limitation of k-means clustering Hierarchical clustering Steps of hierarchical clustering Coding a hierarchical clustering algorithm Evaluating the clusters Application of clustering Dimensionality reduction Principal component analysis Limitations of PCA Association rules mining Examples of use Market basket analysis Association rules Types of rule Trivial rules Inexplicable rules Actionable rules Ranking rules Support Confidence Lift Algorithms for association analysis Apriori Algorithm Limitations of the apriori algorithm FP-growth algorithm Populating the FP-tree Mining Frequent Patterns Code for using FP-growth Practical application– clustering similar tweets together Topic modeling Clustering Anomaly-detection algorithms Using clustering Using density-based anomaly detection Using support vector machines Summary Chapter 7: Traditional Supervised Learning Algorithms Understanding supervised machine learning Formulating supervised machine learning Understanding enabling conditions Differentiating between classifiers and regressors Understanding classification algorithms Presenting the classifiers challenge The problem statement Feature engineering using a data processing pipeline Importing data Feature selection One-hot encoding Specifying the features and label Dividing the dataset into testing and training portions Scaling the features Evaluating the classifiers Confusion matrix Performance metrics Understanding overfitting Bias Variance Bias-variance trade-off Specifying the phases of classifiers Decision tree classification algorithm Understanding the decision tree classification algorithm Using the decision tree classification algorithm for the classifiers challenge The strengths and weaknesses of decision tree classifiers Strengths Weaknesses Use cases Classifying records Feature selection Understanding the ensemble methods Implementing gradient boosting with the XGBoost algorithm Using the random forest algorithm Training a random forest algorithm Using random forest for predictions Differentiating the random forest algorithm from ensemble boosting Using the random forest algorithm for the classifiers challenge Logistic regression Assumptions Establishing the relationship The loss and cost functions When to use logistic regression Using the logistic regression algorithm for the classifiers challenge The SVM algorithm Using the SVM algorithm for the classifiers challenge Understanding the naive Bayes algorithm Bayes, theorem Calculating probabilities Multiplication rules for AND events The general multiplication rule Addition rules for OR events Using the naive Bayes algorithm for the classifiers challenge For classification algorithms, the winner is... Understanding regression algorithms Presenting the regressors challenge The problem statement of the regressors challenge Exploring the historical dataset Feature engineering using a data processing pipeline Linear regression Simple linear regression Evaluating the regressors Multiple regression Using the linear regression algorithm for the regressors challenge When is linear regression used? The weaknesses of linear regression The regression tree algorithm Using the regression tree algorithm for the regressors challenge The gradient boost regression algorithm Using gradient boost regression algorithm for the regressors challenge For regression algorithms, the winner is... Practical example – how to predict the weather Summary Chapter 8: Neural Network Algorithms Understanding ANNs The Evolution of ANNs Training a Neural Network Understanding the Anatomy of a Neural Network Defining Gradient Descent Activation Functions Threshold Function Sigmoid Rectified linear unit (ReLU) Leaky ReLU Hyperbolic tangent (tanh) Softmax Tools and Frameworks Keras Backend Engines of Keras Low-level layers of the deep learning stack Defining hyperparameters Defining a Keras model Choosing sequential or functional model Understanding TensorFlow Presenting TensorFlow's Basic Concepts Understanding Tensor Mathematics Understanding the Types of Neural Networks Convolutional Neural Networks Convolution Pooling Recurrent Neural Networks Generative Adversarial Networks Transfer Learning Case study – using deep learning for fraud detection Methodology Summary Chapter 9: Algorithms for Natural Language Processing Introducing NLP Understanding NLP terminology Normalization Corpus Tokenization Named entity recognition Stopwords Sentiment analysis Stemming and lemmatization NLTK BoW-based NLP Introduction to word embedding The neighborhood of a word Properties of word embeddings Using RNNs for NLP Using NLP for sentiment analysis Case study: movie review sentiment analysis Summary Chapter 10: Recommendation Engines Introducing recommendation systems Types of recommendation engines Content-based recommendation engines Finding similarities between unstructured documents Using a co-occurrence matrix Collaborative filtering recommendation engines Hybrid recommendation engines Generating a similarity matrix of the items Generating reference vectors of the users Generating recommendations Understanding the limitations of recommender systems The cold start problem Metadata requirements The data sparsity problem Bias due to social influence Limited data Areas of practical applications Practical example – creating a recommendation engine Summary Section 3: Advanced Topics Chapter 11: Data Algorithms Introduction to data algorithms Data classification Presenting data storage algorithms Understanding data storage strategies Presenting the CAP theorem CA systems AP systems CP systems Presenting streaming data algorithms Applications of streaming Presenting data compression algorithms Lossless compression algorithms Understanding the basic techniques of lossless compression Huffman coding A practical example – Twitter real-time sentiment analysis Summary Chapter 12: Cryptography Introduction to Cryptography Understanding the Importance of the Weakest Link The Basic Terminology Understanding the Security Requirements Identifying the Entities Establishing the Security Goals Understanding the Sensitivity of the Data Understanding the Basic Design of Ciphers Presenting Substitution Ciphers Understanding Transposition Ciphers Understanding the Types of Cryptographic Techniques Using the Cryptographic Hash Function Implementing cryptographic hash functions Understanding MD5-tolerated Understanding SHA An Application of the Cryptographic Hash Function Using Symmetric Encryption Coding Symmetric Encryption The Advantages of Symmetric Encryption The Problems with Symmetric Encryption Asymmetric Encryption The SSL/TLS Handshaking Algorithm Public Key Infrastructure Example – Security Concerns When Deploying a Machine Learning Model MITM attacks How to prevent MITM attacks Avoiding Masquerading Data and Model Encrpytion Summary Chapter 13: Large-Scale Algorithms Introduction to large-scale algorithms Defining a well-designed, large-scale algorithm Terminology Latency Throughput Network bisection bandwidth Elasticity The design of parallel algorithms Amdahl's law Conducting sequential process analysis Conducting parallel execution analysis Understanding task granularity Load balancing Locality issues Enabling concurrent processing in Python Strategizing multi-resource processing Introducing CUDA Designing parallel algorithms on CUDA Using GPUs for data processing in Python Cluster computing Implementing data processing in Apache Spark The hybrid strategy Summary Chapter 14: Practical Considerations Introducing practical considerations The sad story of an AI Twitter Bot The explainability of an algorithm Machine learning algorithms and explainability Presenting strategies for explainability Implementing explainability Understanding ethics and algorithms Problems with learning algorithms Understanding ethical considerations Inconclusive evidence Traceability Misguided evidence Unfair outcomes Reducing bias in models Tackling NP-hard problems Simplifying the problem Example Customizing a well-known solution to a similar problem Example Using a probabilistic method Example When to use algorithms A practical example – black swan events Four criteria to classify an event as a black swan event Applying algorithms to black swan events Summary Other Books You May Enjoy Index