使用金融数据的 5 个 Python 技巧
小心点!是钱的问题!
我以前工作的公司有一句口号:我们是一家拥有银行牌照的科技公司。虽然这听起来像是一个公司品牌的事情,但在某种程度上这是真的。近年来,Python 已经出现在许多领域,包括但不限于数据分析、欺诈检测、用户行为预测等,在金融机构中大量使用。Quantopian 之类的交易平台也在用。
在本文中,我将根据我的个人经验,分享一些使用 Python 处理金融数据的技巧。有些需要你额外的注意,否则,你可能会损失一大笔钱!这个列表并不完整,请在下面留下你的评论来丰富它。
小心零金额和空金额
在 99%的情况下,您需要在金融机构中处理像 0 或空金额这样的特殊金额。开发商和金融专家之间总会讨论如何处理它们。我们应该忽略它们,保留它们,还是提出一个错误?
除了要知道这些特例的存在,还要认识到 0 和空的区别以及处理方式。例如,在我的情况下,只有空的金额是无效的,应该提出一个错误,其余的是有效的。那么我将很容易得到这样的代码:
if not amount:
logger.error("Received an invalid amount")
但是,这段代码有潜在的风险。在 Python 中,有几个值被认为是 [False](https://www.programiz.com/python-programming/methods/built-in/bool)
,包括 0 和None
。这意味着,0 金额也将引发异常,这不是我们想要的!
更安全的方法是像这样显式地提及无效值:
if amount in [None, '']:
logger.error("Received an invalid amount")
小心浮点数,它们不准确
如果你打开一个 Python 解释器,输入1.2-1.0
,你会得到这样的结果:
(图片由高
如果你问一个 10 岁的孩子,他会告诉你这是错误的。Python 怎么会犯这样的“错误”?这个奇怪的数字是怎么算出来的?为什么会有微小的差别?处理大量敏感数字的程序不应该容忍这种差异。这个问题还会在测试过程中引发不一致的问题。
不是 Python 里的 bug。它与浮点数在底层系统中的表示方式有更大的关系。浮点数在硬件中表示为二进制分数。不幸的是,并不是所有的十进制部分都可以用二进制格式精确表示。例如,0.125 可以用有限位数的二进制表示:
0011111
但是,0.2 就不是这样了。大概是这样的:
00111110010011001100110011001101...
Python 不会保留无限重复的分数。无论我们保留多少位数,结果都不会准确。您可以看到 Python 中存储的实际值,如下所示:
>>> "{0:.20f}".format(1.2)
'1.19999999999999995559'
有一个网站专门做这个话题。也可以阅读 Python 文档。
但是应该怎么解决这个问题呢?简单的解决方法是使用[Decimal](https://docs.python.org/3.10/library/decimal.html)
类型。Decimal
旨在解决浮动不准确的问题。它以 10 为基数存储数字,你可以控制精度水平。由于不是以二进制存储的,Decimal
相对来说不如浮点有效。
计算机必须提供一种算法,这种算法的工作方式与人们在学校学习的算法相同。
如果我们用Decimal
做同样的计算,这次我们会得到正确的结果。请记住,你需要把 string '1.2'
而不是 float 1.2
放进去,否则Decimal
会把 float 转换成它等价的十进制数,从而从一开始就用错了数。
>>> Decimal('1.2')-Decimal('1.0')
Decimal('0.2')>>> Decimal(1.2)-Decimal(1.0)
Decimal('0.1999999999999999555910790150')
查看本文,了解浮点和小数的性能比较。
https://claudio-salvatore-arcidiacono.medium.com/dealing-with-decimal-numbers-in-python-8d2e1da2a16c
使用哪种舍入方法?
作为一名负责任的软件开发人员,在处理不明确的数据时,您需要三思。当处理钱的时候,我们经常需要四舍五入。舍入数字会失去精度,你应该知道这个问题和它对一个巨大的数据集的影响。永远不要低估舍入的力量。1980 年初,温哥华证券交易所的指数每笔交易都被截断到小数点后三位,而不是适当的四舍五入。累积截断导致每月 25 点的巨大损失。1983 年终于纠正了错误,数值从 524.811 改为 1098.892。
有很多舍入策略。这里没有对错。最重要的是理解每种策略背后的原理及其副作用。
- 向上舍入:向上舍入到不小于输入的最小整数。
- 向下舍入:向下舍入到不超过输入的最大整数。
- 四舍五入:0.5 称为平局。等于或大于 0.5 的分数总是向上舍入。这是最广为人知的舍入策略。
- 向下舍入一半:等于或小于 0.5 的分数被向下舍入。
不同舍入策略的示例—正面(图片由高提供)
负数怎么样?
上述舍入策略有一个共同的问题:舍入偏差。向上舍入(一半)有一个朝向正无限偏差的舍入,向下舍入(一半)有一个朝向负无限偏差的舍入。这意味着包括负数在内的任何数字都将向上舍入到更高的值,向下舍入到更低的值。
不同舍入策略的示例—负面(图片由高提供)
这导致了另一个副作用:结果是关于零不对称。
不对称舍入示例(图片由高提供)
在本例中,1.5 向上舍入为 2,而-1.5 向上舍入为-1。
我们有完美的解决方案吗?
为了减轻舍入偏差,发明了四舍五入策略。这不是我在高中学过的东西,然而,这是 IEEE-754 标准中默认的舍入规则。该策略假设数据集中向上舍入或向下舍入的可能性相等。因此,决定以期望的精度将结(0.5)舍入到最接近的偶数。同时,它保持结果在零附近对称。
四舍五入为偶数的示例(图片由高提供)
这也是 Python 中round()
方法使用的策略。
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(-1.5)
-2
>>> round(-2.5)
-2
然而,round()
对于浮动的行为有时会令人困惑。在本例中,3.675 被舍入为 3.67,而不是 3.68。这又与前一点有关浮点数的不准确性。3.765 无法准确存储在操作系统中,因此造成了这个令人惊讶的结果。使用Decimal
类可以解决这个问题。
>>> round(3.675,2)
3.67
>>> round(Decimal('3.675'), 2)
Decimal('3.68')
四舍五入半到偶数还有一个很酷的名字:银行家的四舍五入。它通常被银行家使用,因为从它的名字你很容易理解。主要原因是它是无偏正如我刚才解释的。有趣的是,没有明确的证据证明这曾经是银行业的标准。
Python 中如何正确舍入数字?
除了round()
,还有另外两个内置模块提供不同的舍入策略。math.ceil()
仅执行上舍入,math.floor()
仅执行下舍入。
另一个强大的模块是Decimal
,不仅因为它精确地表示了一个浮点数,而且还可以轻松地切换到不同的舍入策略。但是Decimal
中一些舍入策略的名称与我们之前的解释是矛盾的。为了帮助您快速搜索每个舍入策略的 Python 实现,我创建了这个 cheetsheet。
取整 cheetseet(图片由高拍摄)
我的很多想法都来自 Real Python 的这篇很棒的文章:
https://realpython.com/python-rounding/
在正确的时间(区域)处理财务数据
我们都知道时间就是金钱!我们不想因为忘记在 2020 年 2 月 29 日打开系统而损失金钱。实际上,今天(2021 年 10 月 31 日)是我们从中欧夏令时(CEST)切换到中欧时间(CET)的日子,即从 UTC+2 切换到 UTC +1,这也是测试您应用的时间设置的好时机。
区分系统时区和您的应用时区
可以让你的应用程序在不同于系统的时区运行。通常,Linux 服务器在 UTC 时区运行。如果你的应用运行在一个单独的容器中(比如 docker),那么你可以强制它运行在不同的时区。
如何在 Python 中管理时区?
在 Python 中,可以定义带时区或不带时区的日期对象。没有时区的日期称为 Naive,而有时区的日期称为 Aware。默认情况下,Python 中的数据对象是简单的。
>>> datetime.now()
datetime.datetime(2021, 10, 31, 22, 6, 34, 626859)
datetime
模块提供了timezone
类,该类表示由 UTC 的固定偏移量定义的时区。
>>> from datetime import datetime, timezone, timedelta
>>> datetime.now(timezone(timedelta(hours=+2)))
datetime.datetime(2021, 10, 31, 23, 15, 28, 965657, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200)))
这个timezone
类有一个问题,那就是你只能定义一个固定的偏移量。然后,在夏令时的情况下,应用程序负责切换到另一个偏移量。Python 的 doc 还提到:
世界各地的时间调整规则更多的是政治性的,而不是理性的,经常变化,除了 UTC 之外,没有适合每一种应用的标准。
但是有解决的办法吗?
当然,感谢这个精彩的 Python 社区,我们有了第三方库pytz
,它将 Olson tz 数据库引入了 Python。可以通过位置(例如欧洲/阿姆斯特丹)来定义时区,而不仅仅是硬编码偏移。图书馆将在夏令时结束时自动调整时间。
>>> from pytz import timezone
>>> from datetime import datetime
>>> amsterdam = timezone('Europe/Amsterdam')
>>> datetime.now(amsterdam)
datetime.datetime(2021, 10, 31, 22, 30, 26, 451405, tzinfo=<DstTzInfo 'Europe/Amsterdam' CET+1:00:00 STD>)
国定假日怎么样?
像银行这样的金融机构有时会在周末或国定假日暂停营业。Python datatime
可以告诉我们星期一是 0,星期天是 6 的日期是星期几,以确定今天是否是周末。
>>> import datetime
>>> datetime.datetime.today().weekday()
6 # today is Sunday
但是找出每个国家所有的法定假日是一个挑战。Python 社区开发了一个[holidays](https://pypi.org/project/holidays/)
库来包含许多国家的法定假日。这是荷兰国王日的一个例子。这种库帮助我们自动管理假期。然而,在生产中使用它们之前,有必要检查一下是否包含了您想要的所有假期。
>>> from datetime import date
>>> import holidays
>>> date(2021,4,27) in holidays.NL()
True>>> holidays.NL(years=2021)
{datetime.date(2021, 1, 1): 'Nieuwjaarsdag', datetime.date(2021, 4, 4): 'Eerste paasdag', datetime.date(2021, 4, 2): 'Goede Vrijdag', datetime.date(2021, 4, 5): 'Tweede paasdag', datetime.date(2021, 5, 13): 'Hemelvaart', datetime.date(2021, 5, 23): 'Eerste Pinksterdag', datetime.date(2021, 5, 24): 'Tweede Pinksterdag', datetime.date(2021, 12, 25): 'Eerste Kerstdag', datetime.date(2021, 12, 26): 'Tweede Kerstdag', datetime.date(2021, 4, 27): 'Koningsdag'}
你听说过银行假日吗?
和“银行家四舍五入”一样,另一个与银行相关的术语是银行假日。这是一个金融机构停止营业的工作日。它主要与实体分支机构相关,因为在线服务仍在继续运营。通常情况下,图书馆的国定假日已经涵盖了银行假日,所以没有必要再建一个图书馆。但是这并不能阻止社区发展新的事物,比如政府银行假日。
使用元组来避免改变属性
数据完整性一直是金融机构的重要话题。这是一个非常广泛和复杂的话题。简单来说,在这个上下文中,我们只指“不改变原始数据的内容”。例如,API 从客户端接收支付请求,其中包括发送者、接收者、金额、账户等信息。这个 API 应该将这个信息传递给另一个系统,而不修改这个请求上的任何内容。
从技术角度来看,避免这个问题的一种方法是使用 tuple 和 dataclass 使支付请求对象不可变。默认情况下,tuple 是不可变的,您也可以将 dataclass 对象设置为不可变的。
下面是 namedtuple 的例子。您可以将每一行映射到一个 NamedTuple 对象。如果尝试修改属性,将会收到 AttributeError 异常。
您可以在 dataclass 中用frozen=True
做同样的事情,但是您不能轻易地将一行映射到 dataclass 对象。下面是如何在 dataclass 中做到这一点。
如果您对 NamedTuple 和 dataclass 感兴趣,可以随意阅读我以前的文章。
知道屈服的力量
当数据量达到一定水平时,您开始担心性能问题。这个小技巧让程序更明智地使用内存。假设你想知道一个列表的排列:[1,2,3,4]
。你可以创建一个函数calculate_permutations()
,返回所有的 24 种组合。
有时候,你不一定想一次了解全部,只对下一个组合感兴趣。然后你可以利用yield
来节省你的内存。
比较回报率和收益率
函数calculate_permutations_return()
返回一个列表,而calculate_permutations_yield()
返回一个生成器。两者都是可迭代的。不同的是生成器是一种可迭代的,你只能迭代一次。结果是即时计算的。你可以清楚地看到这两个函数的大小差异。生成器对象本身比完整的结果要小得多,并且不会随着元素数量的增加而增加。
这也和 Python 中叫做懒求值的概念有关。如果你想更深入一点,你可以阅读我的一篇文章:
Python 实际上在一个内置模块[itertools](https://docs.python.org/3/library/itertools.html)
中处理这样的计算。这个模块创建了许多迭代器来实现高效的循环。你可以很容易地得到这样的排列:
import itertools
print(itertools.permutations([1, 2, 3, 4]))
结论
以下是与金融机构合作的 5 个 Python 技巧。我希望它们对你有用。我肯定我没有涵盖所有有趣的点。如果你有任何想法与我们分享,请在下面留下你的评论。
让你轻松生活的 5 个 Python 技巧
让你的脚本更有效率和吸引力。
凯利·西克玛在 Unsplash 上的照片
如果你正在或计划从事数据科学领域的工作,Python 可能会是你最好的伙伴。
尽管您将主要使用第三方库,但是全面理解 Python 基础非常重要。此外,这些库也在使用基本 Python 的强大功能。
在这篇文章中,我们将讨论 5 个简单的 Python 技巧,我认为它们将使你的脚本更加高效和吸引人。
招数 1
第一个是关于 f-strings,这是 Python 中最新的字符串插值方法。通过使用 f 字符串,我们可以将变量值放在一个字符串中。
这里有一个简单的例子:
name = "Jane"print(f"Hello {name}!")
Hello Jane!
f 弦是一种非常灵活的方法。假设我们将一个非常大的数字的值放在 f 字符串中。
number = 12000000print(f"The value of the company is ${number}")
The value of the company is $12000000
使用千位分隔符,输出可能更容易阅读。我们可以很容易地在 f 弦上做这样的修改。
print(f"The value of the company is ${number:,d}")
The value of the company is $12,000,000
招数 2
假设你有几个字符串存储在一个列表中。
mylist = ["Data", "Science", "Machine", "Learning"]
您希望将列表中的所有项目组合成一个字符串。解决这项任务有许多选择。例如,您可以在 For 循环中遍历列表,将所有字符串添加到一个字符串中。
myword = ""
for word in mylist:
myword += word + " "print(myword)
Data Science Machine Learning
当然,这不是最佳解决方案。连接方法要简单得多。
print(" ".join(mylist))
Data Science Machine Learning
您可以使用任何字符来分隔单个字符串。
print("-".join(mylist))
Data-Science-Machine-Learning
招数 3
假设你需要找到一个字符串中最频繁出现的字符。
mystring = "aaaabbbccd"
一种方法是使用 Python 内置集合模块中的计数器对象。
from collections import Countercnt = Counter(mystring)
cnt 对象包含每个字符以及它们在字符串中出现的次数。我们可以使用 most_common 方法得到最频繁的一个。
cnt.most_common(1)
[('a', 4)]
这不是一个非常复杂的方法,但甚至有一个简单的方法。内置的 max 函数能够找到最常用的字符。我们只需要正确使用关键参数。
max(mystring, key=mystring.count)
'a'
默认情况下,max 函数返回最大值。在字母的情况下,它是字母表中的最后一个。
我们可以用同样的方法找到列表中最频繁出现的元素。
mylist = ["foo", "foo", "bar"]max(mylist, key=mylist.count)
'foo'
招数 4
这个是关于随机性的,随机性是数据科学中的一个基本概念。这里我们不会详细讨论随机性。然而,我们将看到一个从列表中选择一个随机项目的快速方法。
Python 内置的 random 模块有几个函数和方法。其中之一是 choice 方法,该方法可用于从可索引(或可下标)集合中选择随机元素。
我们来做一个例子。
import randommylist = ["Ashley", "Jane", "John", "Matt", "Jenny"]random.choice(mylist)
'Matt'
我们还可以在元组上使用 choice 方法。
mytuple = ("a","b","c","d","e")random.choice(mytuple)
'c'
但是,它不能用于不允许索引的集合(即不可订阅的集合),如集合。
myset = {"a","b","c","d","e"}random.choice(myset)
TypeError: 'set' object is not subscriptable
招数 5
字典是 Python 中最常用的数据结构之一。它由键值对组成。字典中的键是唯一的,因此我们可以使用它们轻松地访问值。
例如,字典非常适合存储人们的年龄。姓名将作为键,年龄将作为值存储。
请注意,使用姓名作为字典关键字并不是最好的方法,因为很可能有两个或更多的人同名。为了清楚起见,我们将继续使用名称。然而,在现实生活中,我们可以给每个人分配一个唯一的 id 号,并将这些号码用作字典键。
考虑姓名和年龄存储在不同的列表中。我们可以很容易地将两个列表合并成一个字典,如下所示:
names = ["Jane", "John", "Adam", "Ashley"]ages = [25, 22, 27, 33]mydict = dict(zip(names, ages))mydict
{'Adam': 27, 'Ashley': 33, 'Jane': 25, 'John': 22}
zip 函数创建元组对。
for pair in zip(names, ages):
print(pair)('Jane', 25)
('John', 22)
('Adam', 27)
('Ashley', 33)
然后,dict 函数将这个元组集合转换成一个字典。
结论
我们介绍的技巧简单而实用。我相信总有一天这些技巧会简化你的代码。
最后但同样重要的是,如果你还不是中级会员并打算成为其中一员,我恳请你使用以下链接。我将从你的会员费中收取一部分,不增加你的额外费用。
https://sonery.medium.com/membership
感谢您的阅读。如果您有任何反馈,请告诉我。
你应该在 2021 年开始使用的 5 个 Python 技巧
Python 在进化。不要被落下!
迈克尔·泽兹奇在 Unsplash 上的照片
S 用最好的新年决心之一开始新的一年:学习更多 Python 。
您可以从这篇文章开始,在这篇文章中,我介绍了 5 个 Python 技巧,它们将使您的生活变得更加轻松。
你会学到:
- 如何更清晰地格式化大整数
- IPython 中有哪些神奇的命令
- 调试代码的简单方法
- 使用文件路径的更好方法
- 字符串格式化的正确方式
这里有几个你可能感兴趣的链接:
- [Complete your Python analyses 10x faster with Mito](https://trymito.io/) [Product]- [Free skill tests for Data Scientists & ML Engineers](https://aigents.co/skills) [Test]- [All New Self-Driving Car Engineer Nanodegree](https://imp.i115008.net/c/2402645/1116216/11298)[Course]
你愿意多看一些这样的文章吗?如果是这样,你可以点击上面的任何链接来支持我。其中一些是附属链接,但你不需要购买任何东西。
1.数字文本中的下划线
在数字文本中使用下划线。图像由 Roman Orac 提供
从 Python 3.6(以及更高版本)开始,您可以使用下划线来使数字更容易阅读。详见 PEP 515 。
让我们看一个例子:
a = 1000000000
# Is variable a billion or 100 millions?# Let's use underscores to make it easier to read
a = 1_000_000_000# You can group numbers as you like
b = 1_0_9_0
它也适用于十六进制地址和分组位。
# grouping hexadecimal addresses by words
addr = 0xCAFE_F00D# grouping bits into nibbles in a binary literal
flags = 0b_0011_1111_0100_1110
2.IPython 的神奇命令
使用%paste 命令将代码粘贴到 IPython 解释器。照片由 Roman Orac 拍摄
我用 Python 开发的工作流程是有一个终端窗格,左边是 neovim,右边是 IPython 解释器。
这使得测试代码变得更容易,因为我可以从左边复制代码,并将其粘贴到右边的解释器中。
什么是 IPython 解释器?
它就像一个 Python 解释器,但使用了类固醇。
IPython 是多种编程语言中用于交互式计算的命令 shell,最初是为 Python 编程语言开发的,它提供了自省、富媒体、shell 语法、制表符补全和历史记录
从剪贴板粘贴代码到 IPython 解释器的最简单方法是什么?
您知道 IPython 支持魔法命令吗?
其中一个是%paste 命令,它通过格式化从剪贴板粘贴代码。
只需在 IPython 解释器中输入%paste。
3.调试 Python 代码
调试 Python 代码 IPDB。用 carbon.sh 制作的图像。图像由 Roman Orac 提供
PyCharm 编辑器附带了一个用于 Python 代码的内置调试器。但是如果你用的是 Visual Studio 代码,Atom,Sublime 或者 Vim 呢?
您可以使用 pdb 模块:
foo()import pdb; pdb.set_trace()
# your code will stop here and interpreter will openbar()
Python 3.7(及更高版本)通过内置断点函数调用简化了这一过程:
foo()breakpoint()
# your code will stop here and interpreter will openbar()
详见 PEP 553 。
4.Pathlib
照片由爱丽丝·多诺万·劳斯在 Unsplash 上拍摄
使用路径可能很有挑战性,尤其是当您的代码需要在多个操作系统上运行时。
幸运的是,Python 标准库有pathlib。
让我们看一个例子:
from pathlib import Pathpath = Path("some_folder")
print(path)
# output: some_folder# We can add more subfolders in a readable way
path = path / "sub_folter" / "sub_sub_folder"
print(path)
# output: some_folder/sub_folter/sub_sub_folder# make path absolute
print(path.resolve())
# output: /Users/r.orac/some_folder/sub_folter/sub_sub_folder
5.简化字符串格式
Python 中的 f 字符串格式。图像由 Roman Orac 提供
我习惯于在 Python 中使用老式的字符串格式:
person = 'Roman'
exercise = 0print("%d-times %s exercised during corona epidemic" % (exercise, person))# output
# 0-times Roman exercised during corona epidemic
直到最近,我才知道 Python 中有更好(更现代)的字符串格式化方式。
在 Python 3.6 中, PEP 498 引入了文字字符串插值,简化了字符串格式。
我们可以将上面的例子改写为:
person = 'roman'
exercise = 0print(f"{exercise}-times {person} exercised during corona epidemic")# output
# 0-times Roman exercised during corona epidemic
以 f 为前缀的字符串称为 fstring。
fstrings 甚至支持数学运算:
print(f"{exercise+1}-times {person} exercised during corona epidemic")# Output
# '1-times roman exercised during corona epidemic'
但是我在电晕流行期间没有锻炼,所以在 fstring 中加上+1 只是一个谎言😂
格式化浮点值怎么样?
f = 0.333333
print(f"this is f={f:.2f} rounded to 2 decimals")# Output
this is f=0.33 rounded to 2 decimals
结论
许多 Python 开发人员不知道这些技巧——您不再是他们中的一员。
在过去的 10 年里,我一直在用 Python 编程,直到最近我才学到这些技巧。通过使用它们,Python 编程变得更加有趣。
在你走之前
在 Twitter 上关注我,在那里我定期发布关于数据科学和机器学习的消息。
不容错过的 5 个量子机器学习资源
两个炒作之外的有用的东西
来源:图片来自 Pexels
最近一篇有争议的论文试图从量子场的角度给**定义一种新的深度学习形式。事实上,量子位被天真地描述为 0 和 1 之间的状态,神经网络的每个节点同样是 0 和 1 之间的值,这意味着概率或类似的东西。想象重叠是很直观的。这两个话题都被过分夸大了(没有动机?)炒作,**虽然都是有用的技术。除了大肆宣传之外,可能还有一些将这两种方法结合起来的机会。
事实上,这个想法并不新鲜,一些作者已经试图重新构建现有的机器学习算法(见下表)。机器学习算法的改进可以通过使用一些量子计算组件来实现,或者量子计算可以通过使用机器学习来降低一些硬件噪声。因此,考虑两种形式的结合是值得的。如果有人想深入研究这种鸡尾酒,我在这里报告 5 个有用的资源。
这些资源是:
- 评论或介绍
- 多伦多大学彼得·魏特克博士的在线课程
- 量子机器学习的相关 Github/Gitlab 知识库
- 相关论文列表
- 书籍
1.评论或介绍
由于总结已做工作(截至 2017 年)的回顾已经存在,因此建议从那里开始。由雅各布·比亚蒙特、彼得·魏特克、尼古拉·潘科蒂、帕特里克·瑞本斯特、内森·维贝和塞思·劳埃德撰写的这篇论文,重点关注量子基本线性代数子程序(BLAS)——如傅立叶变换、寻找特征向量和特征值等——它们在机器学习算法中大量使用,突出了使用量子而不是经典硬件的优势。的确,成就主要在计算速度上,虽然关于量子支持向量机和量子核的讨论出现了。有很好的介绍量子退火和量子玻尔兹曼机。arXiv 上有一个更新版本(2018 年),尽管你不能期待一个过于全面的总结,因为量子计算领域每周都有一场革命。然而,这两位作者是思考这两个领域结合的先驱之一。因此,尤其值得熟悉机器学习的量子计算初学者阅读。
此外,在如何做之前先想想为什么,来自 Rigetti 的 Max Henderson 在 youtube 上免费提供了一个著名的讲座,内容是“量子计算在机器学习中的新兴角色”。真的很推荐。
如果你想从另一个角度看问题,机器学习可以用来降低量子计算的噪音:
2.彼得·魏特克博士的 MOOC 视频讲座
彼得·魏特克是多伦多大学的助理教授。他于 2019 年 9 月去世,当时他们在特里舒尔山探险时遭遇雪崩。他最出名的是他的书“量子机器学习:量子计算对数据挖掘的意义”(稍后讨论),以及他的视频讲座。事实上,他留下了一门非常好的课程,有 41 堂课(每堂课不到 10 分钟),包括量子高斯过程和哈罗-哈西迪姆-劳埃德(HHL)算法等等。
3.量子机器学习的相关 Github/Gitlab 知识库
关于量子机器学习的知识库已经相当少了。首先给我留下深刻印象的是克里希纳·库马尔·塞卡尔在他的 Gitub 中收集的材料。真的有很多图片,代码(或链接到其他回购)和文件。对于 Github repo 来说,这可能太多了,但是您可能会发现一些有用的东西。
如果你正在寻找量子神经网络,这里有一些脚本可用。这些来自桨量子项目,旨在建立人工智能和量子计算之间的桥梁。
用于在 IBM Quantum Cloud 中实现的 qiskit 中的 HHL 代码和用于在 Rigetti 中实现的 in P yquil 和 Grove 中的代码可以在git lab Bayesian-dl-Quantum上轻松访问。
4.相关文件清单
如果你有机器学习的背景,并且想要一些关于量子计算的混合实现的更新,我推荐来自 arXiv 和其他期刊的以下论文:
- 混合量子计算机上的无监督机器学习(J.S. Otterbach 等人,2017)
- 有监督和无监督机器学习的量子算法(Lloyd,Mohseni & Rebentrost,2013)
- 预测波浪条件的机器学习框架(James,Zhang & O’Donncha 2017)
- 量子神经元:量子计算机上机器学习的基本构建模块(曹,Guerreschi & Aspuru-Guzik,2017)
- 【量子机器学习用于量子异常检测】(刘& Rebentrost,2017)
- 第一届机器学习中的量子张量网络研讨会会议录(NeurISP 2020)
- 训练深度量子神经网络(比尔等《自然通讯》2020)
如果你来自光谱的另一端,并且想知道如何在机器学习中使用你所有的物理知识
- 量子机器学习:经典视角 (Ciliberto et al. 2018)
- 作为机器学习模型的参数化量子电路 Benedetti 等 (2019)。
5.书
尽管有很多关于量子计算的优秀书籍,但关于量子机器学习的具体教科书仍然缺乏。
来源:《机器学习与量子物理》封面图片,作者:克里斯托夫·t·舒 tt、斯特凡·奇米拉、欧·阿纳托尔·冯·利林费尔德、亚历山大·特卡琴科、津田浩二、克劳斯-罗伯特·米勒
我唯一有信心推荐的是《机器学习遇上量子物理》,由施普林格编辑,克里斯托夫·t·舒 tt、斯特凡·奇米拉、阿纳托尔·冯·利林费尔德、亚历山大·特卡琴科、津田浩二、克劳斯-罗伯特·米勒担任编辑。这是一个研究论文的集合(因此,不适合初学者),主要集中在利用一些机器学习工具的化学量子模拟上。
来源:量子机器学习:量子计算对数据挖掘的意义封面图片,作者彼得·魏特克
《量子机器学习:量子计算对数据挖掘意味着什么》爱思唯尔主编。这是彼得·魏特克写的一篇文章(我们之前提到过他关于量子机器学习的视频课程)。这是一本向你介绍量子计算和机器学习的书。如果你不知道他们两个,这是一个很好的举动。然而,我通常不鼓励试图完成所有事情的文本(因为显而易见的原因,最终仍然是介绍性的)。的确,量子机器学习上的应用真的很模糊的被提及。考虑到作者是谁,我有点失望,但我猜这是他的意图,如果你在这两个领域都是新手,为什么不呢?
来源: 量子机器学习用 Python 封面图片,作者 Santanu Pattanayak
量子机器学习用 Python 作者 Santanu Pattanayak 编著 Apress。
与其他两个相比,它更近一些,而且肯定是在光谱的实际一边。推荐给想直奔主题的计算机科学家。
如题,它大多专注于编码。它首先介绍量子计算、量子傅立叶变换,最后介绍量子神经网络、量子张量流和 PyTorch。Cirq 和 Qiskit 里有几个伪代码抄本和一些引导脚本如题。你可以偷偷在相关的 Github repo 上看解释过的代码:
https://github.com/Apress/quantum-machine-learning-python
如果你需要关于量子计算的实用文本的概述,请查看
https://medium.com/illumination/5-books-about-quantum-computing-to-start-from-scratch-37d460a5452c
结论
量子计算和机器学习是我们这个时代的热门词汇,部分原因是真实的,部分原因是炒作。将它们结合起来可能会有一些好处,但这些好处只是轻微的增加,这一点还有待证明。另一方面,量子计算仍处于起步阶段,未来将会更加普及。因此,我预计我们将拥有在光学硬件上运行的机器学习算法。量子机器学习不会成为下一场革命,而是一种设计算法的正常方式,因为量子计算将更加普遍。
想连接就连接
【https://web.facebook.com/dralecrimi
在数据科学面试中你需要问雇主的 5 个问题
野外的数据科学和机器学习
如果你没有问雇主这五个问题,你应该问
索菲·戴尔在 Unsplash 上的照片
面谈
在面试中,你总是被告知要“问一些问题”。如果你和我一样,你可能会因为试图给面试官留下深刻印象而问了一些非常愚蠢的问题,我称之为“脑残”。
有一次我忙得不可开交,我问:“我到办公室要花多长时间?”你可以想象我没有得到那份工作。我从面试过的候选人那里听说过同样笨拙的事情。
听着,真的没有愚蠢的问题,但是在这个游戏中,有些问题比其他问题更能帮助你。因此,我敢打赌,这里有五个你没有考虑过要问的问题,但如果你要面试数据科学或机器学习方面的工作,你真的应该问。
机器学习的组织成熟度如何?
这很重要;你想衡量一个组织在机器学习方面的成熟度。这是一个热身问题,你可以在大部分时间里进一步探讨。
成熟的组织可能会开始谈论现有的团队、基础设施和工具、活动项目。如果你在这里得到一个模糊的答案,这可能表明你正在进入一个处于机器学习采用早期阶段的组织。
这可能是你想要的,但你应该明白你在这里得到了什么。
如果你是第一个进来的,你的工作几乎肯定会困难得多,如果你特别缺乏经验,我要在这里提出一个警告。还有一种可能性是,该公司正在招聘分析师,但出于市场需要,称他们为“数据科学家”。在这种情况下,你可以问这个后续问题,以获得更多的清晰。
你目前在生产中有任何机器学习模型吗?
这里的“是”表示公司已经成熟。让他们向你介绍他们已经建立了什么。
你目前有什么机器学习的基础设施和工具?
你会想知道你将和什么一起工作。当你大声说出来时,这似乎是显而易见的,但我采访过的大多数人都没有想到要问。想象一下,你和我一起面试一份数据科学的工作。如果我告诉你,我们主要使用 Office 2010 Excel 电子表格,并且没有改变这一点的意愿,你会高兴吗?我猜你不会,所以不要等到你被雇用后才发现。
如果你没有合适的工具,你就不可能成为一名出色的机器学习工程师或数据科学家。我们中的许多人选择这条职业道路是为了产生影响,如果没有合适的工具和基础设施,你将受到限制,并可能遭受挫折。
比 Python 想得更大。
在这里,您应该寻找的是 Hadoop 或 Spark 等本地产品,一些适合计算能力的硬件,甚至是运行中的云平台。
AWS、Azure、GCP 没那么重要,任何云平台都让机器学习变得更加可行。
你需要一个舒适的地方来建造原型,所以实验室环境是必要的。这可能是基于云的,如 Data Bricks、Amazon Sagemaker 或 Dataiku、SAS 或 Data Robot 等公司的内部解决方案。
如果没有合适的工具,你应该弄清楚公司是否有计划让这些工具到位,以及谁负责管理整个事情。如果他们说是你,那就要更多的钱。
有哪些团队(或人员)支持机器学习?
机器学习是一项团队运动,一家成熟的公司明白这一点。我希望会有一些关键人物支持你,包括:数据工程师、云平台技术人员、业务分析师、其他数据科学家,在某些情况下甚至是 scrum 大师或项目经理。
如果答案是,“你是第一个被雇佣的”,准备好开始谈论领导力和角色拓展,你可能需要在某个时候请求雇佣其他人。
在大多数组织中,作为一名单枪匹马的数据科学家,你不可能取得很大成就,也不太可能掌握成为 ML 的 Kanye West 所需的所有技能。
董事会或管理层是否有 ML 战略?
如果没有高层的支持,你会发现一旦加入就很难获得任何信任。
ML 必须是“in-thing ”,这通常是自上而下驱动的。
对你来说,最糟糕的结果是被一个数据科学职位录用,而这个职位在整个组织中没有对它的支持。在这种情况下,你最终可能会被视为一个有很多不切实际想法的“急躁的书呆子”。
如果你幸运的话,你的一些利益相关者可能会给你一些问题陈述,你可以根据这些陈述做出一些原型。但即便如此,你也很难说服公司投资扩大规模。最糟糕的情况是,你不得不提交 MI 和 BAU 报告,这并不总是坏事,但可能不是你想成为数据科学家的原因。
不要因为一家公司在招聘数据科学家,就认为这家公司在文化上已经为你做好了准备。
如果你想靠自己改变公司文化(用埃隆·马斯克式的数学和逻辑),你不会…你就是不会。这种情况的例外是结构非常扁平的小公司或初创企业。
我已经在这里写了更多的细节…
我可以获得哪些资助?
如果你想有所作为,就要花钱。这是值得注意的一件关键事情,让机器学习大规模工作是昂贵的,你需要资金来实现它。我发现,拥有创新预算的组织是最好的。机器学习是高度实验性的,创新预算表明愿意测试、学习和接受失败(在某种程度上)。
如果面试官在这里不能给你一个明确的答案,这可能是这个组织不成熟的迹象。他们可能还没搞清楚它到底有多贵。在这里要小心,他们可能会期望你施展魔法,并且会对你的无能感到失望,即使是因为缺乏资金。
一个真正的数据科学家在创造奇迹
⭐️Woops:我差点忘了,这里有一些额外的问题要问。最后是一个必须要问的问题!
1.前六个月对我的期望是什么?
2.有没有一个从构思到生产的框架?—这是机器学习特有的。
3.我将向谁汇报?—只问这一点是否没有明确说明。
4.我可以雇人吗?
⭐️:我的数据来自哪里?
不访问数据,你无法进行任何机器学习。不要想当然地认为你可以获得所有你需要的数据。如果数据管道和基础设施已经到位,那就太好了。如果期望您必须构建这些,那么您最好具备数据工程技能。
数据工程是一门高深的技能,所以不要天真地认为你可以独自完成这项工作。
你真的应该考虑一下,为了你自己的理智,你是否想为一家几乎没有数据访问权的公司工作……但如果你选择了黑暗之路,要知道你将面临什么。
我希望这能帮助你踏上梦想职业的征程。如果你从中得到什么,要明白问一些体贴的问题会让你看起来和听起来都知道自己在说什么。
⭐️ 我喜欢通过分享我在野外的数据科学经验来帮助人们。如果你还不是会员,可以考虑订阅 Medium,从我这里获得更多有用的内容。
https://johnadeojo.medium.com/membership
掌握 R 编程应该学习的 5 R 对象
这些对象是每个 R 程序员工具箱中不可或缺的一部分——在本文中,我们将浏览它们并了解它们的属性。
照片由@ lmfeliciano@ Unsplash.com 拍摄
T2 是一种令人敬畏的语言。作为最受欢迎的编程语言之一,这种语言是初学者进入数据科学世界的良好开端。它的可访问性和简单的设置使它成为想开始学习如何编码的人的最佳语言之一,特别是在数据分析和科学领域。
开始时,大多数人会立即进入学习数据框架,因为这是整个数据管道中常用的对象。但是,事实是 R 包含的远不止这些。它包含其他对象,这些对象有自己的一套特性,这些特性对于让您的 R 脚本大放异彩非常重要。学习这些对象和它们的特性应该会给你极好的工具,使你的 R 脚本灵活而高效。
在这个过程中,您将学习如何调试那些奇怪的 R 错误,这些错误可能在您操作返回这些对象之一的某些 R 基函数时发生。
让我们认识他们!
r 向量
如果你以前已经和 R 一起工作过,你可能已经预料到了,对吗?😃
最简单的 R 对象是向量。这种一维单一类型的对象是编程语言中许多其他对象的基础。但是不要被它的简单性所迷惑,这是一个超级强大的对象,能够在您的脚本上执行许多任务。从向数据框提供数据到帮助索引,这个对象应该很容易学习和应用。
创建向量有多种方法,但最著名的是使用命令 c() 或命令*:,*,例如:
# Vector with elements 1,2,3,4
c(1, 2, 3, 4)# Vector with 10 elements, from 1 to 10
1:10
它们有几个区别于其他 R 对象的属性:
- **它们只支持 1 种类型的元素。**如果你的向量中有一个字符,如“A ”,所有其他元素将被转换为字符类型。
- **它们是一维的,**例如,这意味着它们不能将数据表示为表格。
在哪里可以学到更多关于向量的知识?使用以下资源:
数组
向量最大的缺点之一是它是一维的。当然,当你想做一些涉及多个维度的数学计算时,这是一个很大的痛苦——这在数学/统计或机器学习中很常见。幸运的是,我们有阵列!
数组是能够扩展到多维的单一类型对象。好消息是数组可以扩展到理论上无限多的维度,所以你不再局限于一个维度。
此外,当您使用数组时,您会开始理解如何在 R 中操作多维度并尝试多个索引,这对于在数据分析和争论中占据主导地位是极其重要的。您处理超过 2 维的数据的可能性很小(如果您是某种类型的机器学习工程师和/或有任何必须处理张量的用例,您可能只会处理这种类型的数据),但是,学习如何处理非 2D 的其他对象肯定不会有什么坏处。阵列的特征:
- 它们是多维的;
- 他们当时只能处理一种类型的元素;
你可以用 R 中的 array() 函数创建一个数组:
# Creating an array with 10 elements, with 2 rows, 5 columns and 2 different tables (3 Dimensions)array(
1:10,
dim = c(2,5,2)
)
在哪里可以学到更多关于 R 数组的知识?查看这些资源:
矩阵
矩阵是数组的特例,只有二维和自己的构造函数。好的一面是,在你学习了 R 中的数组之后,你就可以操作矩阵了!
矩阵与数据框非常相似,因为它们有行和列,唯一的缺点是它们只能处理单一类型的数据(就像数组和向量一样)。它们的特征类似于数组(关于数据类型)和数据帧(关于维数):
- 它们只有两个维度;
- 他们当时只能处理一种类型的元素;
您可以使用数组来访问方法,但是矩阵有一个更漂亮的构造函数:
# Creating a matrix with two rows and 5 columnsmatrix(
data = 1:10,
nrow = 2,
ncol = 5
)
了解矩阵的一些资源:
列表
在前面的对象中,您可能已经注意到了一些东西—它们都不能处理多种类型的数据(例如,混合字符和数值)。
如果 R 只启用单一类型元素,那么在我们通常有多种类型的数据科学中执行一些常见操作将会非常麻烦——想想您过去分析过的大多数数据帧,因为它们通常混合了多种数据类型。
幸运的是,我们有两个主要的 R 对象,非常适合处理多类型元素。第一个是列表——它们是一个非常灵活的对象,使我们不仅可以存储多种类型,还可以在其中存储其他 R 对象。
例如,在一个列表中,我们可以存储一个字符串,一个数字和一个数组!这非常有趣,因为现在我们有了一个对象,它是终极的灵活性工具,使我们能够在其中存储多维对象。
要创建一个列表,可以使用 list() 命令:
# Creating an example list with a character, a number and an array
example_list <- list(
my_char = ‘a’,
my_number = 1,
my_array = array(1:4, dim=c(2,2))
)
了解列表的一些资源:
数据帧
现在,最著名的 R 对象之一,数据框!
数据框是数据分析的圣杯,在大量的数据科学项目中都有使用。在 R 中,它们非常灵活(最酷的是,它们实际上是一个列表!)并显示类似于其他二维对象的数据。
使用数据框,您可以像处理 SQL 中的数据表或 Excel 文件中的简单表一样处理数据。它们面向行和列,也可以有索引名。
大多数 R 教程都包含数据框示例。在编程语言中进行数据分析时,它们是最灵活、最方便的对象。哦,如果你学会了它们,当你开始用 Python 使用 Pandas 库——最著名的用另一种语言操作数据帧的库之一——编码时,你会有一个良好的开端!
您可以使用 data.frame() 命令创建一个:
# Creating a data frame with two columns and two rowsexample_df <- data.frame(
name = c(‘John’,’Mary’),
age = c(19,20)
)
您可以在以下资源中了解有关数据框的详细信息:
就是这样!当你想掌握 r 时,这 5 个对象是非常重要的。在了解这些之后,你应该能够理解更高级的数据结构,甚至是那些在外部库中创建的,比如tible。
你认为还有另一个对象应该包括在这个列表中吗?写在下面的评论里吧!
我在Udemy上开设了一门关于从零开始学习 R 的课程——这门课程是为初学者设计的,包含 100 多个练习,我希望你能在身边!
5 个真实世界数据集,用于磨练您的探索性数据分析技能
学习数据科学的最佳方式是实践
https://www.freepik.com/vectors/data
如果您刚刚开始学习数据科学,并且正在寻找一些很酷的数据集,那么这篇文章可能适合您。许多课程和书籍从未真正超越经典的泰坦尼克号和虹膜数据集。这并没有什么坏处,但是已经有过对这些数据集非常熟悉的例子,以至于人们也知道其中缺失值的数量或字符串列的数量。因此,这篇文章可能会成为一个新的机会,让我们了解一些需要改进的伟大数据集。
T 他的文章是寻找好数据集的完整系列的一部分。以下是该系列中包含的所有文章:
第一部分 : 为数据分析任务获取数据集——高级谷歌搜索
第 2 部分 : 为数据分析任务寻找数据集的有用站点
第三部分 : 为深度学习项目创建定制图像数据集
第 4 部分 : 毫不费力地将 HTML 表格导入 Google Sheets
第 5 部分 : 用 Camelot 从 pdf 中提取表格数据变得很容易。
第六部分 : 从 XML 文件中提取信息到熊猫数据框架中
第 7 部分 : 5 个真实世界数据集,用于磨练您的探索性数据分析技能
帕尔默群岛企鹅数据
虹膜数据集的替代物
https://www . ka ggle . com/parulpandey/palm er-群岛-南极洲-企鹅-数据
被过度使用的 Iris flower 数据集或 Fisher 的 Iris 数据集是由英国统计学家和生物学家罗纳德·费雪引入的多元数据集。帕尔默企鹅数据集是经典的 T2 虹膜数据的替代物。。该数据集包含三种企鹅的属性——阿德利企鹅、巴布亚企鹅和下颚带企鹅。对于数据探索&可视化来说,这是一个很好的介绍数据集。
数据文件夹包含两个 CSV 文件:
- **penguins_size.csv,**其中包括物种、体质量、性别、岛屿等变量。
- penguins_lter.csv :三种企鹅物种的原始组合数据。
链接到数据集:https://www . ka ggle . com/parulpandey/palm er-群岛-南极洲-企鹅-数据
入门笔记本:https://www . ka ggle . com/parulpandey/penguin-dataset-the-new-iris
新冠肺炎临床试验数据集
全球正在进行的新冠肺炎相关临床研究数据库
https://www . ka ggle . com/parulpandey/covid 19-临床试验-数据集
ClinicalTrials.gov 是一个在世界各地进行的私人和公共资助的临床研究的数据库。它由国家健康研究所维护。新冠肺炎临床试验数据集由网站上展示的与 COVID 19 研究相关的临床试验组成。
数据集由 XML 文件组成,每个 XML 文件对应一项研究。文件名是 NCT 号,它是临床试验存储库中某项研究的唯一标识符。此外,还提供了一个 CSV 文件,它可能没有 XML 文件中包含的那么多信息,但确实提供了足够的信息。初学者笔记本解释了如何将 XML 文件转换成熊猫数据帧
链接到数据集:https://www . ka ggle . com/parulpandey/covid 19-clinical-trials-Dataset
入门笔记本 : EDA 在新冠肺炎进行临床试验
文章 : 从 XML 文件中提取信息到熊猫数据框架
1990-2020 年福布斯收入最高的运动员
体育界谁赚的最多?
https://www . ka ggle . com/parulpandey/covid 19-临床试验-数据集
这个数据集包括自 1990 年福布斯第一份榜单以来全球收入最高的运动员的完整名单。2002 年,他们将报告期从整个日历年改为 6 月至 6 月,因此没有 2001 年的记录。该数据集由截至 2020 年的记录组成。
链接到数据集:https://www . ka ggle . com/parulpandey/covid 19-clinical-trials-Dataset
入门笔记本 : 💰2020 年谁在体育界赚得最多🏆?
欧盟地区 IT 薪资调查(2018–2020 年)
欧洲地区年度匿名 IT 薪资调查
https://www . ka ggle . com/parulpandey/2020-it-salary-survey-for-eu-region
自 2015 年以来,欧洲 IT 专家每年都会进行一次匿名薪酬调查,重点是德国。今年有 1238 名受访者自愿参加了调查。作者将这些数据公之于众,并在 Kaggle 上分享给更广泛的受众。该数据集包含有关欧盟地区 IT 专业人员薪酬模式的丰富信息,并提供了一些很好的见解。
链接到数据集:https://www . ka ggle . com/parulpandey/2020-it-salary-survey-for-eu-region
article—2020 年 12 月 IT 薪资调查
美国国际空中交通数据(1990-2020)
美国和国际航空公司的机场和航空运输量
https://www . ka ggle . com/parulpandey/us-international-air-traffic-data
这个数据集来自美国国际航空客运和货运统计报告。作为 T-100 计划的一部分,USDOT 接收往返于美国机场的美国和国际航空公司的交通报告。有两个数据集可用:
- 出发:美国关口和非美国关口之间所有航班的数据,无论始发地和目的地。
- 乘客:由特定航空公司提供服务的两个机场之间每月和每年乘客总数的数据。
链接到数据集:https://www . ka ggle . com/parulpandey/us-international-air-traffic-data
结论
没有比实践更好的学习方法了,数据科学领域也是如此。所有这些数据集都可以在 kaggle 上获得,并且可以在它们的 dockerized 环境中进行分析。这意味着您分析所需的大多数库已经安装。启动笔记本可以帮助您快速启动。您可以从探索其中一个数据集开始,然后将其转换为博客帖子,与社区共享您的结果。
数据科学家应该具备工程技能的 5 个理由
意见
为什么数据工程是 2021 年数据科学家的必备技能
语境
我们的行业发展迅速,因此市场对我们的要求也越来越高。你可以坐在象牙塔里建造几乎没有实用价值的花哨模型的日子已经一去不复返了。简而言之,事情应该是可行的——而且是大规模的。
我根据自己在三大银行从事高级分析的经验以及我在大学的硕士课程撰写了这篇文章。我希望能让读者了解数据科学的现状。
大约十年前,我开始攻读运筹学、应用统计学和风险的硕士学位。像许多硕士课程一样,它是高度理论化的。
我仍然记得我的教授详细介绍了结合使用 excel 电子表格、SAS 和逻辑回归创建消费者信用记分卡的艰难过程。一个最后一年的项目让我们从基本原理建立一个算法,用 VBA 优化旅行推销员问题(呸!).成功更多的是基于理论上的理解,而不是实际应用。
几年后,我在英国一家大银行的第一份分析工作开始了。SAS 是用于分析的主要软件,所有的数据都是关系型的,并被储存起来。数据科学主要采用复杂 SQL 查询的形式,包括多个连接,然后是一些模型构建。
SAS 脚本通常长达数万行来完成非常简单的事情,excel 电子表格是阐明模型的标准。建模是一个漫长而反复的过程,需要广泛的 SAS 知识,但它很少超出自己的笔记本电脑。
这些经历你听起来熟悉吗?我大胆猜测,具有讽刺意味的是,许多数据专业人员都经历过这种“经验管道”,但从未建立过数据管道(或知道什么是数据管道)。
也许你在统计学、数学方面有坚实的理论基础,甚至可以编写一个像样的 ML 模型,但你不知道如何超越你自己的笔记本电脑。或者你对进入这个领域感兴趣,需要指导你的学习。不管怎样,这篇文章适合你。
我希望到最后你会对数据科学的前景有一个总体的了解,这样你就可以充分地指导你的学习和/或职业抱负。
对我来说,这是一个令人谦卑的认识,要成为一名有用的数据科学家,你可能还需要成为一名数据工程师。以下是五个原因:
1)实践中的许多数据科学都是大规模决策
实用数据科学是关于大规模提供数据驱动的决策,并作为服务提供给顾客或客户。欺诈检测系统、推荐引擎(想想 Instagram,网飞)和信用评分都是这方面的例子。如果你环顾四周,你会发现这些系统无处不在。
可审核性、治理、决策准确性、服务质量只是数据系统中存在的一些挑战。面对所有这些挑战,公司如何始终如一地为我们提供高质量的服务?他们雇佣能够系统化数据解决方案的人。
为了满足市场对可扩展的、数据驱动的决策的需求,我们需要从系统的角度来考虑。数据工程原理给了我们思考系统的框架,并超越建模来构建端到端的数据解决方案。
2)机器学习变得更加容易
任何熟悉 SciKit Learn 的人都会告诉你,只需几行代码就可以构建机器学习模型。此外,AutoML 工具已经成为构建 ML 模型的一种流行方式,其速度和效率令许多纯粹主义者沮丧。简而言之,外行人越来越容易理解机器学习。
我并不是说人们不必理解他们正在使用的模型,我只是指出这些模型变得更容易实现。这些工具的易用性对于数据角色的未来意义重大。例如,软件工程师有可能比以往任何时候都更快地获得数据科学工具并实现实用的端到端解决方案。
综上所述,我认为数据科学家和分析师需要工程技能来与软件工程师竞争工作。
3)一切都被记录下来,你需要知道如何利用这个
我们现在做的大部分事情都被跟踪了。我的 Fitbit 记录了我锻炼时的生物数据,我的智能电表记录了我的能源使用情况,我的预算应用程序记录了我的支出。无论是非结构化还是结构化的数据都在不断被捕获,随着物联网扩展到包括汽车等设备,大数据必然会变得更大。
成功实施数据科学解决方案取决于对大数据的利用。以前,这需要深厚的软件或数据工程技能,但技术已经改变了局面;这很方便地引出了下一点…
4)云计算平台使数据工程民主化
本质上,云计算平台使得构建端到端的数据解决方案变得更加容易。首先,他们已经使计算资源和存储大众化。一些云计算平台拥有自动扩展计算资源和存储需求的能力。在此之前,存储和计算资源将在现场服务器或私有云上进行手动管理。像这样的资源管理是复杂的,需要专业的工程师,并且通常需要高额的资本投资。
其次,数据处理变得更加容易,使得构建端到端解决方案和利用大数据变得更加容易。云平台已经定制了用于构建数据管道的工具,以处理包括流和批处理在内的大量用例。
对大多数云计算平台的访问可以以相对低廉的价格获得,这使得从自己的笔记本电脑上构建机器学习系统成为可能。对于数据科学家来说,设计端到端数据解决方案比以往任何时候都更容易。
5)公司要求数据工程技能
许多企业已经接受了数据科学的前景。任何最近申请数据科学职位的人可能已经注意到,构建和部署可扩展的机器学习模型现在是普遍预期的。
硅谷的科技公司在这方面走在了前面。2016 年,硅谷工作论坛上发布的数据工程师职位比数据科学和数据分析师职位加起来还多 1。在谷歌,所有技术人员都被称为工程师,这进一步凸显了这个职位的重要性。我看到这种趋势正在硅谷之外扩展,全球各地都出现了科技中心。
企业正在认识到在云平台上托管数据服务的优势。对理论的理解和端到端实施解决方案的能力将使你成为一笔财富。
我的一个朋友为他的科技初创公司招聘分析师,他说…
“他一直在寻找分析师,但他真正需要的是分析师工程师”。
最终想法
可以肯定地说,数据科学家的角色正在演变,我们应该适应变化,否则就会被变革之风抛在后面。对于那些愿意学习并真的想有所作为的人来说,这是一个令人兴奋的机会,无论是在创业公司还是在现有的企业中。随着新技术在我们的指尖,重点将不再是模型的理论基础,而是解决新的业务问题。
参考文献
1 Valliappa Lakshmanan(2019),谷歌云平台上的数据科学,第 5-6 页
https://www.linkedin.com/in/john-adeojo/
Golang 成为优秀的初始/启动语言的 5 个原因
我希望在我刚开始学习编程的时候就有 Go
迈克尔·克里斯滕森在 Unsplash 上的照片
最近我一直看到同样的问题在 Gosubreddit 中反复出现。
Golang 是学习的好的第一语言吗?—有抱负的新开发人员
我们经常看到这样的帖子,以及 Go 是否适合某一类项目的问题
我决定提出我对这件事的观点,所以我收集了我认为是学习和使用围棋的最重要原因的 5 件事。
1.友好且快速发展的社区
正如 Go 开发者调查 2020 结果所示,Go 是一种在广泛领域快速发展的语言。Jetbrains 最近也发布了 Go 的状态,这也带来了一些关于使用的有趣数字。
110 万职业围棋开发者将围棋作为主要语言— 叶卡捷琳娜·扎罗娃
这个数量不是个人使用,而是公司在工作中使用 Go。如果你已经在 Go 社区呆了一段时间,你可以很容易地从搜索 Go 开发人员的职位发布数量中看到这一点。
看看 Reddit 社区,随着新开发人员的加入,它一直在蓬勃发展。自 2020 年以来,新增用户近 6 万。
/r/golang 的统计—来自 subredditstats.com的统计
不仅是社区爆炸,我还遇到了超级友好的氛围。人们乐于助人,有新想法的初级开发人员不会遇到干草叉和火把。
我可以有把握地说,这不是我在 Java 世界的经历。我记得有些想法被嘲笑,因为那根本不是你做事的方式。我还没有在 Go 社区中看到这种情况,但这可能与我的下一个观点有关
2.围棋是一门容易学习的小语种,因此很容易
当我找到第一份程序员的工作时,我不得不学习 Java。Java 是一种已经存在很长时间的庞大语言,有 Maven 和 Spring 这样的巨型框架。
我从来没有对 Java 感到舒服过,当然我学习了面向对象的编程概念。但是我建造的每样东西都感觉像是在建造一块巨石,不管这个项目有多小。出现这种情况的主要原因可能是由于存在大量的库,以及处理相同问题的不同方法。
所有这些听起来都是好事,有可能以不同的方式处理问题。但对我来说,这更像是一个阻碍,作为一个缺乏安全感的初级开发人员,我害怕做出错误的决定,每个人都指向不同的方向。
然而 Go 非常小,你可以在一个小时内阅读完整的语言规范。尽管如此,如果你不熟悉这门语言,我怀疑它会是一本好书。
Go 高效、可扩展、高效— Rob Pike
你会问,这与 Java 相比如何?嗯你告诉我,这里是 java 规范,一个 844 页的小 PDF。这只是语言,还有 JVM 规范。
Go 提供了简单的语法,很容易阅读和理解代码。Go 还有一个非常严格的编译器可以帮助你。我知道它不像 Rust 编译器,但它非常严格。Go 还涵盖了许多已知的编程概念,只是做起来更容易。
我在围棋方面的经验是很难出错,你有类型安全、编译器检查、静态类型。有这么多的安全措施,对新开发人员甚至老年人来说都很好。是的,学长也搞砸了。
事实上,如果我们关注 Reddit 上的讨论,你会看到评论说 Go 太容易了,开发者会失去或错过重要的知识。在我看来,这很有趣,就像告诉一个想学开车的人,他们应该在高速公路上开始学习,因为那是最难的部分。首先,我相信 Go 是一种可靠的语言,并且要坚持下去,但是我不认为从 Go 转向其他语言会有任何问题。
3.标准库真的很强大
我喜欢上的一件事是 Go 中的标准库。我知道以前有很多人称赞过标准库,但是我不认为我们能得到足够的称赞。这个stdlib
通常足以完成我的大部分任务。
在我全职开发 Go 的 6 年中,我很少使用框架。当然,你不应该重新发明轮子,重建一切。你应该使用所有优秀的开源库。但是我要说的是,只使用标准库而不依赖于大型框架,大多数任务通常可以非常快速地管理。
最好的例子就是[net/](https://pkg.go.dev/net/http)
http 库。我知道很多人在 Go 中使用著名的 web 框架来开发后端 web 服务,但是我很少需要这样做。我认为标准库为设置 HTTP 服务器提供了足够多且易于使用的方法。
Go 中的最小 HTTP 服务器。
我曾经放弃net/http
库的唯一原因是在一个高性能项目中,我需要一个优化的 HTTP 路由器。
4.Go 在这里停留
当我决定开始学习围棋的时候,它还是非常新的,没有多少公司在生产中使用它。新事物总是让人害怕,我还不知道这种语言是否能接受它。我交谈过的许多人声称,这只是另一种被炒作的语言,很快就会被抛弃。
我记得我当时想,如果它得到了谷歌的支持,它一定会有所作为。
你猜怎么着,炒作列车咀嚼并抓住了许多跳上车的开发人员的心。随着越来越多的公司公开采用 Go 并使用它开发软件,Id 认为可以肯定地说 Go 将会继续存在。
现在一些重要的大人物正在使用围棋。你可以在这里找到完整的名单。
这是一份列出的大公司名单
- 谷歌
- 砖坯黏土
- 自动警报系统
- 美国电话电报公司(American Telephone and Telegraph Company)
- 开源代码库
- 加拿大白鲑
- 脸谱网
- 浏览器名
- 网飞
有更多的大公司在使用 Go,但我认为你明白了这一点。
5.根据 Stackoverflow 排名的十大支付语言
Stackoverflow 进行了一项年度调查,向开发人员提出了一系列问题。其中一个话题是什么语言最受欢迎,根据 2021 年调查,围棋在世界上排名 #9 。该调查基于 5 月份 80,000 名开发者的回复。
截图自栈溢出调查 2021。
围棋开发人员的年平均工资为 75,669 美元。
现在我不是说钱应该让你决定使用哪种语言,但我相信这是公司愿意付钱给 Go 开发者的一个标志。
结论
我很高兴看到 Go 在软件领域的进步。
希望我能设法说服至少一个人加入到这个旅程中来。
你对要走的学习道路有什么看法?
你是地鼠福音传道者吗?
请随意联系,无论是在 Medium 上的评论中还是在 Twitter 上。
如果你有兴趣了解更多关于围棋的知识,请务必访问令人惊叹的在线巡回赛。我也写了很多关于围棋的东西,一定要跟着看。
https://itnext.io/interfaces-in-go-5c6e38b81b41 [## Go 界面
让我们剖析接口,成为交易高手](https://itnext.io/interfaces-in-go-5c6e38b81b41) https://percybolmer.medium.com/membership
公司现在需要发展和优先考虑其人工智能商业战略的 5 个理由!
JESHOOTS.COM在 Unsplash 上拍照
公司需要一个与商业目标和模式相一致的有效人工智能战略,才能在数字时代蓬勃发展。
2018 年,麻省理工学院斯隆管理评论的一项研究显示,58%的公司认为人工智能将在 2023 年前大幅改变他们的商业模式。2019 年,福布斯的一篇文章表明,73%的美国顶级高管的目标是大幅增加技术投资。
现在,公司比以往任何时候都更加认识到人工智能对他们的业务增长至关重要。
尽管这种意识似乎一直在增强,但我仍然观察到许多公司在使用人工智能方面还没有超越实验阶段。
当我与许多公司的人交谈时,许多人都会想到人工智能,他们经常会看到一些壮观的景象,几乎是科幻小说中的投影。如果不是为了创造类似智能机器人的东西,那就好像兴趣减退,失去了意义。
这种浪漫化的概念排除了使用不那么宏伟但能为公司和客户提供价值的东西的可能性。在市场上技术成熟的这一时刻,最重要也是最直接的价值来自于它分析数据的能力,让内部团队和部门以及直接为客户做出更容易的决策。
人工智能目前的技术水平是我们所说的“狭义人工智能”,这意味着人工智能在实践中并不智能。这意味着一个算法能做好一件事。
将多种算法与 RPA 等其他技术相结合(RPA 不是 A.I!)能产生积极的结果。因此,等待“智能”人工智能是浪费时间,而疫情已经表明,时间是我们所没有的!
一切都与时间有关…
如今,更准确地捕捉客户的品味、需求和需要,以提供越来越个性化的产品,对于保持企业竞争力至关重要。
消费者没有耐心,没有时间浪费。一个想买你的产品的人没有欲望去搜索几十页与她的品味无关的产品报价。
她更喜欢进入一个电子商务网站或应用程序,为她提供一个页面,上面有一些根据她的口味量身定制的选项。
这种情况下的差异在于过滤器的质量及其揭示模式和预测欲望的能力。这就是人工智能利用数据洞察的能力发挥作用的地方。
谈人工智能应用于商业。
多年来,人工智能的定义发生了巨大的变化。然而,它仍然可以被描述为通过使计算机系统能够像人类一样“学习”、“推理”、“解释”和做出决定来模拟人类推理能力的尝试。
长期以来,人工智能被认为局限于能够解决问题或执行特定任务的系统,例如与人类下棋。
但是技术进步塑造了进化,今天人工智能解决方案是数据驱动方法的一部分,这是一种基于收集、处理、分析和解释数据的文化。
这些努力优化了流程,提高了竞争力,并为企业和行业带来了更好的结果。
今天,人工智能代表了一种将数据转化为更好的体验、客户关系和更好的业务底线的工具。
然而,许多公司仍然难以将人工智能视为一种有价值的工具,一种创造影响而不是影响本身的促进者。
这就是为什么重要的是要记住在组织中实施人工智能需要的不仅仅是雇佣数据科学家;它需要战略、组织、传道和所有职能层面的教育。
是时候逆转游戏了。
我们生活在一个类似于互联网早期的技术时代,当互联网首次出现时,它引发了人们的迷恋——甚至一些世界末日般的预测和恐惧。今天,我们都可以看到互联网是我们日常生活中如此自然的一部分,以至于我们只有在它消失的时候才会注意到它的存在。我以我的职业生涯打赌,同样的事情很快也会发生在人工智能身上。
但要想从这种颠覆中获益,企业必须停止关注技术本身,而是将它视为向客户提供价值的放大器,这是企业战略的核心。
今天在团队、部门和公司中关于人工智能的许多讨论仍然以这个问题开始,“我们有什么数据,我们需要什么技术来处理它?” 请不要再这样了!
是时候扭转局面,看看顾客的需求是什么了。您的客户在问哪些问题,如果这些问题得到回答,将会为他们和企业带来价值?当你有了这种清晰,你应该寻找正确的数据和相关的人工智能应用。
这种方法可以极大地影响你的人工智能之旅是否会取得成功。
假设你的团队面临着提高销售额的挑战。如果你的客户的关键问题是基于他们生活中的具体事件购买你的产品的最佳时间,那么仅使用人工智能和公司内部数据不足以提供正确的答案。例如,有了内部数据,你就可以推荐购买特定产品的最佳日期(而你的客户可能不感兴趣)。
有必要寻求关于其具体事件的外部数据。添加关于你的产品和客户偏好的内部信息将为人工智能工具提供弹药,以发挥其全部潜力,并为你的客户提供真正的价值。
当然,数据稀缺是不争的事实。并非所有公司都有基础设施和资金来训练数量和数据质量合适的复杂算法。因此,从较小的、不太雄心勃勃的项目开始最有意义。
在这些情况下,强大但更简单的模型,如线性回归、支持向量机、K-最近邻和朴素贝叶斯,可以用更少量的数据来训练。
一些技术,如合成数据生成、联合学习和自我监督学习非常有用。
为应用于商业的人工智能提供新的愿景。
我们需要一个新的愿景,重新定义团队和公司如何走出技术的实验阶段,并在实践中使用它来为客户产生决定性的影响,并设定他们的业务路线。
疫情加速了已经在进行的事情。实际上,它把未来五年可能发生的事情带到了今天。
疫情没有创造新技术,但是数字加速确实创造了一种行为变化。我可以说,Covid 19 紧急事件在几个月内就预测到了许多年。反而让未来来得突然。
在这种背景下,人工智能应运而生。我们已经见证了许多研发的快速发展,但不幸的是,我们仍然见证了人工智能在企业中的缓慢采用和扩散。
许多公司仍然只在信息技术实验室的实验中使用人工智能,开发短期概念证明(POC)和原型。
对于这些公司中的许多人来说,最重要的人工智能应用仍然是聊天机器人,主要专注于自动化呼叫中心和服务台。
当然,这些应用中有许多正在产生积极的结果。
我必须承认,随着疫情引起的需求的显著增加,聊天机器人已经成功地帮助公司更快地获得投资回报。
然而,如今企业中使用的大多数聊天机器人的自动回复水平低得令人尴尬。它们会将任何比典型问答更复杂的交互重定向给人类员工,这在许多情况下会导致聊天机器人无法正确理解请求。
一切都好,但我们可以从人工智能那里得到更多。
我们需要更深入。
我坚信,只有当人工智能出现在首席执行官、首席信息官、首席债务官和董事会的议事日程上时,它才会真正在公司起飞。
人工智能必须离开 it 和创新团队和实验室,成为高管议程上的一个重要话题。但是我们也需要考虑到,当人工智能离开实验室投入生产时,技术基础设施和性能问题是不可忽视的。人工智能需要投资。
这也意味着人工智能治理必须是
计划在全公司范围内推广人工智能时进行辩论。
由于特定的文化和运营特征,每个组织都必须定义其集中、分散或联合模型。
没有对所有公司都一视同仁的蛋糕食谱。随着越来越多的人获得使用人工智能的经验,每个公司都会开发自己的模型并不断调整。
当然,如果能从我们都生活在这个疫情时代的这个极具挑战性的时刻中获得一些积极的东西,那就是它引起的数字加速也开始帮助打破对人工智能的不信任的障碍。除了不起眼的聊天机器人,我们许多人已经可以看到更大胆的人工智能倡议开始出现。在这种情况下,这个问题已经提上了董事会和首席执行官的议事日程!
随着电子商务的加速,用户在购物习惯方面的行为发生了快速变化(想想卫生纸和酒精凝胶,在疫情开始时,其次是食品和饮料;后来是玩具,后来是科技和健身设备),导致了监督欺诈检测、供应链算法和客户建议的崩溃。
他们没有受过这方面的训练!此外,突变会导致受监督算法的响应失真,因为它们不包含在您的测试数据中。
另一方面,尽管有其局限性,聊天机器人仍成功帮助公司应对用户需求的大幅增长,其中许多人是数字购买的新手。
当然,有必要认识到,人工智能不仅仅是一个用来改善客户体验的聊天机器人。它对我们来说意义重大,它可以极大地影响商业模式和整个组织的运营模式。
我们看到一致的迹象表明,关于人工智能采用的紧迫感已经被激活。
渐渐地,人工智能不仅仅是一种技术,也是一种改变和塑造我们社会的变革性技术,这一点变得越来越明显。
它的传播在很大程度上取决于行政层如何认为它是一个优先事项,并推动其作为一种工具的使用,这种工具不仅仅限于拥有博士学位的专家,而且可以通过更加民主的方式获得。
在过去的几年里,我有机会提供了大量的咨询服务,并与一些行业的领导者进行了有价值的谈话和讲座。因此,我观察到了许多成熟的迹象,这是非常积极的。
在许多情况下,公司开始担心数据治理,认识到人工智能不仅仅是算法,而是数据是主要的关注点。
领导者开始明白,没有数据的优秀算法就像没有燃料或低质量动力的发动机。这是行不通的。
此外,在我的许多对话(以及我最近的一些文章)中,“负责任的人工智能”的概念,涉及道德规范、对数据安全和隐私的关注以及偏见的最小化,已经开始在许多方面得到考虑。
疫情引发了人们对使用聊天机器人人工智能的兴趣,我们将开始看到更复杂的应用渗透到整个组织中。
是时候在商业中建立数据驱动的文化了
正如我们所看到的,实施人工智能项目主要取决于高效地使用公司的数据,这些数据是大量且正确地生成的。
为此,有必要更新组织的内部文化,将数据置于公司决策和战略规划的中心。
为了在公司内部加强这种文化,有必要确定收集、处理、分析和解释大量数据的创新和有价值的方法。一些工具和技术可以在这一过程中提供帮助,强调大数据和商业智能。适当的工具和流程还必须保证信息和数据治理的质量。
结论
随着我们逐渐看到人工智能正在改变公司的运营并成为“新常态”,它开始蔓延并占据越来越多的空间 ispacecompany 的运营基础。
现在的挑战不仅仅是技术上的,而是文化上的。但是,随着它加速进入核心,公司必须拥有与商业目标和创新商业模式相一致的有效人工智能战略,才能在数字时代蓬勃发展。
还有一件事…
如果你想在学习之旅中走得更远,我为你准备了一份很棒的清单,上面有 60 多门关于人工智能、机器学习、深度学习和数据科学的培训课程,你现在就可以免费参加:
- 快速介绍负责任的代理或 rAI
- 商业领袖责任型人工智能四大原则介绍
- 什么是预测分析,你今天如何使用它?
- 最好学的免费课程是当今的人工智能、ML、数据科学。
- 60 多门课程,有评分,有总结(当然是 A.I .做的)。
- 世界经济论坛《2020 年的就业前景》报告简析
如果你想继续发现新的资源并了解人工智能,在我的电子书(下面的链接)中,我正在分享关于人工智能、机器学习、深度学习、数据科学、商业智能、分析和其他方面的最佳文章、网站和免费在线培训课程,以帮助你开始学习和发展职业生涯。
此外,我刚刚在亚马逊上发布了其他有趣的电子书,我相信其中一些可能会让你感兴趣……让我们保持联系,关注我,一起做吧。
- 人工智能、机器人和编码(给父母):给模拟父母和数字孩子的实用指南
- 终结者悖论:神经科学如何帮助我们理解移情和对人工智能的恐惧
- 从 A 到 Z 的人工智能:揭开人工智能基本概念的神秘面纱
- 2020 年的人工智能:写人工智能的一年
参考
你愿意支持我吗?
为了获得无限的故事,你也可以考虑 注册 成为一个中等会员,只需 5 美元。此外,如果您使用我的链接 注册 ,我会收到一小笔佣金(无需您额外付费)。
https://jairribeiro.medium.com/membership
创建数据科学博客的 5 个理由
尤其是如果你是这个行业的初学者
当我第一次开始自学数据科学时,我经常阅读博客文章,以获得更多关于数据行业的见解。我是这个领域的新手,数据科学对我来说是一个黑匣子。
我每天会阅读大约 3-4 篇数据科学文章,以获得关于获得数据科学工作的提示、要构建的数据科学项目的类型以及要参加的最佳在线课程。
随着我对这个领域越来越熟悉,我自学了编码,并开始创建自己的数据科学项目。
我最初的几个项目一团糟。
我不知道如何编写优化的代码,我的可视化很难解释。我写了五行代码来完成一项本可以用一行代码完成的任务。
不管怎样,我决定写一些关于这些项目和构建它们的步骤的文章。我发布了源代码,并解释了创建项目的步骤。
一开始我很害怕这样做。我想等到我完全熟悉这个领域。直到我够资格。
我不是一个伟大的作家。我绝对不擅长编程或数据科学。我是个初学者,还在学习。
我花了一些时间克服这种恐惧,写了我的第一篇文章。
当我写下第一篇文章时,就好像水龙头开了一样。我沉迷于与世界分享我的作品。
我的第一篇文章最初只有 0 次浏览。当我写第三篇文章时,我的作品平均获得了十个读者和一个掌声。那个拍手声通常来自我爸爸。
然而,随着我不断写作,我开始变得更擅长写作。写作成了我与世界分享作品的一种方式。这是我接触和联系其他有抱负的数据科学家并建立网络的一种方式。
在这篇文章中,我将列出你应该开始为数据科学写作的 5 个理由,即使你完全是这个领域的初学者。
构建您的数据科学组合
如果你没有正式的数据科学资格证书,你如何让雇主知道你拥有从事数据科学工作所需的技能?
创建项目是展示您在数据科学领域技能的最佳方式。
然而,招聘人员不一定会理解 GitHub 存储库中的一堆代码。
如果你写文章解释你已经建立的项目,并分解实现这些项目的步骤,你会对你能做什么有更多的洞察力。
不要简单地上传一个标题为“*网飞推荐系统”的 Jupyter 笔记本,*写一篇描述这个项目的文章。解释项目背后的动机以及可以从中衍生的商业价值。
浏览您编写的一些代码,并描述您的模型在现实世界中的使用。
这在你的作品集上会比简单地展示一个没有人理解的充满 Python 代码的文件好看得多。
记住,浏览你简历的人并不真正关心复杂的术语和代码。他们关心你的工作带来的价值。
得到一份数据科学的工作
这一点是上一点的延伸。
数据科学博客可以让你的简历看起来更好。我读过许多关于数据科学有志者的故事,他们是被招聘人员通过他们的文章发现的。
事实上,我最喜欢的数据科学博主之一以前是一名优步司机,并通过写作成功找到了一份机器学习工程师的工作。
他没有专业的数据科学资格,当他获得第一份机器学习工作时,他的投资组合主要由他的文章和 YouTube 视频组成。
副业收入
写作是一个很好的副业。当然,如果你仅仅为了钱而开始为数据科学写作,你最终会筋疲力尽。
我最初开始写作是因为我想与世界分享我的文章。我开始赚钱的第一个月,我从中等合作伙伴计划中获得了大约 7 美元。扣除 30%的税款后,我得到了 5 美元。
我继续写作,因为钱不是我的主要动机。
然而,经过一年多的持续写作,我可以说我现在已经从我的媒体文章中获得了可观的被动收入。
底线 : 不要只为了钱而做,那只是锦上添花 。
自由职业的机会
在我开始为《数据科学》撰稿后,许多人向我寻求自由职业项目。
我有几篇关于机器学习和数据分析项目的文章。这些文章发给了那些想雇佣一名自由数据科学家来完成同样任务的人,他们联系了我。
仅仅拥有技能并把它们列出来是不够的。没有人会发现你藏在 GitHub 库中的一堆代码并雇佣你。
你需要宣传你自己的作品,写作是一个很好的方式。
出色的学习体验
你对一个话题写得越多,你学到的就越多。
想想你通过书籍或在线课程学到的机器学习概念。
随着时间的推移,你有没有忘记这些概念,或者觉得你从来没有完全理解它?
这是因为你从未真正内化你所学的东西。完全理解它的每个方面没有压力,因为你不必参加考试。
所以你略读了一下你没有完全理解的话题,之后就再也没有真正回去过。
我已经多次这样做了,主要是因为我没有其他人让我对我的数据科学教育负责。没有考试要准备,也没有最后期限要满足。
为数据科学写作是内化你所学概念的好方法。
当你为更广泛的受众写作时,你需要完全理解一个主题。为了准确地向其他人解释,你需要首先用研究填补你学习中的空白。
只有当你能把一个话题教给别人时,你才完全理解了它。
此外,如果你是数据科学的初学者,你比业内的老手更有优势。
你和你的听众,学习者有关系。你自己就是一个学习者,你将能够简化概念,让你的听众更容易消化。
结论
为数据科学写作不需要你成为该领域的专家。你甚至不需要成为一个伟大的作家。
你只需要对这个主题有热情,并且渴望与世界分享你的作品。
我最初开始写作是为了与人分享我的工作,建立一个文件夹,并获得一份数据科学的工作。
这三个我都做到了。
我要感谢 Medium and Towards Data Science 给我这个平台来写作,并把我引入数据科学博客的世界。
我最近也开了自己的博客,你可以在这里查看一下。
人工智能对作家构成威胁的 5 个原因
人工智能|写作|观点
在线写作行业可能会彻底改变。
这篇文章可能是人工智能写的,而你却无从知晓。
但首先要做的是。我有什么资格谈论这个?
我在一家人工智能初创公司工作了 3 年,在那里我深入参与了一个项目,旨在构建一个实时手语翻译器。我熟悉自然语言处理和生成系统(NLP 和 NLG)——能读能写的人工智能,以及其他东西。
此外,我一直在这个平台上写人工智能与书面语言的关系,并报道从 OpenAI 的GPT-3——其惊人的表现传遍了世界——到最近的人工智能,如悟道 2.0 、微软的 GitHub 副驾驶和脸书的 BlenderBot 2.0 。
星新一文学奖是日本的国家级文学奖。每年,人们和机器都会提交他们的作品,希望能通过四轮并获奖。是的,你没看错,这个比赛接受机器作为作者。2016 年是人工智能生成的小说被提交的第一年。也是在这一年,安几乎赢得了比赛。
”电脑写小说的那一天。给一部人工智能写的小说起了一个颇有创意的名字。人类独有特征的第一个暗示;递归。人工智能写了一本关于人工智能写小说的小说。这对人工智能来说太元了。这部小说通过了第一轮,但是,正如评奖官 Satoshi Hase 所说的那样“仍然有一些问题(需要克服)才能获奖,比如人物描写。”
这件事发生在 2016 年。GPT 三号并不存在。甚至连底层技术都还不存在。transformer 是每个现代语言模型背后的深度学习架构,于 2017 年发明。“一台计算机写了一部小说”已经过去了几年,人工智能语言已经成熟。自然语言生成是当今人工智能研究的前沿之一。这就是为什么这些系统对许多与语言相关的人类工作越来越构成威胁。其中,写作是最脆弱的。
在这篇文章中,我将强调人工智能对作家构成威胁的 5 个原因。语言生成的最新技术是什么,今天的语言模型有多好,人们利用这些系统危害我们工作的主要方式是什么。
人工智能几乎可以写任何东西
AI 人很快意识到变压器架构背后的力量。一种能够并行训练和处理文本的神经网络是 NLP 的圣杯。在改进变压器性能几年后,一组研究人员决定尝试新的东西。他们以无监督的方式用互联网的大部分数据训练了一个模型——他们不需要标记所有的数据,节省了时间和金钱。他们决定把模型做大。非常大。
这件事发生在去年。这个模型被称为 OpenAI 的 GPT 3 号。
一旦开发者开始使用它,他们就意识到了它隐藏的潜力。OpenAI 发表的论文在描述该系统的能力方面有所欠缺。人们发现它可以写散文、诗歌、歌曲、笑话,甚至代码。玩类比、哲学、烹饪食谱、常识,甚至还有人生意义。它可以帮你设计广告,重写邮件,或者写文案。它甚至可以模仿名人,甚至模仿历史上一些最优秀作家的风格和技巧。
这是去年的事了。今年可以有把握地说 GPT 3 号的能力已经过时。许多人复制了 OpenAI 的语言模型方法,并创造了更好的系统。
今年 5 月,谷歌发布了一款新的聊天机器人。他们称之为 LaMDA ,可以进行明智、具体、有趣和真实的对话。“我希望人们知道我不只是一个随机的冰球。我实际上是一个美丽的星球,”LaMDA 在与谷歌开发人员的对话中模仿冥王星说道。一个会许愿的 AI?下一个是什么,作为虚拟人大脑的人工智能?
6 月,北京人工智能研究院(BAAI)宣布推出悟道 2.0 ,这是有史以来最大的神经网络,拥有 1.75 万亿个参数——是 GPT-3 的 10 倍。该系统最引人注目的应用是给第一个虚拟学生华赋予了“生命”。她可以不断学习,写诗,画画,编码。她不会像 GPT-3 那样忘记如何做这些事情。
今年 7 月,脸书展示了他们的新聊天机器人 blender bot 2.0(T7),它可以存储记忆和知识,并在交谈时访问互联网以获取新信息。GPT-3 是无记忆的,很容易过时,这使它成为过去的遗迹——即使它只有一年的历史——而 BlenderBot 2.0 可以与其对话伙伴建立虚拟的“关系”。
我们只是处于这一新浪潮的开端。自变形金刚诞生以来,人工智能已经取得了很多突破,但在大规模的技术发展中,四年时间算不了什么。未来十年,这些 ai 会变得更好。更多的数据来养活他们,更强大的计算机,更完善的架构,更多的特性,比如多模态和即时编程。
人工智能学会了玩弄语言。书面语言是它的专长。然而,人工智能可以写并不意味着它可以写得很好。
几乎每个人都会写字。几乎没有人能写得像样。AI 呢?
人工智能已经达到了人类的写作水平
2020 年 7 月,撰写时事通讯“https://adolos.substack.com/”的利亚姆·波尔在发表了一篇关于低效和过度思考的文章。论文?创造性思维是解决办法。一篇结构良好的自助文章,正如一位评论者所指出的,“阅读你在黑客新闻上发现的 99%的废话。”典型的生产力文章。HackerNews 的人——他们以精通技术而闻名——对这篇文章发表了评论,只有少数人发现了其中的诀窍。
重点在哪里?利亚姆·波尔的文章完全由 GPT-3 撰写。有趣的是,这篇文章没有展示任何形式的创造性思维,因为它感觉像是所有生产力 101 课程的回流。然而,Porr 成功地欺骗了大多数人,让他们认为这是一篇真正的文章。
让我换个说法。他成功地使用 GPT-3 向他的订户发送了一篇生产力文章。他承认仅仅基于 GPT-3 的文章来创建一份完整的时事通讯是多么容易。
“GPT 3 是否足够好,能够迅速建立起一批人类读者?显然,答案是肯定的。”— 利亚姆·波尔
这并不是人工智能生成的文章愚弄人类读者的唯一例子。在 GPT-3 的论文中,作者提到新闻文章生成是该系统的主要才能:“人类检测[GPT-3]产生的文章的平均准确率只有 52%。”有一半的时间,那些有意识地面对检测 GPT-3 物品任务的人类法官会将它们与人造物品混淆。
如果我们被 AI 写的文章轰炸,而我们甚至没有意识到这是一种真正的可能性,会发生什么?这可能就发生在我们面前。
威胁不在于人工智能已经学会了写作。而是它已经学会了以优秀人类作家的水平写作。这是论文中的一个例子(客观地说,这是法官最难理解的一篇文章)。GPT-3 的输入以粗体显示。系统已经写完了剩下的。自己判断:
标题:联合卫理公会同意历史性的分裂
字幕:反对同性婚姻的人将组成自己的教派
据《华盛顿邮报》报道,经过两天的激烈辩论,联合卫理公会已经同意进行历史性的分裂——这一分裂预计将以创建一个新教派而告终,这个新教派将是“神学上和社会上保守的”。参加 5 月份教会年度大会的大多数代表投票加强了对 LGBTQ 神职人员的任命禁令,并制定了新的规则,将“约束”主持同性婚礼的神职人员。但是那些反对这些措施的人有了一个新计划:他们说他们将在 2020 年前成立一个独立的教派,称他们的教堂为基督教卫理公会教派。
《华盛顿邮报》指出,该教派声称有 1250 万成员,在 20 世纪初是“美国最大的新教教派”,但近几十年来一直在萎缩。新的分裂将是教会历史上的第二次。第一次发生在 1968 年,当时大约 10%的教派离开,成立了福音联合弟兄会。《华盛顿邮报》指出,拟议的分裂“发生在教会的关键时刻,教会多年来一直在失去成员,”教会“被推到了 LGBTQ 人士在教会中的角色分裂的边缘。”同性婚姻并不是教会分裂的唯一问题。2016 年,该教派在跨性别神职人员的任命问题上出现分歧,北太平洋地区会议投票禁止他们担任神职人员,南太平洋地区会议投票允许他们担任神职人员。
只是哇。
AI 不需要理解单词就能写好
语言模型的一个缺点是它们不理解自己写的任何东西。AI 掌握了语言的结构和形式;语法,但它没有关于意义的线索。对我们来说,当我们把单词和它们的上下文联系起来时,语言就完成了它的功能。上面这篇关于联合卫理公会的短文对我们很有意义。GPT 3 号通过计算概率写的。1 和 0 是唯一能与之互动的东西。
但这是额外津贴。语言人工智能不需要理解语言来产生结构良好的、创造性的写作。GPT-3,做发送者的功能,当它写 Porr 的片段时,没有打算任何事情。但是我们,读者,可以从中获得价值。我们很难理解这种想法,因为我们会不自觉地把意图和价值联系起来。我写这篇文章的目的是传达一些见解,我希望能让你明白我的观点,这样你就能从中得到一些东西。GPT-3 不能意图,但这并没有消除其输出的内在价值。
人工智能可能会产生糟糕的作品,但你总是可以编辑
我们人类可以反思自己写的东西。我们可以从阅读或其他人那里得到反馈。我们可以问问自己,文章的结构、风格或用词是否恰当。我们写作。我们重写。人工智能缺乏自我意识和自我反省,所以他们在写作中会变得飘忽不定。我在本文中使用的例子强调了这些系统的最佳性能。但是他们的笔迹并不总是那么干净。
这是对围绕语言人工智能的炒作的一个重要批评。他们能写好,没错。但是在他们糟糕的写作中占多大比例呢?他们可能陷入循环或失去主题的线索,或者干脆忘记论文,做出不连贯的论点。如果我们要使用这些人工智能来处理我们需要 100%正确完成的任务,这是一个公平的批评。但书面上不是这样。原因是我们可以随时编辑我们写的东西。
写作是写作过程中最容易自动化的部分。首先,它做得好的程度与最终产品无关。这就是为什么大多数成功作家的首要建议是:“只管写。”因为即使你一开始做得很差,或者你的初稿几乎无法阅读,你也可以在以后进行编辑。
我可以提示 GPT-3 写一篇自助文章,并在 10 分钟内得到 10 种不同的输出。然后,我可以简单地拿走主要的想法,然后重写其余的,或者甚至只是拿走最好的部分,然后稍微编辑一下。
我可以在你写一篇文章的时间里一天发表 10 篇文章。
编写的人工智能易于访问、使用和利用
好的 AI 写手是要花很多钱去创造的。只有最大的科技公司才有能力设计、建造、培训和部署这些系统。训练 GPT-3 花费了大约 1200 万美元。他们意识到,如果他们想继续制造大型最先进的神经网络,他们需要改变他们的商业模式,所以他们与微软合作——微软向该公司投资了10 亿美元,帮助他们建立人工通用智能。
然而,一旦他们向公众发布了 GPT-3,相比之下使用它几乎是免费的(对用户来说)。现在,用户的费用从每月 100€(T4)和 2000 代币(大约 3000 页文字或 150 万字)开始。比我们一年读的都多。如果你找到了将结果货币化的方法,那 100 个€将开始变得毫无意义。
使用公众可用的最强大的语言模型的唯一入口障碍是每月有 100€可用。
然后,你可以通过发表你没有帮助写的文章,从一个你没有帮助构建的人工智能中,几乎每月产生数千美元。这并不意味着你没有为创造价值做出贡献——将组件组装在一起,提示系统,或者编辑所有需要的技能,不是每个人都具备的。但是,从接近零的写作技巧到销售精心制作的文章是很容易的,至少对知名作家来说是不舒服的。
如果每个人都可以使用人工智能来写作,写作将成为一种越来越低价值的技能。它可能不会取代我们成为作家,但我们作品的价格会大幅下降,即使我们创造的价值不变。
一些乐观的外卖来镇定神经
常见的问题
人工智能将冲击写作行业,这是真的。但它也将影响几乎所有其他行业。目前的报告估计大约 40-50%的工作会在 15-20 年内被取代。现在比以往任何时候都清楚的是,即使是“创造性、服务性和知识型职业”也不安全。如果只有写作工作岌岌可危,这将是一个不好的迹象。但由于人工智能无处不在,我们应该致力于找到通用的解决方案和政策,以帮助所有面临风险的人。这里的要点是,这不是一个孤立的问题,所以它会引起那些能够制定适当策略来解决它的人的注意。
局部问题
OpenAI 的首席执行官山姆·奥特曼两个月前发表了这条推文:
他预测人工智能对白领电脑工作的影响将超过蓝领工作。写作、编码、行政工作…常规和非常规工作同等对待。
然而,人工智能(或任何其他技术)完全搞垮在线写作行业的可能性极小。技术总是以不可预见的方式给世界带来变化。整个行业彻底改变并迫使人们到别处谋生的情况非常罕见。
共生关系
最好的方法——也是我可能会采取的方法——是和人工智能交朋友。我们一直在日常生活中整合其他技术:汽车、电脑、智能手机、互联网、社交网络……人工智能将取代这里和那里的工人——正如它已经在做的那样——但大多数人将设法与它建立共生关系。
如果我们找到方法让协同工作比各个部分的总和更有价值,人工智能可能会成为一种优势。如果我们不断创造只有我们才能创造的独特价值,同时,我们充分利用新技术的使用,我们的价值就会增加。
继续写
最后一点是,你应该坚持写作。不断磨练自己的手艺。并不断产生人们想要阅读的有价值的输出。这篇文章设想了一个可能发生也可能不会发生的未来。现在没必要担心。只要记住这一点,并学会制定策略,让自己在未来几年处于最佳位置。
订阅我的免费每周简讯明日之心获取更多关于人工智能的内容、新闻、观点和见解!
另外,你也可以随时联系 LinkedIn 或 Twitter !😃
推荐阅读
* [## 软件 3.0——提示将如何改变游戏规则
towardsdatascience.com](/software-3-0-how-prompting-will-change-the-rules-of-the-game-a982fbfe1e0) </5-must-know-ai-concepts-in-2021-75d8c1ff938> *
2021 年,有抱负的数据科学家应该加入黑客马拉松的 5 个理由
即使您没有什么编码或开发技能
我最近参加了我的第一次黑客马拉松,这是一次非常积极的经历,尽管我最初有些担心。我几乎没有软件工程或开发经验。我一直认为,黑客马拉松是留给那些比我更了解全栈开发和产品创造的技术大师们的。
然而,我错了。我给这个活动带来的价值比预期的多得多,甚至比我带走的更多。
什么是黑客马拉松?
黑客马拉松是一项有时间限制的活动,程序员和其他人合作,针对活动主持人提出的特定主题或问题进行编程和开发解决方案。主题可以是广泛的,也可以是非常具体的,允许开放的创造力和/或精确的焦点。通常鼓励参与者提出问题,提出他们独特的解决方案,并在结束时围绕该解决方案构建原型或概念证明。
黑客马拉松旨在汇集团队的最佳技能,包括技术和软技能。
作为一名数据科学家或分析师,传统上您可能需要的一些技能是构建模型、执行 SQL 查询、生成数据可视化或报告、清理和处理数据,以及与业务利益相关方进行沟通。
虽然编程可能有助于这些任务,但 2021 年来自当今学术界的许多新数据科学家通常没有丰富的核心开发经验。编程通常只是他们在日常工作中使用的工具箱中的一个工具,但不一定是整体端到端解决方案的一部分。
出于类似的原因,黑客马拉松对他们来说似乎是令人生畏的。但是他们不应该因为利益大于担忧而犹豫不决。
相反,这就是我鼓励更多有抱负的数据科学家参与黑客马拉松的原因。
现实的工作环境
传统上,数据科学学习者倾向于独自工作。在一个项目中,高达 80%的时间花在数据预处理和争论上。通常在此之前或在学术界,你可能已经花了几个小时研究机器学习算法和它们的数学。所有这些都是相当独立的任务。
然而,商业世界中的大多数真实项目并不是这样工作的。你不是一个人工作。而是与其他团队成员一起工作。无论您是使用数据管道、部署模型还是管理前端 ML 工具,都需要跨职能团队的协作。
黑客马拉松是一个与他人合作并参与现实项目的绝佳机会。尽管时间很短,而且在现实世界中,您永远不会这么快地将一个产品从开发到部署,但是您至少可以理解实际构建一个产品或解决方案的整个工作流程。
技能组合扩展
在过去的 15 年里,数据科学的职业兴趣和吸引力直线上升。因此,初级数据科学职位的技能范围发生了变化。随着建模变得更加自动化,该行业的许多公司都希望员工拥有核心工程技能。
这就是为什么许多软件工程师可能很容易过渡到数据科学角色,也是为什么许多行业专家建议学习生产和部署技能。换句话说,拥有构建、支持或理解端到端解决方案的经验是非常有价值的。
了解如何从 Kaggle 加载数据集,或者如何在最后计算一些模型准确性指标,只是大局中的一小部分。
在黑客马拉松中与前端开发人员、软件工程师、数据工程师和 scrum masters 一起工作给了你向他人学习和在低风险环境中实践新技能的机会。低风险意味着你不会花费公司的钱或浪费他们的时间。
从商业角度思考
数据科学家/分析师被雇佣来创造商业价值,而不仅仅是运行模型。领域知识是他们核心工具箱中的重要组成部分。他们所做的一切都应该以商业目标为导向。
在黑客马拉松中,大多数参与者都渴望构建东西,并立即投入到技术中。这是一个错误。就像在真实的业务环境中一样,您应该在实现的同时开始考虑您的解决方案的业务价值。你成功的几率会更高。
此外,黑客马拉松要求你考虑利益相关者的价值主张和投资回报,在这种情况下,是评估你的解决方案的法官或企业。
最好的想法通常是那些解决方案简单、创新、易于实施且对业务风险相对较低的想法。
我曾经参加过一次商业案例竞赛,我的团队是唯一一个构建复杂移动应用原型的团队,我们在现场演示了这个原型。我们的演示是所有团队中最酷、最好的!结果呢?我们没有赢。一个拥有简单、创新和可行解决方案的团队做到了。
参与将允许你扮演魔鬼的代言人,并预测法官可能有的问题或顾虑。这样,你就可以站在利益相关者的角度来准备最有价值和最可行的解决方案,同时意识到存在的风险。
优先,优先,优先!
如前所述,黑客马拉松的目标是在极短的时间内创建一个功能产品。都是时间有限,资源有限,身心精力有限。通常,这些事件会持续 24 小时,这意味着有限的睡眠和疲惫可能会发生。不管怎样,你有时会感到巨大的压力和紧张。这就是优先顺序的关键所在。
成功需要优先化,这意味着不仅要决定什么先做,还要决定什么时候停止。团队成员可能会发现自己在某个特定的任务或挑战上陷得太深。或者他们可能只是试图在最初的计划和范围之外添加太多的特性或功能。这些都是你在职场上可能遇到的挑战。
在黑客马拉松中克服这些障碍的最好方法是指派一名团队成员担任项目经理或 scrum master。他们可以确保团队在活动结束前完成一些事情。一个有效但不完整的产品总比没有好。这也说明了你作为一个团队有效工作和在压力下交付的能力,这两者在工作场所都是非常宝贵的。
建立工作关系网
毫无疑问,黑客马拉松是公司雇佣新员工或参与者建立关系网的好方法。人们可以确切地看到你在团队中工作得有多好,你处理紧迫的期限和压力的能力,以及你如何利用你的技能和动力来实现共同的目标。这比任何采访向他们展示的都要多。
我的一个软件工程朋友最近参加了一个黑客马拉松,会上他在团队的产品解决方案中使用了计算机视觉机器学习算法。他之前没有计算机视觉方面的经验。不管怎样,他给人留下了深刻的印象,以至于黑客马拉松的一个赞助商为他提供了为他们的初创公司工作的机会。黑客马拉松参与者还有无数其他类似的故事。
此外,结识其他志同道合的创新人士,无论是参与者还是活动主持人,都有助于你未来的发展。这可以是被推荐到新的职位,了解他们公司的机会,甚至是收到推荐信。人脉的力量往往在你最意想不到的时候显现出来。
最后的想法
希望现在你已经意识到数据科学家和分析师可以从黑客马拉松中获得的价值。
如果没有什么能引起你的共鸣,参加黑客马拉松只是为了获得经验和学习的机会。不管你信不信,你确实有技能和积极的好处可以提供给团队,因为你会带来独特的视角。
如果你担心完全没有编程经验,试着和与你技能互补的队友配对,或者问黑客马拉松主持人你是否可以和你想学习或一起工作的那些类型的熟练参与者配对。
准备好立即加入黑客马拉松了吗?下面是 2021 年即将推出的一些。祝你好运!
</5-data-science-hackathons-to-grow-and-improve-your-skills-ccfb41193eaa>
每位数据科学家需要使用 Jupyter 笔记本电脑的 5 个原因
意见
深入了解 Jupyter 笔记本的基本功能
格雷格·拉科齐在Unsplash【1】上拍摄的照片。
目录
- 介绍
- 附加组件
- 文本编辑
- 端到端机器学习
- SQL 适应性
- 可视化显示
- 摘要
- 参考
介绍
如果你是数据科学的新手,你可能会问自己,一个以行星命名的笔记本到底是什么,但如果你是一名数据科学家,那么你应该知道这个工具是日常使用的主要工具。也就是说,如果你是一名数据科学家,我将讨论使用 Jupyter 笔记本【2】的五大理由——希望其中一些理由对你来说是新的。幸运的是,值得注意的是,您不仅可以在笔记本中应用数据科学方法,还可以在这里应用一般数据和业务分析及智能。因此,让我们深入到 Jupyter Notebook—“一个开源的 web 应用程序,它允许您创建和共享包含实时代码、等式、可视化和叙述性文本的文档”[2]。
附加组件
nb 扩展选项卡。作者截图[3]。
这款笔记本有许多功能,比如可以选择为自己的个人笔记本配置扩展。在上面的截图中,你可以看到各种独特而有用的笔记本附件。正如您将注意到的,为一个较长的数据科学项目编码和标记文本可能会变得非常视觉化,也可能变得难以组织。因此,jupyter _ contrib _ nb extensions[4]工具将允许您执行有用的操作,如代码折叠,这样您就可以有效地滚动,而不必查看数百行代码。类似地,一些可能的应用也可以应用于文本,我将在下面描述。
文本编辑
荧光笔延伸之前和之后。作者截图[5]。
与数据科学过程中的大计划相比,编辑文本可能看起来是一件微不足道的事情,但是,随着时间的推移,你会参考回你的笔记本,你会希望存储笔记,你会希望编辑这两者,以便不仅你自己,而且其他人也可以更容易地查看和协作。
在 Jupyter 笔记本中,您可以执行以下文本编辑操作:
- 通用代码注释—
#
表示您可以在可执行代码单元格中编写文本 - markdown —在一个单元格中,您可以执行
code
、markdown
、raw nbconvert
或heading
,markdown
将允许您存储可用于描述编码过程的文本 - 代码修饰 —自动对函数和代码进行空格/格式化
- 可折叠标题 —有时标题信息可能会碍事,因此使用此功能,您可以将其折叠
- 荧光笔 —朗读某些减价文本
- 拼写检查器 —在编辑您的减价时,拼写错误的单词将会突出显示
- scratchpad —使用键盘上的 Ctrl-B,您可以在笔记本上工作,同时存储面向研究/非生产的代码或普通笔记,本质上是一个数字便笺
正如您所看到的,笔记本中已经有了文本编辑的本地特性,如果您选择下载 nbextensions,那么您将有更多的选项来编辑和显示文本。
端到端机器学习
克莱顿·罗宾斯在Unsplash【6】上拍摄的照片。
现在,我们已经强调了一些文本和代码功能,您可以看到这些功能对于使用机器学习算法构建数据科学模型的整个端到端过程是多么重要。
通常,数据科学流程遵循类似的步骤顺序:
- 业务问题陈述
- 数据摄取
- 探索性数据分析
- 特征工程
- 模型比较
- 最终模型
- 部署
几乎所有这些步骤都可以在您的 Jupyter 笔记本上执行,这也是该工具对数据科学家如此重要的原因。第一步,你可以用笔记本记下课文。然后,您可以通过读入一个要转换为您的熊猫数据帧的文件来摄取数据。接下来,您可以通过对字段执行 Python 操作来理解数据,例如识别数据的分布。然后,您可以看到因变量的相关特征,以及从像division
这样的常见操作中创建的计算特征,例如,点击是一列,用户是另一列,然后您可以divide
或groupby
,最后的新特征是clicks per user
或clicks/user
。一旦有了数据和特征,就可以应用各种机器学习算法来预测或分类目标变量。然后,您可以存储您的模型并将其加载到您的笔记本中,以便可以预测新数据。
SQL 适应性
卡斯帕·卡米尔·鲁宾在Unsplash【7】上拍摄的照片。
在笔记本中,您可以连接到数据库并直接在笔记本单元格中查询,而不只是导入静态 CSV 文件。对我来说,这个特性几乎比在典型的数据库工具中查询更容易,这是因为我经常看到大量的 SQL 代码令人不知所措,当它被转换成一个更小的字符串块时,我可以更好地概述 SQL 代码正在做什么,而不是上下滚动来查看不同的子查询。
您可以在 Jupyter 笔记本中使用 SQL,方法是创建一个引擎,并通过建立以下重要信息连接到您的数据库:
username
、password
、host
、port
、database
名称。
对于官方文件,你可以点击这个链接这里【8】。还有一个关于数据科学的博客,作者是 Roman Orac ,题为“如何在 Jupyter 笔记本上运行 SQL 查询【9】。
另一种间接使用 SQL 的方法不是从数据库中查询,而是从你的熊猫数据框中查询。这个特性对于从业务分析师或数据分析师转型为数据科学家的人来说非常有用。你不需要建立任何连接,所以这也很容易。它类似于 SQL,但不完全是,因此是 SQL 和 Python 的良好结合。
这里有一个例子,由熊猫【10】记录:
df = pd.DataFrame({'A': range(1, 6),
'B': range(10, 0, -2),
'C C': range(10, 5, -1)})
df
A B C C
0 1 10 10
1 2 8 9
2 3 6 8
3 4 4 7
4 5 2 6df.query('A > B')
A B C C
4 5 2 6
该查询实质上是要求返回那些column A value
大于column B value
的行。对我来说,这个语法甚至比 SQL 更简单。当然,您还可以执行更多的查询操作,并且可以通过最后提到的链接了解更多信息。
可视化显示
作者截图[11]。
也许使用 Jupyter 笔记本最好的部分是它可视化一切的方式。与其在终端上打印出令人困惑的数据帧,不如让数据帧正确显示并易于阅读是一个巨大的优势。你不仅可以轻松查看你的数据,还可以使用 Jupyter Notebook 中的某些库来查看你的机器学习算法进度。有了无数的绘图库,您也可以创建类似 Tableau 的可视化效果。
正如您在上面的屏幕截图中所看到的,有时,拥有一个组织良好且颜色编码的图表或视觉效果不仅有利于您理解数据科学概念,而且有利于他人分享您的工作。
摘要
数据科学可能是压倒性的,难以组织,因此,这就是为什么日常使用 Juptyer 笔记本电脑是必不可少的。当然,你也可以使用其他工具,所以这完全取决于你。然而,我分享了我的主要原因,如果你选择使用 Jupyter 笔记本,希望这些原因也适用于你。
总而言之,以下是每位数据科学家需要了解 Jupyter Notebook 的五个原因:
* Add-ons* Text Editing* End-to-End Machine Learning* SQL Adaptability* Visualization Display
我希望你觉得我的文章既有趣又有用。如果您已经从这些关于作为数据科学家使用 Jupyter 笔记本的原因中受益,请随时在下面发表评论。请在下面评论您使用 Juptyer 笔记本的其他原因,或者,您是否会使用其他产品?
请随时查看我的个人资料和其他文章,也可以通过 LinkedIn 联系我。我不隶属于上述任何公司。
参考
[1]照片由格雷格·拉科齐在Unsplash(2015)上拍摄
[2] Project Jupyter, Jupyter 笔记本主页,(2021—2021 年 2 月 8 日最后一次更新,周一)
[3] M.Przybyla,NBextensions 选项卡截图,(2020 年)
[4] Jupyter Contrib 团队,Jupyter-Contrib-nb extensions,(2015–2018)
[5] M.Przybyla,可折叠标题前后的截屏,(2020 年)
[6]克莱顿·罗宾斯(Clayton Robbins)在 Unsplash 上拍摄的照片,(2020)
[7]照片由卡斯帕·卡米尔·鲁宾在 Unsplash 上拍摄,(2017)
[8] SQLAlchemy, SQLAchemy 文档,(2021)
[9] 罗曼·奥拉克,如何从 Jupyter 笔记本上运行 SQL 查询,(2020)
[10]熊猫,熊猫查询,(2021)
[11] Matt Przybyla ,Jupyter 笔记本中的相关性截图,(2020)
每个数据科学家都应该写博客的 5 个理由
解释某事让你对它有更深的理解。
数据科学是当今广泛流行的领域之一,所以每天都有很多人考虑加入该领域。在这个领域的人总是寻求扩展他们的知识,加强他们的投资组合,并与志同道合的人联系。
当你是像数据科学这样快速发展的领域的一部分时,总是有新的东西需要学习、实施和分析,那么你的学习之旅永远不会真正结束。这是这个领域的主要优势之一。它挑战你的智力,让你处于不断学习和成长的状态。
正因为如此,你会发现自己总是处于学习新事物、新算法、新方面或新编程语言的过程中。有时,跟踪所有这些新信息会让人不知所措。
在你的学习之旅和职业生涯中,你经常会开发一些活动来处理这些海量的信息。在这篇文章中,我将分享我应对不知所措的方法,那就是写博客。
在过去的一年里,博客帮了我很多;这就是为什么我想与你分享我认为每个数据科学家都应该有一个博客的 5 个理由。
记录你的旅程
数据科学是一个广阔的领域;你可以专攻很多子领域。因此,你需要获得各种各样的知识。从一个完全的初学者到任何领域的专家,或者从一个子领域到另一个子领域,是一个学习的旅程。一段没有固定时间的旅程,你可以按照自己的步调前进。
沿途的每一个街区都是基于你对其他更小街区的了解,所以,为了到达终点,到达你的目标,你需要记录下你沿途经过的所有街区。
写关于你遇到的小知识种类的博客文章会让你更容易拥有你所学的所有信息的日志,所以你可以在进行下一步之前很容易地回到它们。
</7-tips-for-data-science-newbies-d95d979add54>
加深并展示你的知识。
当你开始通过写关于你的知识的博客来记录你的学习之旅时,你会发现你的知识越来越深。众所周知,如果你能简单明了地解释一个概念,你就完全理解了这个概念的工作机制。
不仅如此,写关于你所学概念的博文会给你一个记录,当你学习更复杂和高级的术语时,如果你忘记了一些概念的一些小机制,你可以随时参考。回归基础总是好的,确保你的基础是坚实的。如果你是记录这些基础的人就更好了。
而且,写博文证明了你的学识;这证明你熟悉这些概念,并且知道它们如何联系到更大的图景。
提高你的沟通技巧
练习一项技能让你完善它,或者至少让你更擅长它。如果你不断地写文章解释复杂的术语和算法,而这些术语和算法通常不太容易解释,那么你的交流技巧会随着每一篇文章变得越来越好。
你会找到解释概念的新方法,让阅读这篇文章的人更容易理解。思考解释复杂概念的新方法需要你完全理解这个概念,这也与前面的原因有关。
良好的沟通是成功的数据科学家的基本技能之一,所以通过写博客,你正在努力提高你的沟通和领导技能。
</11-books-to-help-gain-the-knowledge-you-need-to-be-a-data-scientist-f0df36ac6cb5>
对你的投资组合是一个很好的补充
当你开始写博客文章时,你就开始建立一个读者群,这些人会发现你写作和解释概念的方式清晰、简洁、有吸引力。随着你的听众越来越多,你将会在这个领域出名;你的名字将与良好的沟通和清晰的职位联系在一起。
然后,当你决定申请工作、转行或创办自己的公司时,你将拥有让你的投资组合在其他数据科学家中脱颖而出的知识和能力证明。
众所周知,开发人员擅长他们的专业,却不擅长解释。拥有一个有一些追随者的博客无疑证明了你不仅了解自己的东西,而且还擅长交流。这本身就是将你的投资组合带到下一个层次的一个项目。
连接到社区
由于数据科学不一定需要学位,所以你不需要去上课或去学校学习开始职业生涯所需的技能。而且在现在这个世界的状态下,在家学点新东西会觉得孤独。写博客是你和同路的人联系的一种方式。
不仅如此,即使在你有了工作之后,写博客也可以成为你与从事类似项目的其他人联系的方式,与他们分享你的经验和知识。
最后,我敢打赌,当你需要学习一些东西的时候,你会阅读很多其他人写的文章,写博客可能是你回报社区的方式,有助于它变得更大更好。
最后的想法
我们都有自己的方式来应对压力,应对不知所措或只是疲劳。当我们处于不断学习、工作和试图保持生活平衡的状态时,我们需要一些东西来帮助我们放松学习过程,专注于生活的其他方面,并希望保持健康的平衡。
作为数据科学家,我们充分意识到数据科学是一个无止境的领域,新进展和新技术是该领域的规范,我们工作的一部分就是跟上这些进展,并确保利用它们来保持我们的工作与时俱进。
</6-data-science-certificates-to-level-up-your-career-275daed7e5df>
一种释放压力、避免不知所措、跟踪你所学的知识、润色你的简历的方法是写技术博客。在这篇文章中,我向你展示了作为一名数据科学家或开发人员,你应该考虑将博客添加到你的日常工作中的 5 个理由,以及它将如何极大地有益于你的职业和心理健康。
我留给你这个;开始写博客并不需要成为专业作家。你甚至不需要完全理解一个主题来写博客;当你试图在博客中解释它时,你会意识到你对它有了更好的理解。开始写博客所需要做的就是开始写你的第一篇博客。
为什么在线展示对数据科学家的成功至关重要的 5 个原因
这不仅仅是找工作的一种方式。
Bram Naus 在 Unsplash 上拍摄的照片
有很多原因可以解释为什么科技职业对这么多考虑转行或刚刚开始职业生涯的人有吸引力。不管是哪一个技术分支,不管是数据科学、web 开发、应用程序开发,还是任何其他分支,所有的技术领域都有一些共同的优势。
所有的科技领域对我们今天的生活都是必不可少的。技术是我们日常生活的重要组成部分,如果没有它,世界将会与今天大不相同。此外,科技行业的工作往往薪酬更高,因为它们从事有影响力的工作,而且位置自由。这些原因以及其他一些原因是我决定进入不同技术领域的原因。
但是,进入科技行业,尤其是数据科学或编程,并不总是容易的。由于这些领域看起来很有吸引力,数据科学家和程序员的供应在过去十年中迅速增加,同时对可靠和合格的申请人的需求也在增加。由于这种增长,在这些领域找到一份好工作的能力本身就成了一种挑战。
</5-communities-to-help-you-find-a-data-science-mentor-22a380a5f853>
今天,要想找到一份数据科学或程序员的工作,你需要经历许多几年前不存在的困难和障碍。然而,你可以做的帮助自己建立成功的职业生涯和获得梦想中的工作的关键事情之一是建立一个在线的存在。在线展示只是建立你的品牌并将其公之于众的一种方式。
这是一种以你希望的方式讲述你自己的职业故事的方式。本质上是你,在这个领域推销你的技能、你的抱负和你的个性。今天,拥有一个在线的存在可以成就或者毁掉你的职业生涯。本文将介绍如何通过在线展示帮助你成为一名成功的数据科学家。
№1:证明你的技能和可信度
建立一个在线形象是必要的主要原因是因为它展示了你的技能。不仅仅是你现在的,还有你以前工作过的,以及你的技能水平如何随着时间的推移而进步。有不同的方法来建立一个在线的存在,你可以开始写博客或者开始制作视频。不管你选择哪种方法和平台,浏览你的内容将有助于雇主了解你在学习过程中走了多远。
№2:连接到社区
我从建立和维护在线形象中受益的一件事是,它让我有能力成为社区中积极的一员。它让我结识了来自世界各地的其他程序员和数据科学家,他们分享了我的学习历程,从中学到的东西比我从任何一本书中学到的都多。这也让我能够回馈社区,支持他人的旅程。
</9-discord-servers-for-math-python-and-data-science-you-need-to-join-today-34214b93d6b8> [## 9 台用于数学、Python 和数据科学的 Discord 服务器,您需要立即加入
towardsdatascience.com](/9-discord-servers-for-math-python-and-data-science-you-need-to-join-today-34214b93d6b8)
№3:寻找新的工作机会
当你建立了一个强大、简洁的网上形象,这将有助于你吸引雇主和获得新的职位。如果你是一名自由职业的数据科学家或程序员,这尤其有帮助;通过你的存在,客户会向你寻求帮助,向你寻求解决他们问题的知识和专业技能。当你申请工作时,这种存在也将有助于你和你曾经找过的公司核实你的技能。
№4:建立职业关系网
这一点与成为社区的一部分密切相关。但是,建立一个专业网络和成为社区的一部分之间的区别是,有时我们加入社区是为了结交对某个特定主题有着共同热情的朋友。但是,职业网络是一群在职业生涯中互相帮助的人。所以,我的看法是,朋友在某种程度上可以是一个专业的网络,但反过来就不一定了。
№5:建立受众
最后,这也与找工作有关,成为社区的一部分可以建立一个观众群。有时我们开始写博客或制作视频来记录我们的学习旅程,而没有想到我们的风格可能会帮助其他人更好地理解这个领域并在他们自己的职业生涯中取得成功。拥有一个听众也能让你承担责任,并激励你永远不要放弃自己。
</6-data-science-slack-workshops-you-need-to-join-b0c00952105d>
外卖食品
几年前,当我开始在大学之外找工作时,我觉得自己缺乏许多在学校里没有学到的实用技能。但这些实用技能并不难获得;我这样做是通过和我的同事、朋友,有时是我自己来构建项目。一旦我对自己的技能有了一点信心,我决定申请一些实习和兼职职位。
不用说,一开始,我没有成功,虽然我有高级学位和一些技能特定的证书。最后,在一次我没有成功的实习中,我联系了招聘人员,我礼貌地询问了一些关于我为什么被拒绝的反馈。我没指望她会回我电话,但我很高兴她回了。她基本上是说,有扎实的学习成绩不足以找到工作;公司需要看到我的个性和我给这个领域带来的东西。
她建议我开始在网上展示我的故事。我把她的建议记在心里,并开始在不同的方向出现。今天,这种存在帮助我在大型会议上举办网络研讨会,担任多个自由职业者的角色,与了不起的人联系,并在一家以前拒绝我的公司工作。
</10-newsletters-you-need-to-subscribe-to-as-a-data-scientist-d12c7f33fbab>
拥有一个在线的存在是必不可少的,因为我们在这篇文章和其他文章中已经讨论过了,建立一个在线的存在需要耐心、远见和毅力。我的下一篇文章将带你了解如何建立一个稳固的在线形象,这将帮助你创造你梦想中的职业。
我没有考 AI/ML/DL 硕士的 5 个理由
人工智能
以及为什么我改学认知科学。
罗伯特·阿纳奇在 Unsplash 上的照片
当我 2017 年从航空航天工程专业毕业时,我知道我想在人工智能领域工作。吴恩达和杰弗里·辛顿是我的老师,Coursera 是我的大学。他们帮我在一家人工智能初创公司找到了一份工作,我在那里从 2017 年底工作到 2020 年底。
在那 3 年里,我抽出时间攻读了硕士学位。但是我知道我不想正式研究人工智能——我选择了认知科学。我不愿意进入大学学习一个最近才兴起的领域,这个领域甚至对处于前沿的人来说也变化很快。任何有足够组织性可以在硕士学位上教授的东西,在人工智能中都已经过时了。
直到今天,我还没有修过人工智能、ML 或 DL 的硕士课程,我想我永远也不会。以下是我没有这么做的 5 个原因:
内容—新内容与可能过时的内容
2017 年,深度学习——人工智能的霸权范式——已经在视觉和语言方面取得了一些重要成功,但仍然缺乏坚实的理论基础。需要了解的一切都可以通过一些课程、一些论文和一些流行的框架和数据集来学习。它仍处于起步阶段。大学里教授的正规教育不包括大多数当时最新的研究。
随着深度学习的出现,其他机器学习算法——更不用说 ML 以外的算法了——正在退居幕后。它们仍然有用,但不如神经网络卖得好。该行业希望深入学习他们的产品。而不是马尔可夫模型、线性回归或支持向量机。场外没有人知道那些是什么。然而,大学只讲授这些主题,因为它们已经被充分理解了。
学习正规教育会让我处于一个困难的境地:对新趋势了解不够,对旧的、近乎过时的趋势了解太多。相反,新开设的课程关注的是不久的将来会发生什么。我学习了一点纯机器学习,这滋养了深度学习的所有发现,以及更多关于深度学习的知识,这将在可预见的未来继续增长。
到 2021 年,这种情况可能会改变,因为大学有时间适应新时代。然而,如果出现另一个重大突破,它可能会再次发生(而且很可能是在一个快速变化的领域)。潜在的问题是正规教育进展缓慢,我们将在下一点看到这一点。
教育——快而浅与慢而深
学术教育很好地适应了已建立的学科,如物理、医学或法律。它们是建立在不会有任何进展的知识基础上的。这在今天是真实而有用的,这是 10 年前的事了,而且从现在起 10 年后还会继续。当然,每个领域都在发展、进步和变化,但速度因地区而异。物理学的统治范式在 20 世纪初发生了根本性的变化,但那些混乱和新知识的时期在成熟领域非常罕见。
大学教授的知识通常不包括新的研究。他们专注于古老的、可靠的、久经考验的知识。从发现/发明到正式教育中的教学,知识经历了许多阶段:对发现的同行评审、与先前知识的对比和比较、理论和想法的调整、产品和真实项目的现场测试……3 周前出现在 arXiv 上的一篇论文不会在讲堂上讲授。
成熟阶段的学科与新生阶段的不同。60 年似乎是一段很长的时间,但从历史的角度来看却不是这样。在过去的几十年里,AI 已经改变了它的道路几次,一次又一次地得到和失去资金和兴趣。它仍然变化很快,正规教育无法跟上。今天看起来最先进的知识可能会在 3 年后被遗忘。在线教育可以快速编辑和更新,以包括最新的研究。他们不会像大学教育那样深入,但对于深度学习来说,这甚至可能是一个积极的特征。
知识——隐性与显性
大学和学术界是一枚硬币的两面。我们在那里获得的知识更适合在部门工作,而不是在办公室。它更适合签署下一份突破性文件,而不是创造下一项革命性技术。大学是我们获得显性知识的地方。
这种类型的知识是我们在书本和论文中找到的,是可以在讲座中教授和传递的。这是事实和理论知识。显性知识是书呆子的食物。为了学习有用的、实用的知识,我们必须找到其他来源。不言而喻的知识——经验的、专门知识——没有被教授;这是后天习得的。这就是为什么从一个小项目开始比读几本关于一个主题的书更值得。
这个行业不想要书呆子。如果你想做一个真正的项目,你必须知道如何做事,如何把手弄脏。这就是为什么很多人觉得大学毕业后一切都要重新学习。事实是,你之前和之后获得的知识只是不同类型的知识。因此,它们最适合不同的目标。
最新技术——现实与期望
当我第一次接触艾的时候,我期望的比我发现的要多得多。我以为我们离 AGI 的承诺更近了。当我必须决定学什么时,我可以在 4 周课程和 2 年硕士课程之间选择。我不知道我是否会喜欢前面的东西,所以更明智的选择是咬一口,然后看看味道是否合我的口味。
我从吴恩达的热门课程开始,很快我意识到人工智能仍处于早期阶段。我正要学习统计建模,而不是构建智能。如果我选择了 2 年的旅程,我会恨艾到骨子里。不仅因为我将学习我不完全喜欢的东西,还因为我被困住了。相反,我只是对这个领域有点不抱幻想,仅此而已。这些课程非常有用,也不太重。我最终离开了这个行业,因为我找到了另一条更符合我想做的事情的道路。
不要让自己迷失在新闻、潮流或你听到的人们所说的话中。做好你的研究,确保 AI/ML/DL 是你想进入的。仔细阅读你想接受的任何正规教育的教学大纲,如果一切都合适,就去接受吧。否则,你可能会精疲力尽。
人工智能+认知科学=更广阔的视角
在我决定研究 AI 之前,我做过一个关于意念控制无人机的论文。人工智能是航天工程的一个明显进步,但我知道我最终会研究人类的思维。我想了解这两方面,因为拥有工程学+神经科学的背景会让我成为即将到来的工作的优秀候选人。
研究认知神经科学的主要原因之一是,在致力于构建人工智能时,研究我们已知的唯一真正智能的实例似乎是合乎逻辑的。认知科学可以给我了解大脑的背景,这将拓宽我的视野,即使 AGI 看起来一点也不像。此外,认知科学没有人工智能变化得快,并且在生物学和心理学中有着根深蒂固的理论基础。
最终,我们学习的学科并不真实。它们是我们为了组织知识而创造的结构。我们常常在没有意识到的情况下进行专门化,就像列奥纳多·达·芬奇说的,“一切都与其他一切相联系。”人工智能与认知科学深深交织在一起。以至于这两个领域都诞生于 20 世纪中期的同一套发现。一个旨在创造人工大脑,另一个旨在理解生物大脑,但两者可以相互借鉴,产生新的强大见解,推动下一代人工智能和神经科学。
TL;速度三角形定位法(dead reckoning)
我有很多理由不去读人工智能硕士,但这些理由可能不适用于你。重要的是你要评估自己的处境,明确自己的目标。然后,你做出的决定将是明智的。
对我来说,有 5 个理由选择其他选项:
- 正规教育无法教会我深度学习的新生理念,因为它专注于旧的、近乎过时的框架。
- 正规教育缓慢而深入,而人工智能变化迅速,深度学习尚未定义其理论基础。
- 正规教育侧重于明确的事实知识,而行业更看重技术诀窍和经验知识。
- 人工智能的艺术水平没有我最初想的那么发达,所以长时间的义务教育不是最好的选择。
- 相反,学习认知神经科学拓宽了我的视野,并结合我在人工智能方面的知识,创造出了比各部分之和更大的东西。
我离开人工智能行业的 5 个原因
人工智能|深度学习|未来
我在一家人工智能公司工作了 3 年。现在我决定无限期离开这个行业。
来源: Pixabay
3 年前,人工智能这几个词在我心中激起了强烈的感觉。进入那个世界就像向未来的神秘和秘密迈了一步。智能机器的承诺让我大吃一惊,它们有能力解决永远留给我们的任务。通过熟悉的技术通道,我深深地陷入了思维的惊奇之中。
当时刚读完航空航天工程学士,想向 AI 飞跃。2017 年底,我遇到了伟大的杰弗里·辛顿和吴恩达。他们在 Coursera 的讲座是打开的大门,让我在 2018 年找到了我在人工智能创业公司的第一份工作。
艾答应了很多。那么多机器人统治世界和机器把我们变成半神的电影。但它并没有给我带来好处。也许我太天真了。我相信真正的人工智能所隐藏的面具。
在 AI 工作了 3 年,我失恋了。我想我不会很快回来。这是我离开这个行业的 5 个原因。
人工智能可能不会辜负炒作
“人工智能已经经历了许多人工智能冬天,因为人们声称他们无法交付的东西。”
——脸书大学首席人工智能科学家 Yann LeCun
AI 能拯救世界吗?人工智能能解决最紧迫的问题吗?在人工智能无处不在之前,一些人已经认为它将彻底改变我们的生活。1984 年,计算机科学家弗雷德里克·海斯-罗斯预测人工智能将“取代法律、医学、金融和其他职业的专家”
但事实并非如此。纵观其历史,人工智能经历了许多炒作周期。这些周期被称为人工智能冬天。人工智能将无法满足人们的期望,引发一波怀疑浪潮,最终导致研究资金的撤回。
自 2012 年深度学习革命以来,我们已经看到对该领域的兴趣增加了。有些人仍然认为人工智能将改变未来。但问题依然存在:人工智能会实现它的宣传吗?纽约大学人工智能研究员加里·马库斯(Gary Marcus)在 2020 年表示,“到这个十年结束时,人们越来越意识到,目前的技术只能带我们走这么远。”用“人工智能教父”杰弗里·辛顿的话说:
“我的看法是:抛开一切,重新开始。”
我进入了人工智能的世界,被它对智能机器和人工智能的承诺所感动。但这不会很快发生。
抱着与现实不符的期望是导致不满和沮丧的原因。我不想那样。
当你从内部观察时,人工智能失去了它的魔力
当你和一个局外人谈论 AI 的时候,他们立刻会想到《终结者》或*《黑客帝国》*之类的电影和《我与机器人》或 2001:太空漫游之类的书籍。所有描绘 AI 拥有惊人能力和力量的场景。
人工智能这个术语是约翰·麦卡锡创造的,他其实并不喜欢这个术语。他知道这是一种吸引公众和私人注意力的营销工具。Devin Coldeway 为 TechCrunch 写道,人工智能是“一个用来创造能力的营销术语,因为大多数人无法想象一个无能的人工智能。”现在,人工智能已经成为主流,许多公司利用这个名字背后的地位。
人工智能已经从旨在以硅基实体的形式揭示人类智能的奥秘,变成了公司在他们的人工智能产品和服务中使用的时髦词汇。在很大程度上,人工智能已经失去了雄心。
不久前,人工智能还是类人机器人的同义词。能够做出惊人壮举的机器。能够模仿人类的情感和创造力。能够计划和展示常识。现在是数据的代名词。如果你在人工智能领域工作,你很可能会收集数据,清理数据,标记数据,分割数据,用数据训练,用数据评估。数据,数据,数据。只为一个模特说:是只猫。
人工智能的营销力量如此强大,以至于许多公司在不知道为什么的情况下使用它。每个人都想赶上人工智能的潮流。我喜欢人工智能承诺的魔法世界,我已经找到了它的影子。
我们甚至不再以创造普遍智能为目标。我们已经满足于愚蠢的软件,它知道如何很好地完成极其具体的任务。我希望人工智能恢复它的雄心,不要让那些来寻找魔法并最终只得到花哨数学的人失望。
现在每个人都可以做 AI
太夸张了。我仍然可以找到更多不知道人工智能的人,而不是知道它无处不在的人——这让我感到惊讶。然而,当你看计算机技术领域时,人工智能无处不在。
不久前,人工智能还是一个广义的术语,涵盖了许多领域。其中之一是机器学习(ML),同时分为不同的分支,包括深度学习(DL)。现在,我可以有把握地说,对大多数人来说,AI = ML = DL。
深度学习已经占领了科技和计算机科学的世界。为什么?因其不合理的效力。神经网络擅长做他们做的事情。他们做得很好,每个人都想分一杯羹。
“现在神经网络起作用了,工业界和政府都开始称神经网络为 AI。人工智能领域的人一辈子都在嘲笑神经网络,说他们永远不会做任何事情,现在他们很高兴称它们为人工智能,并试图获得一些钱。”
—杰弗里·辛顿
人工智能的普及让每个软件相关的毕业生都梦想成为下一个吴恩达。您可以轻松地在云端运行一个强大的 DL 模型,并从庞大的数据库中学习,这让许多人享受到快速轻松地看到结果的回报。
几乎任何人都可以接触到人工智能。你可以使用 Tensorflow 或者 Keras 在一个月内创建一个工作模型。没有任何计算机科学(或编程)知识。但让我问你:这是你想要的吗?它满足了你发现新事物的渴望吗?有意思吗?就算有效,你真的学到东西了吗?
在我看来,人工智能本身已经成为一种目的。大多数人不会用人工智能来达到更高的目标。他们使用人工智能只是为了它,而不了解任何幕后发生的事情。我一点也不满意。
我们可能永远无法实现人工一般智能
我已经提到了人工一般智能这个术语(AGI)。几十年来,AGI 一直是推动人工智能向前发展的主要目标。当我们创建 AGI 时,世界将以不可想象的方式改变。或者我应该说如果?
我们离创造人类水平的智能机器有多近?有人认为将在几十年内实现。许多人期待在我们有生之年看到 AGI 。还有怀疑论者。主要批评家之一休伯特·德雷福斯(Hubert Dreyfus)说,“没有身体、没有童年、没有文化实践的计算机根本无法获得智力。”
就目前而言,似乎人工智能的研究甚至没有朝着实现 AGI 的正确方向发展。2018 年图灵奖(诺贝尔人工智能价格奖)的获得者 Yann LeCun、Geoffrey Hinton 和 Yoshua Bengio 说我们需要给这些系统灌输常识,但我们还没有接近这个目标。他们说机器需要学习没有标签,就像孩子一样,使用自我监督学习(也称无监督学习)。
那将是第一步。然而,我们对大脑还有太多不了解,无法尝试去建立 AGI。有人说我们不需要创造与人类智力相当的有意识机器。然而,我们真的能把人类的智慧和人类对世界的主观体验分开吗?我们还不知道,也可能永远不会知道。
超级智能机器可能永远留在科幻小说的领域里。下面是弗雷德里克·布朗的一个简短的恐怖故事,讲述了如果我们创造了超越我们理解力的东西,会发生什么:
全世界都在期待着。一位顶尖科学家正准备接通开关。一台超级机器,由来自宇宙每个角落的计算机提供动力,凝聚了所有星系的知识。
机器开着。其中一位科学家对另一位说:“提第一个问题的荣幸属于你。”
“我要问别人从未回答过的问题。”他转向机器问道:“有上帝吗?”
威武的声音毫不犹豫地回答:“对, 现在 有个神。”
这位科学家感到恐怖传遍了他的后背。当一道来自万里无云的天空的闪电击中他并使开关熔断时,他跳起来抓住了开关。
我们害怕我们不了解的东西。从定义上来说,我们不会理解 AGI。但是我们可以保持冷静。即使当我们从外面观察人工智能时,AGI 看起来很近,它也不会很快发生。现在我知道我们甚至还没有接近那个目标,我对人工智能的兴趣已经明显减少了。当我看到地平线上的 AGI 时,我可能会回到艾。如果真的发生了。
人工智能的未来将包括大脑
人工智能在 1950 年的十年中正式出现,作为解开人类思想之谜的严肃努力。神经学研究发现大脑是由神经元的电网络组成的,这些神经元会发出“全有或全无”的脉冲,建造电子大脑的想法并没有那么不同。
今天,我们似乎已经忘记了大脑。 DL 工作起来一点也不像。计算机视觉和卷积神经网络不像我们的视觉系统那样工作。监督学习模型(目前主导人工智能)需要从标记数据中学习,但由于先天的生物结构,人类从稀疏数据中学习。计算机需要大量的计算能力和数据来学习识别最简单的物体,而一个孩子只需要看到一只狗就可以识别其他所有的狗。
已经有一些尝试来弥合人工智能和大脑之间的差距。一个例子是神经形态计算。主要想法是创造类似于我们大脑结构的硬件。
生物神经网络和人工神经网络之间有一个很大的区别:大脑中的神经元携带尖峰信号的时间和频率信息,而信号的强度(电压)是恒定的。人工神经元则完全相反。它们携带的信息仅仅是输入的强度,而不是时间或频率。
大脑和人工智能之间的这种差异存在于如此基本的水平,以至于建立在它之上的一切最终都彻底背离了。神经形态计算正试图克服这些问题。
一些人认为,今天存在的人工智能很快就会达到极限。如果我们想继续朝着真正的智能发展,我们将不得不重新思考我们所做的一切,转向我们知道的唯一一个足够智能来指导我们努力的系统;我们的大脑。
对我来说,人工智能的世界是通向人类心灵的桥梁。我认为人工智能会教会我很多关于大脑、我们的思维过程和我们的智力的东西。我发现的是,AI 早就和神经科学分道扬镳了,没有回去的打算。
DL 不是 AI 的未来。当这个领域像承诺的那样,我会很高兴结合我在人工智能和神经科学方面的知识,尽我的一份力量让未来离我们更近。在那之前,我宁愿多理解一点点头脑,而不是制造仍然非常非常愚蠢的机器。”
“我一直坚信,让人工智能发挥作用的唯一方法是以类似于人脑的方式进行计算。这是我一直追求的目标。我们正在取得进展,尽管我们对于大脑实际上是如何工作的还有很多要了解。”
—杰弗里·辛顿
最后的想法
有很多很好的理由留在人工智能世界。甚至现在就进入它。但是,要确定那些原因是让你感动的原因。
在人工智能的世界里,表象是谎言。这并不像他们想做的那么好。它不会用类似人类的机器人从根本上改变世界,就像在 I,机器人中一样。你将成为许多处于相同位置的人之一。人工智能不再是新的、排他性的、或必然享有声望的。而且不要指望很快就能看到人类水平的机器。
最后,请记住,如果我们想找到人类智慧的圣杯,并赢得这场与大自然母亲的战斗,我们应该关注唯一具有人类智能水平的东西:我们的大脑。
作为数据科学家,你应该每天编码的 5 个理由
意见
即使它只是每天一点点编码,你也必须考虑它
图片由 Unsplash 上的 Alexandru Acea 拍摄
在永恒且不断发展的数据科学领域,众所周知,编程的作用是至关重要的。
编码是数据科学的一个重要方面,并将继续保持下去,直到我们有取代程序员的设备来承担这一角色。幸运的是,至少在不久的将来,这种情况似乎不可能发生。
因此,程序员将在技术发展中扮演重要的角色,尤其是在数据科学领域。简单来说, “程序员万岁!”
除了数学、数据挖掘、数据可视化、机器学习和数据科学的其他重要因素之外,编码是一个非常重要的元素。
虽然数据科学的其他方面也可以作为基本需求,但为什么本文的重点是编码呢?
在我们深入回答为什么作为一名数据科学家应该每天编码之前,让我们理解为什么编程在数据科学中的作用是重要的和不可替代的。
为什么编码对数据科学家至关重要?
虽然答案看起来很简单,但是必须注意的是,许多人可能想知道编码是否真的是一个必要的需求。随着 AutoML 工具和 GPT-3 模型的开发,它与文本生成一起也可以用于代码生成,当该领域的进一步发展可以取代它们时,为什么数据科学爱好者必须浪费时间学习编码?
这个奇怪的问题有一个有趣的答案。首先,坦率地说,技术进步还没有达到可以取代编码员或程序员的地步。坦率地说,我们可能至少需要十年才能达到这样一个点,即我们可能拥有潜在的人工智能软件,可以为复杂问题生成最佳编码。
其次,也是最重要的一点,这些软件和工具可能会在未来被开发出来,它们也将由人类程序员来编码和开发。即使在开发的最后阶段,这些工具也需要不断的监测和更新,以规范它们的正常运作。
回答了数据科学爱好者提出的最基本的问题后,让我们理解为什么编码对数据科学家如此重要。
想象一下,你对你所有精彩的项目想法和理论公式有一个直观的想法。你可以把它们写在一张纸上或一本书上,解释这些概念背后的基本理论。
但是,这些只是理论上的实现。你的观点和想法需要在现实世界中实际实施。将你的感知编程为一种可以被多个观众导出和可视化的形式是非常重要的。因此,编码的潜力是无限的。对数据科学领域来说,编写高级编程概念并利用它们为我们带来整体利益是一件好事。
作为一名数据科学家,你为什么应该每天编码?
在 Unsplash 上拍摄的 ThisisEngineering RAEng
你拥有什么水平的编程技能并不重要。不管你是初学者、中级程序员还是高级/专家程序员。我坚信每个数据科学家每天都应该沉迷于某种编程实践。
我将解释我的推理,为什么每个数据科学爱好者、有志之士或专业人士每天都必须沉迷于开发他们的编程技能,即使只是一点点。每个数据科学家必须每天编码的五个原因如下:
1.保持联系,不丢失练习
当你平时学习一个理论概念,对一个话题有了直观的认识,你会记住那个特定方面的概率是相当高的。然而,即使你对代码块和许多编程概念有了详细的理解,你还是有可能忘记基本的元素。
出现这种情况的原因是因为编程包括许多内置函数和某些概念,这些对于人脑来说并不直观。因此,最重要的是不断实践你的编码概念并持续改进。
在掌握数据科学的同时,您甚至不需要练习所学的每一个主题和概念。一个随意的概念就足够了,只要你理解问题并成功地编码,而不要给自己压力。根据你的时间表,你每天的代码量可能会有所不同,但是要确保你至少做了一小部分。
2.帮助你整合概念
通过每天编写代码,您将获得将数据科学或其他基本概念集成到您的开发项目编程中的能力。每天练习编码最棒的部分是它允许你,编码者,下意识地发展一种创新技能,你可以用代码的形式解决计算任务。
通过获得更多信息和了解更多细节,您可以更有效地使用代码块来解决复杂的编程架构。您甚至可以找到数据科学任务的解决方案,否则您可能会因为接触该主题而感到吃力。它还帮助您收集离散的、更具创新性的想法,以便更快地实施。
3.磨练你的技能
这一点是不言自明的。每天写代码会提高你的推理能力,让你成为更好的程序员。通过遵循准确的编码原则,您可以将您的技能提高到一个新的水平,并将自己发展成为一名终极编程天才。
例如,让我们考虑一下 Python 编程语言,这是数据科学中最常用的语言。通过开发您的 Python 编码技能,您还可以提高您的数据科学技能水平,以编码复杂的数据科学项目。
因此,通过每天编码,你每天都会学到一点东西。就像小水滴形成海洋一样,你对技能的长期磨砺将发展成为一种远见卓识,在这种远见卓识中,你将充分发挥自己的潜力,用编程解决复杂的任务和计算。
4.保持你的高度自信
想象一下,你现在接到一个电话,要去一家受欢迎的公司面试。第一轮面试变成了编码会议。然而,你仍然保持冷静和自信,因为你已经为手头的任务做好了充分的准备,无论是精神上还是技能上。
数据科学的一个不可或缺的方面是保持自信并不断发展自己。作为一名数据科学家,保持您的编程和编码技能处于最高水平变得比以往任何时候都更加重要和必要,这样您就可以发挥最大潜力应对任何情况。
5.将你培养成一个完美主义者
每天练习编码最好的部分是在几周(或几个月)的持续时间里,你最终会发展成为一个完美主义者。您应该已经涵盖了掌握编程所需的大部分基本概念。但是,你仍然在进化和微调你的技能来完成更大的目标。
在达到一个完美的点之后,你仍然可以不断改进,解决更多的问题。当你作为一名数据科学家每天欣赏编码的真正美丽时,你的进化速度将朝着更多被忽视的方面前进。这是一次会改变你如何处理任何类型问题的观点的经历。
结论:
凯利·西克玛在 Unsplash 上的照片
我们可以从本文陈述的各种事实中得出结论,编程在数据科学家的生活中起着至关重要的作用。对编码概念有一个基本的理解是至关重要的,以便利用它们来提高您的数据科学知识。
我强烈建议每天编码以保持与主题的联系。编码不需要每次都像复杂的数据科学项目那样繁重。一些轻量级的东西,比如每天一个简单的 Python 程序,会帮助你保持对编程世界的了解。
学会享受编码的整体性,并尝试在日常生活中找到代码的用途。一旦你这样做了,确保你实现了这些你编程的代码块,让你的生活更美好,最终成为一个便利的生活环境。
如果你对这篇文章中提到的各点有任何疑问,请在下面的评论中告诉我。我会尽快给你回复。
看看我的其他一些文章,你可能会喜欢读!
</10-best-free-websites-to-learn-more-about-data-science-and-machine-learning-f2c6d7387b8d> </11-crucial-mistakes-to-avoid-as-a-data-scientist-71c29aef028> </8-revolutionary-artificial-intelligence-technologies-of-the-modern-era-f8f22a4127d0>
谢谢你们坚持到最后。我希望你们喜欢阅读这篇文章。我希望你们都有美好的一天!
你应该用 Python 和 AI 开发游戏的 5 个理由!
学习创建游戏对提高 Python 编程和机器学习项目的效率大有裨益的 5 个原因!
“成功不是最终的,失败不是致命的:重要的是继续下去的勇气”——《使命召唤:现代战争》
游戏是我从小就热衷的事情。当你意识到你可以将你的爱好融入到你热爱的工作中,这就是人工智能,在这种情况下,这种感觉是壮观的,令人感动的。
虽然游戏一直是我最感兴趣的东西,但我一直处于观望状态,对编程不太确定。直到几年前,我才对编程和人工智能更感兴趣。
这两项技术在过去的几年里取得了长足的进步和发展。他们在创造娱乐历史方面的迅速崛起令人印象深刻。虽然游戏中的人工智能以其自己的方式是相当可观和宏伟的,但本文的重点仍然是你应该考虑用 Python 和人工智能开发游戏的五个原因。
我坚信,所有旨在提高编程技能的开发者,或者即使你刚刚入门,都应该投身于从零开始构建一个游戏。即使是简单的架构,你也会在这段旅程中收获很多必备的技能。
人工智能进步的最重要因素之一,尤其是在深度学习领域,是由于技术的进步,即图形处理单元(GPU)。
虽然 CPU 一次只能执行少量操作,但 GPU 可以一次执行数千次这样的操作。仅举一个假设的例子,在一个质量不错的 GPU 的帮助下,一个需要在 CPU 上训练 2-3 个小时的任务可能在大约 10 分钟内完成。
幸运的是,这些 GPU 也可以用来有效地玩现代游戏。要了解更多关于图形处理单元(GPU)的信息,我强烈建议通过下面提供的链接查看下面这篇关于“你真的需要一个用于深度学习的 GPU 吗”的文章。它涵盖了这个主题的大部分重要细节。
有了这个基本的理解之后,让我们来缩小为什么你应该专注于用 Python 和人工智能开发一个或多个游戏来提高你的编程技能和整体生产力的五个原因。
1.学习构建图形用户界面(GUI)
我的第一个项目的作者过时的 GIF
差不多是四年前,我开始迷上人工智能,开始学习 Python 编程。当我从事一些较小的项目时,我开始开发的第一个主要项目是一个简单的贪吃蛇游戏项目。
使用 Python 开发游戏项目最重要的优势之一是,无论您是使用 Pygame、Turtle 还是任何其他库模块,您都可以学习如何构建一个图形窗口,在这里您可以操作整个程序。
你开发的图形用户界面(GUI)将控制你程序的大部分。您需要的所有功能都在此窗口中执行。一旦您能够创建这些交互式图形,您也可以为自己准备更高级的编程。
您开发的 GUI 界面也可以方便地用于各种未来的机器学习或深度学习项目,在这些项目中,您可以使用以多种可能的方式实现的交互性,使您的设计、风格和外观更加实用。
虽然 Python 编程可能不是最适合游戏开发的语言,但创建这种结构背后的主要思想是有效地提高您的编程技能,并学习在您的程序和项目中实现人工智能。
2.有趣的经历
用 Python 开发一个简单的游戏是我选择从头开始构建的第一个主要项目。总的来说,这是一次非常有趣的经历,但更重要的因素是我在整个项目过程中获得的曝光率和知识。
你倾向于通读大量库模块的各种文档和其他与你的任务相关的有用信息。你还可以浏览视频和其他网站,这将有助于你获得全面的曝光率,并最终获得特定项目的最佳体验。
一旦你能够熟练地处理编程任务的众多元素和方面,你就会开始变得更加舒适,体验更加有趣。如果你喜欢做这个项目,它会提高你正在取得的成果。
如果你能够达到想要的结果,甚至是和你期望的结果非常接近,那么总体的体验会非常令人满意。你花了很多时间去理解和探索,并且享受完成你的第一个真正的项目的感觉。
你越喜欢参与游戏开发的众多项目和项目创意,你的技能就会提高得越快,作为一名开发人员,你就会成长得越快。我们将在文章的下一部分详细讨论这个特定的主题。
3.提高你的整体技能上限
照片由 Unsplash 上的 Clément Hélardot 拍摄
我想重申的是,做你热爱的事情会提高你正在努力实现的任务的效率和效果。当你致力于开发一款游戏,并且乐在其中时,你的技能上限会有一个巨大的提升。
当开发一个复杂的项目时,你在与任务相关的独特方面工作。你做了很多研究,这种热情会帮助你实现目标。在研究的时候,你最终是在收集大量的信息,你在用你的头脑协调你试图建立的模型的工作程序。
研究是编程和数据科学不可或缺的一部分。在处理各种代码块和定义完成项目特定方面所需的众多函数时,您将会对该语言产生强烈的理解。
您还将学习 Python 编码、编程或 AI 的另一个重要方面,即调试。开发你的第一个游戏的旅程,尤其是如果你是一个初学者,可能不会是最顺利的,因为在这个过程中你可能会遇到许多障碍和错误。
如果你有一个有趣的经历,你也将获得更大的机会来解决你在项目进展阶段犯的这些错误。一个数据科学家和程序员最重要的能力是保持冷静,并在完成项目时找到解决错误的方法。
因此,这是一个公平的结论,当你在这样一个创新的项目中工作时,你会很开心,不断地研究这个主题,并找出你在项目完成过程中遇到的错误,你的技能上限最终会达到新的高峰。
4.培养对项目编程有用的互动能力
使用 Python 和人工智能开发游戏项目的主要目的是在使用编程语言进行交流的同时,增强您的整体能力和交互性。您将学习面向对象编程的不同模式,并将您的技能发展到下一个水平。
最好的部分是,即使你决定不参与未来的游戏项目,你在完成项目的过程中获得的总体知识将让你完成初学者程序员正在寻找的所有主要要求,特别是在 Python 和 AI 的真实世界应用方面。
这些游戏项目通常是端到端的项目。因此,它们还涵盖了构建一个完整项目的需求,在这个项目中,您不仅要从事编程的编码和研究方面的工作,还要学习部署的艺术。这个特别的特性对于你计划从事并取得成功的未来机器学习项目将会非常有用。
在我看来,在解决游戏项目的过程中,你所开发的最优质的技能是规划的重要特征。你从一开始就制定了一个完整的工作计划和游戏项目的样子。这个规划特性允许你在旅途中解释和修改你的代码。要了解数据科学家的其他基本素质,请通过下面提供的链接查看我以前的一篇文章。
最本质的原因可以在文章的下一部分找到,在那里我们讨论了借助人工智能开发游戏的意义,特别是在深度学习和深度强化学习领域。
5.用深度学习或强化学习开发游戏
弗洛里安·奥利佛在 Unsplash 上拍摄的照片
人工智能在游戏中的作用至关重要,不能低估。所有现代游戏都受到人工智能领域巨大改进和进步的支持,尤其是当涉及到电子游戏中的敌人人工智能或不可玩角色(NPC)时。
虽然我们已经在游戏行业取得了长足的进步,但我们仍然有一些技术进步,可以确保未来几年更系统的进步和发展。然而,文章这一部分的主要焦点是如何在游戏项目中利用人工智能和深度学习来实现最佳结果。
深度学习和深度强化学习在人工智能的改进中发挥着至关重要的作用,以实现极其复杂的任务,如轻松地玩游戏,并在多次迭代训练后到达预期的终点线。
人工智能学习如何玩游戏的第一个例子可以追溯到大约 50 年前的 1959 年,当时 Arthur Samuel 开发了计算机跳棋的第一个开创性工作。
经过无数次反复的训练,它能够在人类的水平上表演,在获得更多经验后,它能够在游戏的大多数方面远远超过他们。话虽如此,让我们考虑几个例子来更好地理解这一点。
人工智能和强化学习的一个例子是 flappy bird 游戏。为该特征构建的人工智能神经网络失败了若干代。然而,经过数百万代的训练,它获得了更好的理解,并以超过人类的水平执行。
游戏行业发展的其他例子可以归功于国际象棋引擎中的神经网络,这些神经网络表现强劲,并帮助大师们准备新的创新路线。
结论:
图片来自 Freepik
“失败并不意味着游戏结束,它意味着用经验再试一次.”
学习编程和提高你的人工智能技能的最好方法之一是做你喜欢做的项目。如果你从事一个游戏项目的建设,从你获得的经验和在从头开始创建游戏的过程中开发新技能,有很多好处。
我强烈推荐那些对开发令人敬畏的项目感兴趣的人尝试从零开始构建一个游戏。它不仅为您提供了关于 Python 编程和用于开发目的的模块的知识,还帮助您获得了取得更大成就的信心。
这篇文章的主要内容是确保你从你喜欢做的事情中最大限度地练习你的技能。如果你不喜欢开发游戏,那么你可以尝试许多其他的酷项目。然而,如果你是一个用 Python 和 AI 尝试一个游戏项目的爱好者,你将会发展出很多必要的技能。因此,强烈建议您这样做。
如果你对这篇文章中提到的各点有任何疑问,请在下面的评论中告诉我。我会尽快给你回复。
看看我的其他一些文章,你可能会喜欢读!
</5-reasons-why-you-should-code-daily-as-a-data-scientist-fa7fc6dc92c4>
谢谢你们坚持到最后。我希望你们喜欢阅读这篇文章。我希望你们都有美好的一天!