【Python】数据挖掘与机器学习(二)

【Python】数据挖掘与机器学习(二)

【实验1】 小麦种子分类

【实验1】 小麦种子分类(Softmax 回归)
Seeds 数据集存放了不同品种小麦种子的区域(Area)、周长(Perimeter)、压实度
(Compactness)、籽粒长度(Kernel.Length)、籽粒宽度(Kernel.Width)、不对称系数
(Asymmetry.Coeff)、籽粒腹沟长度(Kernel.Groove)以及类别数据(Type)。该数据集总
共210 条记录、7 个特征、1 个类别,分为3 类标签,分别是1,2,3。(数据文件在seeds.csv)
请采用Softmax 回归给出线性回归模型:
(1)训练集与测试集按7:3 划分,分给出模型的权重系数;
(2)给出测试集的混淆矩阵与分类报告;
(3)选做:画出pairplot;
(4)根据训练的模型,给出以下小麦种子的类别分类:
14.56 14.39 0.88 5.57 3.27 2.27 5.22
18.68 16.23 0.89 6.23 3.72 3.22 6.08
12.47 13.55 0.85 5.34 2.91 4.37 5.14
12.97 13.73 0.86 5.39 3.01 4.79 5.28
14.48 14.49 0.85 5.71 3.14 5.30 5.62


代码实现


import pandas as pd
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt
from sklearn import metrics
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import confusion_matrix
from sklearn.model_selection import train_test_split

# 0.数据加载
data = pd.read_csv('seeds.csv')
data = data.values
xx = data[:, 0:-1]
yy = data[:, 7]  # y 的取值是 1,2,3
np.random.seed(2022)  # 设置固定随机种子

# 1.训练集与测试集划分
x_train, x_test, y_train, y_test = train_test_split(xx, yy, test_size=0.3, random_state=2022)
clf = LogisticRegression(max_iter=500).fit(x_train, y_train)  # 定义并训练逻辑回归模型,max_iter 默认是 100,但本例子还没收敛需要设置 500.
print('coef:', clf.coef_)  # 输出回归系数,查看权重
print('intercept:', clf.intercept_)  # 获得截距

# 2.混淆矩阵与分类报告
y_pred = clf.predict(x_test)
cm = confusion_matrix(y_test, y_pred)  # 获得混淆矩阵
print('混淆矩阵:\n', cm)
report = metrics.classification_report(y_test, y_pred)  
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寸 铁

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值