编程;基于Skit-earn自带的白酒数据集完成机器学习的数据准备工作,并将代码填入答案但中。要求如下 (1)加载Scikit-learn自带的白酒数据集; (2)获取数据集的特征 (X)和标签(Y),并打印X和Y的大小; (3)将数据集划分为训练集和测试集,并打印训练集和测试集的大小。 (4)选择数据集的两个特征,绘制数据集散点图(scatter) 编程:基于上述加载拆分后的白酒数据集使用对数几率回归(Logistic Regression)进行分类,评估结果,并 打印混淆矩阵(confusion matrix)和分类报告(classificationreport)。 (1)初始化对数几率回归模型,使用训练集进行拟合; (2)使用测试集测试分类精度,预测测试数据,并打印结果; (3)打印分类报告。 (4)打印混淆矩阵。 提示:对数几率回归所在包sklearn.linear model,混淆矩阵和分类报告所在包:sklearn.metrics 编程:基于自酒数据集,使用朴素贝叶斯方法编程实现如下功能: (1)分别使用高斯朴素贝叶斯和多项式朴素贝叶斯训练数据; (2)打印两个朴素贝叶斯的测试精度; (3)定义分层划分(n splits=50,test size=0.2),利用学习曲线函数(leaming curve)计算两个方法的 测试集大小、训练精度和测试精度,并打印。 (4)分别绘制两种朴素贝叶斯方法的学习曲线。
时间: 2024-02-27 10:59:19 浏览: 153
(1) 加载Scikit-learn自带的白酒数据集:
```python
from sklearn.datasets import load_wine
wine = load_wine()
```
(2) 获取数据集的特征 X 和标签 Y ,并打印 X 和 Y 的大小:
```python
X = wine.data
Y = wine.target
print('X size:', X.shape)
print('Y size:', Y.shape)
```
(3) 将数据集划分为训练集和测试集,并打印训练集和测试集的大小:
```python
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=42)
print('X_train size:', X_train.shape)
print('X_test size:', X_test.shape)
print('Y_train size:', Y_train.shape)
print('Y_test size:', Y_test.shape)
```
(4) 选择数据集的两个特征,绘制数据集散点图(scatter):
```python
import matplotlib.pyplot as plt
plt.scatter(X[:, 0], X[:, 1], c=Y)
plt.xlabel('Feature 0')
plt.ylabel('Feature 1')
plt.show()
```
基于上述加载拆分后的白酒数据集使用对数几率回归(Logistic Regression)进行分类,评估结果,并打印混淆矩阵(confusion matrix)和分类报告(classification report):
(1) 初始化对数几率回归模型,使用训练集进行拟合:
```python
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression()
lr.fit(X_train, Y_train)
```
(2) 使用测试集测试分类精度,预测测试数据,并打印结果:
```python
from sklearn.metrics import accuracy_score
Y_pred = lr.predict(X_test)
print('Accuracy:', accuracy_score(Y_test, Y_pred))
```
(3) 打印分类报告:
```python
from sklearn.metrics import classification_report
print(classification_report(Y_test, Y_pred))
```
(4) 打印混淆矩阵:
```python
from sklearn.metrics import confusion_matrix
print(confusion_matrix(Y_test, Y_pred))
```
基于自酒数据集,使用朴素贝叶斯方法编程实现如下功能:
(1) 分别使用高斯朴素贝叶斯和多项式朴素贝叶斯训练数据:
```python
from sklearn.naive_bayes import GaussianNB, MultinomialNB
gnb = GaussianNB()
mnb = MultinomialNB()
gnb.fit(X_train, Y_train)
mnb.fit(X_train, Y_train)
```
(2) 打印两个朴素贝叶斯的测试精度:
```python
print('GaussianNB accuracy:', gnb.score(X_test, Y_test))
print('MultinomialNB accuracy:', mnb.score(X_test, Y_test))
```
(3) 定义分层划分(n_splits=50, test_size=0.2),利用学习曲线函数(learning curve)计算两个方法的测试集大小、训练精度和测试精度,并打印:
```python
from sklearn.model_selection import learning_curve
train_sizes, train_scores_gnb, test_scores_gnb = learning_curve(GaussianNB(), X, Y, cv=50, train_sizes=np.linspace(0.1, 1.0, 5))
train_sizes, train_scores_mnb, test_scores_mnb = learning_curve(MultinomialNB(), X, Y, cv=50, train_sizes=np.linspace(0.1, 1.0, 5))
print('GaussianNB train_sizes:', train_sizes)
print('GaussianNB train_scores:', np.mean(train_scores_gnb, axis=1))
print('GaussianNB test_scores:', np.mean(test_scores_gnb, axis=1))
print('MultinomialNB train_sizes:', train_sizes)
print('MultinomialNB train_scores:', np.mean(train_scores_mnb, axis=1))
print('MultinomialNB test_scores:', np.mean(test_scores_mnb, axis=1))
```
(4) 分别绘制两种朴素贝叶斯方法的学习曲线:
```python
plt.plot(train_sizes, np.mean(train_scores_gnb, axis=1), 'o-', color='r', label='GaussianNB training score')
plt.plot(train_sizes, np.mean(test_scores_gnb, axis=1), 'o-', color='g', label='GaussianNB test score')
plt.plot(train_sizes, np.mean(train_scores_mnb, axis=1), 'o-', color='b', label='MultinomialNB training score')
plt.plot(train_sizes, np.mean(test_scores_mnb, axis=1), 'o-', color='y', label='MultinomialNB test score')
plt.xlabel('Training examples')
plt.ylabel('Score')
plt.legend(loc='best')
plt.show()
```
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![whl](https://img-home.csdnimg.cn/images/20250102104920.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)