- 来源 | 愿码(ChainDesk.CN)内容编辑
- 愿码Slogan | 链接每一个程序员的故事
- 网站 | http://chaindesk.cn
- 愿码愿景 | 打造全学科IT系统免费课程,助力小白用户、初级工程师0成本免费系统学习、低成本进阶,帮助BAT一线资深工程师成长并利用自身优点创造睡后收入。
- 官方公众号 | 愿码 | 愿码服务号 | 区块链部落
- 免费加入愿码全思惟工程师社群 | 任一公众号回复“愿码”两个字获取入群二维码
本文阅读时长:10min程序员
根据techopedia的说法, 智能城市是一个利用信息和通讯技术提升城市服务(如能源和交通)质量和性能,从而下降资源消耗、浪费和整体成本的城市。正则表达式
Deakin和 AI Waer列出了有助于定义智慧城市的四个因素:算法
所以,一个智能城市将是一个不只拥有信息通讯技术并且还以对居民产生积极影响的方式使用技术的城市。sql
人工智能(AI)与物联网一块儿,有可能解决城市人口过多带来的主要挑战,他们能够帮助解决交通管理,医疗保健,能源危机和许多其余问题。物联网数据和人工智能技术能够改善居住在智慧城市的公民和企业的生活。express
智能城市拥有大量用于人工智能的物联网技术的用例,从保持更健康的环境到加强公共交通和安全。在下图中,您能够看到智能城市的一些用例:安全
人工智能和物联网能够实施智能交通解决方案,以确保智能城市的居民尽量安全,高效地从城市的一个点到另外一个点。网络
洛杉矶是世界上最拥挤的城市之一,已经实施了智能交通解决方案来控制交通流量。它安装了路面传感器和闭路电视摄像机,可将有关交通流量的实时更新发送到中央交通管理系统。分析来自传感器和摄像机的数据馈送,并通知用户拥塞和交通讯号故障。2018年7月,该市在每一个交叉口进一步安装了先进的交通控制器(ATC)柜。启用车辆到基础设施(V2I通讯和5G链接,这使他们可以与具备红绿灯信息功能的汽车进行通讯,例如奥迪A4或Q7。嵌入传感器的自动车辆的发布能够提供车辆的位置和速度,他们能够直接与智能交通讯号灯通讯,防止拥堵。此外,使用历史数据,可预测将来流量并用于防止任何可能的拥塞。app
生活在城市中的任何人都能感觉到寻找停车位的困难,特别是在假日期间。智能停车能够缓解这个问题。经过将路面传感器嵌入停车位的地面,智能停车解决方案能够肯定停车位是空闲仍是占用,并建立实时停车地图。dom
Adelaide市于2018年2月安装了智能停车系统,他们还推出了移动应用程序:Park Adelaide,它将为用户提供准确和实时的停车信息。该应用程序能够为用户提供远程定位,支付甚至延长停车会话的能力。智能停车系统旨在改善交通流量,减小交通拥堵并减小碳排放。ide
在三藩市交通局(SAFTA)实施SFpark智能泊车系统。他们使用无线传感器来检测计量空间中的实时停车位占用状况。SFpark于2013年推出,平日温室气体排放量减小了25%,交通量降低,司机的搜索时间减小了50%。
在伦敦,威斯敏斯特Westminster市还在2014年与Machina Research合做创建了智能停车系统。 早些时候,司机不得不平均等待12分钟,致使拥堵和污染,但自智能停车系统安装以来,没有必要等待,司机可使用手机找到可用的停车位。
其余用例包括智能废物管理,智能警务,智能照明和智能治理。
创建一个智能城市不是一天的业务,也不是一我的或组织的工做。它须要许多战略合做伙伴,领导者甚至公民的合做。智能社区能够作些什么呢?为咱们提供职业或创业机会的领域是什么?
任何物联网平台都必须知足如下要求:
除此以外,还会出现有关安全和隐私的问题,服务提供商必须确保这些智能服务不会对公民的健康构成任何威胁。服务自己应易于使用,以便公民能够采用。
如你所见,这提供了一系列工做机会,特别是AI工程师。须要处理物联网生成的数据,而且要真正从中受益,咱们须要超越监控和基本分析。将须要AI工具来识别传感器数据中的模式和隐藏的相关性。使用ML/AI工具分析历史传感器数据有助于识别趋势并基于它们建立预测模型。而后,这些模型能够由向IoT设备的执行器发送命令的控制应用程序使用。
构建智能城市的过程将是一个迭代过程,每次迭代都会增长更多的处理和分析。如今让咱们来看一下AI供电的物联网解决方案的例子。
旧金山市也有一个开放数据门户网站,提供来自不一样部门的数据。在本节中,咱们采用数据集提供来自旧金山全部社区的犯罪报告约12年(从2003年1月至2015年5月),并训练模型以预测发生的犯罪类别。有39个谨慎的犯罪类别,所以它是一个多类别的分类问题。
咱们将使用Apache的PySpark并使用其易于使用的文本处理功能来处理此数据集。因此第一步是建立一个 Spark会话:
第一步是导入必要的模块并建立 Spark会话:
from pyspark.ml.classification import LogisticRegression as LR from pyspark.ml.feature import RegexTokenizer as RT from pyspark.ml.feature import StopWordsRemover as SWR from pyspark.ml.feature import CountVectorizer from pyspark.ml.feature import OneHotEncoder, StringIndexer, VectorAssembler from pyspark.ml import Pipeline from pyspark.sql.functions import col from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("Crime Category Prediction") \ .config("spark.executor.memory", "70g") \ .config("spark.driver.memory", "50g") \ .config("spark.memory.offHeap.enabled",True) \ .config("spark.memory.offHeap.size","16g") \ .getOrCreate()
咱们加载csv文件中可用的数据集:
data = spark.read.format("csv"). \ options(header="true", inferschema="true"). \ load("sf_crime_dataset.csv") data.columns
数据包含九列:[Dates,Category,Descript,DayOfWeek,PdDistrict,Resolution,Address, X,Y]咱们只须要Category和Descript字段来训练和测试数据集:
drop_data = ['Dates', 'DayOfWeek', 'PdDistrict', 'Resolution', 'Address', 'X', 'Y'] data = data.select([column for column in data.columns if column not in drop_data]) data.show(5)
如今咱们拥有的数据集有文本数据,所以咱们须要执行文本处理。三个重要的文本处理步骤是:标记数据,删除停用词并将单词向量化为向量。
咱们将使用RegexTokenizer将使用正则表达式将句子标记为单词列表,由于标点符号或特殊字符不会添加任何含义,咱们只保留包含字母数字内容的单词。有一些词语the会在文本中很是常见,但不会为语境添加任何含义。使用内置类删除这些单词(也称为停用单词)StopWordsRemover。
使用标准停用词["http","https","amp","rt","t","c","the"]。最后使用了 CountVectorizer,将单词转换为数字向量(要素)。这些数字特征将用做训练模型的输入。数据的输出是Category列,但它也是36个不一样类别的文本,所以,咱们须要将其转换为一个热编码向量:PySpark StringIndexer能够很容易地使用它。将全部这些转换添加到咱们的数据中Pipeline:
# regular expression tokenizer re_Tokenizer = RT(inputCol="Descript", outputCol="words", pattern="\\W") # stop words stop_words = ["http","https","amp","rt","t","c","the"] stop_words_remover = SWR(inputCol="words", outputCol="filtered").setStopWords(stop_words) # bag of words count count_vectors = CountVectorizer(inputCol="filtered", outputCol="features", vocabSize=10000, minDF=5) #One hot encoding the label label_string_Idx = StringIndexer(inputCol = "Category", outputCol = "label") # Create the pipeline pipeline = Pipeline(stages=[re_Tokenizer, stop_words_remover, count_vectors, label_string_Idx]) # Fit the pipeline to data. pipeline_fit = pipeline.fit(data) dataset = pipeline_fit.transform(data) dataset.show(5)
如今,数据准备就绪,咱们将其分为训练和测试数据集:
# Split the data randomly into training and test data sets. (trainingData, testData) = dataset.randomSplit([0.7, 0.3], seed = 100) print("Training Dataset Size: " + str(trainingData.count())) print("Test Dataset Size: " + str(testData.count()))
让咱们为它拟合一个简单的逻辑回归模型。在测试数据集上,它提供97%的准确性。
# Build the model logistic_regrssor = LR(maxIter=20, regParam=0.3, elasticNetParam=0) # Train model with Training Data model = logistic_regrssor.fit(trainingData) # Make predictions on Test Data predictions = model.transform(testData) # evaluate the model on test data set evaluator = MulticlassClassificationEvaluator(predictionCol="prediction") evaluator.evaluate(predictions)
人工智能正在改变城市运营,交付和维护公共设施的方式,从照明和交通到链接和医疗服务。可是,选择不能有效协同工做或与其余城市服务相结合的技术可能会妨碍采用。要让城市真正受益于智能城市提供的潜力,须要改变思惟方式。当局应该更长时间地规划并跨越多个部门。
巴塞罗那市是一个典型的例子,物联网系统的实施创造了约47,000个就业机会,节省了4250万欧元的水费,并经过智能停车每一年额外增长了3650万欧元。咱们能够很容易地看到,城市能够从利用人工智能的物联网解决方案的技术进步中获益匪浅。基于人工智能的物联网解决方案能够帮助链接城市,管理多个基础设施和公共服务。
在本文中,咱们研究了从智能照明和道路交通到链接公共交通和废物管理的智能城市的用例。同时学会了使用有助于对旧金山12年期间犯罪报告中的数据进行分类的工具。若是你还想学习到更多的干货及实战案例,记得关注“愿码”公众号!