今天是生信星球陪你的第993天
公众号里的文章大多数需要编程基础,如果因为代码看不懂,而跟不上正文的节奏,可以来找我学习,相当于给自己一个新手保护期。我的课程都是循环开课,点进去咨询微信↓
生信分析直播课程(9月30日下一期)
生信新手保护学习小组(10月初下一期)
单细胞陪伴学习小组(10月初下一期
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.8, 17.5],
[24.4, 24.1],
[50.1, 10.9]])
print(X_new.shape)
## (3, 2)
predictions = knn.predict(X_new)
print('Predictions: {}'.format(predictions))
## Predictions: [1 0 0]