Ensemble Learning Task 1 Day 1
学习地址:https://github.com/datawhalechina/team-learning-data-mining/tree/master/EnsembleLearning
Task 1 的主要学习内容是机器学习问题三大基础方向
- 回归
- 分类
- 无监督
不是很清楚为什么这里要这么分,通常如果按照数据集特征进行问题划分的话,会有监督、无监督、半监督等多个分类。同时,分类问题在一定程度上可以看做是回归问题在特定阈值下的特殊呈现方式。
案例中列举了波士顿房价预测的回归案例,鸢尾花的分类案例,而无监督模式的聚类案例是通过生成随机数据展现的。
以下是可执行代码案例:
- 回归
from sklearn import datasets
boston = datasets.load_boston() # 返回一个类似于字典的类
X = boston.data
y = boston.target
features = boston.feature_names
boston_data = pd.DataFrame(X,columns=features)
boston_data["Price"] = y
boston_data.head()
sns.scatterplot(boston_data['NOX'],boston_data['Price'],color="r",alpha=0.6)
plt.title("Price~NOX")
plt.show()
- 分类
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
features = iris.feature_names
iris_data = pd.DataFrame(X,columns=features)
iris_data['target'] = y
iris_data.head()
# 可视化特征
marker = ['s','x','o']
for index,c in enumerate(np.unique(y)):
plt.scatter(x=iris_data.loc[y==c,"sepal length (cm)"],y=iris_data.loc[y==c,"sepal width (cm)"],alpha=0.8,label=c,marker=marker[c])
plt.xlabel("sepal length (cm)")
plt.ylabel("sepal width (cm)")
plt.legend()
plt.show()
- 无监督
# 生成月牙型非凸集
from sklearn import datasets
x, y = datasets.make_moons(n_samples=2000, shuffle=True,
noise=0.05, random_state=None)
for index,c in enumerate(np.unique(y)):
plt.scatter(x[y==c,0],x[y==c,1],s=7)
plt.show()