Errata
The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted by | Date submitted |
---|---|---|---|---|
Page Equation typesetting in various chapters Equations: 2-1 (notation box), 4-11, 5-3, 6-4, 7-1, 11-1, 14-1, 16-1, 18-4 |
When viewed in portrait mode on an iPad, these long equations do not "collapse" within a scrollable box in the body text like other long equations do. Instead, they overflow outside of the body text area, causing margins to be rendered from the end of those equations rather than from the body text, leading to very large actual margins around the body text. It's possible I missed some other problematic equations, these just happened to be the longest/most obvious ones overflowing from the body text. Note from the Author or Editor: |
Rasmi Elasmar | Dec 26, 2022 | |
Printed | Page p71 footnote 11 |
(p71) In footnote, |
Haesun Park | Feb 16, 2023 |
Printed | Page p86 1st paragraph under the TIP |
Actually, make_column_selector is a class, not a function. |
Haesun Park | Feb 16, 2023 |
Printed | Page p91, p92 Middle of page |
Hi Aurelien, |
Haesun Park | Feb 16, 2023 |
Printed | Page p92 In a TIP |
Hi Aurelien, |
Haesun Park | Feb 16, 2023 |
Printed | Page Page : 602 Section with the bird ( last second) |
While the encoder uses LSTM with 512 unit, in the following section it mentions GRU with 10 units. |
Anonymous | Feb 18, 2023 |
Printed | Page Page : 602 Section with the bird ( last second) |
While the encoder uses LSTM with 512 unit, in the following section it mentions GRU with 10 units. |
Deniz Turan | Feb 18, 2023 |
Printed | Page Throughout the book E.g. code of page 204 |
Since v1.17.0, numpy has a new interface for random number generation. It might be appropriate to upgrade the code in the next release of the book with this interface. |
Roland Leners | Feb 20, 2023 |
Printed, ePub | Page Chapter 3, page 119 the code near the top |
>>> y_train_pred_forest = y_probas_forest[:, 1] >= 0.5 # positive proba ≥ 50% |
Kostas Katis | Feb 24, 2023 |
Printed | Page Michael Bühlmann 343 |
On the line: |
Michael Bühlmann | Apr 05, 2023 |
Other Digital Version | chapter 2 - end to end ML project equations such as RMSE |
This may be a Kindle Scribe issue rather than a book format issue but on Kindle Scribe equations such as RMSE dont display correctly. They display correctly on Kindle app for IPad |
Ronan Stokes | Apr 27, 2023 |
Printed | Page Training Supervision : Unsupervised learning 1st paragraph Page 12, 1st paragraph Page 13 |
Hello Aurélien. |
Franklin Wilfried NDJATHE NDJATHE | Jul 27, 2023 |
ePub | Page Chapter 10, footnote 25 End of the sentence. |
The footnote refers to homl.info/extra-anns . However, this notebook (or directory) does not exist on the book github. Is it still "work in progress"? Roland Leners reported a similar issue May 08, 2023. |
Anonymous | Sep 13, 2023 |
O'Reilly learning platform | Page Select a Performance Measure Equation 2-1 |
missing parenthesis before h |
Valerio | Jan 09, 2024 |
O'Reilly learning platform | Page Select a Performance Measure Equation 2-1 |
I agree with Valerio's Jan 09, 2024 submission, there is a missing open parenthesis in this equation, and I'm assuming (as Valerio did) that it should've been before the h. |
Dave Smith | Jan 10, 2024 |
O'Reilly learning platform | Page Polynomial Regression Warning box |
The formula for the number of polynomial features should be (n+d)!/(d!n!)-1 instead of (n+d)!/(d!n!). For example, for a polynomial of degree d=2 with n=1 feature x, we get 2 features (x and x^2), not 3. The reason is that we subtract the bias term 1, so the original formula is changed here. |
Antje Muntzinger | Apr 05, 2024 |
O'Reilly learning platform | Page Chapter 6: Decision Trees, section Regression Figure 6-5 |
Figure 6-5 was changed in the 3rd edition of the book, now the figure does not fit the text above and Figure 6-4 any more (the x-values do not match). |
Antje Muntzinger | Apr 05, 2024 |
Printed | Page 47 Figure 2-4: Your notebook in Google Colab |
Figure contents out of sync with Github version |
Morten Hoffmann | Nov 15, 2023 |
Printed | Page 64 2nd paragraph |
Because combination attributes is not added yet, there are 9 numerical attributes. |
Haesun Park | Mar 07, 2023 |
Printed | Page 67 below the correlation matrix |
Under the correlation matrix, the paragraph says "...The new bedrooms_ratio is much more correlated with median house value than the total number of rooms or bedrooms..." |
Dominik Dekleva | Mar 01, 2023 |
Printed | Page 93 Second paragraph |
In the second paragraph on page 93, right below the code it states that the best model is obtained by setting max_features to 8, but the output of the code states it should be set to 6. |
Sam | Jul 03, 2023 |
Printed | Page 96 Last paragraph |
Student's t-distribution is used to compute the confidence interval for the generalization error i.e. the mean of the squared errors. I understand that this would require the squared errors to follow a normal distribution (see e.g. Wikipedia's page on Student's t-distribution). However they do not. The data has a cut-off at 0 and a long tail towards high values. |
Roland Leners | Jan 26, 2023 |
Printed | Page 104 Last paragraph |
The typo appears in Chapter 3: Classification, specifically on page 104. The error is as follows: In the last paragraph of page 104, there is an issue with the wording. The paragraph currently reads as follows: "One pixel's intensity is from 0 to 255 that's right, but 0 indicates white and 255 indicates black in grayscale map." However, the correct phrasing should be: "The pixel intensity ranges from 0 to 255, where 0 indicates black and 255 indicates white in a grayscale map." This correction clarifies the intended meaning and ensures accurate understanding for readers. |
Deep | Jun 27, 2023 |
Printed | Page 112 code block in the middle |
Hi, |
Haesun Park | Feb 23, 2023 |
Printed | Page 113 2nd paragraph |
Hi, |
Haesun Park | Feb 23, 2023 |
Printed | Page 118 Caution block |
Hi, |
Haesun Park | Feb 23, 2023 |
Printed | Page 120 Middle of page |
Hi, |
Haesun Park | Feb 23, 2023 |
Printed | Page 126,127 last paragraph |
Hi, |
Haesun Park | Feb 23, 2023 |
Printed | Page 204 Figure 6-4 |
The decision tree in figure 6-4 is inconsistent with figure 6-5 (max_depth=2). The decision tree published on Github is consistent though. |
Roland Leners | Feb 20, 2023 |
Printed | Page 204 Figure 6-4 |
I believe that Figure 6-4 is from the 2nd edition, and it is different from the one in the 3rd edition notebook. |
Haesun Park | Mar 07, 2023 |
Page 205 Figure 6-5 |
The boundaries showed in the Figure 6-5 are different from what you can find in DT nodes of Figure 6-4. I ran the Python notebook to see if the two images have the same boundaries and in that case everything is correct! |
Lorenzo | Jan 02, 2024 | |
Printed | Page 215 Last code snippe of "Voting Classifier" section |
>>>voting_clf.score(X_test, y_test) |
Roland Leners | Feb 23, 2023 |
Printed | Page 220 Last paragraph of "Random Forest" chapter |
The text "The random forest algorithm introduces extra randomness when growing trees; etc." is not clear for me. When reading through the sklearn documentation it seems to me that DecisionTreeClassifier() and RandomForestClassifier() behave identically wrt max_features. And, according to the documentation, the default value for max_features of the RandomForestClassifier() is 1.0 and not 'sqrt' like the text seems to imply. |
Roland Leners | Feb 27, 2023 |
Printed | Page 224 Eq. 7-1 |
There appears to be a mistake in Equation 7-1 as it is missing a denominator. |
Haesun Park | Mar 07, 2023 |
Printed | Page 233 First line |
The page break between pages 232 and 233 garbles up the text. |
Roland Leners | Mar 13, 2023 |
Printed | Page 245 Last paragraph |
I think that understanding of the reasoning would be improved if the text stated that the singular values of s (as returned by np.linalg.svd() ) are sorted in descending order. I understand that this is the reason why one can select the first principal components for reducing dimensionality. |
Roland Leners | Mar 15, 2023 |
Printed | Page 276 Section on representative images |
I am wondering about the benefit of making a detour via representative images instead of using directly the cluster centroids: |
Roland Leners | Apr 03, 2023 |
Printed | Page 288 Just above the code snippet |
The code looks for a 2% threshold, but the paragraph above (twice) says 4. |
Peter Drake | Apr 06, 2023 |
Printed | Page 314 2nd paragraph |
The code `housing = fetch_california_housing()`, and subsequent code `fashion_mnist = tf.keras.datasets.fashion_mnist.load_data()` (on p.318, ~3rd paragraph), will not work in all circumstances. It fails on macos 13.6.4 running Python 3.11.8, with the following error: |
Paul Maurizio | Mar 11, 2024 |
Printed | Page 322 First set of code |
The example lead me in thinking that the sequence of layer indices (used in model.layers[index]) followed the sequence of layer instantiations. It is true for a Sequential model, but not in general. It got me confused when I analyzed the layers of the example on page 332. Might deserve a footnote. |
Roland Leners | Apr 18, 2023 |
Printed | Page 346 Code middle of the page |
When running the code (locally): |
Roland Leners | Apr 27, 2023 |
Printed | Page 377 3rd paragraph |
The homl.info link to extra-anns is broken. |
Roland Leners | May 08, 2023 |
PDF, Other Digital Version | Page 389 First paragraph, right under "Power scheduling" |
In the digital version, the formula for power scheduling is badly formatted. It appears as: |
Marcos Rodrigo | Sep 01, 2023 |
Printed | Page 390 First line of code |
The code does not work because "decay is deprecated in the new Keras optimizer, pleasecheck the docstring for valid arguments, or use the legacy optimizer, e.g., tf.keras.optimizers.legacy.SGD.". |
Roland Leners | May 10, 2023 |
Printed | Page 410 Second code section |
The following two lines produce an „NotFoundError“: |
Michael Bühlmann | Apr 20, 2023 |
Printed | Page 420 Code snippet |
In the build function, the parent's build method is not called (contrary to what the text says). On Github it is called: |
Roland Leners | Jun 21, 2023 |
Printed, PDF, Other Digital Version | Page 421 Note with a blue bird in the middle of the page |
In the note, it says: |
Marcos Rodrigo | Aug 08, 2023 |
Printed | Page 483 Figure 14-3 |
In addition to the error reported earlier (stride = 1 and not 2), the accolade representing fw=3 is one unit too large. |
Roland Leners | Jun 15, 2023 |
Printed | Page 563 `to_seq2seq_dataset` function code block |
To my understanding, the lambda function S should actually be defined as: |
Riccardo Trevisan | Mar 09, 2023 |
Other Digital Version | 587 First paragraph |
|
Mario Brito Morales | Oct 29, 2023 |
Printed | Page 828 Last entry in the index on the page |
Incomplete reference in index: sklearn.model_selection.RandomizedSearchCV is already introduced on pages 93/94 (in addition to p. 248) |
Roland Leners | Feb 16, 2023 |