知识点梳理:
小麦种类预测:
打乱分离集和结果集,源码办法
年收入预测:
样本字符串转数字
癌症预测:
打乱分离集和结果集自带函数,样本数据归一化
一、小麦种类预测
1)处理数据
1、导入数据
samples = pd.read_table('./data/wheats.tsv',header=None)
samples
samples.shape
(210, 8) #共210个样本数据
2、打乱分离训练集和结果集
samples = np.random.permutation(210) #打乱210个样本的顺序,样本的值不变
samples.iloc[:,0:7]
data = samples.iloc[:,:-1] # 从 最开始 到 最后的 最后的取不到
target = samples[7] # df直接传入索引 是对列的索引
target
3、提取训练集和测试集
训练集为190个之前的
测试集为190个之后的
X_train = data[:190]
y_train = target[:190]
# 测试数据
X_test = data[190:]
y_test = target[190:]
2)创建训练模型并训练
knn = KNeighborsClassifier(n_neighbors=13) #测试得到n_neighbors = 13的测试准确率较大
knn.fit(X_train,y_train)
3)使用模型预测结果
y_ = knn.predict(X_test)
4)查看模型准确率
knn.score(X_test,y_test)
0.9
二、预测年收入是否大于50K美元
1)处理数据
1、导入数据
df = pd.read_csv('./data/adults.csv')
df
df.shape
(32561, 15) #共32561个样本数据
2、获取特征与目标值
data = df.loc[:,['age','education','occupation','hours_per_week']] #特征
target = df['salary'] #目标值
3、数据处理
data
这里的数据类型为字符串,机器不能处理这些数据,我们应将这些数据转换为数字
将所有字符串的列,转换成相应的值让机器去学习
levels = data['education'].unique()
levels #输出所有的不重复的种类
array(['Bachelors',