翻译:疯狂的技术宅
原文:https://www.edureka.co/blog/m...

更多文章请关注微信公众号:硬核智能


机器学习显然是一个在近几年里疯狂进步的领域。这一趋势和进步为该行业创造了许多就业机会。对机器学习工程师的需求很高,这种激增是由于技术的发展和巨大的产生数据量大数据。在本文中,我将按以下顺序讨论你绝对应该知道和使用的机器学习项目:

  • 什么是机器学习?
  • 机器学习的步骤
  • 机器学习的类型
  • 行业用例
  • 2019年开源机器学习项目

什么是机器学习?

机器学习是一个概念,它允许机器从示例和经验中进行学习,而且不用去明确的进行编程。因此你不是去写代码,而是需要将数据提供给通用算法,算法或机器会根据给出的数据构建逻辑。

机器学习的步骤

任何机器学习算法都遵循一个共同的模式或步骤:

收集数据:此阶段涉及从各种来源收集所有相关数据

数据处理:对“原始数据”进行清洗并转换为方便处理的格式的过程

分析数据:通过分析对数据进行选择和过滤,以准备模型所需的数据

训练算法:算法在训练数据集上进行训练,通过该算法理解数据的模式和规则

测试模型:通过测试数据集来检测所生成模型的准确性。

部署:如果模型的速度和准确性是可接受的,那么该模型应该被部署在真实系统中。在根据其性能部署模型之后,如果性能下降,模型将会被重新训练,然后更新和改进模型。

机器学习的类型

机器学习分为三类:

监督学习:使用算法来学习从输入变量(x)到输出变量(Y)的映射函数。

无监督学习:有时候给出的数据是非结构化和未标记的。所以很难把这些数据分到不同的类别中。无监督学习有助于解决这个问题,它利用基于统计的特性将输入的数据进行聚类。

强化学习:为了在特定情况下得到最大化奖励而采取适当的行为。

在强化学习方面,并没有预期的产出。在执行给定任务时由增强代理决定要采取的操作。在没有训练数据集的情况下,从其经验中学习。

接下来让我们看一些能够帮助公司创造利润的真实机器学习项目。

行业用例

1. MOTION STUDIO

领域:媒体

焦点:优化选择过程

业务挑战: Motion Studio 是欧洲最大的无线广播节目制作公司。该公司的年收入超过十亿美元,他们决定推出一个新的真人秀节目:RJ Star。观众们对节目的反响是史无前例的,公司收到了大量的语音片段。作为 ML 专家,你必须将声音分类为男性或女性,以便能够更快的进行初选流程。

关键问题:语音样本的音调。

商业利益:由于 RJ Star 是一个真人秀,选择候选人的时间非常短。整个节目的成功和利润取决于是否能够快速和顺利的执行。

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inlineimport warningswarnings.filterwarnings('ignore')df = pd.read_csv('voice-classification.csv')df.head()

# Check the no. of recordsdf.info() df.describe() df.isnull().sum()

print ("Shape of Data:" , df.shape)print("Total number of labels: {}".format(df.shape[0]))print("Number of male: {}".format(df[df.label == 'male'].shape[0]))print("Number of female: {}".format(df[df.label == 'female'].shape[0]))

X=df.iloc[:, :-1]print (df.shape)print (X.shape)

from sklearn.preprocessing import LabelEncodery=df.iloc[:,-1] gender_encoder = LabelEncoder()y = gender_encoder.fit_transform(y) from sklearn.preprocessing import StandardScalerscaler = StandardScaler()scaler.fit(X)X = scaler.transform(X) from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=100) from sklearn.svm import SVCfrom sklearn import metricsfrom sklearn.metrics import classification_report,confusion_matrix svc_model=SVC()svc_model.fit(X_train,y_train)y_pred=svc_model.predict(X_test) print('Accuracy Score:')print(metrics.accuracy_score(y_test,y_pred))

print(confusion_matrix(y_test,y_pred))

2. LITHIONPOWER

领域:汽车

焦点:激励驾驶员

业务挑战: Lithionpower 是最大的电动汽车(e-vehicle)电池供应商。司机通常会为一天的出行去租用电池,用公司充满电的电池换下旧电池。 Lithionpower 根据司机的驾驶历史记录提供可变定价模型。由于电池寿命取决于是否超速和每天行驶的距离等因素,你作为 ML 专家必须创建一个聚类模型,根据驾驶数据将驾驶员进行分组。

关键问题:将根据聚类情况对司机进行激励,因此分组必须准确。

商业利益:利润增加高达15-20%,因为历史记录较差的司机将被收取更多的费用。

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snssns.set() # for plot styling%matplotlib inlineimport warningswarnings.filterwarnings('ignore')import matplotlib.pyplot as pltplt.rcParams['figure.figsize'] = (12, 6) df=pd.read_csv('driver-data.csv')df.head()

df.info() df.describe()

from sklearn.cluster import KMeans #Taking 2 clusterskmeans = KMeans(n_clusters=2)df_analyze = df.drop('id',axis=1) kmeans.fit(df_analyze)

kmeans.cluster_centers_

print (kmeans.labels_)print (len(kmeans.labels_))

print (type(kmeans.labels_))unique, counts = np.unique(kmeans.labels_, return_counts=True)print(dict(zip(unique, counts)))

df_analyze['cluster'] = kmeans.labels_sns.set_style('whitegrid')sns.lmplot('mean_dist_day','mean_over_speed_perc',data=df_analyze, hue='cluster',palette='coolwarm',size=6,aspect=1,fit_reg=False)

#Now, Let's check the clusters, when n=4kmeans_4 = KMeans(n_clusters=4)kmeans_4.fit(df.drop('id',axis=1))kmeans_4.fit(df.drop('id',axis=1))print(kmeans_4.cluster_centers_)unique, counts = np.unique(kmeans_4.labels_, return_counts=True) kmeans_4.cluster_centers_print(dict(zip(unique, counts)))

df_analyze['cluster'] = kmeans_4.labels_sns.set_style('whitegrid')sns.lmplot('mean_dist_day','mean_over_speed_perc',data=df_analyze, hue='cluster',palette='coolwarm',size=6,aspect=1,fit_reg=False)

3. BluEx

领域:物流

焦点:最佳路径

业务挑战: BluEx 是印度领先的物流公司。然而他们面临的挑战是其面包车司机的投递路线并非最优。这导致投递延迟和更高的燃料成本。作为 ML 专家,你必须使用强化学习创建 ML 模型,以便通过该程序找到最佳路径。

关键问题:数据有很多属性,分类可能会很棘手。

商业利益:通过采用最佳路径,节省的燃料成本可高达15%。

import numpy as npimport pylab as pltimport networkx as nx #Initializing pointspoints_list = [(0,1), (1,5), (5,6), (5,4), (1,2), (2,3), (2,7)] goal = 7mapping={0:'Start', 1:'1', 2:'2', 3:'3', 4:'4', 5:'5', 6:'6', 7:'7-Destination'}G=nx.Graph()G.add_edges_from(points_list)pos = nx.spring_layout(G,k=.5,center=points_list[2])nx.draw_networkx_nodes(G,pos,node_color='g')nx.draw_networkx_edges(G,pos,edge_color='b')nx.draw_networkx_labels(G,pos)plt.show()

NO_OF_POINTS = 8 #Inititlaizing R MatrixR = np.matrix(np.ones(shape=(NO_OF_POINTS, NO_OF_POINTS)))R *= -1for point in points_list:  print(point)  if point[1] == goal:    R[point] = 150  else:    R[point] = 0  if point[0] == goal:    R[point[::-1]] = 150  else:    # reverse of point    R[point[::-1]]= 0

R[goal,goal]= 150R

Q = np.matrix(np.zeros([NO_OF_POINTS,NO_OF_POINTS]))# The learning parametergamma = 0.8 initial_state = 1 def available_actions(state):  current_state_row = R[state,]  av_act = np.where(current_state_row >= 0)[1]  return av_actavailable_act = available_actions(initial_state)def sample_next_action(available_actions_range):  next_action = int(np.random.choice(available_act,1))  return next_actionaction = sample_next_action(available_act)def update(current_state, action, gamma):  max_index = np.where(Q[action,] == np.max(Q[action,]))[1]  if max_index.shape[0] > 1:      max_index = int(np.random.choice(max_index, size = 1))  else:    max_index = int(max_index)    max_value = Q[action, max_index]  Q[current_state, action] = R[current_state, action] + gamma * max_value  print('max_value', R[current_state, action] + gamma * max_value)  if (np.max(Q) > 0):      return(np.sum(Q/np.max(Q)*100))  else:      return (0)update(initial_state, action, gamma)

scores = []for i in range(700):  current_state = np.random.randint(0, int(Q.shape[0]))  available_act = available_actions(current_state)  action = sample_next_action(available_act)  score = update(current_state,action,gamma)  scores.append(score)  print ('Score:', str(score)) print("Trained Q matrix:")print(Q/np.max(Q)*100) # Testingcurrent_state = 0steps = [current_state] while current_state != 7:    next_step_index = np.where(Q[current_state,] == np.max(Q[current_state,]))[1]  if next_step_index.shape[0] > 1:    next_step_index = int(np.random.choice(next_step_index, size = 1))  else:    next_step_index = int(next_step_index)  steps.append(next_step_index)  current_state = next_step_index

print("Most efficient path:")print(steps) plt.plot(scores)plt.show()

2019 年开源机器学习项目

Detectron: Detectron 是 Facebook AI Research 的软件系统,它实现了最先进的物体检测算法。它是用 Python 编写的,由 Caffe2 深度学习框架提供支持。

Detectron 的目标是为物体检测研究提供高质量、高性能的代码库。它的宗旨在于灵活,以此支持新颖研究的快速实施和评估。它包含50多个预训练模型。

项目链接:https://github.com/facebookre...


Denspose:它的功能是在将 RGB 图片中的所有人物映射到 3D 人体模型的表面。 DensePose-RCNN 基于Detectron 框架中实现。

项目链接:https://github.com/facebookre...


TensorFlow.js: 它是一个用于开发和训练 ML 模型并在浏览器中部署的库。自时候发布以来,它已成为一个非常受欢迎的版本。有了它你就可以:

  • 在浏览器中进行机器学习:通过灵活直观的API,可以使用低级 JavaScript 线性代数库或高级 API 从头开始构建模型。
  • 运行现有模型:使用 TensorFlow.js 的模型转换器直接在浏览器中运行已有的 TensorFlow 模型。
  • 重新训练现有模型:使用连接到浏览器的传感器数据或其他客户端数据重新训练已有的 ML 模型。

项目链接:https://github.com/tensorflow...


Waveglow:
机器学习也在音频处理方面取得了重大进步,它不仅仅是产生音乐或进行分类。 WaveGlow 是 NVIDIA 的基于流的语音合成生成网络。如果你想从头开始训练自己的模型的话,研究人员还列出了你可以遵循的步骤。

项目链接:https://github.com/NVIDIA/wav...


Image Outpainting: 如果你只有有一个场景的半张图片,但是想要完整的风景,Image Outpainting 可以帮你做到。该项目是 Keras 基于斯坦福大学的图像修复论文的实现。

这是一个所有机器学习爱好者必须要去尝试的例子,逐步进行了详细的解释。就个人而言,这是我最喜欢的机器学习项目。

项目链接:https://github.com/bendangnuk...


Deep Painterly Harmonization:关于图像方面,这个是杰作。这个算法的作用是:将图像作为输入,如果向图像添加外部元素,它会把该元素混合到原图的环境中,就好像是它的一部分。

你能分辨出来吗?很难吧?这向我们展示了机器学习方面取得的最新进展。

项目链接:https://github.com/luanfujun/...


DeepMimic:仔细看看这里的图像,你会看到一个火柴人的形象在做回旋踢踢、后空翻和侧手翻。这是我的朋友正在加强学习。 DeepMimic 是一个基于物理学的角色技能引导方面的深度强化学习示例。

项目链接:https://github.com/xbpeng/Dee...


Magenta: Magenta 是一个研究机器学习在创造艺术和音乐过程中的作用的研究项目。这主要涉及开发新的深度学习和强化学习算法,用来生成歌曲、图像、绘图等。

它也是构建智能工具和界面的探索,允许艺术家和音乐家用这些模型扩展(不是替换!)他们的创作过程。展开你的翅膀,为 Instagram 或 Soundcloud 创造你独特的内容,成为一个有影响力的人。

项目链接:https://github.com/tensorflow...


这篇关于机器学习项目的文章到此就结束。试着运行这些例子,并在下面的评论部分告诉我们。希望你能了解机器学习在不同行业中的实际应用。


更多文章请关注微信公众号:硬核智能