馃挕浣滆€咃細闊╀俊瀛怈ShowMeAI馃摌鏁版嵁鍒嗘瀽瀹炴垬绯诲垪锛歨ttps://www.showmeai.tech/tutorials/40馃摌鏈枃鍦板潃锛歨ttps://www.showmeai.tech/article-detail/320馃摙澹版槑锛氱増鏉冩墍鏈夛紝杞浇璇疯仈绯诲钩鍙板拰浣滆€呭苟娉ㄦ槑鍑哄馃摙鏀惰棌ShowMeAI鏌ョ湅鏇村绮惧僵鍐呭澶у宸茬粡鐪嬪埌浜嗛潪甯搁叿鐐殑瀹炴椂鏁版嵁浠〃鐩橈紝鍙互鏈€鐩磋鐨勭粰鎴戜滑涓氬姟鏁版嵁淇℃伅锛屽涓嬪浘鎵€绀恒€傚湪Python涓紝鎴戜滑涔熸湁闈炲父绠€鍗曟槗鐢ㄧ殑宸ュ叿锛屽彲浠ヤ骇鐢熸紓浜殑鏁版嵁鍒嗘瀽鍙鍖栫粨鏋滐紝鏀寔浜や簰寮忔搷浣滃拰瀵归€夊畾鐨勯儴鍒嗘暟鎹繘琛屾繁鍏ュ垎鏋愩€傚湪杩欑瘒鏂囩珷涓紝ShowMeAI灏嗕负澶у璁茶В馃摌Altair杩欐牱涓€娆惧己澶х殑Python浜や簰寮忔暟鎹垎鏋愬伐鍏凤紝鍙互浜х敓濡備笅鍥炬墍绀虹殑浜や簰寮忓垎鏋愮粨鏋滐細馃挕鏁版嵁鍒嗘瀽瀹炵幇妯℃澘涓轰簡璁╁ぇ瀹朵翰韬綋楠孉ltair鐨勫垎鏋愮粨鏋滄暟鎹紝鎴戜滑鍦ㄦā鏉夸笅闈㈢紪鍐欎簡涓€涓嚱鏁帮紝鐢ㄤ簬涓烘暟鎹泦涓殑鎵€鏈夌壒寰佺敓鎴愪氦浜掑紡鍥捐〃銆傚叿浣撴潵璇达紝鎴戜滑甯屾湜瀹冧负鏁板€煎瓧娈碉紙鐗瑰緛锛夎繑鍥炩€滅洿鏂瑰浘+鏁g偣鍥锯€濓紝涓哄垎绫荤壒寰佽繑鍥炩€滅洿鏂瑰浘+绠辩嚎鍥锯€濄€侫ltair杩斿洖鐨勮繖浜涘浘琛ㄧ殑缁撴灉鏄彲浠ヤ氦浜掓搷浣滅殑銆?瀵煎叆宸ュ叿搴搃mportaltairasaltimportpandasaspd#绐佸彂瑙勫緥鏁版嵁澶у皬闄愬埗alt.data_transformers.enable('default',max_rows=None)#鏋勫缓鍥捐〃鍑芥暟锛岃鍙栨暟鎹拰瀛楁鍚嶏紝杩斿洖浜や簰寮忓浘琛ㄧ粨鏋渄efchart(dataset,column_name,target_var):w=500single=alt.selection_single()#鐏板害鍜岀洿鏂瑰浘#濡傛灉鏄被鍒瓧娈碉紝鎴戜滑涓嶉渶瑕佸垎妗秈f(column_nameindataset.select_dtypes(include='object').columns.to_list()):a=alt.Chart(dataset).mark_bar().encode(alt.X(column_name+':N',bin=False),alt.Y('count()'),color=alt.condition(single,alt.value('#4c78a8'),alt.value('lightgray')),tooltip=['count()',alt.Tooltip(鍒楀悕,bin=False)]).add_selection(single).properties(width=w)#濡傛灉瀹冩槸涓€涓暟瀛楀瓧娈碉紝鎴戜滑棣栧厛灏嗗畠瀛樺偍璧锋潵else:a=alt.Chart(dataset).mark_bar().encode(alt.X(column_name+':Q',bin=True),alt.Y('count()'),color=alt.condition(single,alt.value('#4c78a8'),alt.value('lightgray')),tooltip=['count()',alt.Tooltip(鍒梟_name,bin=True)]).add_selection(single).properties(width=w)#瀵逛簬鍒嗙被瀛楁锛屾垜浠瀯寤哄畠鍜岀洰鏍囧瓧娈电殑绠辩嚎鍥撅紱瀵逛簬鏁板瓧瀛楁锛屾垜浠瀯寤哄畠浠殑绠卞舰鍥惧拰鐩爣瀛楁鏁g偣鍒嗗竷鍥惧皾璇曪細.mark_boxplot().encode(#,title="Boxplotof"+column_namealt.X(column_name+':N'),alt.Y(target_var),color=alt.condition(single,alt.value('#4c78a8'),alt.value('lightgray')),tooltip=[target_var]).add_selection(single).properties(width=w)else:b=alt.Chart(dataset).mark_point().encode(alt.X(column_name+':Q'),alt.Y(target_var),color=alt.condition(single,alt.value('#4c78a8'),alt.value('lightgray')),tooltip=[target_var]).add_selection(single).properties(width=w)except:閫氳繃return(a|b)鍙互搴旂敤鍒拌嚜宸辩殑鏁版嵁涓婏紝缁撴灉鍥惧涓嬪浘锛堝苟涓斿彲浠ラ€氳繃榧犳爣杩涜浜や簰鎿嶄綔銆傦級鍦ㄤ笅闈㈢殑鍐呭涓紝鎴戜滑灏嗗憡璇夋偍濡備綍灏嗙粨鏋滃瓨鍌ㄤ负html鎶ヨ〃銆傛瘡娆℃墦寮€html缁撴灉鏂囦欢锛岄兘鍙互杩涜浜や簰鎿嶄綔锛屾棤闇€姣忔閮介噸鍚姤琛ㄣ€傚垎鏋愩€傪煉℃暟鎹垎鏋?浜や簰寮忔枃妗f姤鍛婁笅闈㈢殑浠g爜鍙互灏嗘墍鏈夌殑鍙鍖栫粨鏋滅紪璇戞垚涓€涓猦tml鏂囨。锛屾墦寮€杩欎釜html鏂囦欢锛屽氨鍙互寰楀埌涓€涓氦浜掑紡鍙鍖栨暟鎹垎鏋愬钩鍙般€?灏嗘墍鏈塧ltair鍥捐〃娣诲姞鍒板垪琛ㄤ腑myl=[]forcolindataset.columns:try:myl.append(chart(dataset,col,target_var))except:passelse:pass#灏嗘墍鏈夊浘琛ㄧ紪璇戜负1a=myl[0]foriinrange(1,len(myl)):a=a&myl[i]a.properties(title='FeatureHistograms&Boxplots').configure_axis(labelFontSize=15,titleFontSize=25)a.save('figures/Feature_Visuals.html')#妫€鏌ユ槸鍚︽墍鏈夊瓧娈甸兘鍙互鍙鍖杙rint('Featuresaccountedfor:',len(myl),'outof',len(dataset.T))鍙傝€凁煋楢ltair:https://altair-viz.github.io/
