个人深度学习技术 盈利_您应该根据个人资料学习哪种技术

个人深度学习技术 盈利

Based on Stack Overflow user’s tags, utilize Network Analysis and Python to find out which technologies you should learn to complement your tech-profile.

根据Stack Overflow用户的标签,利用网络分析和Python查找应该学习哪些技术来补充您的技术资料。

The road to learn and develop the skills necessary to insert yourself in the technology and IT field is pretty extensive and the set of tools available to learn is broad. It can become a really confusing task, mostly if your background is not related with Computer Science and you’re not a tech-savvy.

吨他的道路学习和发展需要插入自己的技术技能和IT领域是非常广泛和组可用的学习工具广阔。 这可能会变成一个令人困惑的任务,主要是如果您的背景与计算机科学无关,并且您不是技术专家

网络分析和Python使我们能够轻松完成确定熟练和职位插入之路时应重点关注的语言,框架和工具的任务。 (Network Analysis and Python allow us to facilitate the task of identifying which languages, frameworks and tools we should focus on in our path to proficiency and job insertion.)

1.网络的定义 (1. Definition of network)

A Networks is a collection of connected objects which technically are called Nodes or Vertices. The connection between these nodes is made through Edges which are usually drawn as lines in the network. With these graphic visualizations we can represent all sorts of systems from the real world, with applications in fields such as finance, statistics, biology, sociology and computer science, among others.

网络是连接对象的集合,这些对象在技术上称为“节点”或“顶点” 。 这些节点之间的连接通过Edge (通常在网络中绘制为线条)进行。 通过这些图形化的可视化,我们可以代表现实世界中的各种系统,并将其应用于金融,统计,生物学,社会学和计算机科学等领域。

Both nodes and edges can have different attributes that we can highlight depending on the object under study such as direction, node degree, edge weight and centrality measures.

节点和边缘都可以具有不同的属性,我们可以根据所研究的对象来突出显示这些属性,例如方向,节点度,边缘权重和中心度度量。

Relationships between nodes can be reciprocal and directional. Consider as an example connections between users in social networks, such as Facebook or Instagram, which would be reciprocal in the case of two users following each other, and directional if only one of them “follows” the other one, in Instagram terms.

节点之间的关系可以是互惠的,也可以是定向的。 以社交网络(例如Facebook或Instagram)中的用户之间的连接为例,如果两个用户互相跟随,则互为倒数;如果只有其中一个“跟随”另一个,则使用instagram是定向的。

2.堆栈溢出数据集和信息 (2. Stack Overflow dataset and information)

Credits to the Stack Overflow data team that spends time and energy in providing really useful information. In this case, I am utilizing a dataset downloaded from Kaggle from the Official Stack Overflow user.

归功于Stack Overflow数据团队,他们花费时间和精力来提供真正有用的信息。 在这种情况下,我要利用从Kaggle下载的数据集 来自官方堆栈溢出用户。

The data set is organized as two tables, one containing the links of the network, the source and the target technology tag, and the second one containing the nodes of the network with the description of each node. The idea behind this analysis is to determine which technologies a person should learn or focus, based on his or her profile, according to the skills that Stack Overflow users actually have, with an orientation to the field or technology to which that person is aspiring to be more involved.

数据集被组织为两个表,一个表包含网络,源和目标技术标签的链接,第二个表包含网络的节点以及每个节点的描述。 该分析背后的想法是,根据Stack Overflow用户实际掌握的技能,并根据其所追求的领域或技术,确定一个人应根据自己的个人资料来学习或关注哪些技术。参与其中。

3. Python实现 (3. Python Implementation)

With the use of Python, we can easily build a network following these steps.

通过使用Python,我们可以按照以下步骤轻松构建网络。

  • Import NetworkX module which is a Python package for the creation and manipulation of the structure and functions of complex networks.

    导入NetworkX模块,这是一个Python软件包,用于创建和操作复杂网络的结构和功能。
  • Code functions to automate data extraction to a Pandas DataFrame and network preparation including the addition of nodes and edges.

    代码功能可自动将数据提取到Pandas DataFrame并进行网络准备,包括添加节点和边。
import networkx as nx
import pandas as pd
import community as community_louvain




def get_data(csv_file):
    '''
    Extracts data from .CSV files related with nodes and edges
    '''
    data = pd.read_csv(csv_file)
    return data




def build_net(nodes_data, edges_data):
    """
    Builds network by inserting nodes and edges as determined in the dataset.
    """
    for index, info in nodes_data.iterrows():
        G.add_node(info['name'], group=info['group'], nodesize=info['nodesize'])


    for index, info in edges_data.iterrows():
        G.add_edge(info['source'], info['target'], weight=info['value'])
    return None
  • Execute the script: Load datasets and pre-visualize data with DataFrame’s built-in head() method.

    执行脚本:使用DataFrame的内置head()方法加载数据集并预可视化数据。
  • Extract relations between some of the nodes such as ‘HTML’ and ‘Python’.

    提取某些节点之间的关系,例如“ HTML”和“ Python”。
  • Finally save the network into a .GML extension that it’s going to be useful to make the graph.

    最后,将网络保存到.GML扩展名中,这对创建图形很有用。
if __name__ == '__main__':
    edges = get_data('stack_network_links.csv')
    nodes = get_data('stack_network_nodes.csv')
    edges.head()
    nodes.head()


    ### Building network
    G = nx.Graph()
    build_net(nodes, edges)


    ### Nodes and edges review and save file
    G.nodes
    G.edges
    G.number_of_nodes()
    G.number_of_edges()
    print(nx.info(G))
    G.nodes['html']
    G.nodes['python']
    G.degree()
    nx.write_gml(G,"stack_overflow_net.gml")

4.结果可视化(4. Resulting Visualization)

This visualization is made utilizing Gephi which is an open-source network analysis and visualization software package built mainly with Java. It’s main use is visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. NetworkX and Python’s Matplotlib library have features that allow network graphing but I’ll keep this simple using an open-source tool specially designed to simplify the task.

该可视化使用Gephi进行Gephi是主要用Java构建的开源网络分析和可视化软件包。 它的主要用途是可视化和处理大型图形。 它可以在Windows,Mac OS X和Linux上运行。 NetworkX和Python的Matplotlib库具有允许进行网络绘图的功能,但我将使用专门设计用于简化任务的开源工具来简化此过程。

Image for post
Visualization of relations between languages, frameworks and tools
可视化语言,框架和工具之间的关系

5.结论(5. Conclusion)

In the network graph we can see clear clustering formations between programming languages, IT tools and different frameworks which are grouped by the similarity or “centrality” of the most relevant nodes. These resulting clusters show which tools are more frequently included in Stack Overflow user’s tags in addition to the relation between each of them.

在网络图中,我们可以看到编程语言,IT工具和不同框架之间清晰的集群形式,这些集群按最相关节点的相似性或“中心性”分组。 这些结果群集显示了除工具之间的关系外,哪些工具更频繁地包含在Stack Overflow用户标签中。

As a conclusion, if someone was looking to specialize, for example, in web development, relational databases, data analytics or any other IT-related field, this technique would surely ease the task of determining which are the required tools to focus on.

结论是,如果有人希望专门研究例如Web开发,关系数据库,数据分析或任何其他与IT相关的领域,那么该技术无疑会简化确定哪些工具是重点工作的任务。

Thanks for taking the time of reading my article! Any question, suggestion or comment, feel free to contact me and I’ll reply ASAP: herrera.ajulian@gmail.com

感谢您抽出宝贵的时间阅读我的文章! 如有任何问题,建议或意见,请随时与我联系,我会尽快答复:herrera.ajulian@gmail.com

The Python script can be found at my GitHub page.

可以在我的GitHub页面上找到Python脚本。

翻译自: https://medium.com/the-innovation/which-technology-should-you-learn-according-to-your-profile-e081cf35d72f

个人深度学习技术 盈利

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值