预测年收入是否大于50K美元 读取adults.txt文件,最后一列是年收入,并使用KNN算法训练模型,然后使用模型预测一个人的年收入是否大于50
时间: 2024-05-12 08:15:26 浏览: 102
预测年收入是否大于50K美元--adults.txt
好的,这里提供一个Python实现的示例代码,需要使用到sklearn库中的KNeighborsClassifier类和pandas库进行数据读取和预处理。
```python
from sklearn.neighbors import KNeighborsClassifier
import pandas as pd
# 读取数据并进行预处理
data = pd.read_csv('adults.txt', header=None)
X = data.iloc[:, :-1] # 特征
y = data.iloc[:, -1] # 标签
X = pd.get_dummies(X) # 对特征进行独热编码
# 训练模型
knn = KNeighborsClassifier()
knn.fit(X, y)
# 预测年收入是否大于50K
test_data = pd.DataFrame({
'age': [30],
'workclass_ Private': [1],
'education_ Bachelors': [1],
'education_num': [13],
'marital_status_ Married-civ-spouse': [1],
'occupation_ Prof-specialty': [1],
'relationship_ Husband': [1],
'race_ White': [1],
'sex_ Male': [1],
'capital_gain': [0],
'capital_loss': [0],
'hours_per_week': [40],
'native_country_ United-States': [1]
})
test_data = pd.get_dummies(test_data)
result = knn.predict(test_data)[0]
if result == 1:
print('年收入大于50K')
else:
print('年收入不足50K')
```
需要注意的是,这里的测试数据只包含了一个样本,如果要预测多个样本的年收入情况,可以将测试数据存储在一个文件中,然后使用pandas的read_csv函数读取即可。另外,KNN算法需要根据实际情况选择合适的K值,以达到更好的预测效果。
阅读全文