Py学习  »  Python

基于Python的scikit-learn机器学习框架,分类模型的构建和预测

生信技能树 • 1 月前 • 206 次点击  

使用scikit-learn进行机器学习

1.无监督学习

从未标记的数据中发现隐藏的模式,例如聚类。

2.监督学习

预测值是已知的,分析的目的是根据特征预测未见过的数据的目标值
监督式学习的类型:
分类: 目标变量是分类型数据
回归: 目标变量是连续型数据

3.命名约定

feature = predictor variable = independent variable
(特征 = 预测变量 = 自变量 )
Target variable = dependent variable = response variable
(目标变量 = 因变量 = 响应变量)

4.数据要求

无缺失值
numeric格式的数据
数据存储在 pandas DataFrame 或 NumPy array中
先执行探索性数据分析 (EDA)

5.scikit-learn 的一般语法

(不是可以直接运行的代码)
from sklearn.module import Model
model = Model()
model.fit(X, y)
predictions = model.predict(X_new)
print(predictions)
## array([0, 0, 0, 0, 1, 0])

算是又开启了一段新的学习历程。同时开启python的单细胞和机器学习环节。后面继续分享。


机器学习分类模型的构建和预测

  • 1.作用

  • 2.步骤

  • 3.KNN算法的原理

  • 4.数据

  • 5.代码

1.作用

根据已知数据和它的分类来构建分类器,对未遇见过的数据进行分类。

labeled data(已标记的数据) = training data,就是已知特征和分类,用于构建分类器的数据。

2.步骤

(1)构建模型

(2)模型从我们传递给他的已标记数据中学习

(3)将未标记的数据作为输入传递给模型

(4)模型预测未遇见过的数据标签

本文主要介绍的是K临近法 ,也就是 k-Nearest Neighbor  (KNN)

3.KNN算法的原理

  • 查看 k 个最近的标记数据点
  • 进行多数投票

经查询,下图的横纵坐标就是两个自变量。非常之简单

图中黑色的点,如果我们设置k=3,就会预测为红色,设置k=5,就会预测为蓝色。

颜色界限就是预测边界,模型预测红色背景色的属于0,灰色背景色的属于1。

4.数据

datacamp的课程里只是预先加载了churn_df,我搜索一番从github找到了这个文件。(不大好找啊)

https://github.com/rishabhm76/LDA-Project/blob/master/Discriminant-analysis-churn-dataset.csv

5.代码

  • 构建一个分类器
  • 该分类器从我们传递给他的标记数据中进行学习
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
import numpy as np
churn_df = pd.read_csv("Discriminant-analysis-churn-dataset.csv")
churn_df
from sklearn.neighbors import KNeighborsClassifier
X = churn_df[["total_day_charge""total_eve_charge"]].values
y = churn_df["churn"].values
print(X.shape, y.shape)
## (5000, 2), (5000,)
# Create a KNN classifier with 15 neighbors
knn = KNeighborsClassifier(n_neighbors=15)
# Fit the classifier to the data
knn.fit(X, y)

X 和 y 是自变量和因变量,格式要求是数组,所以取子集时加了.values,就成了数组

接下来是完成预测:

  • 将未标记的数据作为输入传递给它
  • 让它预测这些未遇见过的数据的标签
X_new = np.array([[56.817.5],
                  [24.424.1],
                  [50.110.9]])
print(X_new.shape)
## (3, 2)
predictions = knn.predict(X_new)
print('Predictions: {}'.format(predictions))
## Predictions: [1 0 0]

Python从零开始的配套b站视频和书籍

从零开始开始学习一个编程语言,我们肯定是首先得安装好它,比如前面我们讲解了Python的安装,它多个版本的差异以及管理,详见:Python初体验之弄清楚版本差异和如何安装管理,然后给出来了两个Python编辑器,就是PyCharm或者JupyterLab,任选其一都可以打开你的Python从零开始之旅。

接下来就需要给大家推荐一些在线资料啦,尤其是配套b站视频和书籍,还有配合我们生物信息学实践的Python练习题!

b站视频

首选:https://www.bilibili.com/video/BV1FT4y1R7sz/

这个是 Python零基础教程快速上手_全程干货+实用技巧小白必看,目前阅读量并不高,但是知识点非常全面了,如下所示的目录节选:

目录节选

另外,值得注意的Python这个编程语言其实非常大众,所以广大的it行业小白都会学习它, 这样的话这个领域的培训玩家就非常多,所以其实绝大部分视频都是培训班引流的,这个也不例外,可以看到它确实是有很多实践案例 :

实践案例

但是这些实践案例 跟我们生物信息学关系并不大, 因为生物信息学实在是太小众了,而且绝大部分生物信息学数据分析都是r编程语言为主,仅仅是因为最近的单细胞转录组和空间单细胞转录组技术的火爆才慢慢的有Python崛起的趋势而已。

配套书籍

同样的,我们的推荐的Python配套视频是跟生物信息学完全不搭边的,Python在线书籍也是如此,我就在京东下单了这个:

Python在线书籍

看了看主流的平台差不多是图灵社区整理的最齐全了,详见:年度书单盘点 | 豆瓣高分,值得反复刷的Python好书

Python编程书籍


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/174447
 
206 次点击