副问题[/!--empirenews.page--]

不必要昂贵的器材即可明确数据科学的力气,从这些开源器材起步即可。
无论你是一个具稀有学或计较机科学配景的资深数据科学喜爱者,照旧一个其余规模的专家,数据科学提供的也许性都在你力所能及的范畴内,并且你不必要昂贵的,高度专业化的企业级软件。本文中接头的开源器材就是你入门时所需的所有内容。
Python,其呆板进修和数据科学库(pandas、 Keras、 TensorFlow、 scikit-learn、 SciPy、 NumPy 等),以及大量可视化库(Matplotlib、pyplot、 Plotly 等)对付初学者和专家来说都是优越的自由及开源软件器材。它们易于进修,很受接待且受到社区支持,并拥有为数据科学而开拓的最新技能和算法。它们是你在开始进修时可以得到的最佳器材集之一。
很多 Python 库都是成立在互相之上的(称为依靠项),其基本是 NumPy 库。NumPy 专门为数据科学计划,常常被用于在其 ndarray 数据范例中存储数据集的相干部门。ndarray 是一种利便的数据范例,用于将副黄?中的记录存储为 cvs 文件或其余任何名目,反之亦然。将 scikit 函数应用于多维数组时,它出格利便。SQL 很是得当查询数据库,可是对付执行伟大和资源麋集型的数据科学操纵,在 ndarray 中存储数据可以进步服从和速率(但请确保在处理赏罚大量数据集时有足够的 RAM)。当你行使 pandas 举办常识提取和说明时,pandas 中的 DataFrame 数据范例和 NumPy 中的 ndarray 之间的无缝转换别离为提取和计较麋集型操纵建设了一个强盛的组合。
作为快速演示,让我们启动 Python shell 并在 pandas DataFrame 变量中加载来自巴尔的摩的犯法统计数据的开放数据集,并查察加载的一部门 DataFrame:
>>> import pandas as pd >>> crime_stats = pd.read_csv('BPD_Arrests.csv') >>> crime_stats.head()

我们此刻可以在这个 pandas DataFrame 上执行大大都查询,就像我们可以在数据库中行使 SQL 一样。譬喻,要获取 Description 属性的全部独一值,SQL 查询是:
$ SELECT unique(“Description”) from crime_stats;
操作 pandas DataFrame 编写沟通的查询如下所示:
>>> crime_stats['Description'].unique() ['COMMON ASSAULT' 'LARCENY' 'ROBBERY - STREET' 'AGG. ASSAULT' 'LARCENY FROM AUTO' 'HOMICIDE' 'BURGLARY' 'AUTO THEFT' 'ROBBERY - RESIDENCE' 'ROBBERY - COMMERCIAL' 'ROBBERY - CARJACKING' 'ASSAULT BY THREAT' 'SHOOTING' 'RAPE' 'ARSON']
它返回的是一个 NumPy 数组(ndarray 范例):
>>> type(crime_stats['Description'].unique()) <class 'numpy.ndarray'>
接下来让我们将这些数据输着迷经收集,看看它能多精确地猜测行使的兵器范例,给出的数据包罗犯法变乱,犯法范例以及产生的所在:
>>> from sklearn.neural_network import MLPClassifier >>> import numpy as np >>> >>> prediction = crime_stats[[‘Weapon’]] >>> predictors = crime_stats['CrimeTime', ‘CrimeCode’, ‘Neighborhood’] >>> >>> nn_model = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(5, 2), random_state=1) >>> >>>predict_weapon = nn_model.fit(prediction, predictors)
此刻进修模子筹备停当,我们可以执行一些测试来确定其质量和靠得住性。对付初学者,让我们输入一个实习集数据(用于实习模子的原始数据集的一部门,不包罗在建设模子中):
>>> predict_weapon.predict(training_set_weapons) array([4, 4, 4, ..., 0, 4, 4])
如你所见,它返回一个列表,每个数字猜测实习齐集每个记录的兵器。我们之以是看到的是数字而不是兵器名称,是由于大大都分类算法都是用数字优化的。对付分类数据,有一些技能可以将属性转换为数字暗示。在这种环境下,行使的技能是标签编码,行使 sklearn 预处理赏罚库中的 LabelEncoder 函数:preprocessing.LabelEncoder() 。它可以或许对一个数据和其对应的数值暗示来举办调动和逆调动。在这个例子中,我们可以行使 LabelEncoder() 的 inverse_transform 函数来查察兵器 0 和 4 是什么:
>>> preprocessing.LabelEncoder().inverse_transform(encoded_weapons) array(['HANDS', 'FIREARM', 'HANDS', ..., 'FIREARM', 'FIREARM', 'FIREARM']
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|