2017年8月26日,全球最大的數據科學社群Kaggle發布了數據科學/機器學習業界現狀全行業調查的數據集。調查問卷數據從2017年8月7日~8月25日收集。受訪者囊括了來自50多個國家的16,716+位從業者。
數據的基本情況:通過函數response.head()觀察數據的前5行特徵
截取了部分數據分析如下:通過分析可以發現數據有228維數據。
調查對象總數 16716
一共多少個國家參與了調查: 52
參與人數最多的國家是 United States 人數 4197
最小的選手: 0.0 最大的選手: 100.0
得到了數據的基本情況,接下來,下文就對數據進行可視化展示。
import matplotlib
matplotlib.rcParams.update({'font.size': 25})
plt.subplots(figsize=(22,12))
sns.countplot(y=response['GenderSelect'],order=response['GenderSelect'].value_counts().index)
plt.show()
plt.subplots(figsize=(10,8))
sns.boxplot(y='GenderSelect',x='Salary',data=salary)
plt.ylabel('')
plt.show()
由上圖可知,男性工作者的工資比女性工作者的稍高一些。
resp_coun=response['Country'].value_counts()[:15].to_frame()
sns.barplot(resp_coun['Country'],resp_coun.index,palette='inferno')
plt.title('Top 15 Countries by number of respondents')
plt.xlabel('')
fig=plt.gcf()#獲取當前圖表對象
fig.set_size_inches(10,10)#設置尺寸大小
plt.show()
2.4從事數據工作的人主修的專業以及現在的工作領域
f,ax=plt.subplots(1,2,figsize=(30,15))
sns.countplot(y=response['MajorSelect'],ax=ax[0],order=response['MajorSelect'].value_counts().index)
ax[0].set_title('Major')
ax[0].set_ylabel('')
sns.countplot(y=response['CurrentJobTitleSelect'],ax=ax[1],order=response['CurrentJobTitleSelect'].value_counts().index)
ax[1].set_title('Current Job')
ax[1].set_ylabel('')
plt.subplots_adjust(wspace=0.8)
plt.show()
從左圖中可以看出,幾乎所有行業都使用數據科學和機器學,因為來自不同領域的人們,如物理、生物學等,正都在從事數據方面的研究;右邊的圖表顯示了被調查者當前的工作情況,最多的人是數據科學家。
sal_job=salary.groupby('CurrentJobTitleSelect')['Salary'].median().to_frame().sort_values(by='Salary',ascending=False)
ax=sns.barplot(sal_job.Salary,sal_job.index,palette=sns.color_palette('inferno',20))
plt.title('Compensation By Job Title',size=15)
for i, v in enumerate(sal_job.Salary):
ax.text(.5, i, v,fontsize=10,color='white',weight='bold')
fig=plt.gcf()
fig.set_size_inches(8,8)
plt.show()
運籌學從業者的平均工資中位數最高,其次是預測建模師和數據科學家。計算機科學家(好歹也是科學家啊)和程式設計師(好吧,我墊底了)的報酬最低。
f,ax=plt.subplots(1,2,figsize=(30,15))
ml_nxt=response['MLMethodNextYearSelect'].str.split(',')
nxt_year=[]
for i in ml_nxt.dropna():
nxt_year.extend(i)
pd.Series(nxt_year).value_counts()[:15].sort_values(ascending=True).plot.barh(width=0.9,color=sns.color_palette('winter_r',15),ax=ax[0])
tool=response['MLToolNextYearSelect'].str.split(',')
tool_nxt=[]
for i in tool.dropna():
tool_nxt.extend(i)
pd.Series(tool_nxt).value_counts()[:15].sort_values(ascending=True).plot.barh(width=0.9,color=sns.color_palette('winter_r',15),ax=ax[1])
plt.subplots_adjust(wspace=0.8)
ax[0].set_title('ML Method Next Year')
ax[1].set_title('ML Tool Next Year')
plt.show()
很明顯,下一年將會有更多的深度學習者。深入學習和神經網絡或短期AI是明年最受歡迎的熱門話題。此外,在工具方面,Python比R更受歡迎。
plt.subplots(figsize=(10,8))
learn=response['LearningPlatformSelect'].str.split(',')
platform=[]
for i in learn.dropna():
platform.extend(i)
pd.Series(platform).value_counts()[:15].sort_values(ascending=True).plot.barh(width=0.9,color=sns.color_palette('winter',15))
plt.title('Best Platforms to Learn',size=15)
plt.show()
由上表可以看出,kaggle個是非常不錯的平臺的,廣受大家喜愛。
satisfy=response.copy()
satisfy['JobSatisfaction'].replace({'10 - Highly Satisfied':'10','1 - Highly Dissatisfied':'1','I prefer not to share':np.NaN},inplace=True)
satisfy.dropna(subset=['JobSatisfaction'],inplace=True)
satisfy['JobSatisfaction']=satisfy['JobSatisfaction'].astype(int)
satisfy_job=satisfy.groupby(['CurrentJobTitleSelect'])['JobSatisfaction'].mean().sort_values(ascending=False).to_frame()
ax=sns.barplot(y=satisfy_job.index,x=satisfy_job.JobSatisfaction,palette=sns.color_palette('inferno',20))
fig=plt.gcf()
fig.set_size_inches(8,10)
for i, v in enumerate(satisfy_job.JobSatisfaction):
ax.text(.1, i, v,fontsize=10,color='white',weight='bold')
plt.title('Job Satisfaction out of 10')
plt.show()
可以從圖表直觀地看出,數據科學家和機器學習工程師是最滿意的人,而程式設計師的工作滿意度最低。
from matplotlib_venn import venn2
# pip install matplotlib_venn 畫交集用的
f,ax=plt.subplots(1,2,figsize=(18,8))
pd.Series([python.shape[0],R.shape[0],both.shape[0]],index=['Python','R','Both']).plot.bar(ax=ax[0])
ax[0].set_title('Number of Users')
venn2(subsets = (python.shape[0],R.shape[0],both.shape[0]), set_labels = ('Python Users', 'R Users'))
plt.title('Venn Diagram for Users')
plt.show()
py1=python.copy()
r=R.copy()
py1['WorkToolsSelect']='Python'
r['WorkToolsSelect']='R'
r_vs_py=pd.concat([py1,r])
r_vs_py=r_vs_py.groupby(['CurrentJobTitleSelect','WorkToolsSelect'])['Age'].count().to_frame().reset_index()
r_vs_py.pivot('CurrentJobTitleSelect','WorkToolsSelect','Age').plot.barh(width=0.8)
fig=plt.gcf()
fig.set_size_inches(10,15)
plt.title('Job Title vs Language Used',size=15)
plt.show()
r在視覺上勝過Python。因此,擁有諸如數據分析師、業務分析師等職位頭銜的人在圖形和視覺上扮演著非常重要的角色,他們喜歡R而不是Python。同樣,幾乎90%的統計人員使用R,正如前面所述,Python在機器學習方面更好,因此機器學習工程師、數據科學家和DBA或程式設計師等其他人更喜歡Python。
r_vs_py=pd.concat([py1,r])
r_vs_py=r_vs_py.groupby(['Tenure','WorkToolsSelect'])['Age'].count().to_frame().reset_index()
r_vs_py.pivot('Tenure','WorkToolsSelect','Age').plot.barh(width=0.8)
fig=plt.gcf()
fig.set_size_inches(10,10)
plt.title('Job Tenure vs Language Used')
plt.show()
Python初學者會更多一些,且在使用人數上高於R。
所在國家:
plt.subplots(figsize=(10,8))
coun=scientist['Country'].value_counts()[:15].sort_values(ascending=False).to_frame()
sns.barplot(coun.Country,coun.index,palette='inferno')
plt.title('Countries By Number Of Data Scientists',size=15)
plt.show()
教育背景以及工作情況:
f,ax=plt.subplots(1,2,figsize=(25,10))
sns.countplot(y=scientist['EmploymentStatus'],ax=ax[0])
ax[0].set_title('Employment Status')
ax[0].set_ylabel('')
sns.countplot(y=scientist['FormalEducation'],order=scientist['FormalEducation'].value_counts().index,ax=ax[1],palette=sns.color_palette('viridis_r',15))
ax[1].set_title('Formal Eduaction')
ax[1].set_ylabel('')
plt.subplots_adjust(wspace=0.8)
plt.show()
數據科學家工作領域的分布:
plt.subplots(figsize=(10,8))
scientist=response[response['DataScienceIdentitySelect']=='Yes']
scientist['CurrentJobTitleSelect'].value_counts().sort_values(ascending=True).plot.barh(width=0.9,color=sns.color_palette('inferno',15))
plt.title('Job Titles',size=15)
plt.show()
plt.subplots(figsize=(8,8))
tools=scientist['WorkToolsSelect'].str.split(',')
tools_work=[]
for i in tools.dropna():
tools_work.extend(i)
pd.Series(tools_work).value_counts()[:15].sort_values(ascending=True).plot.barh(width=0.9,color=sns.color_palette('RdYlGn',15))
plt.show()
f,ax=plt.subplots(1,2,figsize=(25,12))
sns.countplot(scientist['JobSkillImportanceVisualizations'],ax=ax[0])
ax[0].set_title('Job Importance For Visuals')
ax[0].set_xlabel('')
scientist['WorkDataVisualizations'].value_counts().plot.pie(autopct='%2.0f%%',colors=sns.color_palette('Paired',10),ax=ax[1])
ax[1].set_title('Use Of Visualisations in Projects')
my_circle=plt.Circle( (0,0), 0.7, color='white')
p=plt.gcf()
p.gca().add_artist(my_circle)
plt.ylabel('')
plt.show()
1)大多數受訪者來自美國,且男性居多。
2)調查對象不僅限於計算機科學專業,還包括統計學、健康科學等專業,數據科學是一門跨學科的領域。
3)大多數被調查者都被充分僱用。
4)Kaggle數據採集與GitHub的代碼共享是大家非常喜歡的
5)數據科學家的工作滿意度最高,相反程式設計師的工作滿意度最低。
6)學習Python、R和SQL,因為它們是數據科學家最常用的語言。Python和R將有助於分析和預測建模,而SQL最適合查詢資料庫。
7)可視化是非常重要的數據科學項目以及幾乎所有的項目都需要了解數據的可視化。
8)數學和統計在數據科學中是非常重要的,所以我們應該對它有很好的理解,以便真正理解算法是如何工作的。
9)項目是學習數據科學的最佳途徑。因此,研究項目將有助於更好地學習數據科學。
長按二維碼關注
如有任何問題
您可以發送郵件至
dataintellagr@126.com
或關注微博/知乎/微信後臺留言
我們期待您的提問!
微博:數據智農
知乎:數據智農
郵箱:dataintellagr@126.com
製作:鄂繼鳳