2019年最新的机器学习项目
翻译:疯狂的技术宅
原文:https://www.edureka.co/blog/m...
更多文章请关注微信公众号:硬核智能
机器学习显然是一个在近几年里疯狂进步的领域。这一趋势和进步为该行业创造了许多就业机会。对机器学习工程师的需求很高,这种激增是由于技术的发展和巨大的产生数据量大数据。在本文中,我将按以下顺序讨论你绝对应该知道和使用的机器学习项目:
- 什么是机器学习?
- 机器学习的步骤
- 机器学习的类型
- 行业用例
- 2019年开源机器学习项目
什么是机器学习?
机器学习是一个概念,它允许机器从示例和经验中进行学习,而且不用去明确的进行编程。因此你不是去写代码,而是需要将数据提供给通用算法,算法或机器会根据给出的数据构建逻辑。
机器学习的步骤
任何机器学习算法都遵循一个共同的模式或步骤:
收集数据:此阶段涉及从各种来源收集所有相关数据
数据处理:对“原始数据”进行清洗并转换为方便处理的格式的过程
分析数据:通过分析对数据进行选择和过滤,以准备模型所需的数据
训练算法:算法在训练数据集上进行训练,通过该算法理解数据的模式和规则
测试模型:通过测试数据集来检测所生成模型的准确性。
部署:如果模型的速度和准确性是可接受的,那么该模型应该被部署在真实系统中。在根据其性能部署模型之后,如果性能下降,模型将会被重新训练,然后更新和改进模型。
机器学习的类型
机器学习分为三类:
监督学习:使用算法来学习从输入变量(x)到输出变量(Y)的映射函数。
无监督学习:有时候给出的数据是非结构化和未标记的。所以很难把这些数据分到不同的类别中。无监督学习有助于解决这个问题,它利用基于统计的特性将输入的数据进行聚类。
强化学习:为了在特定情况下得到最大化奖励而采取适当的行为。
在强化学习方面,并没有预期的产出。在执行给定任务时由增强代理决定要采取的操作。在没有训练数据集的情况下,从其经验中学习。
接下来让我们看一些能够帮助公司创造利润的真实机器学习项目。
行业用例
1. MOTION STUDIO
领域:媒体
焦点:优化选择过程
业务挑战: Motion Studio 是欧洲最大的无线广播节目制作公司。该公司的年收入超过十亿美元,他们决定推出一个新的真人秀节目:RJ Star。观众们对节目的反响是史无前例的,公司收到了大量的语音片段。作为 ML 专家,你必须将声音分类为男性或女性,以便能够更快的进行初选流程。
关键问题:语音样本的音调。
商业利益:由于 RJ Star 是一个真人秀,选择候选人的时间非常短。整个节目的成功和利润取决于是否能够快速和顺利的执行。
import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline import warnings warnings.filterwarnings('ignore') df = pd.read_csv('voice-classification.csv') df.head()
# Check the no. of records df.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 LabelEncoder y=df.iloc[:,-1] gender_encoder = LabelEncoder() y = gender_encoder.fit_transform(y) from sklearn.preprocessing import StandardScaler scaler = StandardScaler() scaler.fit(X) X = scaler.transform(X) from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=100) from sklearn.svm import SVC from sklearn import metrics from 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 pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.set() # for plot styling %matplotlib inline import warnings warnings.filterwarnings('ignore') import matplotlib.pyplot as plt plt.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 clusters kmeans = 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=4 kmeans_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 np import pylab as plt import networkx as nx #Initializing points points_list = [(0,1), (1,5), (5,6), (5,4), (1,2), (2,3), (2,7)] goal = 7 mapping={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 Matrix R = np.matrix(np.ones(shape=(NO_OF_POINTS, NO_OF_POINTS))) R *= -1 for 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]= 150 R
Q = np.matrix(np.zeros([NO_OF_POINTS,NO_OF_POINTS])) # The learning parameter gamma = 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_act available_act = available_actions(initial_state) def sample_next_action(available_actions_range): next_action = int(np.random.choice(available_act,1)) return next_action action = 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) # Testing current_state = 0 steps = [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...
这篇关于机器学习项目的文章到此就结束。试着运行这些例子,并在下面的评论部分告诉我们。希望你能了解机器学习在不同行业中的实际应用。
更多文章请关注微信公众号:硬核智能