产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

如何用 Python 构建机器学习模型?

  • 2021-05-20
  • 本文字数:3137 字

    阅读完需:约 10 分钟

如何用Python构建机器学习模型?

本文,我们将通过 Python 语言包,来构建一些机器学习模型。

构建机器学习模型的模板


该 Notebook 包含了用于创建主要机器学习算法所需的代码模板。在 scikit-learn 中,我们已经准备好了几个算法。只需调整参数,给它们输入数据,进行训练,生成模型,最后进行预测。

1.线性回归


对于线性回归,我们需要从 sklearn 库中导入 linear_model。我们准备好训练和测试数据,然后将预测模型实例化为一个名为线性回归 LinearRegression 算法的对象,它是 linear_model 包的一个类,从而创建预测模型。之后我们利用拟合函数对算法进行训练,并利用得分来评估模型。最后,我们将系数打印出来,用模型进行新的预测。


# Import modulesfrom sklearn import linear_model
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted_variable
x_test = test_dataset_precictor_variables
# Create linear regression objectlinear = linear_model.LinearRegression()
# Train the model with training data and check the scorelinear.fit(x_train, y_train)linear.score(x_train, y_train)
# Collect coefficientsprint('Coefficient: \n', linear.coef_)print('Intercept: \n', linear.intercept_)
# Make predictionspredicted_values = linear.predict(x_test)
复制代码

2.逻辑回归


在本例中,从线性回归到逻辑回归唯一改变的是我们要使用的算法。我们将 LinearRegression 改为 LogisticRegression。


# Import modulesfrom sklearn.linear_model import LogisticRegression
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted_variable
x_test = test_dataset_precictor_variables
# Create logistic regression objectmodel = LogisticRegression()
# Train the model with training data and checking the scoremodel.fit(x_train, y_train)model.score(x_train, y_train)
# Collect coefficientsprint('Coefficient: \n', model.coef_)print('Intercept: \n', model.intercept_)
# Make predictionspredicted_vaues = model.predict(x_teste)
复制代码


3.决策树


我们再次将算法更改为 DecisionTreeRegressor:


# Import modulesfrom sklearn import tree
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted_variable
x_test = test_dataset_precictor_variables
# Create Decision Tree Regressor Objectmodel = tree.DecisionTreeRegressor()
# Create Decision Tree Classifier Objectmodel = tree.DecisionTreeClassifier()
# Train the model with training data and checking the scoremodel.fit(x_train, y_train)model.score(x_train, y_train)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


4.朴素贝叶斯


我们再次将算法更改为 DecisionTreeRegressor:


# Import modulesfrom sklearn.naive_bayes import GaussianNB
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Create GaussianNB objectmodel = GaussianNB()
# Train the model with training data model.fit(x_train, y_train)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


5.支持向量机


在本例中,我们使用 SVM 库的 SVC 类。如果是 SVR,它就是一个回归函数:


# Import modulesfrom sklearn import svm
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Create SVM Classifier object model = svm.svc()
# Train the model with training data and checking the scoremodel.fit(x_train, y_train)model.score(x_train, y_train)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


6.K- 最近邻


在 KneighborsClassifier 算法中,我们有一个超参数叫做 n_neighbors,就是我们对这个算法进行调整。


# Import modulesfrom sklearn.neighbors import KNeighborsClassifier
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Create KNeighbors Classifier Objects KNeighborsClassifier(n_neighbors = 6) # default value = 5
# Train the model with training datamodel.fit(x_train, y_train)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


7.K- 均值


# Import modulesfrom sklearn.cluster import KMeans
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Create KMeans objects k_means = KMeans(n_clusters = 3, random_state = 0)
# Train the model with training datamodel.fit(x_train)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


8.随机森林


# Import modulesfrom sklearn.ensemble import RandomForestClassifier
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Create Random Forest Classifier objects model = RandomForestClassifier()
# Train the model with training data model.fit(x_train, x_test)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


9.降维


# Import modulesfrom sklearn import decomposition
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Creating PCA decomposition objectpca = decomposition.PCA(n_components = k)
# Creating Factor analysis decomposition objectfa = decomposition.FactorAnalysis()
# Reduc the size of the training set using PCAreduced_train = pca.fit_transform(train)
# Reduce the size of the training set using PCAreduced_test = pca.transform(test)
复制代码


10.梯度提升和 AdaBoost


# Import modulesfrom sklearn.ensemble import GradientBoostingClassifier
# Create training and test subsetsx_train = train_dataset_predictor_variablesy_train = train_dataset_predicted variable
x_test = test_dataset_precictor_variables
# Creating Gradient Boosting Classifier objectmodel = GradientBoostingClassifier(n_estimators = 100, learning_rate = 1.0, max_depth = 1, random_state = 0)
# Training the model with training data model.fit(x_train, x_test)
# Make predictionspredicted_values = model.predict(x_test)
复制代码


我们的工作将是把这些算法中的每一个块转化为一个项目。首先,定义一个业务问题,对数据进行预处理,训练算法,调整超参数,获得可验证的结果,在这个过程中不断迭代,直到我们达到满意的精度,做出理想的预测。


原文链接:


https://levelup.gitconnected.com/10-templates-for-building-machine-learning-models-with-notebook-282c4eb0987f

2021-05-20 16:012420

评论

发布
暂无评论
发现更多内容

EMQ&南洋万邦云边一体化方案:激活数据潜力,打造智慧工业园区

EMQ映云科技

物联网 IoT 工业互联网 智能制造 企业号 3 月 PK 榜

Go Slice 扩容的这些坑你踩过吗?

王中阳Go

Go golang 高效工作 学习方法 面试题

中小企业运维安全审计用什么软件好?有推荐吗?

行云管家

信息安全 堡垒机 运维审计

轻松搞定面试拿offer的Java面试宝典(全彩图文版)24个Java技术栈

Java你猿哥

Java 面试 ssm 面经 java技术栈

GPT-4:不open的OpenAI,终于不再编造事实

鼎道智联

openai ChatGPT4

硬核!腾讯大佬最新手打的Spring Boot笔记,从原理到实战再到源码

Java你猿哥

Java Spring Boot 后端 面经

【IT小知识】扩容是什么意思?扩容的近义词有哪些?

行云管家

扩容 IT运维

爱了!阿里P8纯手码出489页SQL优化手册,附笔记源码

做梦都在改BUG

Java 数据库 sql 面试

想稳中求进?字节大佬的硬核学习神器《图解Java并发编程》看了吗

Java你猿哥

Java 面试 Java并发 ssm 面经

建木v2.7.0发布

Jianmu

node.js maven 缓存 CI/CD 流水线

瓴羊Quick BI作为自定义数据门户,在企业的有效管理中发挥巨大作用

流量猫猫头

StyleGAN 生成 AI 虚拟人脸,再也不怕侵犯肖像权

极客飞兔

人工智能 AI 图像处理 StyleGAN 人脸生成

不要再问我 In,Exists 走不走索引了

做梦都在改BUG

终于扒完国内算法第一人10年经验总结的数据结构与算法详解文档

程序知音

Java 算法 编程语言 数据结构与算法 后端技术

京东三面:说说synchronized和volatile的区别

Java你猿哥

Java 面试 ssm 面经 Java多线程

分析 | NFTScan NFT API 在加密钱包开发中的应用

NFT Research

API NFT

币安欧意交易所合约跟单平台软件开发详情(api对接)

开发微hkkf5566

Apache Doris 1.2.3 Release 版本正式发布

SelectDB

数据仓库 数据湖 Doris 数据湖Catalog catalog

如何基于 Apache Doris 与 Apache Flink 快速构建极速易用的实时数仓

SelectDB

flink 数据湖 实时数仓 Doris 数据库、

美团二面特点:喜欢写一个 SQL 语句,然后问你加了哪些锁!

Java你猿哥

Java 数据库 sql ssm InnoDB存储引擎

3月27日“文心一言云服务”系列产品将发布 已有21家企业签约

Geek_2d6073

线上sql执行慢,分享3个优化案例

采菊东篱下

MySQL

TechBits | TCP 使用 WireShark 进行抓包

Java你猿哥

Java 后端 ssm

给跪了!阿里P7技术专家进阶必备,架构进阶宝典

做梦都在改BUG

Java 进阶 架构师

建木缓存—提升构建速度,让你不加班!

Jianmu

maven 缓存 持续集成 CI/CD 流水线

2023金三银四最新Java面试题大全(整理版)1000+面试题附答案详解

架构师之道

程序员 java面试

阿里巴巴灵魂一问:说说触发HashMap死循环根因

Java你猿哥

Java jdk 后端 ssm

Java体系最强干货分享—挑战40天准备Java面试,最快拿到offer!

Java你猿哥

Java 后端 ssm 面经 春招

见技术大佬,领惊喜好礼!快来领取数据库峰会邀请函!

InfoQ写作社区官方

数据库 云原生 阿里 热门活动 阿里云瑶池数据库峰会

GO语言集成开发: GoLand 2022 中文激活版

真大的脸盆

Mac 代码开发 Mac 软件 代码编辑 代码编辑工具

如何用Python构建机器学习模型?_AI&大模型_Anello_InfoQ精选文章