蓝桥杯基础-008-number_feature

本文介绍了一个简单的Java程序,该程序首先接收一组整数的数量,然后接收具体数值,最后输出这些数值中的最大值、最小值以及所有数值的总和。

题意

 输入num_sum(数字)

接着 输入num_sum个数字

输出 

max

min

sum

代码

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner keyin = new Scanner(System.in);
		int num_sum = keyin.nextInt();
		int value_sum = 0;
		int value_max = 0;
		int value_min = 0;
		int flag = 1;
		while(num_sum-->0){
			int temp = keyin.nextInt();
			if(flag == 1){
				value_max = value_min = temp;
				flag = 0;
			}
			value_sum += temp;
			if(temp > value_max){
				value_max = temp;
			}
			if(temp < value_min){
				value_min = temp;
			}
		}
		System.out.println(value_max+"\n"+value_min+"\n"+value_sum);
	}

}


ValueError Traceback (most recent call last) Cell In[13], line 81 79 poly = PolynomialFeatures(degree=2, include_bias=False) 80 X_poly = poly.fit_transform(df[['检测孕周', '孕妇BMI', '检测抽血次数']]) ---> 81 df_poly = pd.DataFrame(X_poly, columns=poly.get_feature_names_out(['孕周', 'BMI', '抽血次数'])) 83 # 定义特征与目标变量 84 X_extended = df_poly File ~\AppData\Roaming\Python\Python312\site-packages\sklearn\preprocessing\_polynomial.py:273, in PolynomialFeatures.get_feature_names_out(self, input_features) 253 """Get output feature names for transformation. 254 255 Parameters (...) 270 Transformed feature names. 271 """ 272 powers = self.powers_ --> 273 input_features = _check_feature_names_in(self, input_features) 274 feature_names = [] 275 for row in powers: File ~\AppData\Roaming\Python\Python312\site-packages\sklearn\utils\validation.py:2478, in _check_feature_names_in(estimator, input_features, generate_names) 2474 input_features = np.asarray(input_features, dtype=object) 2475 if feature_names_in_ is not None and not np.array_equal( 2476 feature_names_in_, input_features 2477 ): -> 2478 raise ValueError("input_features is not equal to feature_names_in_") 2480 if n_features_in_ is not None and len(input_features) != n_features_in_: 2481 raise ValueError( 2482 "input_features should have length equal to number of " 2483 f"features ({n_features_in_}), got {len(input_features)}" 2484 ) ValueError: input_features is not equal to feature_names_in_
最新发布
09-06
你遇到的错误: ``` ValueError: input_features is not equal to feature_names_in_ ``` 是由于你在调用 `poly.get_feature_names_out(['孕周', 'BMI', '抽血次数'])` 时传入的 `input_features` 与 `PolynomialFeatures` 对象在 `fit_transform` 时所使用的列名不一致导致的。 --- ## ✅ 错误原因分析: 你在 `fit_transform` 的时候使用的是: ```python X_poly = poly.fit_transform(df[['检测孕周', '孕妇BMI', '检测抽血次数']]) ``` 也就是说,你传入的列名是:`['检测孕周', '孕妇BMI', '检测抽血次数']` 但在调用 `get_feature_names_out` 时你传入的却是: ```python ['孕周', 'BMI', '抽血次数'] ``` 这两组列名不一致,所以 `PolynomialFeatures` 报错。 --- ## ✅ 解决方案 你只需要确保 `fit_transform` 和 `get_feature_names_out` 使用的列名一致即可。 ### ✅ 修改方式如下: ```python # ✅ 正确做法:列名一致 poly = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly.fit_transform(df[['检测孕周', '孕妇BMI', '检测抽血次数']]) # 使用与 fit_transform 一致的列名来生成特征名 df_poly = pd.DataFrame(X_poly, columns=poly.get_feature_names_out(['检测孕周', '孕妇BMI', '检测抽血次数'])) ``` --- ## ✅ 修改后的代码片段(修复部分): ```python # 特征工程:创建多项式特征(二次项) poly = PolynomialFeatures(degree=2, include_bias=False) X_poly = poly.fit_transform(df[['检测孕周', '孕妇BMI', '检测抽血次数']]) # 使用与 fit_transform 一致的列名生成特征名 df_poly = pd.DataFrame(X_poly, columns=poly.get_feature_names_out(['检测孕周', '孕妇BMI', '检测抽血次数'])) # 定义特征与目标变量 X_extended = df_poly y = df['Y染色体浓度'] ``` --- ## ✅ 示例输出(`df_poly` 的列名): ```text ['检测孕周', '孕妇BMI', '检测抽血次数', '检测孕周^2', '检测孕周:孕妇BMI', '检测孕周:检测抽血次数', '孕妇BMI^2', '孕妇BMI:检测抽血次数', '检测抽血次数^2'] ``` 这样就能正确生成多项式特征的列名,避免 `ValueError`。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值