# How to explain neural networks using SHAP

This post contains product affiliate links. We may receive a commission from Amazon if you make a purchase after clicking on one of these links. You will not incur any additional costs by clicking these links.

Neural networks are fascinating and very efficient tools for data scientists, but they have a very huge flaw: they are unexplainable black boxes. In fact, they don’t give us any information about feature importance. Fortunately, there is a powerful approach we can use to interpret every model, even neural networks. It is the SHAP approach.

Let’s see how to use it for explain and interpret a neural network in Python.

If you want to know more about neural networks first, I suggest reading this book.

## What is SHAP?

SHAP stands for SHapley Additive exPlanations. It’s a way to calculate the impact of a feature to the value of the target variable. The idea is you have to consider each feature as a player and the dataset as a team. Each player gives their contribution to the result of the team. The sum of these contributions gives us the value of the target variable given some values of the features (i.e. given a particular record).

The main concept is that the impact of a feature doesn’t rely only on the single feature, but on the entire set of features in the dataset. So, SHAP calculates the impact of every feature to the target variable (called shap value) using combinatorial calculus and retraining the model over all the combination of features that contains the one we are considering. The average absolute value of the impact of a feature against a target variable can be used as a measure of its importance.

A very clear explanation of SHAP is given in this great article. If you need deeper focus on this technique, you can read this book as well.

The benefit of SHAP is that it doesn’t care about the model we use. In fact, it is a model-agnostic approach. So, it’s perfect to explain those models that don’t give us their own interpretation of feature importance, like neural networks.

Let’s see how to use SHAP in Python with neural networks.

## An example in Python with neural networks

In this example, we are going to calculate feature impact using SHAP for a neural network using Python and scikit-learn. In real-life cases, you’d probably use Keras to build a neural network, but the concept is exactly the same.

For this example, we are going to use the diabetes dataset of scikit-learn, which is a regression dataset.

Let’s first install shap library.

!pip install shap

Then, let’s import it and other useful libraries.

import shap
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPRegressor
from sklearn.pipeline import make_pipeline

from sklearn.model_selection import train_test_split

Now we can load our dataset and the feature names, that will be useful later.

X,y = load_diabetes(return_X_y=True)
features = load_diabetes()['feature_names']

We can now split our dataset into training and test.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

Now we have to create our model. Since we are talking about a neural network, we must scale the features in advance. For this example, I’ll use a standard scaler. The model itself is a feedforward neural network with 5 neurons in the hidden layer, 10000 epochs and a logistic activation function with an auto-adaptive learning rate. In real life, you will optimize these hyperparameters properly before setting these values.

model = make_pipeline(
StandardScaler(),
MLPRegressor(hidden_layer_sizes=(5,),activation='logistic', max_iter=10000,learning_rate='invscaling',random_state=0)
)

We can now fit our model.

model.fit(X_train,y_train)

Now it comes the SHAP part. First of all, we need to create an object called explainer. It’s the object that takes, in input, the predict method of our model and the training dataset. In order to make SHAP model-agnostic, it performs a perturbation around the points of the training dataset and calculates the impact of this perturbation to the model. It’s a type of resampling technique, whose number of samples are set later. This approach is related to another famous approach called LIME, which has been proved to be a special case of the original SHAP approach. The result is a statistical estimate of the SHAP values.

## Register to the upcoming webinar

In this webinar, the course Feature importance and model interpretation in Python is introduced. The contents of the course and its benefits will be presented.

## Join my free course

Join my free course about Exploratory Data Analysis and you'll learn:

• data visualization
• multivariate analysis
• correlation analysis
• the most useful Python libraries

So, first of all let’s define the explainer object.

explainer = shap.KernelExplainer(model.predict,X_train)

Now we can calculate the shap values. Remember that they are calculated resampling the training dataset and calculating the impact over these perturbations, so ve have to define a proper number of samples. For this example, I’ll use 100 samples.

Then, the impact is calculated on the test dataset.

shap_values = explainer.shap_values(X_test,nsamples=100)

A nice progress bar appears and shows the progress of the calculation, which can be quite slow.

At the end, we get a (n_samples,n_features) numpy array. Each element is the shap value of that feature of that record. Remember that shap values are calculated for each feature and for each record.

Now we can plot what is called a “summary plot”. Let’s first plot it and then we’ll comment the results.

shap.summary_plot(shap_values,X_test,feature_names=features)

Each point of every row is a record of the test dataset. The features are sorted from the most important one to the less important. We can see that s5 is the most important feature. The higher the value of this feature, the more positive the impact on the target. The lower this value, the more negative the contribution.

Let’s go deeper inside a particular record, for example the first one. A very useful plot we can draw is called force plot

shap.initjs()
shap.force_plot(explainer.expected_value, shap_values[0,:]  ,X_test[0,:],feature_names=features)

113.90 is the predicted value. The base value is the average value of the target variable across all the records. Each stripe shows the impact of its feature in pushing the value of the target variable farther or closer to the base value. Red stripes show that their features push the value towards higher values. Blue stripes show that their features push the value towards lower values. The wider a stripe, the higher (in absolute value) the contribution. The sum of these contributions pushes the value of the target variable from the vase value to the final, predicted value.

As we can see, for this particular record, bmi, bp, s2, sex and s5 values have a positive contribution to the predicted value. s5 is still the most important variable of this record, because its contribution is the widest one (it has the largest stripe). The only variable that shows a negative contribution is s1, but it’s not strong enough to move the predicted value lower than the base value. So, since the total positive contribution (red stripes) is larger than the negative contribution (blue stripe), the final value is greater than the base value. That’s how SHAP works.

As we can see, we are learning several things about feature importance by reading only these charts. We don’t care about the model we are using, because SHAP is a model-agnostic approach. We just care about how the features impact the predicted value. This is very helpful for explaining black-boxes models like, in this example, neural networks.

We could never achieve such a knowledge of our dataset just knowing the weights of our neural network and that’s why SHAP is a very useful approach.

You can find a complete use of this technique and several other ways to explain machine learning models in this book.

## Conclusions

SHAP is a very powerful approach when it comes to explaining models that are not able to give use their own interpretation of feature importance. Such models are, for example, neural networks and KNN. Although this method is quite powerful, there’s no free lunch and we have to suffer some computationally expensive calculations that we must be aware of.

1. Hello. fantastic job. I did not imagine this. This is a remarkable story. Thanks!

1. Thank you! I’m glad you like it!

2. I’m truly enjoying the design and layout of your blog. It’s a very easy on the eyes which makes it much more pleasant for me to come here and visit more often. Did you hire out a developer to create your theme? Fantastic work!

1. Thanks! No, I used a WordPress template that I customized a bit by myself.

3. Sara

Is there any threshold for the values in continuous variables to be red or blue in SHAP summary plot?

4. Rodrigo

Hi, thanks for your contribution. I’ve been facing issues trying to use a Pipeline and Shap. Which Shap version your worked with for this example?

5. Cập nhật Kèo bóng đá – Keonhacai – Kèo nhà cái, Tỷ Lệ Kèo, Tỷ Lệ Kèo Nhà Cái 5 mới và chính xác nhất. tylekeo88, bong88, keobong88. https://keobongda247.cc

6. Kubet là một trong những cái tên quen thuộc trên thị trường cá cược hiện nay với nhiều ưu điểm nổi bật. Với số lượng thành viên đông đảo, nhà cái đang cho thấy chất lượng dịch vụ tuyệt vời mà mình mang lại. Website: https://kubet66.info/

7. OK9 | OK9 Limited là một những nhà cái hàng đầu hoạt động trong lĩnh vực giải trí trực tuyến. Với danh tiếng về sự vững chắc và uy tín được xây dựng trong thời gian qua, đơn vị đã khẳng định được vị trí của mình và trở thành điểm cá cược hàng đầu. Website : https://ok9.limited/

8. Η γνώση είναι μαγική δύναμη!β

9. Η γνώση είναι μαφγική δύναμη!

10. Trong vũ trụ của trò chơi cá cược, Rikvip tựa như một ngôi sao sáng rực, chiếu sáng lối đi cho những ai đam mê sự hồn nhiên của trò chơi. https://www.rikvipo.net/ .

11. j88.supply

J88.supply là nhà cái cá cược trực tuyến uy tín hoạt động tại thị trường Việt Nam và Châu Á. J88 cung cấp đa dạng các sản phẩm cá cược và giải trí như: cá cược thể thao, cá cược casino, xổ số, keno, game bài,…https://j88.supply/

12. j88.supply

Điểm Đến Lý Tưởng Cho Người Yêu Thể Thao và Casino trực tuyến. Với đa dạng trò chơi, dịch vụ chuyên nghiệp và uy tín, fb88 là lựa chọn hàng đầu của người chơi Việt Nam. Khám phá ngay để trải nghiệm sự hứng khởi và may mắn ! https://fb88.games/

13. fb88

Điểm Đến Lý Tưởng Cho Người Yêu Thể Thao và Casino trực tuyến. Với đa dạng trò chơi, dịch vụ chuyên nghiệp và uy tín, fb88 là lựa chọn hàng đầu của người chơi Việt Nam. Khám phá ngay để trải nghiệm sự hứng khởi và may mắn ! https://fb88.games/

14. KUBET – is a leading online betting brand, specializing in providing diverse reward games such as live, sports betting, lottery, slot games and many other games.
https://kubetno1.com/

15. MB66 là nhà cái cá cược chuyên cung cấp các trò chơi đổi thưởng như: live casino, cá độ bóng đá, lô đề, slot game và một số trò chơi khác. MB66 được cấp giấy phép hoạt động hợp pháp, bảo hộ và được giám sát chặt chẽ bởi các tổ chức quản lý cờ bạc trên toàn cầu. Website : https://mb66no1.com/

16. I9BET Ventures – Trang chủ chính thức nhà cái I9BET. Cung cấp dịch vụ giải trí cá cược đa dạng như: Bắn cá, live casino, thể thao, xổ số, đá gà,… Với chất lượng dịch vụ hàng đầu Việt Nam

17. OKVIP collaborates with top-rated global betting partners, creating a premium entertainment system

18. Kubet77 thành lập từ năm 2005 là nhà cái đã vững mạnh trên thị trường cá cược, đặc biệt tại Việt Nam và Châu Á. Sự đáng tin cậy của họ đã thu hút ngày càng nhiều người chơi, tạo nên một cộng đồng đam mê.

19. THABET – THA Casino ✅✅ Link vao dang ky, dang nhap nha cai THA BET so 1 Viet Nam tai thabet.loan. Tai APP THA Casino ca cuoc the thao, song bac online, xo so hap dan. Thuong hieu nha cai ca cuoc Thabet chinh thuc xuat hien tren thi truong ca cuoc tu nam 2012 voi rat nhieu uu diem cung tiem luc tai chinh vung manh. Khi den voi nha cai Thabet, anh em cuoc thu se duoc trai nghiem ca cuoc voi chat luong dich vu tot nhat tren thi truong, da dang nhieu san pham ca cuoc cung tro choi dac biet hap dan. Hien nay Thabet mang den nen tang ca cuoc duoc dam bao an toan, cong bang va minh bach danh cho anh em cuoc thu, do do anh em hoan toan co the tham gia ca cuoc tai day. Website : https://thabet.loan/

20. VIN777 – vin777.coffee là cái tên không còn xa lạ với người chơi, nơi mang đến những dịch vụ đỉnh cao trang thị trường cá cược. Với sự đa dạng về trò chơi, cách chơi

21. Nhà cái Jun88 đã trở thành một trong những địa chỉ được người chơi cá cược tin tưởng hàng đầu tại Việt Nam. Với sự đa dạng về sản phẩm và dịch vụ, cũng như cam kết về sự minh bạch và uy tín, Jun88 ngày càng thu hút sự quan tâm của cộng đồng người chơi.

22. LOTO188, công ty cá cược chuyên nghiệp, được thành lập tại Manila, Philippines từ năm 2008. Sau nhiều năm phát triển, LOTO188 trở thành một trong ba nhà cái hàng đầu, với hơn 300.000 lượt truy cập mỗi tháng và hơn 4 triệu thành viên

23. 123b là một nhà cái cá cược trực tuyến ưa chuộng nhất hiện nay. Trang web sở hữu các trò chơi đa dạng như casino, bắn cá, nổ hũ, thể thao bóng đá, xổ số, đá gà và game bài đổi thưởng cực HOT. Đăng ký tài khoản nhật ngay khuyến mãi trải nghiệm và các ưu đãi bảo hiểm hoàn trả cược cực khủng.

24. 69VN được đánh giá là nhà cái xanh chín và đáng tin cậy trên thị trường cá cược trực tuyến tại Châu Á và Việt Nam. Được thành lập vào năm 2012 bởi tập đoàn giải trí El Coco Casino tiếng tăm lừng lẫy tại Costa Rica, với website đăng nhập chính thức là 669vn.com

25. 123b là một nhà cái cá cược trực tuyến ưa chuộng nhất hiện nay. Trang web sở hữu các trò chơi đa dạng như casino, bắn cá, nổ hũ, thể thao bóng đá, xổ số, đá gà và game bài đổi thưởng cực HOT. Đăng ký tài khoản nhật ngay khuyến mãi trải nghiệm và các ưu đãi bảo hiểm hoàn trả cược cực khủng.

26. OKVIP là tập đoàn giải trí trực tuyến có bề dày lịch sử và kinh nghiệm trong lĩnh vực này. Tập đoàn OKVIP có tiền thân là công ty Taipei101, một công ty chuyên cung cấp các dịch vụ giải trí trực tuyến tại Đài Loan. Sau khi đổi tên, OKVIP đã mở rộng thị trường và phát triển nhiều sản phẩm và dịch vụ mới, như giải trí, truyền thông.

27. BK8 chinh thuc xuat hien vao nam 2015 va hoat dong duoi su giam sat cua chinh phu Curacao. Duoc cap phep boi Gaming Curacao kinh doanh các sản phảm cuọc nhu: thẻ thao, casino, xỏ só, bán cá… nha cai nhanh chong xay dung danh tieng tai thi truong Chau u. Website: https://taibk8.wiki/

28. OKVIP là một trong những thương hiệu hàng đầu trong ngành công nghệ game tại Châu Á. Để có vị trí, sự thành công như ngày hôm này, liên minh OKVIP đã trải qua muôn vàn gian nan, thử thách và thất bại. Để hiểu hơn về thương hiệu OKVIP, hãy cùng chúng tôi khám phá lịch sử ra đời và các cột mốc đáng nhớ của họ. https://okvipworks.com/

29. 8kbet là địa điểm cá cược lý tưởng dành cho những anh em yêu thích giải trí trực tuyến. Nhà cái cung cấp đa dạng các trò chơi cá cược thú vị như slot game, thể thao, game bài,…Đặc biệt, người chơi sẽ có được những trải nghiệm vô cùng tuyệt vời và an toàn. Cùng theo dõi bài viết sau đây để hiểu rõ hơn về sân chơi trực tuyến này. Website: https://8kbett.cc/

30. 789Club – Cổng game bài trực tuyến xếp top đầu 2024 tại thị trường Việt Nam. Với kinh nghiệm 9 năm hoạt động trong ngành, 789 Club đã sở hữu cho mình được những sản phẩm game bài đỉnh cao với số lượng lên đến hàng trăm trò chơi. Website: https://simsodep10so.vn/

31. Kubet la mot nha cai duoc danh gia la thuong hieu xuat sac va uy tin nhat o thoi diem hien tai. Thuong hien ngay cang tro nen noi bat va duoc don nhan tich cuc o phia cong dong voi rat nhieu nguoi tham gia https://kubet.software/

32. 33WIN duoc biet toi la san choi giai tri truc tuyen dang cap so 1 Viet Nam duoc PAGCOR cap phep hop phap. Khong chi so huu kho game da dang gom No hu, Casino, The thao, Xo so… https://333win.ong/

33. Nhờ những chương trình khuyến mãi hấp dẫn và được làm mới liên tục, Soc88 đang biết cách giữ chân hàng triệu khách chơi đến với hệ thống này. Bạn nên sớm cập nhật để tối ưu chi phí. Đồng thời chúng ta còn thêm cơ hội để cược và đổi đời trong chớp mắt. https://tiepbuoc.net/

34. KUBET – Ku Casino, là nhà cái uy tín với hơn 20 năm kinh nghiệm hoạt động và đã được đông đảo người chơi tin tưởng, được cấp phép hoạt động bởi PAGCOR và CEZA. Cung cấp đầy đủ top các sảnh cược hiện nay như: Xổ số, cược thể thao, casino trực tuyến, game slot,… Website : https://3kubet.com/

35. 123B là cái tên nổi bật có sức ảnh hưởng sâu rộng trên thị trường giải trí châu Á. Đơn vị hoạt động hợp pháp, hệ thống bảo mật hiện đại mang đến môi trường cá cược đẳng cấp chất lừ. Nơi đây hứa hẹn là điểm dừng chân lý tưởng dành cho các tín đồ đam mê game đổi thưởng. Website : https://123b99.net/

36. Welcome to Soundcloudto.com, the premier online platform dedicated to converting Soundcloud tracks to MP3 and providing a robust Soundcloud Downloader service. Catering to all your audio conversion needs, our website stands as a beacon for music enthusiasts and creators alike.
https://soundcloudto.com/

37. Go88 là Huyền Thoại game đổi thưởng Online số 1 tại Việt Nam năm 2024. Được thành lập vào 08/08/2008 tại Việt Nam, Go 88 nổi bật với Game bài đổi thưởng, Tài Xỉu online, Nổ Hũ online, Bắn Cá online,… và hơn 888 sản phẩm game đổi thưởng trực tuyến khác. https://go88gb.net/

38. Có định hướng phát triển khác biệt khi chú trọng khách chơi hơn lợi nhuận, 789Club được PAGCOR, Costa Rica cấp phép hoạt động hợp pháp.
Đây đều là các cơ quan đánh giá, thẩm định nhà cái uy tín có tiếng nói. Chính điều này một lần nữa khẳng định sự chuyên nghiệp, khác biệt của địa chỉ cá cược trực tuyến kể trên. https://789club97.vip/

39. 8DAY la nha cai uy tin chat luong dang cap nhat trong khu vuc chau A – Viet Nam hien nay voi kho game khong lo hon 15 nghin tua game giai tri va kho game ca cuoc doi thuong vo cung thu vi da dang phong phu. https://8day-vn.com/

40. SoundCloud to MP3 converters allow users to download tracks from SoundCloud in MP3 format. These tools enable offline listening and music collection building. However, it’s important to respect copyright laws and artists’ rights when using such converters, as unauthorized downloading can be illegal and unfair to creators. Website : https://soundcloudto.com/

41. XS – chuyên trang trực tiếp kết quả xổ số ba miền – KQXS chính xác & uy tín số một Việt Nam. Ngoài KQXS, chúng tôi còn phát triển rất nhiều tiện ích có giá trị với người chơi như: thống kê nhanh cầu lô, thống kê vip, dự đoán soi cầu bộ số đầu đuôi lô tô, tổng về, số cuối, tin tức xoso vn…Website : https://www.ketquamoinhat.com/

42. Tai 8KBET, ban se duoc trai nghiem hang loat dich vu dinh cao cung mot kho tro choi phong phu nhu the thao, da ga, game bai, va casino, tat ca deu voi ty le doi thuong hap dan den kinh ngac. https://8kbet-vn.com/

43. Mot trong nhung nen tang ca cuoc the thao va song bac truc tuyen hang dau va dang tin cay nhat Chau A. BetVisa cung cap nhieu lua chon tro choi slot, song bac truc tiep, xo so, ca cuoc the thao, trao doi the thao va the thao dien tu https://betvisa-vn.org/

44. iWIn88. Sân chơi này được biết đến là một nền tảng trò chơi trực tuyến sôi động và đa dạng. Tại đây, bạn sẽ có cơ hội được thể hiện những kỹ năng, trải nghiệm và được kết nối với những người chơi cùng sở thích https://iwin88.download/

45. Sunwin, choi nhanh ban web dang cap doc quyen so chau A. Choi nhanh, thang lon chi co o Sun win! https://sunwin100.net/

46. DA88 được biết đến là sân chơi đẳng cấp, đa game dành cho các cược thủ. Tại đây cung cấp đa dạng trò chơi khác nhau cho các thành viên chọn lựa tham gia trải nghiệm. Vậy bạn biết thông tin gì về nhà cái uy tín này? Cùng điểm qua nội dung bài viết sau để có thêm những thông tin cần biết nhé! Website : https://da88t.com/

47. The Rice Purity Test is a self-assessment survey that measures a person’s innocence or life experiences through a series of 100 questions. Originally created for college students, it covers topics like relationships, substance use, and various activities. The score reflects one’s level of “purity,” with higher scores indicating fewer life experiences. Website : https://ricepuritytesttool.com/

48. S666 là nhà cái cá cược trực tuyến đẳng cấp số một tại Việt Nam năm 2024. Được thành lập vào 06/06/2016 tại Việt Nam, S 666 hiện tại đã trở thành địa điểm cá cược giải trí trực tuyến hàng đầu dành cho các cược thủ Việt Nam Website: https://s666z.casino/

49. Chỉ cần nói tới cái tên Thabet hay THA thì bất cứ tay chơi cá cược trực tuyến nào trên thị trường Châu Á, trong đó có Việt Nam cũng biết tới thương hiệu nhà cái danh tiếng này. THA Casino là sân chơi giải trí uy tín hàng đầu hiện nay quy tụ cộng đồng bet thủ các quốc gia yêu thích và tín nhiệm. Website: https://thabet7.app/

50. QH88 là một trong những địa chỉ cá cược hàng đầu tại thị trường Việt Nam. Với sự đa dạng về sản phẩm game giải trí và dịch vụ, cũng như cam kết về sự chất lượng và minh bạch, nhà cái ngày càng thu hút sự quan tâm của cộng đồng bet thủ. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về QH88 thông qua các đánh giá và nhận xét chi tiết nhất. Website : https://qh88.soccer/