powerbi 线性回归_Power BI K近邻(KNN)分类算法的实现

在使用Power BI的过程中,我时常会想,能不能够仅仅依靠Power BI自身来实现一些较简单的机器学习算法,而不用事事都依赖于R和Python,因此,我使用DAX做了一些尝试。过去,我实现了用DAX完成了多元线性回归,但那属于回归算法。对于分类算法,至少在K近邻算法方面,Google和百度上找不到有人做过这样的尝试,这也许因为极少有人会认为机器学习算法在DAX上能行得通,但下文的实践可以证明,这是行得通的。

一、K近邻算法简介

(此处如了解可直接跳过) KNN全称k-nearest neighbors, 意为K近邻,是一种监督机器学习算法,新的数据点会放在现有数据集中,根据它与相邻数据点的距离来判定该数据点属于哪个类别。比如说,数据集里有一百张猫的图片和一百张狗的图片,并且记录了它们身体各个部位的特点,因此,当一张新的图片进来时,比如说图片中的动物有尖尖的耳朵,那么K近邻算法会依据它与数据集某些数据的相似性而把它归类为猫。此外,在现实应用中,我们根据不同情况来决定K的取值,比如令K等于7,那么我们分析离新的数据点最近的七个点属于什么类别,如果这些点中有3个属于A类,其余的属于B类,那么算法会依据多数表决法把它归类为B类,如下图所示:(图片源自https://www.edureka.co/blog/knn-algorithm-in-r/)

二、利用DAX的实现过程

1.准备工作

下图中的彩色散点是我随机生成的产品数据,横轴代表销量,纵轴代表利润,而其中7

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KNN(K-近邻分类算法python实现如下: 1. 导入必要的库 ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris # 用于测试的鸢尾花数据集 from sklearn.model_selection import train_test_split # 用于将数据集划分为训练集和测试集 from sklearn.metrics import accuracy_score # 用于计算分类准确率 ``` 2. 加载测试数据集 ```python iris = load_iris() # 加载鸢尾花数据集 X, y = iris.data, iris.target # 获取数据和标签 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 将数据集划分为训练集和测试集,测试集占比为30% ``` 3. 创建KNN分类器 ```python knn = KNeighborsClassifier(n_neighbors=3) # 创建KNN分类器,设置K=3 ``` 4. 训练模型 ```python knn.fit(X_train, y_train) # 使用训练集对KNN分类器进行训练 ``` 5. 进行预测 ```python y_pred = knn.predict(X_test) # 使用测试集进行预测 ``` 6. 计算分类准确率 ```python accuracy = accuracy_score(y_test, y_pred) # 计算分类准确率 print('Accuracy:', accuracy) # 输出分类准确率 ``` 完整代码如下: ```python from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score iris = load_iris() X, y = iris.data, iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) knn = KNeighborsClassifier(n_neighbors=3) knn.fit(X_train, y_train) y_pred = knn.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy) ``` 运行结果如下: ``` Accuracy: 1.0 ``` 说明该KNN分类器在测试集上分类准确率为100%。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值